-
Notifications
You must be signed in to change notification settings - Fork 0
TechRequirements
Authors: Dave Walton and Keith Sheppard
This document describes the technical requirements for the first phase of the CGD Drake Genetics software project.
It is important to design the account management such that no direct technical support is required for a classroom to start using the DrakeGenetics web app. This is also intended to be a highly reusable component so an effort should be made to keep the software as modular as possible.
Any person with network access to the DrakeGenetics web application will be able to create a user account. Users will be uniquely identified by their email address which will be used to confirm the user's identity. All users will be able to:
- reset thier password via thier email address
- associate a name with thier account
- create a Laboratory
There will typcially be a one-to-one correspondance between classrooms using our application and Laboratories, though this relationship will not be enforced. Almost all communication between user accounts will occur within the context of a common Laboratory. The only exception to this being Laboratory invitations which clearly must be sent to users outside of the Laboratory.
When a Laboratory is created it will be initiallized with the following roles:
- Scientist (ie Student)
- Advisor (ie Teacher)
The user Account which created the Laboratory will be automatically assigned to the Advisor Role. Each item in the following activity list is followed by the role(s) which are authorized to perform that activity. All Advisor and Scientist permissions exist only in the context of the Laboratory where those roles are held:
- Laboratory creation: any user
- Laboratory account invitation/removal: Advisor
- Role assignment: Advisor
- Generate progress and usage reports: Advisor
- Read from notebook: Advisor, Scientist
- Write to own Laboratory notebook: Advisor, Scientist
- Read others' Laboratory notebook: Advisor, Scientist
- Comment on Laboratory notebook: Advisor, Scientist
- Perform Lab Experiments (TODO refer to a requirements section explaining which experiments are available): Scientist
- View Lab Experiment Results: Advisor, Scientist
- TODO: which permissions are missing
There will be no capability to create new roles or modify role permissions though this is something that we may consider adding in a future version.
Detailed Design information is available for Admin Module.
Each member of a Laboratory will have thier own Laboratory notebook.
Notebooks will be similar to blogs. Users with sufficient permissions will be able to read and comment on existing entries, as well as create new entries. Each entry will display an associated author and timestamp. Users must also have a convenient way to enter links which can be "permalinks" to experiment results, links to other notebook entries or external URLs.
- Rich text/HTML editor
- RSS feeds for notebook entries and comments
- Have a view that shows entries for all Laboratory members or just entries for a specific Laboratory member
Multiple choice quizes will be authored using the Aiken format. The name of the quiz will be derived from the filename using the following simple algorithm. The filename "the-basics-of-meiosis.aiken" will be used as an example:
- first if there is a file extension it will be removed: "the-basics-of-meiosis.aiken" => "the-basics-of-meiosis"
- all dashes "-" or underscores "_" will be replaced by spaces: "the-basics-of-meiosis" => "the basics of meiosis"
Minimum requirements: at a minimum system administrators must be able to upload tests using an administrative interface. This can be a web interface, or simply a command-line interface.
Optional: Allow Advisors to upload custom tests for thier virtual Laboratories.
Advisors will be able to see test results for all Scientists in thier Laboratories. There will be a main test overview page where quiz results will be summarized in a table where the rows correspond to Scientists and the columns correspond to tests. The table cells will also be linked to test detail pages where the Advisors will be able to see the answers given by a student for a particular test. Scientists will be able to view thier own test results but will not be able to see anyone elses test results.
Track time on task and student workflow (i.e. the "path" they follow while using the application). TODO: we need more specifics regarding what constitutes a task and what a useful report will contain before we can fill out the technical requirements for this section.
Most of the requirements up until this point have been fairly generic. The requirements in this section are much more specific to the Drake Genetics application.
When a pair of drakes is bred, the mieosis engine must be used to simulate sexual reproduction for each of the fertilized eggs produced. So, for each egg we will use the meiosis engine to randomly and independently generate gamete DNA for the mothers egg and the fathers sperm. We will then combine these two sources of gamete DNA in order to create the DNA for a fertilized egg.
TODO: determine how breeding pair is selected. From fixed initial stock? from random stock? One of the concepts is that students will be able to breed and exchange dragons but I think we'll have to consider the exchange of dragon stocks to be an optional requirement for the moment.
There is some probability that the chromosomes will experience nondisjunction during meiosis. Sex chromosomes will experience nondisjunction with a probability of 0.01 while autosomes will experience nondisjunction with a probability of 0.02. Once you have determined that a particular parental chromosome has experienced nondisjunction there are a couple of special considerations you must make:
- in the case of nondisjunction you must give equal (0.5) probability to the case possible outcomes: that the fertilizing gamete has either 0 or 2 copies of the affected chromosome
- TODO fill in details about how nondisjunction affects DNA at the centromere. Is meiosis affected in other ways?
We will employ the following algorithm to determine crossover locations:
- First randomly select the 10cM segments that will experience crossover events. Give every 10cM segment of the chromosome an independent probability of 0.1 of experiencing a crossover. This will result in you having between 0 and num_10cM_segments crossover events.
- If the number of crossover events is greater than three then randomly drop all but three of the crossover events. TODO: confirm that this is the intent
- for each remaining event we will determine the exact location of the crossover using a uniform random distribution from the start to the end of the 10cM segment
Phenotype will be determined by a combination of karyotype (in the case of nondisjunction), genotype and diet (NOTE: diet will be optional for the initial phase of development).