bam文件分段計數(shù)

目的:分別計算某一人區(qū)間的reads啸罢。
方法實現(xiàn):R编检、perl胎食、Python等等

方法一

#samtools view NT001.bam | awk '{print $3,$4}' > file1.txt

dat <- read.table("file1.txt",header=FALSE,colClasses= c("character","integer"))
colnames(dat)=c("refChr","begin")

chrs <- paste("chr", c(paste(1:22, sep = ""), c("X","Y")), sep = "")
dat <- dat[dat$refChr %in% chrs,]
binindex = ifelse((dat$begin%%50000)==0,floor(dat$begin/50000)-1,floor(dat$begin/50000))
fastbincount = table(paste(dat$refChr,binindex, sep="_"))
file <- data.frame(fastbincount )
colnames(file)=c("binName","counts")
chr_all <- read.table("all_chr.txt")
colnames(chr_all) = "binName"
chr_all$binorder=c(1:61927)

bininfo = merge(chr_all,file, by="binName",all.x=T)
bininfo=bininfo[order(bininfo$binorder),]
bininfo[is.na(bininfo)] <- 0
write.table(bininfo,"bininfo.txt",quote=F,row.names=F,col.names=F)

方法二:pysam

import numpy as np
import pysam
def convert_bam(infile):
    bam_file = pysam.AlignmentFile(infile, 'rb')
    
    for index, chr in enumerate(bam_file.references):
        #print(index,chr
        if index > 23 :
            continue
        
        #print(chr,bam_file.lengths[index])

        counts = np.zeros(int(bam_file.lengths[index] / float(50000) + 1), dtype=np.int32)
        bam_chr = bam_file.fetch(chr)
        #print(bam_chr)

        for read in bam_chr:
            #print(read)
            
            location = read.pos / 50000
            counts[int(location)] += 1

        for i in counts:
            print(i)

if __name__=="__main__":
    convert_bam("NT001.bam")

方法三:

bedtools coverage -a segment.bed -b nend.bam > segment_reads.txt

結(jié)論:方法一 == 等于方法二 >方法三扰才,就是說方法三沒有一、二精確厕怜。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末衩匣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子粥航,更是在濱河造成了極大的恐慌琅捏,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件递雀,死亡現(xiàn)場離奇詭異柄延,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)缀程,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門搜吧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杨凑,你說我怎么就攤上這事滤奈。” “怎么了撩满?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵蜒程,是天一觀的道長。 經(jīng)常有香客問我伺帘,道長昭躺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任伪嫁,我火速辦了婚禮窍仰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘礼殊。我一直安慰自己驹吮,他們只是感情好针史,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碟狞,像睡著了一般啄枕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上族沃,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天频祝,我揣著相機(jī)與錄音,去河邊找鬼脆淹。 笑死常空,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盖溺。 我是一名探鬼主播漓糙,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼烘嘱!你這毒婦竟也來了昆禽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蝇庭,失蹤者是張志新(化名)和其女友劉穎醉鳖,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哮内,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡盗棵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了北发。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纹因。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鲫竞,靈堂內(nèi)的尸體忽然破棺而出辐怕,到底是詐尸還是另有隱情,我是刑警寧澤从绘,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布寄疏,位于F島的核電站,受9級特大地震影響僵井,放射性物質(zhì)發(fā)生泄漏陕截。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一批什、第九天 我趴在偏房一處隱蔽的房頂上張望农曲。 院中可真熱鬧,春花似錦、人聲如沸乳规。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暮的。三九已至笙以,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冻辩,已是汗流浹背猖腕。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留恨闪,地道東北人倘感。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像咙咽,于是被迫代替她去往敵國和親老玛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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