1.導入qiime2前的準備
我簡單處理了下otu序列和表,使它們能導入qiime2,應該是一行shell代碼解決的,shell水平不行,python來頂了。
import os
fout = open('otus.txt', 'w')
fout_otab = open('otab.txt', 'w')
with open('dada2_counts.txt') as f:
i = 1
for line in f:
if i == 1:
fout_otab.write('#OTU\t' + line.split('\t')[0])
i += 1
continue
seq_name = '>OTU' + str(i)
fout.write(seq_name +'\n')
number = line.split('\t')[1]
seq = line.split('\t')[0]
fout.write(seq + '\n')
fout_otab.write(seq_name.split('>')[1] + '\t' + number)
i += 1
fout.close()
fout_otab.close()
2.qiime流程走一回
基本上是參考官方文檔和宏基因組微信公衆號的,
#轉成biom格式
biom convert -i otab.txt -o otab.biom --table-type="OTU table" --to-json
#導入ASV表
qiime tools import \
--input-path otab.biom \
--type 'FeatureTable[Frequency]' \
--input-format BIOMV100Format \
--output-path table.qza
# 導入參考序列
qiime tools import \
--type 'FeatureData[Sequence]' \
--input-path otus.fasta \
--output-path otus.qza
echo 統計並可視化
qiime feature-table summarize \
--i-table table.qza \
--o-visualization table.qzv
echo 代表序列統計並可視化
qiime feature-table tabulate-seqs \
--i-data otus.qza \
--o-visualization otus.qzv
來看看序列,因爲前面已經處理好了,這裏應該是沒有變化的,只是個統計而已。
echo 分類 Taxonomic analysis
qiime feature-classifier classify-sklearn \
--i-classifier gg-13-8-99-515-806-nb-classifier.qza\
--i-reads otus.qza \
--o-classification taxonomy.qza
echo 可視化
qiime metadata tabulate \
--m-input-file taxonomy.qza \
--o-visualization taxonomy.qzv
# 準備sample--metadata.tsv然後畫個柱狀圖
echo 畫圖
qiime taxa barplot \
--i-table table-with-phyla.qza \
--i-taxonomy taxonomy.qza \
--m-metadata-file sample-metadata.tsv \
--o-visualization taxa-bar-plots-p.qzv
這裏就獲得了一個柱狀圖,雖然只的一個樣本,
那麼現在這條路走通了,後面做批量樣本就可以了,只是官方不推薦這麼做的,畢竟,不確定這樣做會有多少物種錯誤分類或者假陽性。還需要後面的驗證,比如跑個模擬菌落,能不能把數據庫優化成和測序數據拼接後一樣的,這樣是不是準確度會更高一點。定製流程是一個比較有難度的活。
qiime2的簡單探索暫時就到這裏,後面繼續接着用兩個R包進行物種註釋看看結果,方便的話比較一下兩者的差別。然後學習一下phyloseq進行分析,這個包好像也比較有名,基本上還是官方文檔的小參數修改而已。
前面已經進行的探索有: