基因组

基因组结构注释

2020-05-11  本文已影响0人  扇子和杯子

1. 组装基因组质控

得到组装好的基因组序列之后,首先要使用多种方法评估组装质量。这里用到2款可用于基因组组装质量评估的软件——QUAST和BUSCO。

1.1 quast——序列长度、N50、GC含量

quast分有参评估和无参评估。

1.1.1主要参数说明

-t 程序运行线程数
-o 输出路径。程序运行完毕后可在该路径查看结果
-R 有参评估时,指定参考基因组文件
-G 有参评估时,指定参考基因组的gff注释文件
quast assembledGenome -t 8 -o out_dir

1.1.2. 指标简要说明:

1.1.3. 结果文件简要说明:

参考链接:http://blog.sciencenet.cn/blog-3406804-1163959.html

1.2 busco——评估基因组组装完整度

1.2.1. 主要参数说明:

-i,输入基因组fasta文件;

-o,输出结果目录的名称,会在当前工作路径下生成结果目录,不支持使用绝对路径;

-m,评估模式,包含3种类型:基因组序列;转录本序列;蛋白氨基酸序列;

-l,指定单拷贝基因数据集,可以从BUSCO官网上下载

-c,程序运行线程数;

-e,比对e值,通常为1e-5;

-f,强制覆盖先前的结果得到新结果;

-sp,当使用基因组评估模式时,需要指定Augustus物种基因训练集,用于在基因组中较为准确地预测基因序列。
run_busco -i assembledGenome -o busco -l ascomycota_odb9 -m genome -c 7 -e 1e-05 -sp aspergillus_fumigatus

1.2.2. 指标简要说明:

1.2.3. 结果文件简要说明:

参考链接:http://blog.sciencenet.cn/blog-3406804-1164809.htm

2. 重复序列屏蔽

有些物种的基因组中很大一部分是重复序列。重复序列分两类

简单重复序列可以以很高的统计学显著性比对到蛋白质的低复杂性片段,从而造成假同源。
复杂重复序列包含真正的蛋白质编码基因,会干扰从头预测过程。比如,gene predictor会将位于物种特异性蛋白质编码基因 内含子部分的转座元件误认为是该基因的一部分外显子。
所以识别、标识基因组重复区域非常重要。

2.1 RepeatMasker:

依赖于已有的重复序列参考库Repbase作同源预测。对于绝大部分目标真核物种,都在Repbase中有收录

2.1.1主要参数说明
输入文件:fasta 格式。

-species:组装基因组的物种来源。
-lib:如果物种不在species里或者自己有一个更大的重复序列库,可以指定自定义的重复序列库(fasta格式)。要给出绝对路径,否则默认与序列文件在同一目录
-pa:指定进程数。我用的搜索引擎是RMBlast,每次用四个核。因为服务器只有8个核,所以只能设置-pa=2
-xsmall:指定soft masking,以小写字母标识重复序列,其余序列还是大写。默认为hard mask,即用N表示重复序列
-dir:输出文件目录

备注:

2.1.2. 指标简要说明:
列举.out文件各列代表的含义:

2.1.3. 结果文件简要说明:

备注:.tbl文件中类的总和有时会高于子类加和。因为有些重复元素不属于任何一类,还有一些小类没有列出。

2.2 RepeatModeler:

在组装了新物种或RepBase对已知物种存在覆盖度不好的情况下,直接通过现有的RepBase数据库来计算重复序列,可能只找到较少的重复序列。此时Repbase可能已经无法满足我们的需求了。这种情况下可考虑执行重复序列的从头预测,即通过当前的全基因组序列,训练重复序列集构建本地repeat library,再通过RepeatMasker注释重复序列。
2.2.1主要参数说明

BuildDatabase——构建基因组索引
-name: 将要创建的database的名称
-dir:输入文件fasta所处的位置
-batch:一个文件名称,该文件存储了要分析的fasta文件的名称

RepeatModeler——构建library
-database:序列数据库的名称。与BuildDatabase的-name一致
-pa:进程数。

备注:一个线程4个核。所以如果服务器有12个核,-pa应该设成3
2.2.2. 指标简要说明:

没用到什么评估指标。

2.2.3. 结果文件简要说明:

参考链接:http://blog.sciencenet.cn/blog-3406804-1202562.html

2.3. 步骤:

I. 合并RepeatMasker的同源重复库和RepeatModeler的从头预测重复库,构建新库
II. 借助新库,通过RepeatMasker预测重复序列

#!/bin/bash

#1.repeatmasker
/picb/evolgen/users/gushanshan/GenomeAnnotation/RepeatMasker/RepeatMasker/util/queryRepeatDatabase.pl -species Aspergillus > Aspergillus_repeats.lib 

#2.RepeatModeler
BuildDatabase -name Aspergillus ../contigs.fa

RepeatModeler -database Aspergillus -pa 2 >& run.out

#3.combind
cat Aspergillus_repeats.lib Aspergillus-families.fa > myGenome.custom.repeat.lib

#4.run

RepeatMasker -lib myGenome.custom.repeat.lib -pa 2  -xsmall -dir repeat ../contigs.fa

2.4 不同阶段使用不同的基因组

unmasked: EVM合并、从头预测
softmasked:蛋白质预测、转录本预测

备注:

  1. 有时候masking工具会产生一些假阳性结果。softmasking保留了基因组的全部信息,在用gene predictor预测时,如果有转录本可以比对到假阳性区域,它就可能成为一个valid gene。但是,如果我们采用hardmasking方式,预测工具完全不了解这一区域的真实序列,更别提修复了。

  2. 转录本为什么会比对到标示为重复序列的区域呢?
    比对会先选择一个种子,再沿着种子向两侧延伸。不会将重复序列定义为种子,但可以延伸到它。


3. 同源预测

3.1. gth

3.1.1主要参数说明

-species:指定物种,从而选择针对特定物种的贝叶斯剪切位点文件
-gff3out:以gff3格式保存结果
-intermediate:会生成中间文件。如果之后有更新,程序运行会比较快
-duplicatecheck:防止“相同”的参考序列参与分析,有"none","id","desc","seq","both"五种模式。
-translationtable:密码子翻译模式。1是标准模式
-protein:参考蛋白质文件
-genomic:要分析的基因组
-o:输出文件存储位置

详情参考https://www.jianshu.com/p/bb2dcfd4d24f

3.1.2. 指标简要说明:
无。如果非要说有的话,就是gff各列表示的含义。
可以参考https://www.cnblogs.com/djx571/p/9497707.html

3.1.3. 结果文件简要说明:
genomethreader虽然产生了gff文件,但还是需要用evm里的程序进行转换

PATH/EVidenceModeler-1.1.1/EvmUtils/misc/genomeThreader_to_evm_gff3.pl homo_protein.gff3 > evm_pro.gff3
3.2. 程序
gth -species aspergillus -gff3out -intermediate -duplicatecheck seq \
-protein ncbi_Aspergillus_protein_raw.fasta -translationtable 1 \
-genomic contigs.fa.masked \
-o ./output/homo_protein.gff3 

gth -species aspergillus -gff3out -intermediate -duplicatecheck seq \
-cdna ncbi_Aspergillus_est.fasta   -translationtable 1 \
-genomic contigs.fa.masked\
 -o ./output/homo_est.gff3
3.2. exonerate

3.1.1主要参数说明

exonerate \
-q ../ncbi_Aspergillus_est.fasta -t ../../repeat/repeat/contigs.fa.masked  -Q dna -T dna \
--model est2genome --bestn 1 \
--targetchunkid $targetchunkid \
--targetchunktotal 8 \
--softmasktarget TRUE --showtargetgff --showalignment no

-q:query sequence
-t:target sequence
-Q:query type. dna/protein
-T:target type. dna/protein
--model:比对模型。
--bestn:显示每个query的前n个最佳比对
--targetchunkid:n部分中对应的第几部分
--targetchunktotal:把target分成n部分,放在不同节点上运行,加速运算
--softmasktarget :target序列被softmasked
--showtargetgff :以gff格式报告target序列的特征情况
--showalignment:以可读格式显示比对结果

3.1.2. 指标简要说明:
3.1.3. 结果文件简要说明:

4. 从头预测

4.1. augustus

AUGUSTUS用于预测真核生物的基因。其中已经存储了很多物种的训练注释文件,使用还是蛮简单的...

4.1.1主要参数说明
输入文件:fasta格式

--genemodel:有多种模式。默认是partial,允许预测不完整的基因结构;intronless指定预测单外显子基因,比如原核生物
--gff3:on指定以gff3格式输出结果
--exonnames:on指定输出exon。但它会用initial、internal、terminal、single来指代
--protein=off:不输出蛋白质信息
--strand:预测哪条链,有"both","forward","backward"三种模式
--alternatives-from-sampling=false:同一个基因只预测一个转录本
--singlestrand:独立预测每条链的基因,允许相反链上出现基因重叠。默认false
 --species:指定分析的物种,从而选择特定的训练注释文件
augustus --species=aspergillus_fumigatus --strand=both --singlestrand=false --genemodel=partial \
--sample=100 --keep_viterbi=true --alternatives-from-sampling=false \
--exonnames=on  --protein=off \
../contigs.fa > denovo.gtf

备注:
augustus --species=help 查看物种列表
4.1.2. 指标简要说明:
gtf文件各列代表的意思,可以参考https://www.cnblogs.com/djx571/p/9497707.html
4.1.3. 结果文件简要说明:
虽然设置了gff3out ,但输出依旧是gtf文件。EVM里有程序可以把gtf转为evm需要的格式。

PATH/EVidenceModeler-1.1.1/EvmUtils/misc/augustus_GTF_to_EVM_GFF3.pl denovo.gtf > evm_denovo.gff3

备注:
evm中有验证gene_predictions文件格式的程序

PATH/EVidenceModeler-1.1.1/EvmUtils/gff3_gene_prediction_file_validator.pl evm_denovo.gff3
4.2. genemark

genemark在README中详细介绍了为什么程序叫gmes_petap.pl:

GeneMark.hmm  -> gm
Eukaryotic    -> e
Self-training -> s
Plus          -> p
Evidence      -> e
Transcripts   -> t
And           -> a
Proteins      -> p

总结一下,即采用隐马尔可夫模型通过self-training或evidence(transcripts和protein)预测真核生物基因

4.2.1主要参数说明

GeneMark-ES:self-training

--sequence:序列文件,FASTA格式
--ES:代表self-training,不需要设置值

GeneMark-ET:transcript

--sequence:序列文件,FASTA格式
--ET:RNA-Seq read通过剪切比对map到genome上得到的intron坐标文件,gff格式
--et_score:内含子分数阈值(最低)。根据使用的RNA-Seq read 比对工具,需要设置不同的et-score值。TopHat2:10;UnSplicer/TrueSight:0.5。默认10

GeneMark-EP:protein

--sequence:序列文件,FASTA格式
--EP:蛋白质剪切比对map到genome上得到的intron坐标文件,gff格式(ProtHint pipeline的输出结果)
--dbep:FASTA格式的蛋白质库文件
--ep_score:内含子分数阈值

GeneMark.hmm

--predict_with:物种特异性的基因预测参数

intron坐标文件-GFF格式

"seqname"  "source"  "feature"  "start"  "end"  "score"  "strait" "frame" "attribute"
2L     TopHat2 intron  2740    2888    25      +       .       .

tophat result➡️gff
path_to/bed_to_gff.pl  --bet path_to_tophat_out/junctions.bed   --gff introns.gff  --label TopHat2

STAR result➡️gff
path_to/star_to_gff.pl --star path_to_star_out/SJ.out.tab  --gff introns.gff  --label STAR

code

gmes_petap.pl --sequence ../contigs.fa -ES --fungus --cores=8

4.2.2. 指标简要说明:

结果文件每列分别是:

"seqname"  "source"  "feature"  "start"  "end"  "score"  "strait" "frame" "attribute"

4.2.3. 结果文件简要说明:
genemark.gtf:输出结果,gtf格式
gmhmm.mod:genemark的训练模型,可以作为maker的输入

同样,evm中也有转换格式的程序

#两者选一个就可
PATH/EVidenceModeler-1.1.1/EvmUtils/GeneMarkHMM_GTF_to_EVM_GFF3.pl genemark.gtf > evm.genemark.gff3

PATH/maker3/maker/bin/genemark_gtf2gff3 genemark.gtf > evm.genemark.gff3
4.3.glimmerhmm

4.3.1主要参数说明

trainGlimmerHMM <mfasta_file> <exon_file> [optional_parameters]
trainGlimmerHMM GCF_000002655.1_ASM265v1_genomic.fna exonfile.txt -d Aspergillus_train

<mfasta_file>:用于训练的序列数据,fasta格式
<exon_file>:<mfasta_file>中各序列对应的exon坐标。
-i:isochore。如果有两种isochore,GC比例分别是0-40%,40-100%,这里就应该设成 -i 0,40,100。默认是-i 0,100
-d:训练目录

备注:

  1. <exon_file>坐标:正链升序、负链降序,基因间以空行分割。例子中第一个基因位于正链,第二个位于负链
seq1 5 15
seq1 20 34
 
seq1 50 48
seq1 45 36
 
seq2 17 20
  1. isochore:isochore是指对温血动物的基因组片段做密度梯度离心实验时,发现有些基因在离心管中聚集在一层,就像等高线(isochore)。这些基因长度大多长于300kb,GC含量相对均匀,将其被命名为isochore,认为与脊椎动物的温血、冷血与否有关。
    https://www.cnblogs.com/southern-xyx/p/4523304.html
glimmerhmm <genome1-file> <training-dir-for-genome1> [options] 
glimmerhmm ../contigs.fa train/Aspergillus_train -g > glimmerhmm.gff

<genome1-file>:要预测的基因组序列
<training-dir-for-genome1>:训练数据目录
-g:以gff格式输出结果

4.3.2. 指标简要说明:
结果是一个gff文件

4.3.3. 结果文件简要说明:
用evm内置程序转换下格式

PATH/EVidenceModeler-1.1.1/EvmUtils/misc/glimmerHMM_to_GFF3.pl glimmerhmm.gff > evm.glimmergmm.gff3

5.EVM合并

5.1.1主要参数说明

#Partitioning the Inputs
PATH/EVidenceModeler-1.1.1/EvmUtils/partition_EVM_inputs.pl \
--genome ../contigs.fa --gene_predictions gene_predictions.gff3 \
--segmentSize 100000 \
--overlapSize 10000 --partition_listing partitions_list.out

#Generating the EVM Command Set
PATH/EVidenceModeler-1.1.1/EvmUtils/write_EVM_commands.pl \
--genome ../contigs.fa --weights ABSOLUTEPATH/weights.txt \
--gene_predictions gene_predictions.gff3 \
--output_file_name evm.out --partitions partitions_list.out >  commands.list

#run evm
PATH/EVidenceModeler-1.1.1/EvmUtils/execute_EVM_commands.pl commands.list


#Combining the Partitions
PATH/EVidenceModeler-1.1.1/EvmUtils/recombine_EVM_partial_outputs.pl \
--partitions partitions_list.out --output_file_name evm.out


#Convert to GFF3 Format
PATH/EVidenceModeler-1.1.1/EvmUtils/convert_EVM_outputs_to_GFF3.pl  \
--partitions partitions_list.out --output evm.out --genome contigs.fa

#combine these gff3 files into a single output file
find . -regex ".*evm.out.gff3" -exec cat {} \; > EVM_final_result.gff3

#less EVM_final_result.gff3| grep -E "[[:space:]]{1}gene[[:space:]]{1}"| wc -l

weights.txt需要绝对路径

5.1.2文件格式说明
EVM参数都用的默认的,主要是注意输入文件的格式,weight文件的设置要符合要求。

备注:
1.genomethreader的文件应该cat进gene_prediction.gff3文件里,作为OTHER PREDICTION参与合并

2.和evm的开发者brianjohnhaas在github上交流了几天,人家是真的负责,一直在更新软件。这次教训也警示我一定要下载最新的软件,旧版本说不定有什么bug就被我碰到了···

6.导入IGV中查看结果


写在最后:
本文主要参考了https://blog.csdn.net/u012110870/article/details/82500684这篇文章。

三轮轮转的时候老师让做这个,没给提供转录组数据,所以这里就没做转录组的。做到这里其实还是很粗糙,慢慢补充吧,这份文章应该还会更新的···

上一篇下一篇

猜你喜欢

热点阅读