• 对审稿人要有礼貌

    审稿人花时间在看稿子,即便审稿人提出的问题不对,也应该给与合理的解释,并自己审查是否是自己的疏忽或描述不清造成了误解。

    Dear Dr. Editor,

    We appreciate your helpful comments and those of the reviewers.

    We feel that the manuscript is now greatly improved.

    逐条回复时候,可以用发

    We agree with Reviewer I that the section on xxx…

  • 推荐信

    写推荐信一般需要导师来写,导师需要对学生足够了解,否则是对被推荐方的不公平。在写推荐信时,需要学生提供一份简历,以免在评价学生时有所遗漏。

    根据对候选人的平时观察给与真实的评价。比如这是我从未见过的优秀学生。他是班里50个学生中最好的一个。我毫不怀疑他能够胜任一流的研究。我对他的能力有信心。他是我见过最热情的一个。也可以引用其他人的一些评价。

    格式

    我很高兴推荐XXX到XXX。如何认识候选人。一两句对候选人的看法。

    单位

    地址

    电话等

  • Windows下确定电脑最大支持内存

    1. Win+R打开运行,输入cmd

    2. 然后输入wmic memphysical get maxcapacity

    本机测试得到67108864,67108864÷1024÷1024=64GB,因此,本机最大支持64G内存。

  • Win11的Ubuntu子系统安装Miniconda

    1. 进入miniconda的官网主页(https://docs.conda.io/en/latest/miniconda.html)。

    2. 下拉,直到找到Linux installers,找对应的Python版本,我的是3.10,选择3.9的版本,在第一个链接上点鼠标右键,复制链接地址。

    3. 运行Windows11的子系统Ubuntu,输入wget空格,然后点鼠标右键,如图。

    4. 输入bash Miniconda3-latest-Linux-x86_64.sh,然后一顿回车,如果需要写yes的时候,输入yes

    5. 等待安装完成,关闭Ubuntu重新打开,看到用户名前面有(base)即表示成功,可以通过下面的命令查看conda版本。

    本文短链接:https://wp.me/p80aHo-Gj

  • 创造一个好的学习环境和习惯

      好的学习环境往往能使学习事半功倍!一般来说,好的学习环境要远离其他干扰,不能是吃饭、休息的场所。好的环境需要良好的光照,具备能让人专注的安静,身边放好水以便随时补充水分,最好把健康的零食也摆在旁边,及时补充能量。

      越来越多的人开始用笔记本电脑或平板工作,请使用“二十二十”原则,即工作20分钟,休息二十秒,休息期间拉伸身体,并尽量远望,让眼睛和身体得到充分的休息。

  • 记忆与睡眠

      学习离不开记忆,而记忆有很多方法,其中之一是我们每天都在练习的——睡眠记忆。睡眠不仅是大脑休息的过程,也是短期记忆向长期记忆转换的过程。大脑利用不清醒的时间,使神经系统发生长期记忆所需的结构和化学变化,促进短期记忆向长期记忆的转换。

      成年人每天大约需要7-9小时的不间断睡眠,睡眠专家给出的睡眠建议:

    1. 规律的就寝时间和起床时间,甚至周末和休息日也要坚持。
    2. 计划好睡前的放松时间,避免使用电脑或手机等具有蓝光的设备。看看书能增进睡眠(小说除外)。
    3. 环境温度较低、无光、无噪音。如果有必要,可以使用白噪音来掩盖其他声音。较低的体温容易进入睡眠状态。
    4. 晚上不要吃得太饱,避免烟、酒和咖啡因的摄入。
    5. 卧室里不要摆放能够娱乐的物品,比如电脑、电视。
  • 【翻译】用rrBLUP计算全基因组预测

    基本信息

    原文:http://potatobreeding.cals.wisc.edu/wp-content/uploads/sites/161/2014/01/GS_tutorial.pdf

    作者:Jeffrey Endelman

    版本:4

    更新:20130615

    翻译:张敖

    翻译更新:20221026 12:44:13

    翻译内容

      本文介绍如何使用第四版中新加入rrBLUP的特性(Endelman 2011)。

      本包的基本核心仍然是mixed.solve,它求解了除残差之外的一个方差分量的混合模型。该函数估计两个方差分量,通过ML或REML模型估计,估计的执行使用Kang等(2008)描述的光谱分析算法。在这个过程中,很容易创建表型协方差矩阵的逆矩阵,逆矩阵随后用于固定效应和随机效应的BLUE和BLUP求解计算(Searle et al. 1992)。在(Endelman 2011)中,作者展示了mixed.solve如何用于全基因组预测,要么建模标记作为随机效应,要么家系随机效应。

      第4版是围绕A.matkin.blup函数设计的。

    A.mat

      A.mat用标记估计真实的亲缘关系矩阵(A),对于没有缺失数据的高密度标记,A.mat的VanRaden(2008)建议的第一个公式:

      这里,矩阵W中等位基因的表示数值通过群体均值进行中心化。Endelman and Jannink (2012)证明了该公式的平均对角元素为1+f,f是近交系数。

    缺失标记数据

      当基因型有缺失时,A.mat有两个补缺失的选项。一个是缺失值用标记的群体均值代替,这对SNP芯片类,只有少量缺失值是足够的。对GBS标记,缺失值的水平可能过高。这种情况下,A.mat可以使用基于多元正态分布的EM算法估计亲缘关系矩阵(Poland et al. 2012)。

      为了证明EM算法,我下载了Poland et al. (2012) 的GBS数据https://www.crops.org/publications/tpg/supplements/5/tpg12-06-0006-dataset-s2.gz(链接已失效)。

      下列代码会读取GBS数据,并转换为rrBLUP需要的{-1,0,1}格式。

    GBS<-read.csv("tpg12-06-0006-dataset-s2",header=T,as.is=TRUE,row.names=1)
    alleles <- setdiff(unique.x,union("H","N")){
        unique.x <- unique(x)
        y <- rep(0,length(x))
        y[which(x==alleles[1])] <- -1
        y[which(x==alleles[2])] <- 1
        y[which(x=="N")] <- NA
        return(y)
    }
    X <- apply(GBS[,-c(1:3)],1,parse.GBS)
    dim(X) #lines by markers
    frac.missing <- apply(X,2,function(z){length(which(is.na(z)))/length(z)})
    length(which(frac.missing<0.5))
    hist(frac.missing)

      有1.6万的标记缺失率小于50%,足够估计出254个家系的关系矩阵。因为作者是在一个具有多个处理器的unix兼容的系统上运行这段代码的,所以我可以使用12个核来加速EM算法:

    library(rrBLUP)
    system.time(A1 <- A.mat(X,impute.method="EM",n.core=12,max.missing=0.5))

      EM算法在其进行过程中显示收敛序列,它表示亲缘关系系数的根均方误差。默认停止标准为0.02,但是可以通过tol参数改变(输入?A.mat获得更多信息)。在本例中,当它达到0.0151时,计算停止,这仅仅需要1分钟的时间。如果只有一个核,可以简单的省略n.core选项,因为默认为1核。译者注:windows下指定核数量无效。

      用均值进行补缺失,可以使用下列语法:

    system.time(A2 <- A.mat(X, max.missing=0.5))

      用均值补缺失肯定会更快,在很多情况下,在GEBV的预测精度上,均值的表现与EM算法和其他更先进的方法一样好。然而,与EM方法相比,均值的方法的育种值往往更有偏向性(Poland et al. 2012)。对两个矩阵的平均对角线元素比较表明,EM算法的结果更加接近给定1%杂合率的期望,表达式1+f≈2。提出

    round(mean(diag(A2)),2)   # imputed with mean
    round(mean(dia(A1)),2)   # imputed with EM

    A矩阵的收缩估计

      A.mat的另一个特性是收缩估计,它可以用于低密度的标记,例如来自384个SNP的芯片。当家系的数量与标记的数量相当或更多时,上面的方程可能是最优化的亲缘关系矩阵估计。Endelman and Jannink (2012)建议将估算值降低到(1+f)I,用收缩强度选择最小化均方误差。

      为了说明这一点,我将使用BLR包中的一个数据集,该数据集由1279个DArT标记对599个小麦家系进行了基因分型。

    library(BLR)
    data(wheat)
    M <- 2*X-1 #convert markers to {-1,1}
    dim(M)   #=[1] 599 1279
    A1 <- A.mat(M,shrink=TRUE)   #= [1] "Shrinkage intensity: 0.03"
    A2 <- A.mat(M[,sample(1:1279,384)],shrink=TRUE)   #= "Shrinkage intensity: 0.1"
    A3 <- A.mat(M[,sample(1:1279,192)],shrink=TRUE)   #= "Shrinkage intensity: 0.17"

      如上例所示,收缩强度从0(无收缩)到1(完全收缩),标记密度减少,缩减强度增加。所有1279个标记,使用了非常小的缩减(3%),而384和192个标记的随机集合,缩减强度是10%和17%。

    kin.blup

    Endelman(2001)中,我介绍了一个mixed.solve的“包装器”,叫做kinship.BLUP,这是为家系的预测而设计的,使用加性遗传模型或高斯核。然而,“包装器”没有那么方便,所以我又设计了一个新的函数代替它,这个函数叫做kin.blup。该函数不需要用户创建设计矩阵,新函数会自动从数据框中完成创建部分。另一个不同是,用户用kin.blup传递的是亲缘关系矩阵,而不是标记,这样允许我们更好的计算A矩阵(参见A.mat)。

    为了说明基础功能,我将继续以上述的小麦数据为例,其中,A1矩阵用所有的标记估计。这599个自交系已经在BLR包中分成了10个集合用于交叉验证。为了预测集合1的育种值,使用集合2至10的自交系表型,首先,表型和相应的基因型标识符必须组装成数据框。

    test <- which(sets==1)
    yNA <- Y[,1]   # grain yield in environment 1
    yNA[test] <- NA   # mask yields for validation set
    data1 <- data.frame(y=yNA, gid=1:599)

      验证集合需要遮盖表型数据,需要将他们的值设成NA,如上面的例子。最小的数据集有两列,一列是表型值,一列是基因型的标签(注:基因型名称)。确保数据框中基因型标签(名称)与关系矩阵的行名对应,我们可以做全基因组预测:

    rownames(A1) <- 1:599
    ans1 <- kin.blup(data1, K=A1, geno="gid", pheno="y")
    str(ans1)

      正如上面的例子,亲缘关系矩阵传入参数“K”(给kinship)到kin.blup函数,以及数据框中的表型和基因型变量名。该函数返回方差组分($Vg, $Ve)的REML估计,以及遗传值($g)的BLUP,即本例中的育种值。同时,还将返回来自混合模型的残差。如上例所示,BLUP值在亲缘关系矩阵中返回599个条目(观测值),尽管这些系中10%的系没有表型(由于遮盖)。BLUP的顺序由K矩阵的顺序决定(array也如此命名)。

      为了评估GEBV的预测精度,计算验证数据集的预测值与遮盖的表型值的相关性:

    round(cor(ans1$g[test),Y[test,1],2)

      对于具有高斯核的预测,而不是传递关系矩阵到K参数,使用欧式距离,并将GAUSS参数者只为TRUE。

    D <- as.matrix(dist(M))   # Euclidean distance
    system.time(ans2 <- kin.blup(data1, K=D, GAUSS=TRUE, geno="gid", pheno="y"))
    system.time(ans2 <- kin.blup(data1, K=D, GAUSS=TRUE, geno="gid", pheno="y", n.core=10))
    round(cor(ans$g[test],Y[test,1],2)

      正如所见,多核可以提高GAUSS核的运算速度。高斯核的预测精度是0.63,高于使用亲缘关系矩阵。该结果与Endelman(2011)的结果不完全相同,用于确定最优尺度网络点(grid point)参数的并不相同;输入?kin.blup获得设置网络点的更多信息。

    多环境试验

      kin.blup函数能够处理不同环境中的重复测量。来自BLR包的小麦数据集平均在4个环境下测定599个自交系。环境2-4是相关的,本例中,将考虑为育种计划的一个目标环境。下面的代码将创建一个不平衡的数据集,使用跨环境的部分重复。

    y <- c(Y[1:400,2],Y[101,400,3],Y[201:500,4])
    env <- c(rep(2,400),rep(3,300),rep(4,300))
    gid <- c(1:400,101:400,201:500)
    data2 <- data.frame(y=y,env=env,gid=gid)
    nrow(data2)

      为了在预测模型中将环境效应作为固定效应,数据框的列被传递给函数:

    system.time(ans <- kin.blup(data2,K=A1,geno="gid",pheno="y",fixed="env"))
    round(cor(ans$g[501:599],rowMeans(Y[501:599,2:4])),3)

      当有多个固定效应用于建模时,例如年份和地点,只需要传递一个列名数组,例如fixed=c(“year”,”location”)

      上面的例子是一步预测,这比首先计算线平均值的两步方法的计算要求更高。对于不平衡数据,kin.blup可以用两步法的速度做预测,同时保留关于不同重复水平的信息。这通过reduce=TRUE实现,转换混合模型的维度等于自交系的数量(参看使用手册获得更多细节):

    system.time(ans2<-kin.blup(data2,K=A1,geno="gid",pheno="y",fixed="env",reduce=TRUE))
    round(cor(ans2$g[501:599],ans$g[501:599]),3)
    round(cor(ans2$g[501:599],rowMeans(Y[501:599,2:4])),3)

      在上面的例子中,采用约简方法的计算时间减少了近5倍。两种方法的预测非常相似(r = 0.96),但在本例中没有降低。

    References

      Endelman, J.B. 2011. Ridge regression and other kernels for genomic selection with R package rrBLUP. Plant Genome 4:250–255. doi:10.3835/plantgenome2011.08.0024

      Endelman, J.B., and J.-L. Jannink. 2012. Shrinkage estimation of the realized relationship matrix. G3:Genes, Genomes, Genetics. 2:1405-1413. doi:10.1534/g3.112.004259

      Kang et al. 2008. Efficient control of population structure in model organism association mapping. Genetics 178:1709–1723.

      Pérez et al. 2010. Genomic-enabled prediction based on molecular markers and pedigree using the Bayesian Linear Regression package in R. Plant Genome 3:106–116.

      Poland, J., J. Endelman et al. 2012. Genomic selection in wheat breeding using genotyping-by-sequencing. Plant Genome 5:103–113. doi: 10.3835/plantgenome2012.06.0006.

      Searle et al. 1992. Variance Components. John Wiley & Sons, Hoboken.

      VanRaden, P.M. 2008. Efficient methods to compute genomic predictions. J. Dairy Science
    91:4414–4423.

  • 压力与学习

    妥善的照顾自己和压力控制对于学习非常重要。压力会对学习,尤其是记忆产生重大影响。压力可以提高警觉,集中注意力,从而帮助记忆。太大的压力会损害我们的大脑,降低检索和摄取信息的能力。大脑的信息检索非常重要,无论是考试还是通过已有信息实现新信息的获取和更新。随着时间的推移,我们更新现有信息的能力非常重要,它能建立或改变复杂的概念。学习控制压力能让大脑保持良好的状态,提升学习效果。

      

  • 密码保护:破解rar压缩包密码

    此内容受密码保护。如需查阅,请在下方输入密码。

  • 【发现】在水下生活的毛毛虫

    【20221004 03:23:24】

    从常识来看,毛毛虫都是生活在空气中的,与人类的呼吸方式不同,毛毛虫没有鼻子,是用皮肤上的气门呼吸,气门在水中不能吸入或呼出气体,能够在水中挣扎20分钟以上的毛毛虫已经是很厉害的了,能在水中生活的毛毛虫更是凤毛麟角。然而,今天的主角,一种毛毛虫,貌似可以在水中一直存活!到目前为止,还没有找到相关的资料。

    话不多说,先看照片和视频。

    这么小的虫子怎么看也不像是个毛毛虫,这是因为它从水里被捞出来,看不清楚。

    再来看看更大一点的另一只的视频。主要看石头上的家伙。

    这种毛毛虫不仅在水下能够生存,还会用叶子把自己的身体包裹起来伪装自己。你能找到在安静的水中那只欢快的毛毛虫吗?

    目前,还不知道这种毛毛虫是什么品种,是否是新的品种,欢迎有线索的朋友一起讨论。

    我会持续记录这只毛毛虫的动态。

    【20221005 09:33:14】

    今天观察了几次,没有发现毛毛虫具体去哪里了,也没有发现在动的叶子,推测是躲起来了,昨天放进去的一只樱花虾也不见了,每天都持续观察看看情况。

    【20221006 13:27:56】

    今天这只水下生活的毛毛虫又活动了,直接上视频。

    【20221007 17:31:10】

    今天,水温进一步的降低,温度已经下降到了18℃,我的苏虾冻死了一只,其他的还好,躲在沉木里面,可能那里能暖和点。水毛虫在18℃的时候依然很活跃,下午五点多依然在吃嫩叶。只不过,吃的叶子和自己身上包裹的叶子不太相称,比较容易发现。

    【20221014 09:04:27】

    目前已经把左边的叶子吃空了,跑到哪里去了不太清楚。现在还没来暖气,温度较低,虫子不怎么动,找不到具体的位置。

    能够确认的是,这个毛毛虫确实是能够适应水下生活的,查了一下资料,可能是石蛾(https://baike.baidu.com/item/%E7%9F%B3%E8%9B%BE/4133609?fr=aladdin),也可能是水螟蛾幼虫(https://www.docin.com/p-96851429.html)。

    我倾向于水螟蛾幼虫,这种虫子具有气管鳃,能够适应水下的生活。但是根据文献记载,1龄的幼虫没有气管鳃,虫子怎么在水里度过1龄的不得而知。猜测买到的水草是野采的,带有已经度过了1龄的幼虫。