A set of scripts for processing output from QTL Cartographer. The current set of scripts are built around analyzing an F2 population. Adaptation for doubled-haploid and recombinant inbred line populations is current underway.
QKcartographer_preprocess.py converts tabular flat text files into formatted input files for QTL Cartographer.
QKcartographer_permutations.py identifies experiment-wise thresholds based on permuted data sets from QTL Cartographer.
QKcartographer_visualization.py generates figures in PNG or postscript format for publication purposes.
QKcartographer_epistasis.py parses QTL Cartographer output files and permits curation of significant QTLs. Optional command to generate scripts for epistasis analysis with R/qtl.
QKcartographer_segregation.py analyzes the genetic map of a population and generates input files for generating a segregation distortion plot.
QKcartographer_phenotypes.py analyzes phenotypic data and generates input files for generating histograms and pairwise plots.
Example of commands to run the set of scripts in Linux for a F2 population:
python QKcartographer_preprocess.py DxM SF2 DxM_phenotypic_data.txt DxM_genetic_map.txt
mkdir analysis
Rmap -A -i DxM_Rmap.inp -f 2 -V
Rcross -A -i DxM_Rcross.inp -V
SRmapqtl -A -i qtlcart.cro -t 1000 -u 5 -M 2 -V
Zmapqtl -A -i qtlcart.cro -t 1000 -M 6 -V
Eqtl -A -S 8 -H 10 -M 6 -V
mv qtlcart.eqt analysis/qtlcart_H0H1.eqt
Eqtl -A -S 8 -H 30 -M 6 -V
mv qtlcart.eqt analysis/qtlcart_H0H3.eqt
cp qtlcart.cro qtlcart.map qtlcart.sr qtlcart.z analysis/
rm qtlcart.sr qtlcart.z
bash permutations.sh
python QKcartographer_permutations.py DxM 0.95 1000
python QKcartographer_visualization.py DxM SF2 0.95
python QKcartographer_epistasis.py SF2 0.95
Example of commands to run the set of scripts in Linux for a DH population:
python QKcartographer_preprocess.py SxGP RI0 SxGP_phenotypic_data.txt SxGP_genetic_map.txt
mkdir analysis
Rmap -A -i SxGP_Rmap.inp -f 2 -V
Rcross -A -i SxGP_Rcross.inp -V
SRmapqtl -A -i qtlcart.cro -t 1000 -u 5 -M 2 -V
Zmapqtl -A -i qtlcart.cro -t 1000 -M 6 -V
Eqtl -A -S 8 -H 10 -M 6 -V
mv qtlcart.eqt analysis/qtlcart_H0H1.eqt
cp qtlcart.cro qtlcart.map qtlcart.sr qtlcart.z analysis/
rm qtlcart.sr qtlcart.z
bash permutations.sh
python QKcartographer_permutations.py SxGP 0.95 1000
python QKcartographer_visualization.py SxGP RI0 0.95
python QKcartographer_epistasis.py RI0 0.95
Both examples use a genetic map with cM positions generated using the Kosambi function.
Design | Code | Example | Description |
---|---|---|---|
Backcross i population | Bi | B1 | Backcrossed once to mother |
Fi population | SFi | SF2 | F2 population |
Doubled haploid population | RI0 | RI0 | DH population |
Recombinant inbred line population | RI1 | RI1 | RIL population |
Permutations for composite interval mapping can be performed using the following bash shell commands:
mkdir permutations
for (( i = 0 ; i < 1000; i++ ))
do
~/bin/Prune -A -i qtlcart.cro -b 2 -t 100 -V
~/bin/SRmapqtl -A -i qtlcart.crb -t 100 -u 5 -M 2 -V
~/bin/Zmapqtl -A -i qtlcart.crb -t 1000 -M 6 -V
mv qtlcart.z permutations/qtlcart_$i.z
done
In this case, permutations are performed with reselection, where SRmapqtl is ran on each individual permuted data set (see Lauter et al. (2008) The Plant Genome http://dx.doi.org/10.3835/plantgenome2008.06.0385).
For interval mapping, the bash shell commands are the following:
mkdir permutations
for (( i = 0 ; i < 1000; i++ ))
do
~/bin/Prune -A -i qtlcart.cro -b 2 -t 100 -V
~/bin/Zmapqtl -A -i qtlcart.crb -t 1000 -M 3 -V
mv qtlcart.z permutations/qtlcart_$i.z
done