提問|如何批量統(tǒng)計區(qū)間測序覆蓋度择葡?

項目背景

對bam文件按多種自定義的劃窗來統(tǒng)計區(qū)間的測序覆蓋度。

我的需求

對于同一個bam文件剃氧,根據(jù)不同分割條件產生的多個bed文件敏储,循環(huán)批量計算測序覆蓋度。

比如朋鞍,輸入為一個排序后的bam文件(case.sort.bam)已添,以及對基因組進行不同方式的自定義分箱而產生的多個bed文件(100M.bed, 50M_10M.bed, 20M_5M.bed),希望對bed文件做循環(huán)滥酥,批量得到不同分箱條件下同一個bam文件的自定義區(qū)間reads數(shù)統(tǒng)計酝碳。

準備工作

# 使用bedtools對基因組染色體坐標進行窗口劃分
# -w定義窗口長度  -s定義劃窗步長
bedtools  makewindows -g sizes.genome  -w  100000000 > 100M.bed
bedtools  makewindows -g sizes.genome  -w  50000000 -s 10000000 > 50M_10M.bed
bedtools  makewindows -g sizes.genome  -w  20000000 -s 5000000  > 20M_5M.bed
# bam文件已構建索引
samtools index xxx.sort.bam

bedtools coverage循環(huán)時出現(xiàn)問題

# 循環(huán)時只有一個樣本可以成功產生結果
cat window_list.txt|while read window;do (nohup bedtools coverage -a $window.bed -b $sample.sort.bam > $sample.$window.counts.txt.tmp &) ;done
# 產生三個結果文件,其中兩個文件大小為0恨狈,里面沒有內容
-rw-rw-r-- 1 xpan xpan    0 Aug 10 15:31 case.50M_10M.counts.txt.tmp
-rw-rw-r-- 1 xpan xpan    0 Aug 10 15:31 case.20M_5M.counts.txt.tmp
-rw-rw-r-- 1 xpan xpan 2.3K Aug 10 15:32 case.100M.counts.txt.tmp
# nohup.out中沒有報錯

我的嘗試

# 不循環(huán)時是正常的
window=50M_10M
sample=case
bedtools coverage -a $window.bed -b $sample.sort.bam > $sample.$window.counts.txt 
# 產生結果:
-rw-rw-r-- 1 xpan xpan  18K Aug 10 11:50 case.50M_10M.counts.txt
# 單獨測試nohup & 語句疏哗,也是正常的
nohup bedtools coverage -a $window.bed -b $sample.sort.bam > $sample.$window.counts.txt.tmp &
# 產生結果:
-rw-rw-r-- 1 xpan xpan  18K Aug 10 16:52 case.50M_10M.counts.txt.tmp
# 把每個樣本的各種分箱方式都單獨運行了一遍,全部都能產生正常結果

為什么單獨運行時正常禾怠,循環(huán)時卻只有一個結果正常呢返奉?

換用samtools bedcov后成功了

# 換用samtools bedcov再嘗試同樣的操作
samtools bedcov $window.bed $sample.sort.bam > $sample.$window.counts.txt.tmp1
# 產生結果:-rw-rw-r-- 1 xpan xpan 1.3K Aug 10 15:47 case.100M.counts.txt.tmp1
# 加上循環(huán)
cat window_list.txt|while read window;do (nohup samtools bedcov $window.bed $sample.sort.bam > $sample.$window.counts.txt.tmp1 &) ;done
# 產生三個結果都正常:
-rw-rw-r-- 1 xpan xpan 1.3K Aug 10 15:57  case.100M.counts.txt.tmp1
-rw-rw-r-- 1 xpan xpan  20K Aug 10 15:57  case.20M_5M.counts.txt.tmp1
-rw-rw-r-- 1 xpan xpan  11K Aug 10 15:57  case.50M_10M.counts.txt.tmp1

samtools與bedtools產生不同結果

# samtools bedcov產生的結果只有區(qū)間內的reads數(shù),而且和bedtools coverage計算的結果出入還不小
# samtools bedcov結果取前三行展示:
chr1    0   100000000   22300197
chr1    100000000   200000000   22302389
chr1    200000000   248956422   11554278

# bedtools coverage結果取前三行展示:
chr1    0   100000000   182139  5952928 100000000   0.0595293
chr1    100000000   200000000   180032  5266467 100000000   0.0526647
chr1    200000000   248956422   94232   3098065 48956422    0.0632821

samtools bedcovbedtools coverage 計算得到的結果差異非常大吗氏!

查了一下之后發(fā)現(xiàn)芽偏,samtools bedcov的算法是把區(qū)間內每個堿基的測序深度加起來,而bedtools coverage直接計算區(qū)間內的reads數(shù)(見https://www.biostars.org/p/195497/)弦讽,兩者適用于不同的需求污尉。

那么,我的需求基本被解決了往产,因為兩種算法都能夠表現(xiàn)測序深度被碗,除以區(qū)間長度就得到了平均覆蓋率。我的最終目的是比較每個區(qū)間的測序深度的相對大小仿村,找到平均覆蓋率顯著增大的區(qū)間锐朴。

延伸思考

但是如果我還是想知道開頭的那個問題:對同一個樣本用不同的分箱方式批量計算區(qū)間內的reads數(shù),該怎么實現(xiàn)呢蔼囊?

另外焚志,bedtools coverage 和 samtools bedcov 這兩個工具都不能選擇線程數(shù)衣迷,也不能選擇-O輸出,用起來略有些不舒服酱酬。所以壶谒,還有其他更合適的工具推薦嗎?

補充說明

有朋友說用bedtools multicov就可以解決問題膳沽,那是誤解我的需求了佃迄。bedtools multicov可以解決多個bam文件+一個bed文件情況下的批量運行問題,但是我的問題是一個bam文件+多個bed文件情況下如何批量運行贵少?

由于我的shell腳本能力還不太過關呵俏,自己調試花了大半天也沒有找到問題原因,所以發(fā)出來請大家一起看看(當眾處刑hhh)

期待有大神能給我提示(感激~)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末滔灶,一起剝皮案震驚了整個濱河市普碎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌录平,老刑警劉巖麻车,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異斗这,居然都是意外死亡动猬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門表箭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赁咙,“玉大人,你說我怎么就攤上這事免钻”怂” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵极舔,是天一觀的道長凤覆。 經常有香客問我,道長拆魏,這世上最難降的妖魔是什么盯桦? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮渤刃,結果婚禮上拥峦,老公的妹妹穿的比我還像新娘。我一直安慰自己溪掀,他們只是感情好事镣,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布步鉴。 她就那樣靜靜地躺著揪胃,像睡著了一般璃哟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喊递,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天随闪,我揣著相機與錄音,去河邊找鬼骚勘。 笑死铐伴,一個胖子當著我的面吹牛,可吹牛的內容都是我干的俏讹。 我是一名探鬼主播当宴,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泽疆!你這毒婦竟也來了户矢?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤殉疼,失蹤者是張志新(化名)和其女友劉穎梯浪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓢娜,經...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡挂洛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了眠砾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虏劲。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖褒颈,靈堂內的尸體忽然破棺而出伙单,到底是詐尸還是另有隱情,我是刑警寧澤哈肖,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布吻育,位于F島的核電站,受9級特大地震影響淤井,放射性物質發(fā)生泄漏布疼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一币狠、第九天 我趴在偏房一處隱蔽的房頂上張望游两。 院中可真熱鬧,春花似錦漩绵、人聲如沸贱案。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宝踪。三九已至侨糟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘩燥,已是汗流浹背秕重。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厉膀,地道東北人溶耘。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像服鹅,于是被迫代替她去往敵國和親凳兵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345