1.在uniprot下载fungi蛋白质序列
在uniport数据库输入taxonomy:fungi AND reviewed:yes查找蛋白质相关数据,总共找到33905条序列,下载并解压。
2.创建本地数据库
使用makeblastdb程序,对上述FASTA格式的基因组序列进行处理,建立本地BLAST数据库。
/opt/BioBuilds/bin/makeblastdb -in GCA_000977205.2_Sc_YJM1338_v1_genomic.fna -input_type fasta -title yjm1338 -dbtype nucl -out yjm1338
3.全基因组的同源基因搜索
使用tblastn程序,把已知蛋白质序列和上述建立的本地BLAST数据库进行比对。
nohup tblastn -query uniprot-taxonomy%3Afungi+reviewed%3Ayes.fasta -db yjm1338 -out ./blastx_results.outfmt6 -evalue 1e-5 -outfmt 6 -max_target_seqs 1 -num_threads 10 &
nohup tblastn -query uniprot-taxonomy%3Afungi+reviewed%3Ayes.fasta -db yjm1338 -out ./blastx_results.outfmt7 -evalue 1e-5 -outfmt 7 -max_target_seqs 1 -num_threads 10 &
使用blast92gff3.pl和blast2gff.py程序,分别把结果转成GFF3格式
Python转化
python2 blast2gff.py -b blastx_results.outfmt6 -t gene -p sp -F >results_py.gff3
去除低质量的序列,共找到36367条序列
Perl转化
perl blast92gff3.pl -geneType gene -exonType exon blastx_results.outfmt6 > results_pl.gff3
Python转化的结果不包含exon,当去除低质量的序列后,序列条数少于perl转化的结果。
- 同源搜索结果的评估
使用gffcompare工具把Perl转化后的结果与原始GFF格式数据进行比较,查看结果,并分析它们之间的异同之处。
./gffcompare -r file/GCA_000977205.2_Sc_YJM1338_v1_genomic.gff -o compare file/outresult6_pl.gff3
查看compare.stats结果
从compare.stats的结果看出碱基水平及基因水平结果比较好,外显子水平及转录本水平比较差,但可信度高;内含子结果差且可信度不高。从结果看出,同源搜索在预测结构方面并不是很好。
附录
关于Sensitivity和Precision
计算公式如下:
Sensitivity = TP / (TP+FN)
Precision = TP / (TP+FP)
例如,现在从一堆有好有坏的西瓜中挑好瓜,好坏各50个。二狗认为所有的都是好瓜,则TP、FP=50,则Sensitivity是100%,但这可信吗?很明显瓜中有坏瓜,所以不可信,此时需要考虑Precision,Precision=50%,而小明认为其中1个好瓜(这一个确实是好瓜),99个坏瓜,则,Sensitivity =1.96%,Precision=100%,预测的好瓜特别对,但数量少。所以需要综合考虑Sensitivity和Precision 。