ASReml的软件开发者Arthur Gilmour一直在坚持软件的不断升级和更新,对于一位年过60的人来说,实属不易。ASReml现已开发至4.0版。自4.0版起,基本不用设置初始值,先前的版本看起来比较professional,现在的版本相比而言,似乎更傻瓜化,犹如单反相机与数码相机。ASReml4.0的代码格式,更趋于asreml-r的格式。
举个简单的示范,比较下V3.0和V4.0的差异。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | !PART 1 # Random regression, V3.0 !continue !maxit 30 !STEP 0.1 root ~ mu Age Age.Block !r pol(Age,2).Clone !f mv 1 2 1 Age 0 US !+10 !GP !S2==1 10*0 1400 pol(Age,2).Clone 2 pol(Age,2) 0 US !+6 !GP 6*0 Clone !PART 2 # V4.0 !continue !maxit 30 root ~ mu Age Age.Block !r us(pol(Age,2)).Clone !f mv residual us(Age).id(1400) |
从代码中可知,V4.0的代码简洁多了,是否更像数码相机,对于想入门ASReml的人来说,不是更酷吗?
此外,ASReml还真可分析非常复杂的模型,我发现了asreml-r的一个模型可以运行,但在ASReml win版本中,不知如何运行,特意请教了Arthur Gilmour,他非常及时地给予了反馈。相对而言,asreml-r的代码最为简洁,因此建议初学者,还是先学习asreml-r版本为好。
现把代码粘贴如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | # asreml-r code df.asr<-asreml(cbind(root,branch)~trait+trait:Age+trait:Age:Block, random=~diag(trait):Age:Clone, rcov=~at(Age):ar1(Row):ar1(Col):corh(trait), maxit=100,data=df) # asreml v4.0 (新版本尚未发布,目前的版本无法运行!!) root, branch ~ Trait Trait.Age Trait.Age.Block mv, !r xfa1(Trait).Age.Clone residual at(Age).ar1(Row).ar1(Col).us(Trait) |