The GEBV test is a validation procedure described in the Interbull Code of Practice, Appendix VIII.
This software consists of a program (gebvtest.py) and utility module used by those programs (ibutils.py). gebvtest.py program will perform the GEBV validation tests for all traits for one breed and population and then create a zip file with the input and output files, ready for submission to the Interbull Centre.
Installation and testing
The programs have been tested under Python 2.6, 2.7 and 3.2. As a minimum you will need to have these extra python modules installed on your system: NumPy and, just for Python 2.6, argparse.
Download the attached gebvtest20150227a.zip file.
Create a working directory and unzip the zip file in that directory. Two subdirectories will be created, programs and sample data. Typing
python gebvtest.py --help
from a command line prompt, from within the programs directory, should print a brief help message if the installation has been successful.
Some sample data for breed HOL and population ABC are available in the sample_data directory. The program can be run from the programs directory as follows:
python gebvtest.py -v -m hol abc ../sample_data
In this example data, parameters and output are all in the sample_data directory. Files can be read from other locations and output written to other locations as well. Please see the following sections for further information.
The outputs should match those in the source zip file.
Program gebvtest.py - User Manual
Information about the program
The program gebvtest.py performs the GEBV validation tests for one breed-population combination, for all traits. At the end of the program a zip file is created with the input files and the result file, ready for submission to the ITBC. The ITBC will perform some additional data checks and re-run the program to check the results. The result file is a new file735 format file, which is a modification and extension of the previous file731 format file.
traits - GEBV test options file(Format: traits)
file300Cf - national official genetic evaluations written in trait-independent format (Format: File300)
file300Df - daughter deviation file written in trait-independent format
file300Cr - reduced conventional genetic evaluation file written in trait-independent format
file300Gr - reduced genomic evaluation file written in trait-independent format
file736 - file with birth dates (Format: File736)
Running the program
The program should be run from within the programs directory. Typing
python gebvtest.py --help
will give a summary of the program usage:
usage: gebvtest.py [-h] [-v] [-m] [-M MERGEDIR] [-Z] [-C] brd pop datadir positional arguments: brd evaluation breed code (BSW/GUE/JER/HOL/RDC/SIM) pop population code (same as country code except for CHR/DEA/DFS/FRR/FRM) datadir absolute or relative path to data files optional arguments: -h, --help show this help message and exit -v, --verbose increase output verbosity -m, --mergefiles write merged data files (for independent data checks) -M MERGEDIR, --mergedir MERGEDIR absolute or relative path for merged data files (default=DATADIR/merged) -Z, --no-zip do not create a zip file (eg. for preliminary testing or usage at ITBC) -C, --cleanup delete all files successfully added to the zip file
More detail on the -m --mergefiles options is available here.
gebvtest_log - summary of the calculations (Example)
Submission zip file - gebvtest.py generates a zip file including all input and output files which should be sent to the Interbull Centre as the official data submission for the GEBV test. The zip file will be named gtYYMM_POPBRD.zip, where YY and MM are year and month of test date, POP is the population code and BRD is the breed code.
GEBV test data submission
Interbull customers willing to participate in the GEBV test must send to the Interbull Centre the following files to email@example.com :
Submission zip file - generated by the gebvtest.py program.
Form GENO - one form for each trait group validated.
- Double check your data files and make sure the file formats are ok.
- In some cases special characters in bull names make the program crash. A hint is to leave out the bull names as they are not used anyway.
- All your files should contain a field of “country sending this information” and the code should be consistent for all files. Leaving a blank instead of a code for “country sending this information” has the effect that the file is not read.
- The record type (fist three positions of the file) must correspond to the data. So if your file is a longevity file the record type must be ‘017’ and not ‘717’ or ‘019’ or anything else.
- Make sure to use the -v flag and check the log files carefully (look for files with 0 records, for example)
- If python crashes with an error message:
- if any "import" statement causes an error, Python or one of the modules is not correctly installed
If bulls seem to be missing or in excess in the candidate or test groups, use -v -m options, but not -C, and check the link merged files.
If you need assistance, please do not hesitate to contact us at firstname.lastname@example.org .