pybedtools文檔-平行在外顯子和內(nèi)含子中計(jì)算reads數(shù)

本例子展示的是如何在內(nèi)含子和外顯子中統(tǒng)計(jì)reads數(shù)量董虱。不但包括了這個(gè)內(nèi)容,還包括了其他的命名展示申鱼。例如

1愤诱、BAM file support (for more, see?Working with BAM files)

2、indexing into Interval objects (for more, see?Intervals)

3润讥、filtering (for more, see?Filtering)

4转锈、streaming (for more, see?Using BedTool objects as iterators/generators)

5、ability to use parallel processing

下面是含有注釋信息的命令行展示

import sys

import multiprocessing

import pybedtools


# get?example GFF and BAM filenames 獲得例子中的GFF和BAM的內(nèi)容

gff = pybedtools.example_filename('gdc.gff')

bam = pybedtools.example_filename('gdc.bam')


# Some?GFF files have invalid entries -- like chromosomes with negative coords GFF文件中含有不實(shí)的內(nèi)容楚殿,例如染色為負(fù)數(shù)坐標(biāo)的信息

# orfeatures of length = 0.? This lineremoves them and saves the result in a?tempfile 或者特征值的長(zhǎng)度為0撮慨,可以使用命令行去除這些無(wú)意義的內(nèi)容,并且存儲(chǔ)為另外一個(gè)文件脆粥。

g = pybedtools.BedTool(gff).remove_invalid().saveas()

# Next,?we create a function to pass only features for a particular?featuretype.? This is similar to a"grep" operation when applied to every#feature in a BedTool

隨后砌溺,我們構(gòu)建了一個(gè)函數(shù)用來(lái)只顯示符合要求的特征,類似于grep命令

def featuretype_filter(feature, featuretype):

??? if feature[2] == featuretype:

??????? return True

??? return False

# This?function will eventually be run in parallel, applying the filter above?to?several different BedTools simultaneously?多種不同的BedTools同時(shí)選擇

def subset_featuretypes(featuretype):

??? result = g.filter(featuretype_filter, featuretype).saveas()

??? return pybedtools.BedTool(result.fn)


# Thisfunction performs the intersection of a BAM file with a GFF file and?returns the total number of hits.? Itwill eventually be run in parallel.

def count_reads_in_features(features_fn):

??? """

??? Callback function to count reads infeatures

??? """

??# BAM files are auto-detected; no need foran `abam` argument.? Here we?# construct a new BedTool out of the BAM?file and intersect it with the?features filename.?We use stream=True so that no?intermediate tempfile is?created, and bed=True so that the.count() method can iterate through the?resulting streamed BedTool.

??? return pybedtools.BedTool(bam).intersect(b=features_fn,?stream=True).count()

# Set?up a pool of workers for parallel processing pool = multiprocessing.Pool()

#?Create separate files for introns and exons, using the function we defined?above

featuretypes = ('intron', 'exon')

introns, exons = pool.map(subset_featuretypes, featuretypes)


#?Perform some genome algebra to get unique and shared intron/exon regions.?Here?we keep only the filename of the results, which is safer than an entire BedTool for passing around in parallel computations.

exon_only = exons.subtract(introns).merge().remove_invalid().saveas().fn

intron_only = introns.subtract(exons).merge().remove_invalid().saveas().fn

intron_and_exon = exons.intersect(introns).merge().remove_invalid().saveas().fn

# Do?intersections with BAM file in parallel, using the other function we defined above

features = (exon_only, intron_only, intron_and_exon)

results = pool.map(count_reads_in_features, features)


# Print?the results

labels = (' exon only:',?' intron only:',?'intron and exon:')

for label, reads in zip(labels, results):

??? sys.stdout.write('%s %s\n' % (label, reads))


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末变隔,一起剝皮案震驚了整個(gè)濱河市规伐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匣缘,老刑警劉巖猖闪,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異肌厨,居然都是意外死亡培慌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門柑爸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吵护,“玉大人,你說(shuō)我怎么就攤上這事表鳍∠诙” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵譬圣,是天一觀的道長(zhǎng)瓮恭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)厘熟,這世上最難降的妖魔是什么偎血? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任诸衔,我火速辦了婚禮盯漂,結(jié)果婚禮上颇玷,老公的妹妹穿的比我還像新娘。我一直安慰自己就缆,他們只是感情好帖渠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著竭宰,像睡著了一般空郊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上切揭,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天狞甚,我揣著相機(jī)與錄音,去河邊找鬼廓旬。 笑死哼审,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的孕豹。 我是一名探鬼主播涩盾,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼励背!你這毒婦竟也來(lái)了春霍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤叶眉,失蹤者是張志新(化名)和其女友劉穎址儒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體衅疙,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡莲趣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炼蛤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妖爷。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖理朋,靈堂內(nèi)的尸體忽然破棺而出絮识,到底是詐尸還是另有隱情,我是刑警寧澤嗽上,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布次舌,位于F島的核電站,受9級(jí)特大地震影響兽愤,放射性物質(zhì)發(fā)生泄漏彼念。R本人自食惡果不足惜挪圾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逐沙。 院中可真熱鬧哲思,春花似錦、人聲如沸吩案。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)徘郭。三九已至靠益,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間残揉,已是汗流浹背胧后。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抱环,地道東北人壳快。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像江醇,于是被迫代替她去往敵國(guó)和親濒憋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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

  • 古人云:臨摹用工陶夜,是學(xué)書(shū)大要凛驮。必先求古人意指,次究用筆条辟,后像形體黔夭。唐太宗云吾臨古人之書(shū),殊不學(xué)其形似羽嫡,務(wù)在求其氣骨...
    愚公一海閱讀 619評(píng)論 0 0
  • 8 在這個(gè)城市先舷,與自己軌跡最重合的那個(gè)人,通常便是前任滓侍。她知道你喜歡去吃的特色美食街蒋川,大到會(huì)去的區(qū)域,小到哪家餐廳...
    MissMatcha閱讀 514評(píng)論 0 0
  • 雖然大學(xué)生創(chuàng)業(yè)有很多劣勢(shì)撩笆,前面的文章分析過(guò)捺球,也給出了解決方式缸浦。但是在校大學(xué)生創(chuàng)業(yè)也有一些他人不具備的優(yōu)勢(shì)。 ...
    潤(rùn)東先生閱讀 1,388評(píng)論 8 18