生信 | 基因組組裝實(shí)戰(zhàn)(四):組裝軟件mecat2携丁、flye、wtdbg2兰怠、Canu梦鉴、Falcon

寫(xiě)在前面

  • 以下內(nèi)容均來(lái)自我在菲沙基因(Frasergen)暑期生信培訓(xùn)班上記錄的課堂筆記

1.基因組概念

  • 基因組應(yīng)該指單倍體細(xì)胞中包括編碼序列和非編碼序列在內(nèi)的全部DNA分子。即核基因組是單倍體細(xì)胞核內(nèi)的全部DNA分子;線粒體基因組則是一個(gè)線粒體所包含的全部DNA分子 ;葉綠體基因組則是一個(gè)葉綠體所包含的全部DNA分子揭保。

2.三代PacBio數(shù)據(jù)準(zhǔn)備

2.1 數(shù)據(jù)格式
  • Pacbio平臺(tái)測(cè)序出來(lái)的reads肥橙,由接頭序列, 條碼序列, 插入序列間隔線性分布,即ABIB-ABIB—ABIB-ABIB—(A: adapter, B: barcode, I: insert)
├── Sample
│ └── Library(不分文庫(kù)時(shí)文庫(kù)名為 all)
│ └── Cell
│ ├── *.subreads.bam 用于下游分析的有效數(shù)據(jù)(相當(dāng)于clean data)
│ ├── *.subreads.bam.pbi subreads.bam文件的索引文件
│ └── *.xml 測(cè)序信息記錄文件
2.2 數(shù)據(jù)格式轉(zhuǎn)換(bam轉(zhuǎn)fq/fa)
conda install -c yuxiang bam2fastq -y
  • bam 轉(zhuǎn) fastq/ fasta(后綴自動(dòng)補(bǔ)充為.fastq/ fasta)
bam2fastq *subreads.bam –o *subreads.bam -u
bam2fasta *subreads.bam –o *subreads.bam -u

-u:輸出文件不壓縮秸侣。去掉則輸出壓縮文件存筏,由于后續(xù)需要用到非壓縮文件宠互,所以這里加上-u參數(shù),且節(jié)省時(shí)間

  • 數(shù)據(jù)量統(tǒng)計(jì)(小工具:GNX)
#安裝與編譯
git clone https://github.com/mh11/gnx-tools.git
mkdir bin
javac -d bin/ src/uk/ac/ebi/gnx/*
ant -f package.xml
java -jar gnx.jar
#使用
java -jar gnx.jar all_subreads.bam.fasta > N50
cat N50

3.基因組組裝

3.1 使用Mecat2進(jìn)行基因組組裝
  • 軟件介紹
Mecat2軟件介紹
  • 使用git安裝并編譯
git clone https://github.com/xiaochuanle/MECAT2.git 
cd MECAT2 
make 
  • 新建配置文件config_file.txt
vi config_file.txt
  • 填寫(xiě)內(nèi)容如下:
PROJECT=test
RAWREADS= /local_data1/all_subreads.bam.fasta #從bam轉(zhuǎn)過(guò)來(lái)的fasta文件
GENOME_SIZE= 12251230  #根據(jù)《生信 | 基因組組裝實(shí)戰(zhàn)(三):Kmer評(píng)估基因組》來(lái)確定
THREADS=15   #線程數(shù)
MIN_READ_LENGTH=2000 
CNS_OVLP_OPTIONS="-kmer_size 13" 
CNS_PCAN_OPTIONS="-p 100000 -k 100" CNS_OPTIONS="" 
CNS_OUTPUT_COVERAGE=30  #根據(jù)菲沙基因老師的經(jīng)驗(yàn),30-45范圍較好垂涯,可以多次調(diào)整
TRIM_OVLP_OPTIONS="-skip_overhang" 
TRIM_PM4_OPTIONS="-p 100000 -k 100" 
TRIM_LCR_OPTIONS="" 
TRIM_SR_OPTIONS="" 
ASM_OVLP_OPTIONS="" 
FSA_OL_FILTER_OPTIONS="--max_overhang=-1 --min_identity=-1" 
FSA_ASSEMBLE_OPTIONS="" 
CLEANUP=0

\color{red}{注}:以上\color{red}{\#}前面的內(nèi)容根據(jù)自己的需求修改汁掠,其他默認(rèn)即可

  • 保存配置后,運(yùn)行程序\color{green}{mecat.pl}
MECAT2/Linux-amd64/bin/mecat.pl correct config_file.txt
MECAT2/Linux-amd64/bin/mecat.pl assemble config_file.txt
  • MECAT2運(yùn)行結(jié)果
    【4-fsa】目錄下的【contigs.fasta】為結(jié)果文件


    MECAT2運(yùn)行結(jié)果
3.2 使用Flye進(jìn)行基因組組裝
  • 軟件簡(jiǎn)介
Flye軟件簡(jiǎn)介
  • 使用git安裝并編譯
git clone https://github.com/fenderglass/Flye
cd Flye
make
  • 使用方法
Flye/bin/flye \
--pacbio-raw 
/local_data1/all_subreads.bam.fasta \
--out-dir test \
--genome-size 12251230 \  #根據(jù)需要請(qǐng)修改
--threads 10
  • 結(jié)果文件
Flye結(jié)果文件
3.3 使用wtdbg2進(jìn)行基因組組裝
  • 軟件簡(jiǎn)介
wtdbg2軟件簡(jiǎn)介
  • 使用git安裝并編譯
git clone https://github.com/ruanjue/wtdbg2 
cd wtdbg2
make
  • 軟件使用
#quick start with wtdbg2.pl 
./wtdbg2.pl -t 16 -x rs -g 12m -o dbg reads.fa 
# Step by step commandlines # assemble long reads 
./wtdbg2 -x rs -g 4.6m -i reads.fa.gz -t 16 -fo dbg 
# derive consensus 
./wtpoa-cns -t 16 -i dbg.ctg.lay.gz -fo dbg.raw.fa 
# polish consensus, not necessary if you want to polish the assemblies using other tools 
minimap2 -t16 -ax map-pb -r2k dbg.raw.fa reads.fa.gz | samtools sort -@4 >dbg.bam 
samtools view -F0x900 dbg.bam | ./wtpoa-cns -t 16 -d dbg.raw.fa -i - -fodbg.cns.fa 
# Addtional polishment using short reads 
bwa index dbg.cns.fa 
bwa mem -t 16 dbg.cns.fa sr.1.fa sr.2.fa | samtools sort -O SAM | ./wtpoa-cns -t 16 -x 
sam-sr -d dbg.cns.fa -i - -fo dbg.srp.fa
  • 結(jié)果文件
wtdbg2結(jié)果文件
3.4 使用Canu進(jìn)行基因組組裝
  • 軟件簡(jiǎn)介與原理
Canu運(yùn)行流程
  • 使用conda安裝
conda install -c bioconda canu -y
  • 軟件使用集币,來(lái)源不同的數(shù)據(jù)使用不同代碼
#For PacBio:
canu -p ecoli -d ecoli-pacbio genomeSize=4.8m -pacbio-raw pacbio.fastq
#For Nanopore:
canu -p ecoli -d ecoli-oxford genomeSize=4.8m -nanopore-raw oxford.fasta
#Assembling PacBio HiFi with HiCanu:
canu -p asm -d ecoli_hifi genomeSize=4.8m -pacbio-hifi ecoli.fastq
#Trio Binning Assembly:
canu -p asm -d ecoliTrio genomeSize=5m \
 -haplotype K12 K12.parental.fasta \
 -haplotype O157 O157.parental.fasta \
 -pacbio-raw F1.fasta

-p 指定輸出前綴
-d 指定輸出結(jié)果目錄
genomeSize 設(shè)置一個(gè)預(yù)估的基因組大小,便于讓Canu估計(jì)測(cè)序深度翠忠,單位是K鞠苟,M,G
maxThreads 設(shè)置最大線程數(shù)
-pacbio-raw 直接測(cè)序得到的原始pacbio數(shù)據(jù)
-pacbio-corrected 經(jīng)過(guò)糾正的pacbio數(shù)據(jù)
-nanopore-raw 原始的nanopore數(shù)據(jù)
-nanopore-corrected 結(jié)果糾正的nanopore數(shù)據(jù)
rawErrorRate 設(shè)置兩個(gè)未糾錯(cuò)read之間最大期望差異堿基數(shù)
correctedErrorRate 設(shè)置糾錯(cuò)后read之間最大期望差異堿基數(shù)
minReadLength 設(shè)置最小使用的reads長(zhǎng)度
minOverlapLength 設(shè)置Overlap的最小長(zhǎng)度

3.5 使用Falcon進(jìn)行基因組組裝
falcon軟件組裝原理
  • 使用conda安裝軟件
conda install -c conda-forge falcon -y
  • 軟件使用秽之,和mecat2一樣当娱,關(guān)鍵就是弄好配置文件。比較好的做法是去官網(wǎng)下載合適的配置文件考榨,然后將其中的某些參數(shù)稍加修改即可跨细。如我下載植物的fc_run_plant.cfg
wget https://pb-falcon.readthedocs.io/en/latest/_downloads/fc_run_plant.cfg
cat fc_run_plant.cfg
[General]
input_fofn = input.fofn
input_type = raw
stop_all_jobs_on_failure = False
length_cutoff = 5000
genome_size = 1400000000
seed_coverage = 30
length_cutoff_pr = 4000
sge_option_da = -pe smp 5 -q bigmem
sge_option_la = -pe smp 20 -q bigmem
sge_option_pda = -pe smp 6 -q bigmem 
sge_option_pla = -pe smp 16 -q bigmem
sge_option_fc = -pe smp 24 -q bigmem
sge_option_cns = -pe smp 12 -q bigmem
pa_concurrent_jobs = 96
cns_concurrent_jobs = 96
ovlp_concurrent_jobs = 96
pa_HPCdaligner_option =  -v -B128 -M32 -e.70 -l4800 -s100 -k18 -h480 -w8 
ovlp_HPCdaligner_option = -v -B128 -M32 -h1024 -e.96 -l2400 -s100 -k18
#下面兩行其中的參數(shù)在下面介紹
pa_DBsplit_option = -a -x500 -s400
ovlp_DBsplit_option = -s400
falcon_sense_option = --output_multi --min_idt 0.70 --min_cov 2 --max_n_read 200 --n_core 8 
falcon_sense_skip_contained = True
overlap_filtering_setting = --max_diff 100 --max_cov 100 --min_cov 2 --n_core 12

常規(guī)參數(shù):
input_fofn = input.fofn 指出所有輸入數(shù)據(jù),路徑+文件名
input_type = raw ( 或preads ) 標(biāo)明序列類(lèi)型河质,即是否已經(jīng)完成了錯(cuò)誤修正
length_cutoff = 10000 用于錯(cuò)誤修正的種子序列的最低長(zhǎng)度
length_cutoff_pr = 10000 用于構(gòu)建重疊的預(yù)組裝種子序列的最低長(zhǎng)度
b 如果基因組組分有偏好性(例如65% AT rich)應(yīng)該設(shè)置b參數(shù)冀惭。
M 參數(shù)控制內(nèi)存, l默認(rèn)是1000掀鹅,低于這個(gè)長(zhǎng)度的序列丌用比對(duì)
S 默認(rèn)是100散休,輸出點(diǎn)也可以設(shè)置成500提高速度,也有1000
E 準(zhǔn)確性默認(rèn)是0.7一般的設(shè)置成0.75
B 參數(shù)決定一個(gè)job中包含的block之間比對(duì)的數(shù)目
T 參數(shù)是控制在一個(gè)block里一個(gè)kmer出現(xiàn)的最多次數(shù)乐尊,這個(gè)參數(shù)有的設(shè)置8戚丸,12,16.這個(gè)值
越小速度越快扔嵌。
k(kmer) 要小于32限府,線程數(shù)目T默認(rèn)是4.

  • 保存配置文件后,直接執(zhí)行fc_run.py腳本即可
fc_run.py fc_run.cfg
  • 結(jié)果文件較多痢缎,具體在官網(wǎng)查看胁勺,組裝的結(jié)果文件在下面
falcon_job/
    ├── 0-rawreads/     # Raw read error correction directory
組裝報(bào)告   └── report/   # pre-assembly stats
    ├── 1-preads_ovl/   # Corrected read overlap detection
    ├── 2-asm-falcon/   # String Graph Assembly
結(jié)果文件   └── a_ctg_all.fa   # all associated contigs, including duplicates
結(jié)果文件   └── a_ctg.fa    # De-duplicated associated fasta file
    ├── mypwatcher/     # Job scheduler logs
    ├── scripts/
    └── sge_log/        # deprecated

寫(xiě)在最后

  • 本文一共介紹了5款軟件,但以后肯定還會(huì)有更多更優(yōu)秀的軟件牺弄,但原理和用法都相差不大姻几,我們總歸是要選擇一個(gè)作為我們后續(xù)的分析宜狐,如何選?
    \color{red}{1.contig\ N50長(zhǎng)的}
    \color{red}{2.連續(xù)性好的}
    \color{red}{3.各項(xiàng)指標(biāo)符合要求的等}
  • 組裝完成后蛇捌,就要對(duì)組裝結(jié)果進(jìn)行矯正抚恒,下一節(jié)介紹。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末络拌,一起剝皮案震驚了整個(gè)濱河市俭驮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌春贸,老刑警劉巖混萝,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異萍恕,居然都是意外死亡逸嘀,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)允粤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)崭倘,“玉大人,你說(shuō)我怎么就攤上這事类垫∷竟猓” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵悉患,是天一觀的道長(zhǎng)残家。 經(jīng)常有香客問(wèn)我,道長(zhǎng)售躁,這世上最難降的妖魔是什么坞淮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮迂求,結(jié)果婚禮上碾盐,老公的妹妹穿的比我還像新娘。我一直安慰自己揩局,他們只是感情好毫玖,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著凌盯,像睡著了一般付枫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驰怎,一...
    開(kāi)封第一講書(shū)人閱讀 48,954評(píng)論 1 283
  • 那天阐滩,我揣著相機(jī)與錄音,去河邊找鬼县忌。 笑死掂榔,一個(gè)胖子當(dāng)著我的面吹牛继效,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播装获,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瑞信,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了穴豫?” 一聲冷哼從身側(cè)響起凡简,我...
    開(kāi)封第一講書(shū)人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎精肃,沒(méi)想到半個(gè)月后秤涩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡司抱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年筐眷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片习柠。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浊竟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出津畸,到底是詐尸還是另有隱情,我是刑警寧澤必怜,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布肉拓,位于F島的核電站,受9級(jí)特大地震影響梳庆,放射性物質(zhì)發(fā)生泄漏暖途。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一膏执、第九天 我趴在偏房一處隱蔽的房頂上張望驻售。 院中可真熱鬧,春花似錦更米、人聲如沸欺栗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)迟几。三九已至,卻和暖如春栏笆,著一層夾襖步出監(jiān)牢的瞬間类腮,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工蛉加, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚜枢,地道東北人缸逃。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像厂抽,于是被迫代替她去往敵國(guó)和親需频。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容