CLUES(Conditional Likelihood Under Evolutionary Scenarios)是一个用于推断单个位点在群体中选择轨迹(selection trajectory)的软件工具。
下载安装
git clone https://github.com/standard-aaron/clues.git
该软件无需复杂的安装过程,下载即可用,内含一些 python 脚本。
该软件是在 Relate 计算的基础上进行的。详见:Relate 使用方法。
在使用 SampleBranchLengths.sh 推断位点的分支长度后,生成的 relate_resample.timeb 要用于 clues 的计算,具体看我上一篇推文即可。
inference.py 是主要的计算脚本,但该脚本的运行需要一些 python 环境。
1)要在 python3 的环境下;
2)需要依赖环境:numpy、numba 等环境,如果没有会报错,基于报错安装依赖的环境,推荐 conda 安装,手动安装要费不少劲。
3)绘图脚本需要 matplotlib 环境。
推断需要指定有效群体大小,群体大小可以是固定值,也可以是 Relate 计算的有效群体大小文件。
python inference.py --times example/example -N <DIPLOID_POPSIZE>
或 python inference.py --times example/example --coal example/example.coal
--popFreq 可以指定位点当今的频率,比如:
--popFreq 0.3
--timeBins 可以指定特定时间段以检测选择压力。可以参考示例文件中的格式。
python inference.py --times example/example --timeBins example/timeBins.txt
--tCutoff 可以指定共祖过程的终止时间,默认是 1000 世代前。
python inference.py --times example/example --tCutoff 2000
--dom 硬编码等位基因的显性系数,默认值为 0.5(对应加性模型)。
python inference.py --dom 0.8 # 设置显性系数为0.8
--burnin 和 --thin 通过调整 MCMC 样本的权重,优化选择压力估计。
--burnin:丢弃前 LEN_BURNIN 步的 MCMC 样本(用于去除初始不稳定状态)。--thin:每隔 LEN_THIN 步抽取一个样本(减少样本间相关性)。
python inference.py --times example/example --burnin <预烧步数> --thin <稀疏步长>
--ancientSamps 整合古代 DNA(aDNA)的基因型似然值到分析中。
python inference.py --times example/example --ancientSamps example/exampleAncientSamps.txt
上述为可选参数,最终会生成 out.epochs.npy, out.freqs.npy, out.post.npy 三个文件,而后可以用 plot_traj.py 绘图。
python plot_traj.py <out_from_clues> <fig_name>
默认输出 pdf 文件,--ext 选项可以修改输出文件的格式,包括 eps、png 等。