pedfile

The second required input for RABBIT is pedinfo, providing the pedigree information of a mapping population in the form of pedfile or designcode. The pedfile is more general than designcode, since the latter can only be used for a non-divided population. The pedfile must be a CSV file with extension ".csv" and with commas as delimiter.

The founders and offspring in pedfile must be genotyped in genofile. The samples in genofile but not among founders and offspring in pedfile are ignored. See MagicBase.vcf_pad_samples for padding samples in genofile with all missing genotypes.

The pedfile consists of two tables: designinfo and offspringinfo. They are separated by the key "RABBIT" and linked via the member column that denotes subpopulation id.

designinfo

The designinfo can be in form of either pedigree or designcode.

designinfo in designcode

For example, consider a connected multiparental population consisting of four subpopulations: (1) double haploids (DHs), (2) two-way recombination inbred lines (RILs), (3) a three-parent population with unknown pedigree, and (4) multi-way RILs.

using MagicBase
cd(@__DIR__)
magicped = generate_magicped(;
  designcodes=["P1/P2=>DH", "2ril-self3", "ibd=1.0||mapexpansion=5.0","P4/3/P4//P2/P3=>3"],
  founders = ["NA","P1||P3","P3||P4||P5","NA"],
  subpopsizes=20*ones(4)
)
savemagicped("example_ped_junc.csv", magicped)
"example_ped_junc.csv"

The following shows the designinfo in example_ped_junc.csv.

member,designcode,founders
pop1,P1/P2=>DH,NA
pop2,2ril-self3,P1||P3
pop3,ibd=1.0||mapexpansion=5.0,P3||P4||P5
pop4,P4/3/P4//P2/P3=>3,NA
designinfo in designcode
  • designcode can be commoncross, breedcross, or juncdist. However, for commoncross, star-like crosses "nstar-selfm" are not allowed.
  • The founders of each subpopulation are joined by || and it is not necessary to specify them if the designcode is in the form of breedcross.
  • If all designcodes are in the form of breedcross, the column founders can be dropped.
  • A DH population is represented internally by nself=1 in the designcode in breedcross, together with ishomozygous=true in offspringinfo.

designinfo in pedigree

See pedfile_designcode2ped for converting pedfile with designinfo from designcode into pedigree.

pedfile_designcode2ped("example_ped_junc.csv"; outfile = "example_ped.csv")
"example_ped.csv"

The following shows the designinfo in the converted pedfile example_ped.csv, where the 3rd subpopulation with unknown pedigrees is dropped.

member,mother,father
P1,0,0
P2,0,0
P3,0,0
P4,0,0
P1/P2,P1,P2
P1/P3,P1,P3
P2/P3,P2,P3
pop1,P1/P2,P1/P2
4_2,P1/P3,P1/P3
P4//P2/P3_3,P4,P2/P3
5_2,4_2,4_2
P4/3/P4//P2/P3_self0_3,P4,P4//P2/P3_3
pop2,5_2,5_2
P4/3/P4//P2/P3_self1_3,P4/3/P4//P2/P3_self0_3,P4/3/P4//P2/P3_self0_3
P4/3/P4//P2/P3_self2_3,P4/3/P4//P2/P3_self1_3,P4/3/P4//P2/P3_self1_3
pop4,P4/3/P4//P2/P3_self2_3,P4/3/P4//P2/P3_self2_3
designinfo in pedigree
  • The mother and father of founders must be 0
  • Pedigree member ids must be unique. Member ids at intermediate generations do not matter.
  • If the pedigree of each subpopulation is known, designinfo in pedigree is more general than designinfo in designcode, since not every subpopulation can be represented by a designcode

See MagicBase.readmagicped for reading magicped. See MagicBase.plotmagicped for plotting magicped.

magicped = readmagicped("example_ped.csv")
plotmagicped(magicped)
Example block output

offspringinfo

The following shows the pedfile example_ped_junc.csv including both designinfo and offspringinfo.

RABBIT,designinfo
member,designcode,founders
pop1,P1/P2=>DH,NA
pop2,2ril-self3,P1||P3
pop3,ibd=1.0||mapexpansion=5.0,P3||P4||P5
pop4,P4/3/P4//P2/P3=>3,NA
RABBIT,offspringinfo
individual,member,ishomozygous,isfglexch
pop1_1,pop1,true,false
...
pop1_20,pop1,true,false
pop2_1,pop2,false,false
...
pop2_20,pop2,false,false
pop3_1,pop3,true,true
...
pop3_20,pop3,true,true
pop4_1,pop4,false,false
...
pop4_20,pop4,false,false
offspringinfo
  • Columns ishomozygous and isfglexch are optional with default false and the following rules:
    • Internally set ishomozygous=true if nself = "DH" or "FIXED" in the designcode in form of breedcross, or ibd=1.0 in the designcode in form of juncdist.
    • Internally set isfglexch=true if designcode is in form of juncdist.
  • Manually set isfglexch=true to account for the unknown funnel code of a subpopulation.