10x genomics除了有非常出名的單細胞轉(zhuǎn)錄組的業(yè)務線以外還有基于10x的基因組的業(yè)務馅袁。接下來就帶大家走一走10x基因組數(shù)據(jù)的組裝流程芭析。
軟件下載
組裝的軟件叫做supernova
蕉斜,可以從10x genomics的官網(wǎng)下載:
https://support.10xgenomics.com/de-novo-assembly/software/downloads/latest
這里需要填一個表盯荤,填完之后會給一個包含token的下載地址扣讼,用wget
或者curl
就可以開始下載啦鲁冯。
wget -O supernova-2.1.1.tar.gz "https://cf.10xgenomics.com/releases/assembly/supernova-2.1.1.tar.gz?這里后面有一大段很長的token"
supernova
是不需要安裝的猜极,下載好之后解壓開中姜,把所在路徑加入環(huán)境變量中就可以使用了。
接下來可以運行下面的代碼測試一下看看能不能正常運行:
# check the environment
supernova sitecheck > sitecheck.txt
# test the pipeline
supernova testrun --id=tiny
如果都能運行成功就可以開始處理自己的數(shù)據(jù)啦。
supernova mkfastq
組裝的第一步是先運行supernova mkfastq
得到一個xxx
一個step-by-step的演示可以參考這里:
https://support.10xgenomics.com/de-novo-assembly/software/pipelines/latest/using/mkfastq
# 我的命令找不到了丢胚,下面的是官網(wǎng)上摘錄的
supernova mkfastq --id=tiny-bcl \
--run=/path/to/tiny_bcl
-csv=tiny-bcl-simple-2.1.0.csv
supernova run
由于軟件的要求翩瓜,必須把測序文件重命名成如下的形式
xxx_S0_L001_R1_001.fastq.gz
xxx_S0_L001_R2_001.fastq.gz
命名的規(guī)則可以參考:
https://support.10xgenomics.com/de-novo-assembly/software/pipelines/latest/using/fastq-input
運行命令:
supernova run \
--id=test_10x \
--fastqs=/path/to/10x/01rawData \
--sample=test \
--maxreads=all \
--localcores=32
32個核心跑了96個小時左右跑完了主體部分,但是還沒完成, 還要跑一個supernova mkoutput.
supernova mkoutput
在跑這一步的時候要確定style, 具體參考: https://support.10xgenomics.com/de-novo-assembly/software/pipelines/latest/output/generating
style分為
--style=raw|megabubbles|pseudohap|pseudohap2
四種携龟, 我的建議是可以都測試一下, 如果需要的時間比較少的話, 四個都跑一遍取結(jié)果最優(yōu)的. 另外可以優(yōu)先試試megabubbles. 因為它不會像raw一樣引入N, 而后兩種似乎都是出haplotype的結(jié)果的.
# style 為 megabubbles
nohup supernova mkoutput \
--asmdir=/path/to/outs/assembly \
--outprefix=test_10x \
--style=megabubbles \
--nozip > mkoutput_megabubbles.log &
# style 為 raw
nohup supernova mkoutput \
--asmdir=/path/to/outs/assembly \
--outprefix=test_10x \
--style=raw \
--nozip > mkoutput_raw.log &
# style 為 pseudohap
nohup supernova mkoutput \
--asmdir=/path/to/outs/assembly \
--outprefix=test_10x \
--style=pseudohap \
--nozip > mkoutput_pseudohap.log &
# style 為 pseudohap2
nohup supernova mkoutput \
--asmdir=/path/to/outs/assembly \
--outprefix=test_10x \
--style=pseudohap2 \
--nozip > mkoutput_pseudohap2.log &
報錯解決
- 我在分析的時候遇到了一個NCBI導致的bug:
當數(shù)據(jù)被傳到NCBI上之后會原本的序列的ID就會被NCBI自動替換成SRR數(shù)據(jù)庫的編號兔跌,但是我的這個10x的數(shù)據(jù)的ID里是包含了adapter信息的,10x的程序需要這個adapter信息來判斷哪些reads被標記了相同的adapter以進行聚類分堆等后續(xù)操作的峡蟋。當時的解決辦法是用NCBI的data deliver的功能坟桅,把上傳者上傳到S3的原始數(shù)據(jù)給下載下來了。這個辦法如果不在美國似乎是無法使用的蕊蝗。當時遇到的報錯信息如下:
cannot assembly it because the adaper file missing
這個bug可能跟版本有關(guān)系仅乓。一般而言10x會給你三個文件,除了雙端的reads之外匿又,還有一個adapter的文件方灾。但是我這個數(shù)據(jù)或許是版本比較早或許是啥版本限定的問題,只有雙端reads文件碌更,沒有單獨的adapter文件。
- 在跑
supernova mkoutput
的時候遇到了另一個報錯:
version=1.10 style=3
Sat Feb 05 15:37:59 2022: loading assembly files
Fatal error (pid=2957755) at Sat Feb 05 15:37:59 2022:
Attempt to open ~/project/test/outs/assembly/a.base/gang/micro/final/a.sup.hbx for reading failed: No such file or directory [errno=2].
但是這個找不到的a.sup.hbx
文件是存在的, 而且大小不是0. 非常奇怪. 也搜不到對應的報錯信息.
后來鼓搗了一下解決了洞慎,解決辦法也比較簡單, 只要用絕對路徑代替~
就可以了.
私貨時間
這個軟件的需求會很高痛单,所需的存儲空間得有1~2Tb,對內(nèi)存的需求也很高劲腿。我當時在我們組的服務器里完成不了旭绒,把數(shù)據(jù)轉(zhuǎn)移到生信技能樹的服務器里才完成。