用于模拟radseq数据的软件包。
radinitio的Python项目详细描述
半径
radinitio是通过前瞻性和回顾性数据模拟评估radseq实验的管道。在用户定义的人口统计学模型下,使用msprime,通过联合模拟,为多个个体生成新的排序数据。每个样本中的遗传变异在基因组环境中进行模拟,可以影响rad基因座的下游生成和序列读取。然后将每一个序列处理为一个在silicoradseq文库制备中的。库的组成部分由用户定义,允许探索包括限制性内切酶选择、插入大小、测序覆盖率和PCR重复分布在内的参数。radinitio模拟也可以通过比较和建模经验数据集中的误差来源来回顾性地应用。radinitio的目的是让研究人员在数据生成过程中充分探索可能的变量,以确保在技术和实验误差的限制下,以最佳方式进行协议选择和库准备。
安装
radinitio可以使用以下命令从python包索引(pypi)安装:
python3 -m pip install radinitio
有关此安装的更多信息,请访问radinitiopypi project page
用户可以使用--user
标志在本地python目录中安装radinitio。
python3 -m pip install radinitio --user
或者,可以从Catchen Lab网站下载软件,并使用以下命令安装:
python3 -m pip install radinitio-version.tar.gz
或者对于本地安装:
python3 -m pip install radinitio-version.tar.gz --user
有关pip安装的更多信息,请访问pip用户指南。
运行来自pypi或直接安装的 radinitio被设计为一系列独立的函数,模拟radseq库准备过程的不同方面。管道可分为三个主要步骤: 变量是从用户定义的人口统计中用msprime生成的。对用户提供的参考基因组中存在的不同染色体进行独立模拟。然后将模拟的变体投射到参考基因组上,获得参考等位基因,然后使用用户定义的模型将其转换为替代等位基因。 将参考基因组在硅片中进行消化,获得一系列参考rad基因座。这可以通过单酶或双酶消化完成。参考基因座在基因组中的位置,然后用于筛选所有样本的模拟变体,以仅包括rad基因座中存在的变体,从而改善下游性能。对于每个样本,我们提取rad等位基因,修改参考rad基因座以包含每个样本的相应遗传变异。这个过程可以改变剪切位点的序列,导致该样本的等位基因丢失。 提取后,随机抽取每个样本的等位基因,以获得每个等位基因模板的成对末端序列。等位基因是sa与库的期望序列覆盖率成比例的替换。采样的每次迭代都被视为一个独立的序列模板,该模板被截断为从模拟的插入大小分布中采样的随机长度。从用户定义的模型生成的pcr重复分布可应用于采样过程,从而导致对唯一模板序列的重复采样。该过程还可以引入随机误差到序列中,模拟pcr误差的产生。最后,从每个模板中生成成对的结束序列,每个模板都有其唯一的排序错误。 每个阶段的相应功能可以独立运行。我们确实提供了一个包装器脚本 运行radinitio的最简单方法是通过 程序选项如下: 半径的不同管道阶段可以独立运行: 对于上面的例子(--library type sdrad), 示例(--library type ddrad)使用双限制性内切酶组合,如协议中的彼得森等人。2012年, 完整版本的《Radinitio手册》,包括安装说明、命令行变量文档、输出文件说明和运行管道的教程,可在radinitio网站 安吉尔里维拉科隆
尼古拉斯·罗切特罗切特@illinois.edu 朱利安·卡岑jcatchen@illinois.edupip
安装将处理所有依赖项,包括msprime(Kelleher等人2016年)
管道结构
变量生成和处理
rad等位基因的提取
模拟库充实和排序
radinitio
,它调用从开始到结束运行管道的顶级radinitio.simulate()
函数。高级用户可以通过python api运行管道,该api允许生成更复杂的人口统计模型,定义更详细的库准备过程,并独立运行管道的组件。命令行界面
radinitio
命令行执行模块
包装器,然后调用顶级的radinitio.simulate()
函数,该函数运行
管道。用法和选项
radinitio --genome path --chromosomes path --out-dir dir [pipeline-stage][(demographic model options)][(library options)]
管道阶段(这些选项相互排斥):
--simulate all
:运行所有阶段(模拟填充、创建库和序列)(默认值)--填充:模拟和处理变量。产生全基因组VCF。
--make library seq
:模拟和排序rad库。需要退出进行填充
运行。
--tally rad位点
:计算基因组中保留的rad位点数。输入/输出文件
-g
,--genome
:参考基因组的路径(fasta文件,可以是gzip)。必需的-l
,--染色体
:包含要模拟的染色体列表(每行一个)的文件。必需的-o
,--out dir
:将写入所有文件的输出目录的路径。必需的人口统计学模型(简单岛模型)
-p
,--n-pops
:(int)孤岛模型中的种群数量(deme)。(默认值=2)-n
,--pop eff size
:(float)每个模拟dem的有效总体大小。(默认值=5000)-s
,--n-seq-indv
:(int)从每个群体中抽样的个体数。(默认值=10)文库准备/排序
-b
,--库类型
:库类型(sdrad或ddrad)。(默认值为"sdrad")-e
,--enz
:限制性内切酶(sbfi、psti、ecori、bamhi等)。(默认设置为"SBFI")-d
,--enz2
:双酶切的第二限制性内切酶(mspi、msei、alui等)。(默认值为'mspi')-m
,--insert mean
:(int)插入bp中的大小平均值。(默认值=350)-t
,--插入stdev
:(int)插入bp中的尺寸标准偏差。(默认值=37)-c
,--PCR循环数:(int)PCR循环数。(默认值=0)
-v
,--覆盖率
:(int)排序覆盖率。(默认值=20)r
,--读取长度:(int)序列读取长度。(默认值=150)
make-library-seq()-特定选项:
--make pop sim dir
:包含以前的"radinitio.make\pop"的目录运行。不能与"输出目录"相同
附加选项
-v,
--版本
:打印程序版本。-h
,--help
:显示此帮助消息。示例
# Simulating a sdRAD library (whole pipeline):
radinitio --simulate-all \
--genome ./genome/reference.fa.gz \
--chromosomes ./genome/chrom.list \
--out-dir ./simulations_sdRAD/ \
--n-pops 4 --pop-eff-size 2500 --n-seq-indv 10\
--lib-type sdRAD --enz SbfI --insert-mean 350 --insert-stdev 35\
--pcr-cycles 9 --coverage 20 --read-length 150# Simulating a ddRAD library (whole pipeline):
radinitio --simulate-all \
--genome ./genome/reference.fa.gz \
--chromosomes ./genome/chrom.list \
--out-dir ./simulations_ddRAD/ \
--n-pops 4 --pop-eff-size 2500 --n-seq-indv 10\
--lib-type ddRAD --enz PstI --enz2 MspI \
--insert-mean 350 --insert-stdev 35\
--pcr-cycles 9 --coverage 20 --read-length 150# Make a tally of sdRAD loci
radinitio --tally-rad-loci \
--genome ./genome/reference.fa.gz \
--chromosomes ./genome/chrom.list \
--out-dir ./count_rad_loci/ \
--lib-type sdRAD --enz SbfI
# Make a tally of ddRAD loci
radinitio --tally-rad-loci \
--genome ./genome/reference.fa.gz \
--chromosomes ./genome/chrom.list \
--out-dir ./count_ddrad_loci/ \
--lib-type ddRAD --enz NlaIII --enz2 MluCI \
--insert-mean 320 --insert-stdev 25# Simulate a population only
radinitio --make-population \
--genome ./genome/reference.fa.gz \
--chromosomes ./genome/chrom.list \
--out-dir ./simulated_population/ \
--n-pops 4 --pop-eff-size 2500 --n-seq-indv 10# Simulate library and sequencing# Use population from previous simulation
radinitio --make-library-seq \
--genome ./genome/reference.fa.gz \
--chromosomes ./genome/chrom.list \
--out-dir ./SbfI_library/ \
--make-pop-sim-dir ./simulated_population/ \
--lib-type sdRAD --enz SbfI \
--insert-mean 350 --insert-stdev 35\
--pcr-cycles 9 --coverage 20 --read-length 150
选项说明
--simulate all
运行所有radinitio阶段。从参考基因组开始,指定染色体,模拟种群,准备一个库和序列。这是包装中的默认值。--使种群
只生成一个全基因组的vcf,其中包含模拟种群的变体。以后可以使用不同的库参数对单个模拟种群进行排序。--make library seq
模拟库的准备和排序,从而对模拟的indivolutions进行成对的末端读取。它需要一组个体,可能是前一个make population
run的输出。--tally rad位点
对于给定的文库配置-文库类型和酶-计算基因组中rad位点的数量。reference.fa.gz
是一个基因组fasta文件。radinitio可以模拟使用压缩和未压缩的fasta文件。--out dir
是模拟的输出目录。在IT内部,将生成一系列子目录和文件(如下所述)。chrom.list
包含要模拟的所有染色体ID的列表。只有列表中的染色体将被用作模拟的输入。当使用高度碎片化的组件或使用许多小型未放置的脚手架时,这一点非常重要。chrom.list的结构如下:chromosome_1
chromosome_2
chromosome_3
...
--n-pops
,--n-seq-indv
和--pop eff size
包含简单的岛屿人口统计模型的参数。在这个例子中,我们模拟了4个种群,每个种群的有效种群规模为2500个个体,从中我们分别抽取了10个个体。使用附加的radinitio函数可以生成更复杂的人口统计学参数。有关人口统计模型参数的更多信息,请查看msprime文档--enz
是用于生成单个摘要radseq库的主要限制酶,如Baird等人2008年和文章?id=10.1371/journal.pone.0018561" rel="nofollow"title="etter等。2011">等2011 在此示例中,使用限制性内切酶sbfi,但其他酶如ecori、psti、bamhi等也可用。模拟库的平均插入大小(--insert mean
)为350bp,标准偏差(--insert stdev
)为+35bp,2x150bp成对端读(--read length
)。--enz
是罕见的(主)切割器,psti在本例中,--enz2
是常见的(或双)切割器酶(mspi)。模拟库将有一个插入尺寸(--insert mean
)为350bp,标准偏差(--insert stdev
)为35bp。这种尺寸分布将产生介于280bp和420bp之间的插入尺寸范围(插入平均值+2 x插入标准偏差)。模拟将产生2x150bp的成对末端读取(--读取长度
)。--pcr cycles
定义了一个使用9个pcr循环富集的rad库。这个库有一个2:1的模板分子对序列的读取比率。可以使用附加的radinitio函数生成更复杂的PCR参数。--coverage
定义库的每个轨迹排序深度,在本例中为20倍。--make pop sim dir是包含以前的半径的目录。make_population
simulation。此选项仅在radinitio.make_library_seq中使用,并定义采样的总体以模拟库准备和排序。它不能与运行的输出目录相同。Radinitio手册
作者
推荐PyPI第三方库