由于原核生物編碼基因不包含內含子,由連續的編碼區構成開放閱讀框(ORF),編碼區具有容易辨別的序列特征,基因預測準確性較高。
prokka 和 metaGeneMark 均為常用宏基因組注釋軟件,這里使用 prokka進行基因預測。
prokka是一個整合流程,調用prodigal進行ORF預測,并結合其他軟件進行ncRNA等預測,輸出多種格式結果
- 準備輸入文件
B1.contigs.fa
基因預測
prokka \
--outdir B1_prokka \ # 輸出目錄
--prefix B1 \ # 輸出文件前綴
--addgenes \ # 添加gene信息
--addmrna \ # 添加mrna信息
--locustag B1 \ # 基因ID添加tag
--kingdom Bacteria \ #物種分類Archaea|Bacteria|Mitochondria|Viruses
--metagenome \ # 宏基因組模式
--cpus 8 \ # 線程數
./B1.contigs.fa # 輸入文件
-
主要結果:
B1.faa : 預測的氨基酸序列文件
B1.ffn :預測出的轉錄本序列
B1.fna :輸入的基因組文件
B1.fsa :添加Sequin tags的基因組文件
B1.gbf :Genbank格式注釋結果
B1.gff :gff3格式注釋結果
B1.sqn :ASN1 格式 Sequin文件,修改后可用于提交Genbank
B1.tbl : Feature Table, 創建sequin文件使用
B1.tsv : features: locus_tag,ftype,len_bp,gene,EC_number,COG,product
B1.txt : 注釋結果統計信息
- 對多個樣品基因預測結果去冗余,得到 unigene:
## 將多樣品轉錄本和氨基酸序列分別合并
cat ./*.ffn > all.trans.fa
cat ./*.faa > all.pep.fa
## 提取編碼序列ID
sed -n "s/?>\(\S\+\).*$/\1/p" all.pep.fa > all.cds.id
## 基于ID提取CDS序列
seqtk subseq all.trans.fa all.cds.id > all.cds.fa
## 對CDS進行聚類
cd-hit-est \
-i all.cds.fa \ # 輸入數據
-o all.cds.cdhit \ # 輸出數據
-c 0.95 \ # 相似性大于等于95%的為一類
-aS 0.9 \ # 控制短序列比對嚴格程度,表示比對區間要占到短序列的90%
-M 32000 \ #使用的內存32G
-T 8 # 使用的線程數
輸出結果文件:
all.cds.cdhit : unigene 序列文件
all.cds.cdhit.clstr:聚類cluster信息基于 unigene ID提取其氨基酸序列
# 提取原始unigene ID
awk '$1 ~/?>/{print $1}' all.cds.cdhit | sed 's/?>//' > unigene.id
# 基于unigene ID 提取其氨基酸序列文件
seqtk subseq all.pep.fa unigene.id > unigene_pep.fasta
# 改名
mv all.cds.cdhit unigene_cds.fasta
- 輸出結果:
unigene_cds.fasta :unigene CDS序列文件
unigene_pep.fasta :unigene 氨基酸序列文件