RNA-Seq数据组装得到的转录本具有编码蛋白质的能力。预测编码区对于确定转录产物在细胞中的分子作用至关重要!!!
通过Cufflinks或Stringtie得到的gtf文件,所以需要准备如下两个文件:
transcripts.gtf: 你自己的RNA-seq数据经过Cufflinks,或Stringtie得到的gtf文件,记录预测转录本的GTF文件
genome.fasta: 参考基因组序列
第一步:依据参考genome.fasta文件,从gtf文件中提取fasta序列。
conda activate python3 #进入环境
TransDecoder.Predict #启动TransDecoder
###基于mm10的 Tophat结果
示例:
gtf_genome_to_cdna_fasta.pl trans.gtf /xx/xx/Mus_musculus.GRCm38.dna.toplevel.fa > trans.fa
操作路径于:/home/u20111230014/workspace/tran_gtf_ZF
PS: DPP-0_transcripts.gtf和 mm10.fa必须在同一个文件夹
实例:
gtf_genome_to_cdna_fasta.pl DPP-0_transcripts.gtf mm10.fa > DPP-0_mm10_trans.fa
gtf_genome_to_cdna_fasta.pl DPP-1_transcripts.gtf mm10.fa > DPP-1_mm10_trans.fa
###基于GRCm39的 Tophat结果
操作所在路径:/home/u20111230014/workspace/genome/GRCm39/tophat_gtf_genome_to_cdna
实例
将所有所需要的文件软连接到同一文件夹
ln -s /home/u20111230014/workspace/genome/GRCm39/Tophat_Cufflinks_DPP-0_clean.fq/transcripts.gtf DPP-0_GRCm39_transcripts.gtf
gtf_genome_to_cdna_fasta.pl DPP-0_GRCm39_transcripts.gtf GRCm39.fa > DPP-0_GRCm39_trans.fa
gtf_genome_to_cdna_fasta.pl DPP-1_GRCm39_transcripts.gtf GRCm39.fa > DPP-1_GRCm39_trans.fa
第二步:将gtf文件转换为gff3格式(只是为了后续分析)。
示例
gtf_to_alignment_gff3.pl trans.gtf > trans.gff3
实例
###基于mm10的 Tophat结果
操作路径于:/home/u20111230014/workspace/tran_gtf_ZF
gtf_to_alignment_gff3.pl DPP-0_transcripts.gtf > DPP-0_mm10_trans.gff3
gtf_to_alignment_gff3.pl DPP-1_transcripts.gtf > DPP-1_mm10_trans.gff3
###基于GRCm39的 Tophat结果
操作所在路径:/home/u20111230014/workspace/genome/GRCm39/tophat_gtf_genome_to_cdna
软连接脚本:
ln -s /home/u20111230014/workspace/tran_gtf_ZF/gtf_to_alignment_gff3.slurm tophat_gtf_to_alignment_gff3.slurm
实例
gtf_to_alignment_gff3.pl DPP-0_GRCm39_transcripts.gtf > DPP-0_GRCm39_trans.gff3
gtf_to_alignment_gff3.pl DPP-1_GRCm39_transcripts.gtf > DPP-1_GRCm39_trans.gff3
第三步:预测转录本中长的开放阅读框,-m参数设置为300个氨基酸。并进行blastp和hmmer比对。
示例
TransDecoder.LongOrfs -m 300 -t trans.fa
实例
TransDecoder.LongOrfs -m 300 -t DPP-0_mm10_trans.fa
TransDecoder.LongOrfs -m 300 -t DPP-1_mm10_trans.fa
第四步:为了提高预测的灵敏度,与已知的蛋白数据库进行比对,探索同源性。
1) blastp search
选用Swissprot数据库的蛋白序列,下载uniprot_sprot.fasta.gz,网址是ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/
解压缩
gunzip uniprot_sprot.fasta.gz
建blast+库于路径:/home/u20111230014/workspace/genome
#### 建数据库
makeblastdb -in uniprot_sprot.fasta -dbtype prot -parse_seqids -hash_index -out uniprot
## makeblastdb参数说明:
-in 输入数据库文件
-dbtype 蛋白库用prot,核酸用nucl
-out 所建数据库的名称
-parse_seqids
-hash_index 创建哈希序列
数据比对
###基于mm10.fa的比对
操作路径在:/home/u20111230014/workspace/tran_gtf_ZF
index文件:uniprot的11个子文件,再加上一个uniprot_sprot.fasta,共12个
示例:
blastp -query trans.fa.transdecoder_dir/longest_orfs.pep -db uniprot -max_target_seqs 1 -outfmt 6 -evalue 1e-5 -num_threads 10 > blastp.outfmt6 &
实例:
blastp -query DPP-0_mm10_trans.fa.transdecoder_dir/longest_orfs.pep -db uniprot -max_target_seqs 1 -outfmt 6 -evalue 1e-5 -num_threads 10 > DPP-0_mm10_blastp.outfmt6
!!!PS: 如果报错:BLAST Database error: No alias or index file found for nucleotide database [nt] in search path, 必须将uniprot的index,共12个文件,跟要跑的所有文件放在一起才行,如下:
(python3) [u20111230014@cpu10 tran_gtf_ZF]$ ll uniprot*
lrwxrwxrwx 1 u20111230014 u20111230014 43 Feb 23 16:23 uniprot -> /home/u20111230014/workspace/genome/uniprot
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.pdb -> /home/u20111230014/workspace/genome/uniprot/uniprot.pdb
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.phd -> /home/u20111230014/workspace/genome/uniprot/uniprot.phd
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.phi -> /home/u20111230014/workspace/genome/uniprot/uniprot.phi
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.phr -> /home/u20111230014/workspace/genome/uniprot/uniprot.phr
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.pin -> /home/u20111230014/workspace/genome/uniprot/uniprot.pin
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.pog -> /home/u20111230014/workspace/genome/uniprot/uniprot.pog
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.pos -> /home/u20111230014/workspace/genome/uniprot/uniprot.pos
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.pot -> /home/u20111230014/workspace/genome/uniprot/uniprot.pot
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.psq -> /home/u20111230014/workspace/genome/uniprot/uniprot.psq
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.ptf -> /home/u20111230014/workspace/genome/uniprot/uniprot.ptf
lrwxrwxrwx 1 u20111230014 u20111230014 55 Feb 24 18:32 uniprot.pto -> /home/u20111230014/workspace/genome/uniprot/uniprot.pto
lrwxrwxrwx 1 u20111230014 u20111230014 63 Feb 23 16:28 uniprot_sprot.fasta -> /home/u20111230014/workspace/genome/uniprot/uniprot_sprot.fasta
如果还是报同样的错,就换一种方法:下载preformatted的数据库!
去到miniconda下 blast包里含update_blastdb.pl文件的路径,用perl 更新一下数据库
!!!blast软件所在的位置:/home/u20111230014/miniconda3/pkgs/blast-2.12.0-h3289130_3/bin
先查看数据库列表:
(python3) [u20111230014@cpu10 bin]$ perl update_blastdb.pl --showall
Connected to NCBI
16S_ribosomal_RNA
18S_fungal_sequences
28S_fungal_sequences
Betacoronavirus
ITS_RefSeq_Fungi
ITS_eukaryote_sequences
LSU_eukaryote_rRNA
LSU_prokaryote_rRNA
SSU_eukaryote_rRNA
env_nt
env_nr
human_genome
landmark
mito
mouse_genome
nr
nt
pataa
patnt
pdbaa
pdbnt
ref_euk_rep_genomes
ref_prok_rep_genomes
ref_viroids_rep_genomes
ref_viruses_rep_genomes
refseq_select_rna
refseq_select_prot
refseq_protein
refseq_rna
swissprot
tsa_nr
tsa_nt
taxdb
###再选择需要的数据库进行更新下载:
perl update_blastdb.pl nr #nr 是蛋白质, nt是核酸
!!!PS:nohup挂在后台下载,中途如果超时的话,需重新执行命令就行,之前下载好的不用重新执行!!!大概有十几个文件,下好批量解压命令:ls *.tar.gz | xargs -n1 tar xzvf
基于GRCm39.fa的比对
操作路径在:/home/u20111230014/workspace/genome/GRCm39/tophat_gtf_genome_to_cdna/
index文件:uniprot的11个子文件,再加上一个uniprot_sprot.fasta,共12个
实例
blastp -query DPP-0_mm10_trans.fa.transdecoder_dir/longest_orfs.pep -db uniprot -max_target_seqs 1 -outfmt 6 -evalue 1e-5 -num_threads 10 > DPP-0_mm10_blastp.outfmt6
2) Pfam search
在建立索引数据库hmmpress Pfam-A.hmm成功后,使用 hmmscan 进行 Pfam 注释
conda activate python3 #进入环境
hmmbuild --help #启动
Pfam-A存放于:hmm=/home/u20111230014/workspace/genome/Pfam-A/Pfam-A.hmm
PS: 执行hmmscan 前输入上面的路径指示,或直接写入slurm脚本
进入存放转换格式好的样本tran.fa文件目录
cd /home/u20111230014/workspace/tran_gtf_ZF
(python3) [u20111230014@cpu6 tran_gtf_ZF]$ ll *mm10_trans.fa
-rw-rw-r-- 1 u20111230014 u20111230014 38711086 Feb 23 15:26 DPP-0_mm10_trans.fa
-rw-rw-r-- 1 u20111230014 u20111230014 38539068 Feb 23 15:28 DPP-1_mm10_trans.fa
-rw-rw-r-- 1 u20111230014 u20111230014 45990886 Feb 23 15:31 DPP-2_mm10_trans.fa
-rw-rw-r-- 1 u20111230014 u20111230014 39814002 Feb 23 15:34 DPP-3_mm10_trans.fa
-rw-rw-r-- 1 u20111230014 u20111230014 33385081 Feb 23 15:37 DPP-4_mm10_trans.fa
-rw-rw-r-- 1 u20111230014 u20111230014 38240368 Feb 23 15:40 DPP-5_mm10_trans.fa
示例:
hmmscan --cpu 8 -o hmm_pfam.trans.txt --tblout hmm_pfam.trans.tbl --noali -E 1e-5 $hmm trans.fa
###参数说明
-o FILE 将结果输出到指定的文件中。默认是输出到标准输出
--tblout FILE 将蛋白质家族的结果以表格形式输出到指定的文件中。默认不输出该文件
--domtblout FILE 将蛋白结构域的比对结果以表格形式输出到指定的文件中。默认不输出该文件。该表格中包含query序列起始结束位点与目标序列起始结束位点的匹配信息
--acc 在输出结果中包含 PF 的编号,默认是蛋白质家族的名称
--noali 在输出结果中不包含比对信息。输出文件的大小则会更小
-E FLOAT default:10.0 设定 E_value 阈值,推荐设置为 1e-5
-T FLOAT 设定 Score 阈值
--domE FLOAT default:10.0 设定 E_value 阈值。该参数和 -E 参数类似,不过是 domain 比对设定的值
--cpu 线程
实例脚本:
hmm=/home/u20111230014/workspace/genome/Pfam-A/Pfam-A.hmm
hmmscan --cpu 25 -o DPP-0_mm10_hmm_pfam.trans.txt --tblout DPP-0_mm10_hmm_pfam.trans.tbl --noali -E 1e-5 $hmm DPP-0_mm10_trans.fa
hmmscan --cpu 25 -o DPP-1_mm10_hmm_pfam.trans.txt --tblout DPP-1_mm10_hmm_pfam.trans.tbl --noali -E 1e-5 $hmm DPP-1_mm10_trans.fa
####
hmmscan --cpu 25 -o DPP-0_GRCm39_hmm_pfam.trans.txt --tblout DPP-0_GRCm39_hmm_pfam.trans.tbl --noali -E 1e-5 $hmm DPP-0_GRCm39_trans.fa
hmmscan --cpu 25 -o DPP-1_GRCm39_hmm_pfam.trans.txt --tblout DPP-1_GRCm39_hmm_pfam.trans.tbl --noali -E 1e-5 $hmm DPP-1_GRCm39_trans.fa
第五步:结合blastp和pfam的结果预测可能的编码区。
TransDecoder.Predict #启动
示例:
TransDecoder.Predict -t trans.fa --retain_pfam_hits hmm_pfam.trans.tbl --retain_blastp_hits blastp.outfmt6
实例:
TransDecoder.Predict -t DPP-0_GRCm39_trans.fa --retain_pfam_hits DPP-0_GRCm39_hmm_pfam.trans.tbl --retain_blastp_hits DPP-0_GRCm39_blastp.outfmt6
第六步: 生成基于参考基因组的编码区注释文件
示例:
cdna_alignment_orf_to_genome_orf.pl trans.fa.transdecoder.gff3 trans.gff3 trans.fa > trans.fa.transdecoder.genome.gff3
实例:
cdna_alignment_orf_to_genome_orf.pl DPP-0_mm10_trans.fa.transdecoder.gff3 DPP-0_mm10_trans.gff3 DPP-0_mm10_trans.fa > DPP-0_mm10_trans.fa.transdecoder.genome.gff3
最终输出结果文件如下:
trans.fa.transdecoder.pep: 最终预测的CDS对应的蛋白序列
trans.fa.transdecoder.cds: 最终预测的CDS序列
trans.fa.transdecoder.gff3: 最终ORF对应的GFF3
trans.fa.transdecoder.bed: 以BED格式存放ORF位置信息
trans.fa.transdecoder.genome.gff3: 基于参考基因组的GFF3文件
BED和GFF3文件可以使用IGV可视化。
参考:([小张聊科研])https://mp.weixin.qq.com/s?src=11×tamp=1645587577&ver=3637&signature=ydPEWFG06TSywWPWpAOTRgJNtSQ2BUEOlUYjQZV3OGiZKZxJmIp2mHe9bWlV3UDcnKn0p1K0SWstUxzPQyTmCKC7GdYDBRdHKhKYct*vh-mH-qsE4a4A-TBNazUb&new=1
生信分析师高端
http://dl2.kerwin.cn:8063/csdn/key/article-a_giant_pig-103065967/auth/1645608443-2022062317272318-0-2af5159d4f371312acc26ac982c48187
卡西莫多的礼物
https://blog.csdn.net/qq_35696312/article/details/104779347