dn/ds又叫ka/ks,具体的概念,意义百度上都有。现主要介绍最近用到的三种计算途径,分别是maga7,datamonkey,paml。
做选择压力分析的序列文件,需要先clustal和剔除终止密码子,这步可以在MAGA里完成。
1.MAGA7
MAGA7,是通过分别求取dn,ds的值,然后得到dn/ds。
将fasta格式的序列文件导入MAGA, 然后选择Distance——computer overall mean distance进入图一页面:仔细看下面的选项卡,在substitutions type 中选择 Syn-Nonsynonymous;Genetic code table 按照自己的序列选择;modle/method 选择 Nei-Gojobori method (No. of Differences);Substitutions to include 选择要计算的dn或者ds。下一步,就能得到dn或者ds,两者相比得到结果。
如果在distance——computer pairwise#####,然后按照后面步骤操作,结果会得到一个两两比较的矩阵(三角),我还不知道这个要怎么用。
如果只计算dn/ds,第一种应该够用了。
2.Datamonkey
官网:https://www.datamonkey.org/
三种方式,按照你的序列条件选择其中一种。以FEL为例:
在method and tool 里选择适合的方式,如FEL,选择文件导入sqe序列,选择genetic code。 RUN~ 选择select all —— save branch selection 运行
得到结果后,前面两行表示的是positive和negative的位点数,以及p值。向下滑,最后的表格的左下角是dn/ds的结果。更多的结果都在这个结果页面和export的annalyze log里。
3.PAML-codeml
杨子恒教授开发并免费提供的一个软件。paml现在已经开发到4.9h版了,这是一个命令行软件,现在已经有图形操作界面-pamlX,但是因为命令行操作起来很简单,而且学会也不难,就没有学习pamlX。
paml官网:http://abacus.gene.ucl.ac.uk/software/paml.html#PAMLx
参照官网信息可以完成下载,安装和运行示例文件。示例文件在下载的paml4.9h的example文件夹里。这里需要注意,可以将所有的’.exe‘文件和codeml.ctl (控制文件)复制到paml 的bin的文件夹里。方便运行,减少出错。
按照要求准备序列文件和树文件(树文件可以直接用maga做),有提示序列文件需要 .phy或者.paml格式,但是实践证明用.fasta格式也可以(注意文件名中不能有空格)。
windows系统打开cmd:win+R,输入cmd,回车
输入paml4.9h所在的盘,如:d: ,回车
输入cd, cd的命令查询文件,
输入bin文件夹所在位置,回车,>后 需要输入运行的程序codemL
回车就是运行的结果。
windows不区别大小写,都可以。
下面是codeml.ctl文件的设置
seqfile =aa.fas * sequence data filename
treefile =aa.nwk * tree structure file name
outfile = aa.txt * main result file name
noisy = 3 * 0,1,2,3,9: how much rubbish on the screen
verbose = 0 * 0: concise; 1: detailed, 2: too much
runmode = 0 * 0: user tree; 1: semi-automatic; 2: automatic
* 3: StepwiseAddition; (4,5):PerturbationNNI; -2: pairwise
seqtype = 1 * 1:codons; 2:AAs; 3:codons-->AAs
CodonFreq = 2 * 0:1/61 each, 1:F1X4, 2:F3X4, 3:codon table
* ndata = 10
clock = 0 * 0:no clock, 1:clock; 2:local clock; 3:CombinedAnalysis
aaDist = 0 * 0:equal, +:geometric; -:linear, 1-6:G1974,Miyata,c,p,v,a
aaRatefile = dat/jones.dat * only used for aa seqs with model=empirical(_F)
* dayhoff.dat, jones.dat, wag.dat, mtmam.dat, or your own
model = 0 【这个是branch/branch-site/site的选项,site选择0,具体区别可另外检索】
* models for codons:
* 0:one, 1:b, 2:2 or more dN/dS ratios for branches
* models for AAs or codon-translated AAs:
* 0:poisson, 1:proportional, 2:Empirical, 3:Empirical+F
* 6:FromCodon, 7:AAClasses, 8:REVaa_0, 9:REVaa(nr=189)
NSsites = 0 1 2 3 7 8 【下面附上的结果解读链接里有区别,其中包含零假设和替代假设】* 0:one w;1:neutral;2:selection; 3:discrete;4:freqs;
* 5:gamma;6:2gamma;7:beta;8:beta&w;9:betaγ
* 10:beta&gamma+1; 11:beta&normal>1; 12:0&2normal>1;
* 13:3normal>0
icode = 1 【根据密码子选择】* 0:universal code; 1:mammalian mt; 2-10:see below
Mgene = 0
* codon: 0:rates, 1:separate; 2:diff pi, 3:diff kapa, 4:all diff
* AA: 0:rates, 1:separate
fix_kappa = 0 * 1: kappa fixed, 0: kappa to be estimated
kappa = 2 * initial or fixed kappa
fix_omega = 0 * 1: omega or omega_1 fixed, 0: estimate
omega = .4 * initial or fixed omega, for codons or codon-based AAs
fix_alpha = 1 * 0: estimate gamma shape parameter; 1: fix it at alpha
alpha = 0. * initial or fixed alpha, 0:infinity (constant rate)
Malpha = 0 * different alphas for genes
ncatG = 8 * # of categories in dG of NSsites models
getSE = 0 * 0: don't want them, 1: want S.E.s of estimates
RateAncestor = 1 * (0,1,2): rates (alpha>0) or ancestral states (1 or 2)
Small_Diff = .5e-6
cleandata = 1 * remove sites with ambiguity data (1:yes, 0:no)?
* fix_blength = 0 * 0: ignore, -1: random, 1: initial, 2: fixed, 3: proportional
method = 0 * Optimization method 0: simultaneous; 1: one branch a time
* Genetic codes: 0:universal, 1:mammalian mt., 2:yeast mt., 3:mold mt.,
* 4: invertebrate mt., 5: ciliate nuclear, 6: echinoderm mt.,
* 7: euplotid mt., 8: alternative yeast nu. 9: ascidian mt.,
* 10: blepharisma nu.
* These codes correspond to transl_table 1 to 11 of GENEBANK.
ps:教程:https://www.jianshu.com/u/214b3ff96d82
B站视频教程:https://www.bilibili.com/video/av10469605 from=search&seid=4867078036525249250
如何解读结果:http://blog.sina.com.cn/s/blog_65ba09d90102x4ua.html
ps:我觉得视频教程里up主说做的是branch,然后取model=0是零假设,与我理解的有出入,我以为model=0是site,NSsite可以决定那个是零假设那个是替代假设。
另外,在对结果解读的过程中,很多文章都提到M1a,M2a,但是NSsite里没有M1a,M2a,只有M1, M2, 不解。
视频UP主是branch test ,另一种计算模型,并非两者有错误。
所有内容不保证正确,有错就改。
建议忽略NEB的输出,选用BEB的输出,BEB只在正向选择的M2/M8中存在。