我們用來練手的文章發表在 Nature Communication ,"High contiguity Arabidopsis thaliana genome assembly with a single nanopore flow cell", 非常不要臉的說,這篇文章是我師爺實驗室發的。
簡單講講故事內容,就是他們實驗室買了一臺nanopore儀器,就是下面這臺, 目前儀器價格國內是8K左右,當然測序的價格就另說了。如同買臺PS4主機,還要買游戲,買個單反,你還得買鏡頭。儀器只是敗家的開始!
他們認為三代測序目前有兩大問題,測的還不夠長以及不夠準。nanopore解決了其中一個問題,不夠長。Arabidopsis thaliana 當年用一代測序,雖然可以認為是組裝的金標準了,但是還是有很多區域是BAC連BAC文庫搞不定的,所以就用這臺儀器把 Arabidopsis thaliana 測了一波。顯然就測一個nanopore,還是已知序列的物種是不可能發文章的,于是他們又用Pacbio sequel測了一波。最后用bionano 光學圖譜驗證了一次(請大家自行計算要多少錢)。
光測序不行,還得組裝對吧。傳統的組裝方法是想辦法利用高深度和隨機錯誤進行糾錯,然后用糾錯后的長序列進行組裝,最后用二代進行糾錯。對于一臺不錯的服務器(20W起步吧)大約花個十天半個月就行。作者或許認為買一臺20多w的外設配合不到1w的測序儀可能是太蠢了,于是他用了比較Li Heng大神開發的工具,Minimap+miniasm進行組裝,然后用racon+pillon進行糾錯,用了一臺Macbook Pro 15.6寸花了4天就搞定了,并且和常規工具比較,還算過得去哦。
下面就是正式的分析:
根據文章提供的項目編號"PRJEB21270", 在European Nucleotide Archive上找到下載地址。
進入這個頁面之后,就可以去下載作者用到的所有數據,我們下載Sequel和MinIon和Illuminia的數據就好了,數據量加起來差不多30G。
## Sequal
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116568/bam/pb.bam
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116568/bam/pb.bam.bai
## MinION
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116595/fastq/ont.fq.gz
# Illuminia MiSeq
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116569/fastq/il_1.fq.gz
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116569/fastq/il_2.fq.gz
拿到數據之后,我們就可以用作者提供的分析流程進行重復了。地址為https://github.com/fbemm/onefc-oneasm/wiki/Assembly-Generation
這就是大神的自信,把代碼都給你,反正你也看不懂。當然我在重復的時候用的都是最新的軟件,所以會有所不同
第一步:拿著80%~90%正確率的原始數據相互比對, 找序列之間的Overlap。這一步,我花了30分鐘
time ~/opt/biosoft/minimap2/minimap2 -t 10 -x ava-ont ont.fq ont.fq > gzip -1 ont.paf.gz &
第二步:找到Overlap,就能夠進行組裝了。這一步我花了2分鐘
time ~/opt/biosoft/miniasm/miniasm -f ont.fq ont.paf > ONTmin.gfa &
awk '/^S/{print ">"$2"\n"$3}' ONTmin.gfa | seqkit seq > ONTmin_IT0.fasta &
第三步: 原始的組裝結果充滿了錯誤,所以需要進行糾錯。糾錯分為兩種,一種是用三代自身數據,一種是用二代數據進行糾錯。當然這兩步都是需要的
首先使用三代數據進行糾錯,古語有云“事不過三”一般迭代個三次就差不多。這三步,差不多用了1個小時。
# Iteration 1
~/opt/biosoft/minimap2/minimap2 ONTmin_IT0.fasta ont.fq > ONTmin_IT0.paf &
time ~/opt/biosoft/racon/build/bin/racon -t 10 ont.fq ONTmin_IT0.paf ONTmin_IT0.fasta > ONTmin_IT1.fasta &
# Iteration 2
~/opt/biosoft/minimap2/minimap2 ONTmin_IT1.fasta ont.fq > ONTmin_IT1.paf
time ~/opt/biosoft/racon/build/bin/racon -t 10 ont.fq ONTmin_IT1.paf ONTmin_IT1.fasta> ONTmin_IT2.fasta
# Iteration 3
~/opt/biosoft/minimap2/minimap2 ONTmin_IT2.fasta ont.fq > ONTmin_IT2.paf
time ~/opt/biosoft/racon/build/bin/racon -t 10 ont.fq ONTmin_IT2.paf ONTmin_IT2.fasta > ONTmin_IT3.fasta
之后使用二代數據進行糾錯。二代數據雖然短,但是測序質量高,所以一般都要用它進行糾錯。推薦用30X PCR free的illuminia 測序數據。
Step 1: 數據預處理,過濾低質量短讀,去接頭。工具很多,常用的是trimmomatic,cutadapter. 我安利一個國內海普洛斯搞的一個工具fastp。
# data clean
fastp -q 30 -5 -l 100 -i il_1.fq.gz -I il_2.fq.gz -o i1_clean_1.fq -O i1_clean_2.fq
這里標準為:平均質量高于Q30,對5‘端進行低質量堿基刪除,保留大于100bp的短讀
Step2: 比對,這一步基本都只用了bwa了
# align
bwa index ONTmin_IT3.fasta
bwa mem -t 8 ONTmin_IT3.fasta il_clean_1.fastq il_clean_2.fastq | samtools sort -@ 8 > ONTmin_IT3.bam
step3: 使用比對后的BAM文件進行糾錯
# short read consensus call
java -Xmx16G -jar pilon-1.22.jar --genome ONTmin_IT3.fasta --frags ONTmin_IT3.bam --fix snps --output ONTmin_IT4
二代糾錯的時間明顯比之前的久,需要一天時間。
大家拿出自己的筆記本實際感受下唄
參考文獻
- nanopore組裝擬南芥: High contiguity Arabidopsis thaliana genome assembly with a single nanopore flow cell
- 不糾錯組裝: Minimap and miniasm: fast mapping and de novo assembly for noisy long sequences
- 三代組裝軟件評測: Comprehensive evaluation of non-hybrid genome assembly tools for third-generation PacBio long-read sequence data