納米孔Nanopore-16S數據分析學習筆記

1.下載原始數據

本次學習分析的文章是這篇:https://academic.oup.com/gigascience/article/7/12/giy140/5202451 這篇文章的原始數據有點問題,使用sra和ena資料庫直接下載都基本上會失敗,sra只能下到一個10M左右的數據,轉換格式成fastq後只能獲得4.6M的數據。最後使用aspera connect下載可以成功。命令如下,我是黑果,其他系統格式應該類似,軟體安裝和使用參見我前面的學習記錄。https://jiawen.zd200572.com/916.html

ascp -QT -l 3000m -P33001 -L- -k1 -i   asperaweb_id_dsa.openssh   [email protected]:vol1/run/ERR224/ERR2241542/RAW_R9.5_1_organism.tar.gz   BioData/Nanopore/

下載的數據沒有通過完整性測試,沒辦法進行下一步分析。後面重新下載了原始數據,見下面:

wget -c ftp://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByRun/sra/ERR/ERR224/ERR2241540/ERR2241540.sra

2.把下載的fastq格式轉為fasta

其實這是一個很簡單的過程,即使自己用個腳本或者使用命令行也能解決,介於想要重複作者結果,就按作者的原步驟進行。

#新建一個python2的conda環境  conda create -n python2 python=2  #安裝依賴  conda install  -y  biopython=1.65    blast seqtk numpy vsearch mafft-ginsi  # seqtk轉換fastq到fasta  seqtk seq  ERR2241540.fastq -a > ERR2241540.fasta

3.獲得共識序列

這裡走了點彎路,其實本文的參考文獻里說明了是使用INC-seq這個流程進行前處理的,找到這個流程的github倉庫,就可以使用了。

git clone https://github.com/CSB5/INC-Seq.git  ############我是分界線,以下是我走的彎路#######  #安裝三代糾錯軟體,卡在這好久,docker下載會卡住失敗,源碼編譯會下載一個不存在的boost_1_58_0-headersonly.tbz2文件,最後用conda解決(友情提示,只有linux-64版本)  conda install pbdagcon -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/  #########這些分界線包著的是不需要的步驟,都包含在了INC-seq的腳本里####  #開始獲得共識序列#  ./inc-seq.py -i  ERR2241540.fasta -o consensus.fa  --copy_num_thre 3  --iterative  -a poa  #INC-seq的流程包含了三個比對方法(blastn,  graphmap, poa),默認是採用blastn的,依照文章作者的參數,--copy_num_thre 3  --iterative ,只有poa方法能夠獲得共識序列,blastn提示:      #Warning: [blastn] Examining 5 or more matches is recommended      #Warning: [blastn] Examining 5 or more matches is recommended      #Warning: [blastn] Examining 5 or more matches is recommended      #Warning: [blastn] Examining 5 or more matches is recommended      #PBDAGCON failed (trimmed more than 100 bases)!      #Consensus construction failed!  #graphmap提示Candidate read found!      #PBDAGCON failed (trimmed more than 100 bases)!      #Consensus construction failed!  #完成後的文件列表在這裡,當然,只有poa有結果。可以看出序列利用率是比較低的,好多序列由於長度不夠,或者發現的片段不一致而過濾掉了。  tree -h  .  ├── [ 183]  bpipe.config  ├── [   0]  consensus-blastn.fa  ├── [   0]  consensus-gra.fa  ├── [150K]  consensus-poa.fasta  ├── [4.0K]  data  │   └── [ 17K]  inc_seq_test_read.fa  ├── [2.3M]  ERR2241540.fasta  ├── [4.6M]  ERR2241540.fastq  ├── [7.4K]  inc-seq.py  ├── [1.4K]  LICENSE  ├── [1.2K]  pipeline.bpipe  ├── [3.0K]  README.md  └── [4.0K]  utils  

4.共識序列方向校正

python chopSEQ.py -i ../../consensus-poa.fasta -l 1300   -m 1450 -f AGRGTTTGATCMTGGCTCAG -r GGGCGGWGTGTACAAG   > chop.fasta

5.獲得otu表

awk -v k="Sample1" '/^>/{gsub(">","",$0);   $0=">barcodelabel="k";"$0}1' chop.fasta   > Sample1_barcode.fa
python nanoCLUST.py -i Sample1_barcode.fa   -o ./nano -s 0,450,451,900,901,1300

比較遺憾,儘管沒有報錯,卻沒有得出結果,otu表為空,或許是原始數據有問題,或許前面參數出了問題,做了個探索。