This README describes two software packages which are the following: 1) Best Prediction Software - 2024 2) Age-Parity-Season-PreviousDaysOpen Adjustment Factors Software - 2023 and 2024 Both packages above call aiplage2.c. README and software updates by Gary Fok, Animal Genomics and Improvement Laboratory (AGIL), USDA Agricultural Research Service The user has two options. The first option is to run the "Best Prediction Software" to standardize lactation yields to 305 days and then apply the "Age-Parity-Season-PreviousDaysOpen Adjustment Factors". The other option is to run newfactors.f90 to only apply the "Age-Parity-Season-PreviousDaysOpen Adjustment Factors". Therefore, the "Best Prediction Software" is a superset of the "Age-Parity-Season-PreviousDaysOpen Adjustment Factors Software". Cole, J. B., and P. M. VanRaden. 2008. A Manual for Use of BESTPRED: A Program for Estimation of Lactation Yield and Persistency Using Best Prediction. Please read the Best Prediction Manual PDF located at https://github.com/wintermind/bestpred/blob/master/Best%20Prediction%20Manual.pdf U.S. Department of Agriculture, Agricultural Research Service, Animal Genomics and Improvement Laboratory. This manual describes how to obtain, install, and run a Fortran 90 program for calculating lactation yields and persistencies using best prediction methodology. Chapters also present the theory underlying best prediction, describe the methodology used to calculate covariances among pairs of days in milk for any combination of traits, and discuss implementation details important to anyone considering modifications to the programs. The purpose is to provide both background material and step-by-step instructions for successful use of the software. The Best Prediction Software package starts with bestpred_main.f90. Program bestpred_main.f90 prepares format 4 data for subroutine bestpred_fmt4() which calls bestpred() and aiplage2(). In bestpred.par, "source = 10" enables the above use of format 4 data (format4.dat). It starts with test days to calculate actual yield and standardizes them to 305 days. C function aiplage2.c is the heart of the "Age-Parity-Season-PreviousDaysOpen Adjustment Factors Software". bestpred_main.f90: INPUTS: format4.dat - Input for bestpred_main.f90 bestpred.par - Input for subroutine bestpred_parm.f90 ageparityfactors1 - Input for aiplage2.c SeasonFactors2023.txt - Input for aiplage2.c PrevDOfactorsHO - Input for aiplage2.c ClimateRegions - Input for aiplage2.c adjust.scs - Input for ageadjs.c OUTPUTS: bestpred_main.screen.output - Prints to the screen saved to bestpred_main.f90.screen.output cowcurve.ST.20240715 cowdata.ST.20240715 lctcurve.dat results_v2.dcr SUBROUTINES: bestpred_log.f90 aiplage2.c - Yield ageadjs.c - SCS bestpred_fmt4.f90 bestpred_parm.f90 bestpred.f90 #include: ageadj.h - for ageadjs.c adjscs.h - for ageadjs.c aiplage.h - for aiplage.c To run the bestpred_main.f90 executable, type 'bestpred_main |tee bestpred_main.screen.output' and hit return: bestpred_main |tee bestpred_main.screen.output See "MAKEFILE AND PROGRAM DOWNLOADS:" below to make a bestpred_main executable and three '.o' files (aiplage2.o, aiplage.o, ageadjs.o). ------------------------------------------------------------------------------ PURPOSE of Age-Parity-Season-PreviousDaysOpen Adjustment Factors Software: Apply new factors for age, parity, season, and previous days open to compare cows more fairly within herds. INPUT FILES for aiplage2.c, aiplage.c, and the calling program newfactors.f90: ageparityfactors1 - from Jana Hutchison's ageparityfactors.sas as input for aiplage2.c. SeasonFactors2023.txt - from Paul VanRaden's agefactor.sas as input for aiplage2.c. PrevDOfactorsHO - from Paul VanRaden's maindcr.f90 as input for aiplage2.c. ClimateRegions - defined by Asha Miles as input for aiplage2.c. aiplage.h - arrays used by the old aiplage.c (1994). examples.yld.oldME - mature equivalent milk, fat, and protein examples using the 1994 factors as input for newfactors.f90. The above input files should be in the same directory where newfactors.f90 will be run. FORMAT of examples.yld.oldME (input), examples.yld.actual (output), and examples.yld.newadj (output): Animal_Key State Age Fresh_Year Parity Breed Fresh_Month Milk Fat Protein 89606611 93 1 2020 1 5 11 18685. 1047. 731. 89998174 93 1 2020 1 5 10 19745. 849. 732. 92150366 93 2 2020 1 5 12 20338. 949. 687. 15653856 11 3 1990 1 4 12 17780. 630. 554. 5412866 11 2 1990 1 3 8 9120. 385. 304. 5412865 11 1 1990 2 3 6 15049. 601. 490. 33550309 11 1 1990 3 5 12 13793. 662. 473. OUPUTS from newfactors.f90: examples.yld.actual examples.yld.newadj MAKEFILE AND PROGRAM DOWNLOADS: makefile is used to compile aiplage2.c, aiplage.c, ageadjs.c, newfactors.f90, and bestpred_main.f90 (Fortran subroutines: bestpred_log.f90, bestpred_fmt4.f90, bestpred_parm.f90, and bestpred.f90). Put makefile, aiplage2.c, aiplage.c, ageadjs.c, ageadj.h, adjscs.h, aiplage.h, newfactors.f90, bestpred_main.f90, bestpred_log.f90, bestpred_fmt4.f90, bestpred_parm.f90, and bestpred.f90 into the same directory. Type 'make' and hit return. make The compile generates aiplage2.o, aiplage.o, ageadjs.o, a bestpred_main executable, and a newfactors executable. New C function - 2023: aiplage2.c - Obtain age, season, previous days open adjustments agebase = 0 adjusts to mature equivalent. agebase = 36 adjusts to 36 month equivalent. Factors differ by breed, region, and time period. Removes age, season, and regional climate biases. Reads four input files instead of using arrays from aiplage.h like aiplage.c does. Standardizes 305-day yields by multiplying milk, fat, and protein by updated milk, fat, and protein age factors. Adjusting for the nongenetic advantages and disadvantages for each cow or bull improves the genetic selection process for the best dairy animals. Old C function - 1994: aiplage.c - Obtain age, season, previous days open adjustments agebase = 0 adjusts to mature equivalent. agebase = 36 adjusts to 36 month equivalent. Factors differ by breed, region, and time period. Standardizes 305-day yields by multiplying milk, fat, and protein by milk, fat, and protein age factors. Fortran calling program: newfactors.f90 - Season de-adjust using aiplage.c. Then season new adjust using aiplage2.c. Milk, fat, and protein are divided by the old milk, fat, and protein age factors from aiplage.c. Next, they are multiplied by the new milk, fat, and protein age factors from aiplage2.c. Program newfactors.f90 converts previous ME milk, fat, and protein to actual yields by dividing by the previous 1994 age factors: ActualMilk_4F = Milk_4F / agefactor(1) ActualFat_4F = Fat_4F / agefactor(2) ActualPro_4F = Pro_4F / agefactor(3) Writes examples.yld.actual for actual milk, fat, and protein. Program newfactors.f90 also outputs 36-month equivalent milk, fat, and protein after dividing by the previous age factors and multiplying by the new age factors: Milk_4F = (Milk_4F / agefactor(1)) * agefac(1) Fat_4F = (Fat_4F / agefactor(2)) * agefac(2) Pro_4F = (Pro_4F / agefactor(3)) * agefac(3) Writes examples.yld.newadj for 36 month equivalent milk, fat, and protein. Output file examples.yld.actual has actual milk, fat, and protein. Output file examples.yld.newadj has 36-month equivalent milk, fat, and protein. Both files have records for all breeds and regions but fresh years of either 2020 or 1990. Records from before 1990 were converted from ME to 36-month equivalent were re-adjusted simply by multiplying by the ratio of 36-month to ME yield for each breed from the 1990 factors. To run the newfactors.f90 executable, type 'newfactors' and hit return: newfactors ------------------------------------------------------------------------------ The authors of this software do not make any warranty, express or implied, or assume any liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represent that its use would not infringe privately-owned rights. Reference herein to any specific commercial products, processes, or services by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or the author. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government and shall not be used for advertising or product endorsement purposes. Permission to use, copy, modify, and distribute this software for any purpose without fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software. 7-Zip is copyrighted 2007 by Igor Pavlov. Absoft is a registered trademark and Absoft Fortran v10 is a trademark of Absoft Corporation, Rochester Hills, MI. DB2 is a registered trademark of International Business Machines Corporation, Armonk, NY. G95 is copyrighted 2004 by the Free Software Foundation, Boston, MA. GCC, the GNU Compiler Collection, is copyrighted 2007 by the Free Software Foundation, Boston, MA. Kubuntu is a registered trademark of Canonical Ltd. Linux is copyrighted 2007 by Linus Torvalds. Microsoft is a registered trademark and Windows is a trademark of Microsoft Corporation, Redmond, WA. Red Hat and Red Hat Enterprise Linux are registered trademarks of Red Hat, Inc., Raleigh, NC. ====================================================================================== REFERENCES for Best Prediction Software Original projects - 1997, 1999, 2007 and 2008: Cole, J.B., Null, D.J., and VanRaden, P.M. 2008. Best prediction of yields for long lactations. J. Dairy Sci. (Accepted) https://aipl.arsusda.gov/publish/jds/submit/jdsabstr_bestprediction_jbc.html Cole, J.B., and VanRaden, P.M. 2007. A Manual for Use of BESTPRED: A Program for Estimation of Lactation Yield and Persistency Using Best Prediction. Available: http://aipl.arsusda.gov/software/bestpred/docs/html/index.html. Accessed: https://github.com/wintermind/bestpred/blob/master/Best%20Prediction%20Manual.pdf Cole, J.B., VanRaden, P.M., and Dematawewa, C.M.B. 2007. Estimation of yields for long lactations using best prediction. Journal of Dairy Science 90(Suppl. 1), 421(abstr. 558). https://www.journalofdairyscience.org/article/S0022-0302(09)70493-X/fulltext Norman, H.D., VanRaden, P.M., Wright, J.R., and Clay, J.S. 1999. Comparison of test interval and best prediction methods for estimation of lactation yield from monthly, a.m.-p.m., and trimonthly testing. J. Dairy Sci. 82(2):438-444. https://www.journalofdairyscience.org/article/S0022-0302(99)75250-1/fulltext VanRaden, P.M. 1997. Lactation yields and accuracies computed from test day yields and (co)variances by best prediction. J. Dairy Sci. 80(11):3015-3022. https://www.journalofdairyscience.org/article/S0022-0302(97)76268-4/fulltext Project team members - 2024: John Cole - research geneticist Paul VanRaden - research geneticist Gary Fok - programmer REFERENCES for Age-Parity-Season-PreviousDaysOpen Adjustment Factors and Software: Miles, A.M., Van Raden, P.M., Hutchison, J.L., Fok, G.C., Schutz, M.M. 2023. Standardizing lactation yields from national data with age-parity-season-region corrections for fair comparisons across individual cows and environments. Journal of Dairy Science. 106(Suppl. 1):189-190(abstr. 2716). Original projects - 1994 and 1995: Duane Norman et al. (1995) https://www.researchgate.net/publication/14417143_Age_and_Seasonal_Effects_on_Holstein_Yield_for_Four_Regions_of_the_United_States_Over_Time Mike Schutz - post doctoral research geneticist (1994) https://www.researchgate.net/publication/265195434_Age-Season_Standardization George Wiggans - research geneticist Project team members - 2023 and 2024: Asha Miles - research geneticist - Asha.Miles@usda.gov Paul VanRaden - research geneticist - paul.vanraden@usda.gov Jana Hutchison - animal scientist - jana.hutchison@usda.gov John Cole - research geneticist - john.cole@uscdcb.com Gary Fok - programmer - gary.fok@usda.gov