- Receive files from sequencer - we get fastq.gz files from the sequencer. From the hiseq there are usually 2 files per lane, the forward pass and the reverse pass. The forward pass contains all of our reads and is usually around 20GB. The reverse pass is smaller and contains the index, which will allow barcode splitter to work.
-
- ssh michelles@amphiprion.deenr.rutgers.edu
- Update where files are saved on amphiprion in sample_data sheet
-
- [michelles@amphiprion ~]$ cd /local/shared/pinsky_lab/sequencing/
[michelles@amphiprion hiseq_2014_12_19_SEQ04]$ ls
clownfish-ddradseq-seq04-for-222-cycles-hau8radxx_1_read_1_passed_filter.fastq.gz
clownfish-ddradseq-seq04-for-222-cycles-hau8radxx_1_read_2_index_read_passed_filter.fastq.gz
clownfish-ddradseq-seq04-for-222-cycles-hau8radxx_2_read_1_passed_filter.fastq.gz
clownfish-ddradseq-seq04-for-222-cycles-hau8radxx_2_read_2_index_read_passed_filter.fastq.gz
- [michelles@amphiprion hiseq_2014_12_19_SEQ05]$ ls
clownfish-ddradseq-seq05-for-222-cycles-hau41adxx_1_read_1_passed_filter.fastq.gz
clownfish-ddradseq-seq05-for-222-cycles-hau41adxx_1_read_2_index_read_passed_filter.fastq.gz
clownfish-ddradseq-seq05-for-222-cycles-hau41adxx_2_read_1_passed_filter.fastq.gz
clownfish-ddradseq-seq05-for-222-cycles-hau41adxx_2_read_2_index_read_passed_filter.fastq.gz
- Create a mysql database
-
- [michelles@amphiprion ~]$ mysql -plarvae168
- mysql> create database seq04;
- mysql> create database seq05;
- mysql> show databases;
- mysql> exit
- Apply stacks configuration to database:
[michelles@amphiprion ~]$ mysql -plarvae168 seq04 < ~/local/share/stacks/sql/stacks.sql
[michelles@amphiprion ~]$ mysql -plarvae168 seq05 < ~/local/share/stacks/sql/stacks.sql
- Make project directory:
-
- [michelles@amphiprion ~]$ mkdir 01_seq04 02_seq05
- Make directories inside the seq directory (bcsplit to house output from barcode splitter)
-
- [michelles@amphiprion ~]$ cd 01_seq04/
[michelles@amphiprion 01_seq04]$ mkdir bcsplit4 P20 P21 P22 P23 samples stacks
[michelles@amphiprion 01_seq04]$ cd ../02_seq05/
[michelles@amphiprion 02_seq05]$ mkdir bcsplit5 P24 P25 P26 P27 samples stacks
[michelles@amphiprion 02_seq05]$ cd bcsplit5/
[michelles@amphiprion bcsplit5]$ mkdir lane1
[michelles@amphiprion bcsplit5]$ cd ../../01_seq04/
[michelles@amphiprion 01_seq04]$ cd bcsplit4/
[michelles@amphiprion bcsplit4]$ mkdir lane1
- In the bcsplit directory, use nano to make an index file for barcode splitter:
-
- [michelles@amphiprion bcsplit4]$ nano
-
- Pool020 TGACCA
- Pool021 ACAGTG
- Pool022 GCCAAT
- Pool023 CAGATC
- save as "index"
- [michelles@amphiprion bcsplit5]$ nano
-
- Pool024 ACTTGA
- Pool025 TAGCTT
- Pool026 GGCTAC
- Pool027 CTTGTA
- save as "index"
- Run barcode splitter on 1st lane from the split directory
-
- [michelles@amphiprion bcsplit4]$ barcode_splitter.py --bcfile index --idxread 2 --suffix .fastq.gz /local/shared/pinsky_lab/sequencing/hiseq_2014_12_19_SEQ04/clownfish-ddradseq-seq04-for-222-cycles-hau8radxx_1_read_1_passed_filter.fastq.gz /local/shared/pinsky_lab/sequencing/hiseq_2014_12_19_SEQ04/clownfish-ddradseq-seq04-for-222-cycles-hau8radxx_1_read_2_index_read_passed_filter.fastq.gz
- can ctrl-z, bg to run in background (or nohup)
- [michelles@amphiprion bcsplit4]$ cd ../../02_seq05/bcsplit5/
[michelles@amphiprion bcsplit5]$ nano index
[michelles@amphiprion bcsplit5]$ barcode_splitter.py --bcfile index --idxread 2 --suffix .fastq.gz /local/shared/pinsky_lab/sequencing/hiseq_2014_12_19_SEQ05/clownfish-ddradseq-seq05-for-222-cycles-hau41adxx_1_read_1_passed_filter.fastq.gz /local/shared/pinsky_lab/sequencing/hiseq_2014_12_19_SEQ05/clownfish-ddradseq-seq05-for-222-cycles-hau41adxx_1_read_2_index_read_passed_filter.fastq.gz
- ctrl-z, bg
- had a type-o in the index file for seq05…had to “top” and kill processes and start over (figured out I had a typo because I looked at the output in the bcsplit4 and bcsplit5 folders and there wasn’t a pool 26, clearly something was wrong…)
- started at 11:25am on Feb 9, 2015…still running at 7:48PM…Finished around 7:00AM
- [michelles@amphiprion bcsplit4]$ ls -lh
total 20G
-rw-rw-r--. 1 michelles michelles 60 Feb 9 11:04 index
drwxrwxr-x. 2 michelles michelles 4.0K Feb 9 10:49 lane1
-rw-------. 1 michelles michelles 182 Feb 10 06:38 nohup.out
-rw-rw-r--. 1 michelles michelles 4.2G Feb 10 06:38 Pool020-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 210M Feb 10 06:38 Pool020-read-2.fastq.gz
-rw-rw-r--. 1 michelles michelles 4.5G Feb 10 06:38 Pool021-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 239M Feb 10 06:38 Pool021-read-2.fastq.gz
-rw-rw-r--. 1 michelles michelles 5.2G Feb 10 06:38 Pool022-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 251M Feb 10 06:38 Pool022-read-2.fastq.gz
-rw-rw-r--. 1 michelles michelles 4.6G Feb 10 06:38 Pool023-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 223M Feb 10 06:38 Pool023-read-2.fastq.gz
-rw-rw-r--. 1 michelles michelles 681M Feb 10 06:38 unmatched-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 43M Feb 10 06:38 unmatched-read-2.fastq.gz
- [michelles@amphiprion bcsplit5]$ ls -lh
total 21G
-rw-rw-r--. 1 michelles michelles 60 Feb 9 11:12 index
drwxrwxr-x. 2 michelles michelles 4.0K Feb 9 10:49 lane1
-rw-------. 1 michelles michelles 182 Feb 10 06:31 nohup.out
-rw-rw-r--. 1 michelles michelles 3.2G Feb 10 06:31 Pool024-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 165M Feb 10 06:31 Pool024-read-2.fastq.gz
-rw-rw-r--. 1 michelles michelles 7.6G Feb 10 06:31 Pool025-read-1.fastq.gz
- Is this so big because originally our index file had the type-o that the index for Pool 25 and the index for Pool 26 both had “Pool025” listed…did the re-do append instead of overwriting? - Need to do a test for this to see if bcsplit appends or overwrites
-rw-rw-r--. 1 michelles michelles 378M Feb 10 06:31 Pool025-read-2.fastq.gz
-rw-rw-r--. 1 michelles michelles 3.5G Feb 10 06:31 Pool026-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 186M Feb 10 06:31 Pool026-read-2.fastq.gz
-rw-rw-r--. 1 michelles michelles 4.2G Feb 10 06:31 Pool027-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 209M Feb 10 06:31 Pool027-read-2.fastq.gz
-rw-rw-r--. 1 michelles michelles 983M Feb 10 06:31 unmatched-read-1.fastq.gz
-rw-rw-r--. 1 michelles michelles 61M Feb 10 06:31 unmatched-read-2.fastq.gz
-
- move all of these files into a "lane 1 directory” or lane 2 will overwrite
- [michelles@amphiprion bcsplit4]$ mv Pool* ./lane1
[michelles@amphiprion bcsplit4]$ cd ../../02_seq05/bcsplit5/
[michelles@amphiprion bcsplit5]$ mv Pool* ./lane1
- [michelles@amphiprion bcsplit4]$ nohup barcode_splitter.py --bcfile index --idxread 2 --suffix .fastq.gz /local/shared/pinsky_lab/sequencing/hiseq_2014_12_19_SEQ04/clownfish-ddradseq-seq04-for-222-cycles-hau8radxx_2_read_1_passed_filter.fastq.gz /local/shared/pinsky_lab/sequencing/hiseq_2014_12_19_SEQ04/clownfish-ddradseq-seq04-for-222-cycles-hau8radxx_2_read_2_index_read_passed_filter.fastq.gz
- [michelles@amphiprion bcsplit5]$ nohup barcode_splitter.py --bcfile index --idxread 2 --suffix .fastq.gz /local/shared/pinsky_lab/sequencing/hiseq_2014_12_19_SEQ05/clownfish-ddradseq-seq05-for-222-cycles-hau41adxx_2_read_1_passed_filter.fastq.gz /local/shared/pinsky_lab/sequencing/hiseq_2014_12_19_SEQ05/clownfish-ddradseq-seq05-for-222-cycles-hau41adxx_2_read_2_index_read_passed_filter.fastq.gz
- combine all of the results (read-2 fastqs are the index only, do not need to go forward with them like I did here):
-
- [michelles@amphiprion bcsplit4]$ cat ./lane1/Pool020-read-1.fastq.gz ./Pool020-read-1.fastq.gz > Pool020.fastq.gz
[michelles@amphiprion bcsplit4]$ cat ./lane1/Pool021-read-1.fastq.gz ./Pool021-read-1.fastq.gz > Pool021.fastq.gz
[michelles@amphiprion bcsplit4]$ cat ./lane1/Pool021-read-2.fastq.gz ./Pool021-read-2.fastq.gz > Pool021-read2.fastq.gz
[michelles@amphiprion bcsplit4]$ cat ./lane1/Pool020-read-2.fastq.gz ./Pool020-read-2.fastq.gz > Pool020-read2.fastq.gz
[michelles@amphiprion bcsplit4]$ cat ./lane1/Pool022-read-1.fastq.gz ./Pool022-read-1.fastq.gz > Pool022.fastq.gz
[michelles@amphiprion bcsplit4]$ cat ./lane1/Pool022-read-2.fastq.gz ./Pool022-read-2.fastq.gz > Pool022-read2.fastq.gz
[michelles@amphiprion bcsplit4]$ cat ./lane1/Pool023-read-1.fastq.gz ./Pool023-read-1.fastq.gz > Pool023.fastq.gz
[michelles@amphiprion bcsplit4]$ cat ./lane1/Pool023-read-2.fastq.gz ./Pool023-read-2.fastq.gz > Pool023-read2.fastq.gz
[michelles@amphiprion bcsplit4]$ cd ../../02_seq05/bcsplit5/
- [michelles@amphiprion bcsplit5]$ cat ./lane1/Pool024-read-2.fastq.gz ./Pool024-read-2.fastq.gz > Pool024-read2.fastq.gz
[michelles@amphiprion bcsplit5]$ cat ./lane1/Pool024-read-1.fastq.gz ./Pool024-read-1.fastq.gz > Pool024.fastq.gz
[michelles@amphiprion bcsplit5]$ cat ./lane1/Pool025-read-1.fastq.gz ./Pool025-read-1.fastq.gz > Pool025.fastq.gz
[michelles@amphiprion bcsplit5]$ cat ./lane1/Pool025-read-2.fastq.gz ./Pool025-read-2.fastq.gz > Pool025-read2.fastq.gz
[michelles@amphiprion bcsplit5]$ cat ./lane1/Pool026-read-2.fastq.gz ./Pool026-read-2.fastq.gz > Pool026-read2.fastq.gz
[michelles@amphiprion bcsplit5]$ cat ./lane1/Pool026-read-1.fastq.gz ./Pool026-read-1.fastq.gz > Pool026.fastq.gz
[michelles@amphiprion bcsplit5]$ cat ./lane1/Pool027-read-1.fastq.gz ./Pool027-read-1.fastq.gz > Pool027.fastq.gz
[michelles@amphiprion bcsplit5]$ cat ./lane1/Pool027-read-2.fastq.gz ./Pool027-read-2.fastq.gz > Pool027-read2.fastq.gz
- make a new names_barcodes tab delimited file:
-
- Open Sample_data in Chrome (yes, it has to be chrome, other browsers don’t work properly as of 10-22-2014)
- Click on the Ligations tab and filter for the pool you are working on (Pool 7)
- Copy the sample names over to the first column of the Names tab
- drag down the formula to find the barcode
- for each pool download as tab delimited "names_Pool7.tsv", etc.
- Open the document in Komodo and fix the end of line characters by right clicking on the tab and looking at the properties (doing this with google sheets they were already in Unix)
- Copy the names files into the correct pool directories:
-
- Michelles-MacBook:~ michelle$ scp -r ~/Downloads/names*.tsv michelles@amphiprion.deenr.rutgers.edu:~/01_seq04/
- [michelles@amphiprion 01_seq04]$ mv *Pool20* P20
- [michelles@amphiprion 01_seq04]$ mv *Pool21* P21
[michelles@amphiprion 01_seq04]$ mv *Pool22* P22
[michelles@amphiprion 01_seq04]$ mv *Pool23* P23
- [michelles@amphiprion 01_seq04]$ mv *Pool24* ../02_seq05/P24
[michelles@amphiprion 01_seq04]$ mv *Pool25* ../02_seq05/P25
[michelles@amphiprion 01_seq04]$ mv *Pool26* ../02_seq05/P26
[michelles@amphiprion 01_seq04]$ mv *Pool27* ../02_seq05/P27
- Move the barcode split results into the pools directories
-
- [michelles@amphiprion bcsplit4]$ mv Pool020.f* ../P20
- [michelles@amphiprion bcsplit4]$ mv Pool020-read2* ../P20
- [michelles@amphiprion bcsplit4]$ mv Pool021-read2* ../P21
[michelles@amphiprion bcsplit4]$ mv Pool022-read2* ../P22
[michelles@amphiprion bcsplit4]$ mv Pool023-read2* ../P23
[michelles@amphiprion bcsplit4]$ mv Pool021.f* ../P21
[michelles@amphiprion bcsplit4]$ mv Pool022.f* ../P22
[michelles@amphiprion bcsplit4]$ mv Pool023.f* ../P23
- [michelles@amphiprion bcsplit4]$ cd ../../02_seq05/bcsplit5/
[michelles@amphiprion bcsplit5]$ mv Pool024.f* ../P24
[michelles@amphiprion bcsplit5]$ mv Pool025.f* ../P25
[michelles@amphiprion bcsplit5]$ mv Pool026.f* ../P26
[michelles@amphiprion bcsplit5]$ mv Pool027.f* ../P27
[michelles@amphiprion bcsplit5]$ mv Pool024-read2* ../P24
[michelles@amphiprion bcsplit5]$ mv Pool025-read2* ../P25
[michelles@amphiprion bcsplit5]$ mv Pool026-read2* ../P26
[michelles@amphiprion bcsplit5]$ mv Pool027-read2* ../P27
- Delete intermediate files
-
- [michelles@amphiprion lane1]$ rm Pool*
- [michelles@amphiprion lane1]$ cd ..
[michelles@amphiprion bcsplit5]$ rm Pool*
- [michelles@amphiprion bcsplit5]$ cd ../../01_seq04/bcsplit4/
- [michelles@amphiprion bcsplit4]$ rm Pool*
[michelles@amphiprion bcsplit4]$ cd lane1/
[michelles@amphiprion lane1]$ rm Pool*
- [michelles@amphiprion bcsplit]$ rm *-1.fastq.gz - This deletes unmatched from lane 2!!!
- [michelles@amphiprion bcsplit]$ rm *-2.fastq.gz - This deletes unmatched from lane 2!!!
- Download a barcodes file: from the sample_data spreadsheet, download barcodes sheet as tsv and copy to the server
-
- [michelles@amphiprion 01_seq03]$ cp barcodes ../../01_seq04/
- Run process radtags on the files - NOHUP!!!!
-
- [michelles@amphiprion 01_seq04]$ process_radtags -b barcodes -c -q -r --renz_1 pstI --renz_2 mluCI -i gzfastq --adapter_1 ACACTCTTTCCCTACACGACGCTCTTCCGATCT -f ./P20/Pool020.fastq.gz -o ./P20
- [michelles@amphiprion 01_seq04]$ process_radtags -b barcodes -c -q -r --renz_1 pstI --renz_2 mluCI -i gzfastq --adapter_1 ACACTCTTTCCCTACACGACGCTCTTCCGATCT -f ./P21/Pool021.fastq.gz -o ./P21
- [michelles@amphiprion 01_seq04]$ process_radtags -b barcodes -c -q -r --renz_1 pstI --renz_2 mluCI -i gzfastq --adapter_1 ACACTCTTTCCCTACACGACGCTCTTCCGATCT -f ./P22/Pool022.fastq.gz -o ./P22
- [michelles@amphiprion 01_seq04]$ nohup process_radtags -b barcodes -c -q -r --renz_1 pstI --renz_2 mluCI -i gzfastq --adapter_1 ACACTCTTTCCCTACACGACGCTCTTCCGATCT -f ./P23/Pool023.fastq.gz -o ./P23
- [michelles@amphiprion 02_seq05]$ nohup process_radtags -b barcodes -c -q -r --renz_1 pstI --renz_2 mluCI -i gzfastq --adapter_1 ACACTCTTTCCCTACACGACGCTCTTCCGATCT -f ./P24/Pool024.fastq.gz -o ./P24
- [michelles@amphiprion 02_seq05]$ nohup process_radtags -b barcodes -c -q -r --renz_1 pstI --renz_2 mluCI -i gzfastq --adapter_1 ACACTCTTTCCCTACACGACGCTCTTCCGATCT -f ./P25/Pool025.fastq.gz -o ./P25
- [michelles@amphiprion 02_seq05]$ nohup process_radtags -b barcodes -c -q -r --renz_1 pstI --renz_2 mluCI -i gzfastq --adapter_1 ACACTCTTTCCCTACACGACGCTCTTCCGATCT -f ./P26/Pool026.fastq.gz -o ./P26
- [michelles@amphiprion ~]$ nohup process_radtags -b barcodes -c -q -r --renz_1 pstI --renz_2 mluCI -i gzfastq --adapter_1 ACACTCTTTCCCTACACGACGCTCTTCCGATCT -f ./P27/Pool027.fastq.gz -o ./P27
- After process_radtags, all of the pools are still in separate directories. Rename files and Move into one directory
[michelles@amphiprion P27]$ nano names_Pool27.tsv
[michelles@amphiprion P27]$ sh rename.for.dDocent_se names_Pool27.tsv
APCL13_613L975
AAACAC
[michelles@amphiprion P27]$ rm Poo*
[michelles@amphiprion P27]$ mv process_radtags.log P27process_radtags.log
-
- if final barcode is not getting assigned, nano the names_ file, get rid of the final end of line character, and re-run. It will look like it might not be working but “ls” will show that the final file was renamed.
- Delete intermediate files (the barcode split output, which can be recreated if needed):
-
- [michelles@amphiprion bcsplit]$ rm Pool1*
- Move the renamed files into the samples directory
-
- [michelles@amphiprion Pool7]$ mv SPSO* ../samples
- Make list all of the samples in a format that can be copied and pasted into denovo_map
-
- [michelles@amphiprion Pool7]$ cd ..
[michelles@amphiprion 02_seq02]$ ls -l ./samples/*.fq | mawk '{print "-s", $9, "\\"}'
- Run denovo_map (takes 5 days):
-
- [michelles@amphiprion 02_seq02]$ nohup denovo_map.pl -b 1 -B seq02 -m 2 -M 4 -n 3 -t -T 10 -o ./stacks -s ./samples/SPSO14_001L052.F.fq \…
- Run rxstacks (took a couple hours):
-
- [michelles@amphiprion 01_seq04]$ rxstacks -b 1 -P ./stacks -o ./rxstacks -t 10 --prune_haplo --lnl_lim -8.0 --lnl_dist
- [michelles@amphiprion 02_seq05]$ rxstacks -b 1 -P ./stacks -o ./rxstacks -t 10 --prune_haplo --lnl_lim -8.0 --lnl_dist
- Make a list of files to run cstacks (same code line in both seq04/rxstacks and seq05/rxstacks directories):
-
- [michelles@amphiprion rxstacks]$ ls -l ../samples/*.fq | mawk '{print "-s ./"substr($9,12,14), "\\"}'
- Run cstacks (started at 1:45PM on Monday 2/16) make sure to run it to aclarkii catalog using --catalog:
-
- [michelles@amphiprion rxstacks]$ nohup cstacks -b 1 —o ./ --catalog ../../aclarkii -n 3 -p 8 -s ./APCL13_021L662 \...
- Delete intermediate files:
-
- [michelles@amphiprion 02_seq02]$ rm -r Pool7/
- [michelles@amphiprion 02_seq02]$ rm ./stacks/SPSO*
- Find file list for sstacks (copy and paste) :
-
- ls -l ../samples/*.fq | mawk '{print substr($9,12,14)}'
- Amend hand_stacks:
-
- [michelles@amphiprion rxstacks]$ nano ~/03_scripts/hand_stacks.sh
- saved as handstacks_seq04 and handstacks_seq05
- Run hand_stacks (ran in a couple of hours)
-
- [michelles@amphiprion rxstacks]$ chmod u+x ~/03_scripts/handstacks_seq04
- ~/03_scripts/handstacks_seq05
- Run populations - don’t filter this time around (no -m or -r, etc)
-
- [michelles@amphiprion 01_seq04]$ cd rxstacks/
- [michelles@amphiprion rxstacks]$ nohup populations -b 1 -P ./ -s -t 10
- Make new database for rxstacks
-
- [michelles@amphiprion rxstacks]$
- mysql -plarvae168
- mysql> create database seq04rx seq05rx;
- mysql> exit
- Apply stacks configuration to database:
-
- [michelles@amphiprion rxstacks]$ mysql -plarvae168 seq04rx < ~/local/share/stacks/sql/stacks.sql
- [michelles@amphiprion rxstacks]$ mysql -plarvae168 seq05rx < ~/local/share/stacks/sql/stacks.sql
- Load radtags to database
-
- [michelles@amphiprion rxstacks]$ nohup load_radtags.pl -D seq04rx -p ./ -b 1 -c -B
- [michelles@amphiprion rxstacks]$ nohup load_radtags.pl -D seq05rx -p ./ -b 1 -c -B
- Index database
-
- [michelles@amphiprion rxstacks]$ nohup index_radtags.pl -D seq04rx -c -t
- [michelles@amphiprion rxstacks]$ nohup index_radtags.pl -D seq05rx -c -t
- Run populations to produce gene pop file
-
- [michelles@amphiprion 01_seq04]$ cd rxstacks/
- [michelles@amphiprion rxstacks]$ nohup populations -b 1 -P ./ -t 10 -r 90 -m 30 -s --genepop where m is the coverage and r is the percent of the population. Start at 90/30, try 90/10, 80/30, 80/10, etc until you get 200 loci
- In Windows,
- Logged in to windows using the larva password
Started Cervus
Click on Tools>Convert Genotype File>Genepop to Cervus
2 digit format
do not use first ID as population name
Converted 192 individuals in one population at 1132 loci
Clicked on Analysis>Allele Frequency Analysis
Choose the cervus file just created
ID in column 2
First allele in column 3
Number of loci 1132 gives error and says there are 1134 loci, so running that
Save as seq04
OK
Now run a simulation of parentage analysis
Click on analysis>simulation of parentage analysis>sexes of pair unknown
Change parent number to
Saved as seq04simpar
Change to LOD
Ran simulated parentage with 2000 parents, 5000 offspring 0.1 proport samples, .86 typed loci, .01 mismatch, LOD. Computer says it will take 2 hours. - computer froze, dropped it down to 1000 parents, 2000 offspring - took 6+ hours to run
- Create parent and offspring files: To make an adult/juvenile file
- Run parentage analysis in Cervus - make sure the csv’s have unix line endings in komodo (if only 1 offspring runs, this is the problem).
If running colony, need a marker file that contains the marker IDs, if they are dominant or codominant, and gene dropping, mutation rates.