文章仅是记录自己的学习使用,有错误请指出,我立刻改正!
官方说明:https://github.com/PASApipeline/PASApipeline/wiki
一、Conda安装PASA
(一)软件安装
##conda环境##
conda create -n PASA
conda activate PASA
##PASA安装##
conda install -c bioconda pasa
conda install -c bioconda samtools=1.9
conda install -c bioconda samtools openssl=1.0
conda install -c bioconda gmap=2018.03.25
#1、可以选择不使用gmap(只使用blat),这样就不用更新gmap,gmap=2017.11.15和conda的环境有冲突,会导致报错。
(二)配置文件
##编辑比对配置文件##
cd pasa_conf
cp pasa.alignAssembly.Template.txt alignAssembly.config
vi alignAssembly.config
DATABASE=/tmp/mydb.sqlite
validate_alignments_in_db.dbi:--MIN_PERCENT_ALIGNED=80
validate_alignments_in_db.dbi:--MIN_AVG_PER_ID=80
##环境变量##
export PATH=/home/miniconda2/envs/PASA/bin:$PATH
export PATH=/home/miniconda2/envs/PASA/opt/pasa-2.4.1/bin:$PATH
二、设置污染数据库进行过滤
##配置UniVec数据库##
wget ftp://ftp.ncbi.nih.gov/pub/UniVec/UniVec
makeblastdb -in UniVec -dbtype nucl -parse_seqids -title UniVec -out UniVec
#1、UniVec是一个数据库,可用于快速识别核酸序列中可能来自载体来源(载体污染)的片段。
#2、formatdb和makeblastdb的效果一样。
##通过污染数据库进行过滤##
tools=/home/miniconda2/envs/PASA/opt/pasa-2.4.1/bin
$tools/seqclean \
all_transcripts.fasta \
-v /home/PASA/UniVec
#1、输出的all_transcripts.fasta.clean、all_transcripts.fasta.cln以及all_transcripts.fasta要在同一个文件夹里,否则后面运行时会报错。
#2、依据处理需求下载不同数据库,现在的NGS数据一般不需要过滤。
三、map到参考基因组(主程序)
pasa_dir=/home/miniconda2/envs/PASA/opt/pasa-2.4.1/bin
$pasa_dir/Launch_PASA_pipeline.pl \
-c alignAssembly.config \
-C -R \
-g genome_sample.fasta \
-t all_transcripts.fasta.clean \
-T -u all_transcripts.fasta \
--ALIGNERS blat,gmap --CPU 20
#1、--ALIGNERS调用的比对的软件(gmap、blat),可以单独或一起使用。
#2、如前面不进行clean,直接对fasta文件进行mapping,则删去-T -u参数,将转录本文件放在-t参数后。
#3、二次调用主程序前,需要删除数据库文件或者修改配置文件中的数据库名(DATABASE=/tmp/mydb.sqlite)。
(一)参数说明:
-c:设置比对配置文件,可以把配置文件放在自定义目录下
-C :flag create MYSQL database
-R :flag run alignment/assembly pipeline
-g:设置基因组文件
-t:设置转录本过滤后的.clean文件
-T:flag,transcript db were trimmed using the TGI seqclean tool
-u :设置转录本文件
--MAX_INTRON_LENGTH /-I :GMAP or BLAT 所需的最大内含子,默认值为100000
--IMPORT_CUSTOM_ALIGNMENTS_GFF3:only using the alignments supplied in the corresponding GFF3 file
(二)输出结果:
-
使用blat/gmap将 all_transcripts.fasta 文件与基因组样本.fasta 对齐。生成的文件包括:
'sample_mydb_pasa.validated_transcripts.gff3/gtf/bed':有效比对
'sample_mydb_pasa.failed_gmap_alignments.gff3/gtf/bed':验证测试失败的比对
'alignment.validations.output':描述对齐验证结果,以制表符分隔 -
根据基因组比对位置将正确的比对聚类,并使用 PASA 比对组装器进行装配。生成的文件包括:
'sample_mydb_pasa.assemblies.fasta':FASTA 格式的 PASA 装配结果 'sample_mydb_pasa.pasa_assemblies.gff3/gtf/bed':PASA 装配结构结果
'sample_mydb_pasa.pasa_alignment_assembly_building.ascii_illustrations.out':装配程序集的描述以及它们是如何从底层转录本比对中构建的 -
'sample_mydb_pasa.pasa_assemblies_scribed.txt':制表符分隔的格式,描述 PASA 装配集的内容,包括装配到相应结构中的转录本
四、其他功能
(一)根据PASA结果提取ORF
pasa_dir= tools=/home/miniconda2/envs/PASA/opt/pasa-2.4.1
$pasa_dir/scripts/pasa_asmbls_to_training_set.dbi \
--pasa_transcripts_fasta sample_mydb.assemblies.fasta \
--pasa_transcripts_gff3 sample_mydb.pasa_assemblies.gff3
#1、要在运行完主程序的文件夹下运行,不然会产生报错。
#输出结果:
#sample_mydb.assemblies.fasta.transdecoder.cds/pep/gff3/bed: ORF序列
#sample_mydb.assemblies.fasta.transdecoder.genome.bed/gff3: 预测产生的ORF对应基因组的结构文件
(二)基因组注释提升
##检查gff3文件与PASA 兼容性##
pasa_dir=/home/miniconda2/envs/PASA/opt/pasa-2.4.1/bin
perl $pasa_dir/misc_utilities/pasa_gff3_validator.pl orig_annotations_sample.gff3
#1、pasa_gff3_validator.pl 将显示gff3 文件中pasa无法识别、理解或无法正确加载的gene注释信息行。
#2、提交的gff3注释文件中的每个基因必须有相应的CDS序列。
#3、文件必须要是gff3格式。
##加载gff3文件##
$pasa_dir/scripts/Load_Current_Gene_Annotations.dbi \
-c alignAssembly.config \
-g genome_sample.fasta \
-P orig_annotations_sample.gff3
##比较注释比较并更新的gff3文件##
$pasa_dir/Launch_PASA_pipeline.pl \
-c annotCompare.config -A \
-g genome_sample.fasta \
-t all_transcripts.fasta.clean \
--CPU 20
#1、-A compare to annotated genes。-R 用于比对transcripts , -A 用于和已有gff3注释文件的比较和更新。
#2、PASA 将输出一个新的 GFF3 文件,其中包含 PASA 更新版本的基因组注释,包括 PASA 成功更新的那些基因模型,以及那些保持不变的基因模型。mysql_db.gene_structures_post_PASA_updates.pid.gff3(pid 是进程 ID)
#3、一个较完整gff3注释文件通常需要至少两轮的注释加载、注释比较和注释更新,才能最大程度地将转录本对齐并入基因结构中。
#4、alignAssembly.config文件。将 $PASAHOME/pasa_conf/pasa.annotationCompare.Template.txt 文件复制到工作目录中作为“annotCompare.config”。然后,像之前一样使用 alignAssembly.config 文件那样将 MYSQLDB=< MYSQLDB> 替换为 MYSQLDB=/tmp/mydb.sqlite。
网友评论