开发者社区> 徐洲更> 正文

基因组survey

简介: 基因组survey 在组装基因组之前一定要先对要组装的物种有一个大致的了解,判断其复杂程度, 标准如下 基因组大小:基因组越大,测序花的钱越多 简单基因组: 杂合度低于0.5%, GC含量在35%~65%, 重复序列低于50% 二倍体普通基因组: 杂合度在0.5%~1.2%中间,重复序列低于50%。
+关注继续查看

基因组survey

在组装基因组之前一定要先对要组装的物种有一个大致的了解,判断其复杂程度, 标准如下

  • 基因组大小:基因组越大,测序花的钱越多
  • 简单基因组: 杂合度低于0.5%, GC含量在35%~65%, 重复序列低于50%
  • 二倍体普通基因组: 杂合度在0.5%~1.2%中间,重复序列低于50%。或杂合度低于0.5%,重复序列低于65%
  • 高复杂基因组: 杂合度>1.2% 或 重复率大于65%

k-mers估计法

最简单的策略就是基于k-mer对基因组做一个简单的了解, 使用jellyfish统计k-mers,然后作图

jellyfish count  -m 21 -s 20G -t 20 -o 21mer_out  -C  <(zcat test_1.fq.gz) <(zcat test_2.fq.gz)
# -m k-mers的K
# -s Hash大小, 根据文件大小确定
# -t 线程
# -o 输出前缀
# -C 统计正负链
jellyfish histo -o 21mer_out.histo 21mer_out

一些注意事项:

  1. 绝对不要用--min-qual-char或其他参数,它们会将低质量的碱基替换成N
  2. 在测序时由于不知道测得到底是DNA的哪一条链,因此k-mer及其互补链其实是等价的,所以一定要用-C参数

将数据导入R语言中,进行作图

pdf("21_mer.out.pdf")
dataframe19 <- read.table("21mer_out.histo")
plot(dataframe19[1:200,], type="l")
dev.off()
img_95210f379eb69a19bbe5fa033e367bf9.jpe
k-mers作图

由于只有一个主峰,说明该物种的杂合度并不高,基本上也就是二倍体。如果图中出现多个峰,说明它可能是多倍体或者是基因组杂合度高。

基因组大小(G)估计算法为:

G= K_{num} / K_{depth}

其中 K_{depth} 为K-mer的期望测序深度, K_{num} 为K-mer的总数。 通常将K-mer深度分布曲线的峰值作为其期望深度。

基因组的杂合性和使得来自杂合片段的K-mer深度较纯合区段降低50%。如果目标基因组有一定的杂合性,会在k-mer深度分布曲线主峰位置(c)的1/2处(c/2)出现一个小峰。杂合度越高,该峰越明显。

推荐文献: Genomic DNA k-mer spectra: models and modalities

基于组装

基于K-mers可以较好的预测基因组大小,并定性的了解基因组的复杂情况,如果想更具体的了解基因组的复杂度,可以先将50X以上的段片段进行组装,然后进行分析。

组装的工具比较多,推荐用SOAPdenovo,因为速度快。

新建一个contig.config, 增加如下内容

max_rd_len=150
[LIB]
avg_ins=200
reverse_seq=0
asm_flags=3
rd_len_cutoff=100
rank=1
pair_num_cutoff=3
map_len=32
q1=read_1.fq
q2=read_2.fq

组装出参考序列

~/opt/biosoft/SOAPdenovo2/SOAPdenovo-63mer all -s contig.config -R -K 63 -p 30 -o assembly/graph

最后graph.scafSeq是拼接后的序列, 提取出大于300bp的序列.

# adjust format
bioawk -c fastx -v name=1 '{if(length($seq)>300) print ">"name "\n" $seq;name+=1}' assembly/graph.scafSeq >contig.fa

杂合度估计

将原来的序列回贴到contig上,并用samtools+bcftools进行snp calling.统计变异的碱基占总体的比例。

mkdir -p index
bwa index contig.fa -p index/contig
bwa mem -v 2 -t 10 index/contig read_1.fq read_2.fq | samtools sort -n > align.bam
samtools mpileup -f contig align.bam | bcftools call -mv -Oz -o variants.gz

一方面由于SOAPdenovo组装过程中会出错, 另一方面samtools在变异检测上也存在很高的假阳性, 所以总得先按照深度和质量过滤一批假阳性。

bcftools view -i ' DP > 30 && MQ > 30' -H variants.vcf.gz | wc -l
# 325219, 无过滤是445113

变异数目占基因组大小的比例就是杂合度。我的contig大概是200M,找到0.3M左右的变异,也就是0.0015,即0.15%.

重复序列估计

基于同源注释,用RepeatMasker寻找重复序列. 这里要注意分析的fasta的ID不能过长,也就是最好是>scaffold_1这种形式,不然会报错。

~/opt/biosoft/RepeatMsker/RepeatMasker -e ncbi -species arabidopsis -pa 10 -gff -dir ./ contig.fa
# -e ncbi
# -species 选择物种 用~/opt/biosoft/RepeatMasker/util/queryRepeatDatabase.pl -tree 了解
# -pa 并行计算
# -gff 输出gff注释
# -dir 输出路径

输出结果中主要关注如下三个

  • output.fa.masked, 将重复序列用N代替
  • output.fa.out.gff, 以gff2形式存放重复序列出现的位置
  • output.fa.tbl, 该文件记录着分类信息
==================================================
file name: anno.fasta
sequences:         62027
total length:  273135210 bp  (273135210 bp excl N/X-runs)
GC level:         36.80 %
bases masked:   79642191 bp ( 29.16 %)
==================================================

也就是说我们的物种有30%的重复序列,作为参考,拟南芥125Mb 14%重复序列, 水稻389M,36%重复

附录:软件安装

安装RepeatMasker

cd ~/src
wget http://tandem.bu.edu/trf/downloadstrf409.linux64
mv trf409.linux64 ~/opt/bin/trf
chmod a+x ~/opt/bin/trf
# RMBlast
cd ~/src
wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.6.0/ncbi-blast-2.6.0+-src.tar.gz
wget http://www.repeatmasker.org/isb-2.6.0+-changes-vers2.patch.gz
tar xf ncbi-blast-2.6.0+-src
gunzip isb-2.6.0+-changes-vers2.patch.gz
cd ncbi-blast-2.6.0+-src
patch -p1 < ../isb-2.6.0+-changes-vers2.patch
cd c++
./configure --with-mt --prefix=~/opt/biosoft/rmblast --without-debug && make && make install
# RepeatMasker
cd ~/src
wget http://repeatmasker.org/RepeatMasker-open-4-0-7.tar.gz
tar xf RepeatMasker-open-4-0-7.tar.gz
mv RepeatMasker ~/opt/biosoft/
cd ~/opt/biosoft/RepeatMasker
## 解压repbase数据到Libraries下
## 配置RepatMasker
perl ./configure

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用GANs生成时间序列数据:DoppelGANger论文详解(一)
使用GANs生成时间序列数据:DoppelGANger论文详解
191 0
使用GANs生成时间序列数据:DoppelGANger论文详解(三)
使用GANs生成时间序列数据:DoppelGANger论文详解
50 0
使用GANs生成时间序列数据:DoppelGANger论文详解(二)
使用GANs生成时间序列数据:DoppelGANger论文详解
24 0
【推荐系统论文精读系列】(四)--Practical Lessons from Predicting Clicks on Ads at Facebook
点击预测系统大多是以在线广告系统维中心,每天7亿的日常活跃用户和超过1百万的活跃广告,因此预测FaceBook上的广告点击率是一项具有挑战的机器学习任务。本片论文中我们介绍了一个模型采用决策树和逻辑回归结合的模式,融合模型的表现胜过它们自己单独建模的效果3%,这个一个重大的影响对于整个系统的表现。
52 0
【推荐系统论文精读系列】(十二)--Neural Factorization Machines for Sparse Predictive Analytics
现在很多基于网站应用的预测任务都需要对类别进行建模,例如用户的ID、性别和职业等。为了使用通常的机器学习预测算法,需要将这些类别变量通过one-hot将其转化成二值特征,这就会导致合成的特征向量是高度稀疏的。为了有效学习这些稀疏数据,关键就是要解释不同特征之间的影响。
98 0
【推荐系统论文精读系列】(三)--Matrix Factorization Techniques For Recommender Systems
现在推荐系统一般是基于两种策略,一种是基于文本过滤的方式,另外一种是协同过滤,而基于文本过滤的方法是创造画像为用户或者物品,说白了就是用一些描述性的特征去描述它们,例如对于一部电影来说,可以为其创造画像电影类型、导演、演员、电影市场、票房等来进行描述,对于用户来说,可以用一些人口统计特征来进行描述。
223 0
CIKM 2022 AnalytiCup Competition: 联邦异质任务学习
为了探索联邦学习中的异质性,推动联邦学习领域的发展,阿里巴巴达摩院智能计算实验室联合天池举办“CIKM 2022 AnalytiCup Competition: 联邦异质任务学习”大赛,期待借助本次比赛助力打破现实应用中的“数据孤岛”,推动实现数据价值的共享。
639 0
【推荐系统论文精读系列】(十)--Wide&Deep Learning for Recommender Systems
具有非线性特征转化能力的广义线性模型被广泛用于大规模的分类和回归问题,对于那些输入数据是极度稀疏的情况下。通过使用交叉积获得的记忆交互特征是有效的而且具有可解释性,然后这种的泛化能力需要更多的特征工程努力。在进行少量的特征工程的情况下,深度神经网络可以泛化更多隐式的特征组合,通过从Sparse特征中学得低维的Embedding向量。可是,深度神经网络有个问题就是由于网络过深,会导致过度泛化数据。
72 0
Kaggle系列-IEEE-CIS Fraud Detection第一名复现
Kaggle系列-IEEE-CIS Fraud Detection第一名复现
198 0
ICLR2021对比学习(Contrastive Learning)NLP领域论文进展梳理(一)
ICLR2021对比学习(Contrastive Learning)NLP领域论文进展梳理(一)
193 0
+关注
徐洲更
生信媛公众号编辑、生信必修课之软件安装课程作者
文章
问答
文章排行榜
最热
最新
相关电子书
更多
《SIGIR 顶会论文解读》
立即下载
Supervised similarity:Learning
立即下载
Netflx's Recommendation ML
立即下载