INBUPGF90
is a program to calulate inbreeding coefficients.
Written by Ignacio Aguilar & Ignacy Misztal, 06/2006 - 08/2012
Instituto Nacional de Investigacion Agropecuaria, Uruguay
University of Georgia, US
This program calculate inbreeding coefficients using a recursive algorithm assuming non-zero inbreeding for unknown parents as presented in Aguilar & Misztal 2008, JDS 91:1669-1672.
The methodology to calculate inbreeding accounting for missing parents is based on VanRaden, 1992.
Pedigree files not need to be in a particular order.
Alphanumeric identification of individuals are supported, with a default length of 20 characters (see below to change it).
Pedigree file should contain information for Individual Id, Sire Id and Dam Id.
Year of birth is not required to calculate inbreeding coefficients, but inbreeding for individuals with missing parents wont be calculated if year of birth is not provided.
inbupgf90 --pedfile <file_name> [ ... ]
pedfile is assumed to have 3 fields with identification for animal, sire and dam, separated by at least one space.
Missing sire or dam identification should be coded as '0', but in case of reading with fixed format (see below) blank spaces are supported.
Individuals with missing sire and dam are not required to be listed in the pedigree file.
--help
print information of available arguments
--method <n>
Several methods can be used:
1 - recursive as in Aguilar & Misztal, 2008
2 - recursive but with coefficients stored in memory, faster with large number of generations but more memory requirements (default)
3 - method as in Meuwissen & Luo 1992
--yob
indicate that year of birth should be read in the 4th column.
Checks based on year or birth will be performed between the individual and their parents.
Non-zero inbreeding for animals with missing parents could be calculated if more than one iteration is used (see niter
)
--ngen <n>
Indicate the generation interval to assign missing year of birth.
default 3
--mngen <n>
Indicate the generation interval to check parents
default 0
--niter <n>
specify maximun number of iterations to assign non-zero inbreeding for individuals with missing parents. default is 1 i.e. zero inbreeding for individuals with missing parents.
--alpha_size <n>
change the maximun length of characters for alphanumeric Ids.
--fmt <fmt>
to read pedigree file with fixed format. Variables are assumed to be alphanumeric, e.g. '(3a8)'
--prnrenped
with this option, a renumbered pedigree (where parent ID precedes their progeny ID) will be printed to a file. If any, pedigree loops will be removed from this file.
Inbreeding coefficients are not calculated!!!
Calculations of future inbreeding for potential matings or for specific list of animals could be achived using the following command arguments.
Two files should be provided sfile
and dfile
, with nsire
and ndam
rows respectively.
All relationship between nsire
with ndam
will be computed.
Only inbreeding for required animals will be calculated!!
--sire_file <SireFile>
indicate the name of a file that contains a list of nsire
individuals to be used as 'sires'
--dam_file <DamFile>
indicate the name of a file that contains a list of ndam
individuals to be used as 'dams'
--nrmcoeff
the matrix of relationship information between nsire*ndam with printed out in a file “SireFile_DamFile.nrmcoeff” format of file is sireId, damId, relationship coefficient
--matings
for each dam the sire that results in a mating with the minimun inbreeding is listed as well as the inbreeding resulting from the other sires. format of file is DamId, SIreWithMinimunInb,SireID1….SireIDn
--allped
Perform calculation of inbreeding coefficients for all individuals.
--nrmcoeff_list <ListFile>
statistics of relationship information between all individuals in ListFile were calculated and printed out in a file “ListFile.nrmcoeff” format of file is Id_i, Id_j, relationship coefficient
The following example is based on the pedigree provided by Emik & Terril, 1949. J. Hered. 40:51–55, modified with year of birth information.
Here code for missing sire/dam is space, so fixed format is need to read the file properly !!!!
Pedigree file: pedet
1646RW 619RW 719RW 99 619RW 3340R 2475R 96 719RW 438WP 3840R 96 3840R 3340R 2695R 92 3340R 2220R 2320R 91 2220R 823R 1277R 87 2695R 823R 1475R 80 2320R 823R 1829R 85 1277R 382R 83 1475R 823R 1072R 73 1829R 823R 1338R 81 2475R 823R 1052R 92 382R 3180R 79 1072R 164R 69 823R 59R 218R 68 1338R 67R 368R 78 1052R K4465 85 368R K4465 75 67R LOWE6 70 59R LOWE6 65 164R LOWE6 65 3180R LOWE6 75
Command
inbupgf90 --pedfile pedet --fmt '(3a8)'
Log output
Options --pedfile pedet --fmt (3a8,a3) Fields to read: animal, sire, dam Maximum length for alphanumeric fields: 20 Ordering will be performed by: Parents with relationships first table expanded from 37 to 74 records Elapsed time for reading and hash: .002 Pedigree file "pedet": 22 records Total number of animals in pedigre: 26 Elapsed time after checks: 0.149E-03 Elapsed time for renumber using Parent First: 0.200E-05 Calculating Inbreeding coefficients with Recursive method Round: 1 elapsed time: 0.11000E-04 Average inbreeding (%): 5.26921 - # of animals: 26 Distribution of animals by inbreeding coefficients Inbreeding (%) class N % ------------------------------------- = 0.00 17 65.38 0.00 - 6.25 3 11.54 6.25 - 12.50 0 0.00 12.25 - 18.75 2 7.69 18.75 - 25.00 2 7.69 > 25.00 2 7.69 Creating output file: pedet.solinb
Inbreeding coefficients file: pedet.solinb
2695R 0.2656250 218R 0.0000000 719RW 0.0000000 3840R 0.2470703 67R 0.0000000 1646RW 0.1502686 1475R 0.0312500 382R 0.0000000 59R 0.0000000 3340R 0.1992188 1277R 0.0000000 368R 0.0000000 LOWE6 0.0000000 823R 0.0000000 619RW 0.1640625 164R 0.0000000 438WP 0.0000000 1829R 0.0312500 2475R 0.0000000 2220R 0.0156250 1338R 0.0000000 1072R 0.0000000 1052R 0.0000000 2320R 0.2656250 3180R 0.0000000 K4465 0.0000000
inbupgf90 --pedfile pedet --fmt '(3a8,a3)' --yob --niter 10
Log output
Options --pedfile pedet --niter 10 --yob --fmt (3a8,a3) Fields to read: animal, sire, dam ,yob Maximum length for alphanumeric fields: 20 Ordering will be performed by: Year of Birth table expanded from 37 to 74 records Elapsed time for reading and hash: .003 Pedigree file "pedet": 22 records Total number of animals in pedigre: 26 Min YOB: 62 - Max YOB: 99 Elapsed time after checks: 0.226E-03 Calculating Inbreeding coefficients with Recursive method based on: YOB Round: 1 elapsed time: 0.190E-04 convergence: 0.52692E-01 Average inbreeding (%): 5.26921 # of animals: 26 Round: 2 elapsed time: 0.170E-04 convergence: 0.18517E-01 Average inbreeding (%): 7.12092 # of animals: 26 Round: 3 elapsed time: 0.130E-04 convergence: 0.0000 Average inbreeding (%): 7.12092 # of animals: 26 Average inbreeding (%) by YOB code num_anim avg_inb -------------------------- 62 1 0.000 63 0 0.000 64 0 0.000 65 3 0.000 66 0 0.000 67 0 0.000 68 1 0.000 69 1 0.000 70 1 0.000 71 0 0.000 72 1 0.000 73 1 3.125 74 0 0.000 75 2 0.000 76 0 0.000 77 0 0.000 78 1 0.000 79 1 0.000 80 1 26.562 81 1 3.125 82 0 0.000 83 1 0.000 84 0 0.000 85 2 13.281 86 0 0.000 87 1 1.562 88 0 0.000 89 0 0.000 90 0 0.000 91 1 19.922 92 2 18.994 93 1 0.000 94 0 0.000 95 0 0.000 96 2 11.523 97 0 0.000 98 0 0.000 99 1 16.687 Distribution of animals by inbreeding coefficients Inbreeding (%) class N % ------------------------------------- = 0.00 15 57.69 0.00 - 6.25 3 11.54 6.25 - 12.50 0 0.00 12.25 - 18.75 2 7.69 18.75 - 25.00 3 11.54 > 25.00 3 11.54 Creating output file: pedet.solinb
Inbreeding coefficients file: pedet.solinb
2695R 0.2656250 218R 0.0000000 719RW 0.0000000 3840R 0.2470703 67R 0.0000000 1646RW 0.1668701 1475R 0.0312500 382R 0.0000000 59R 0.0000000 3340R 0.1992188 1277R 0.0000000 368R 0.0000000 LOWE6 0.0000000 823R 0.0000000 619RW 0.2304688 164R 0.0000000 438WP 0.0000000 1829R 0.0312500 2475R 0.1328125 2220R 0.0156250 1338R 0.0000000 1072R 0.0000000 1052R 0.2656250 2320R 0.2656250 3180R 0.0000000 K4465 0.0000000