编辑:sx_zhangjh
2014-05-28
关于ASP种畜BLUP育种值的程序设计
1948年。美国学者Henderson提出了BLUP法,即最佳线性无偏预测(Best Linear Unbiased Predic—tion)法。该方法具有估计值方差最小、可消除因选择或淘汰等原因造成的偏差等特性,获得的种畜育种值精确性较高。是进行种畜遗传评定的主要方法之一。该方法对于低遗传力性状和限性性状的效果明显,可广泛应用于奶牛各种性状的评定中。
采用ASP语言,结合Excel文件开发了一个计算单性状BLUP的应用程序,实现种畜育种值的自动计算功能。
l 基本原理假设某一群体存在若干公畜。则任一公畜后代的观测值可用以下模型表示:
Yjk=U+hi+Sij+e (1)其中,Y 是后代的成绩观察值,u是总体均值,h。是第i个畜群的固定效应,S .是第i个畜群第i个公畜的随机效应,而e 是随机剩余效应。
若(1)式采用矩阵形式表示,则为:
Y=Xb十Zu+e (2)其中,Y为观察值向量,X为已知固定冈子的结构矩阵,b为未知固定向量,z为已知随机因子的结构矩阵,u为未知随机向量,e为随机效应向量。
这里的 就是要计算的家畜育种值估计量,即BLUP育种值。
2 ASP程序设计打开一个记事本文件,将文件名和后缀更改为“index.asp”,并保存。关于ASP种畜BLUP育种值的程序设计,其全部代码如下:
0 Or k(i,1)=k(j,3)<>0 ThenC(i,j):O.5:c(i,i)=0.5Elsef k(i,2)=k(j,2)<>0 Or k(i,3)=k O,3)<>0ThenⅡi=j Then e(i,j)=0.25:c O,i)=0.25ElseIf k(i,2):k 0,2)<>0 And k(i,3)=k 0,3)<>0ThenC(j,j):O.5:c 0,i)=0.5End I Next:NextFor i=l To xIf k(i,2)+k(i,3)=0 ThenC(i,i)=1ElseIfk(j,2) k 0,3)=0 ThenFor j:1 To xIf k(i,2)=k 0,1)Then p=jIfk(i,3)=k 0,1)Then p=jC(i,i)=1Fo r m=l TO i一1C(i,m)=c(p,m) 0.5:c(m,i)-c(i,m)Next:NextElseFor j=1 ToIf k(i,2)=k(j,1)Then p=jIf k(i,3)=k 0,1)Then q=jFor m=l To i-1C(i,m)=0.5 (C(p,m)+c(q,m)):c(m,i)=c(i,m)Nexte(1一,1)=O。5 e(P,q)+1NextEnd If:Next分子矩阵逆阵Dim bb,ee,kkFor i=l To x:For i-1 To xe(i,j)=c(1一,j)Ifj:i Then e(i,j+x)=1If j<>i Then e(i,j+x)=0Next:NextFor i:l To x:For t=i To xIf e(t,i)<>0 ThenFor i-1 To 2 xbb=e(i,j):e(i,j)=e(t,j):e(t,j)=bbNextcc=l/e(i,i)Forj=l To 2*xe(i'j)=ee e(i,j)NextEnd If::NextFor j=1 To xIfj<>i Thenkk=-e(j,i)For m-1 To 2*xe(i,m)-e j,m)+kk e(i,m)NextEnd If:Next:NextFor i=l To x:For i-1 To xC(i,j)-e(i,x+j)Next:Next输出矩阵For i=l To x+z:For._l To x+zl(i,j)=0If i=j Then l(j,j)=b(i)Next:NextFor i=l To x:For i-1 To Zl(z+i'j)=k(i,2“j+2):l O,z+i)=k(i,2 j+2)Next:NextFor i=z+l To x+z:For i_z+1 To x+zl(i'j)=l(i'j)+h e(i-z,j-z)Next:Next结构矩阵逆阵Dim bbb,CCC,kkkFor i=l To x+z:For j=1 To x+zf(i'j)=l )Ifj=i Then f(i'j+x+z)=lIf j<>i Then f(i,j+x+z)=0Next:NextFor i_1 To x+z:For t=i To x+zIf f(t,i)<>0 ThenFor j=1 To 2 x+2 Zbbb=f(i,j):f(i,j)=f(t,j):f(t,j)=bbbNextccc=l/f(i,i)For j=1 To 2 x+2 Zf(i,j)=CCC f(i'j)NextEnd If:NextFor i_l To x+zIfi<>i Thenkkk=一f(j,i)For m=1 To 2*x+2*zf j,m):f O,m)+kkk f(i,m)NextEnd If:Next:NextFor i=l To x+z:For j=l To x+zg(i'j)=f(i,x+z+j)Next:NextFor i=l To x+zs(it1)=0For m=l To x+zs(i,1)=s(it1)+g(i,m) a(m):s(i,1)=int(1000 S(i,1))/1000Next:NextResponse.write f”
相关推荐
标签:asp论文
精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。