meme CentriMo富集 motif匹配序列的獲取

背景

當(dāng)我們使用 CentriMo 進(jìn)行motif 富集后,如采用下面的命令

$ centrimo -oc test test.500l.fa  $meme_motif

會(huì)在test目錄產(chǎn)生三個(gè)文件(centrimo.htmlcentrimo.tsvsite_counts.txt)型酥,用瀏覽器打開centrimo.html后昧旨,點(diǎn)擊motif id前面的復(fù)選框后,會(huì)在左邊位置的文本框顯現(xiàn)出motif匹配的序列抽减。

image.png

因此允青,問題是我想要獲取每個(gè)motif匹配的序列。一開始卵沉,我想應(yīng)該centrimo.tsv颠锉,會(huì)有這吧,但是沒找到史汗。然后又去centrimo的參數(shù)說明里看看有沒相關(guān)參數(shù)設(shè)置琼掠,找到了個(gè),不把匹配序列放進(jìn)html的參數(shù)停撞。瓷蛙。。

image.png

既然如此那就只好自己弄了戈毒。

方法

既然能在html上顯示艰猬,那網(wǎng)頁源碼里肯定包含了這些信息。所以查看下網(wǎng)頁源碼:

image.png

分析下埋市, 通過var data定義個(gè)JavaScript對(duì)象(相當(dāng)于Python中的字典)冠桃,sequences儲(chǔ)存著所有的序列,motifs下存儲(chǔ)著motif信息恐疲,每個(gè)motif以js對(duì)象表示腊满,其中每個(gè)motif對(duì)象里,seqs又存儲(chǔ)著序列索引(sequences數(shù)組的索引培己,沒在圖片中給出碳蛋,可自行查看自己的的網(wǎng)頁源碼)。

因此省咨,我們只要提取出 data 對(duì)象中的sequencesmotifs數(shù)據(jù), 根據(jù)motifs下的每個(gè)motif儲(chǔ)存的 seqs索引在sequences中取出對(duì)應(yīng)的序列就可以獲得了肃弟。

所以上代碼(Python):

import re
import json
from bs4 import BeautifulSoup  ## 安裝 pip install beautifulsoup4


file = "centrimo.html"

## 讀取html文件
with open(file, "r") as f:
    html = f.read()


## 通過bs4 進(jìn)行解析
soup = BeautifulSoup(html)

# 在script標(biāo)簽下,找到包含 var data的文本零蓉, \s*是用于匹配空格的
script = soup.find('script', text=re.compile('var\s*data\s*=\s*'))

## 通過正則匹配到 var data = {...}; 中data對(duì)象里的數(shù)據(jù) 
json_text = re.search('var\s*data\s*=\s*({.*?})\s*;$', script.string, flags=re.DOTALL | re.MULTILINE).group(1)

data = json.loads(json_text)  #加載成字典 
print(data.keys())

運(yùn)行后笤受,輸出是這樣,代表data數(shù)據(jù)提取成功

dict_keys(['version', 'revision', 'release', 'program', 'cmd', 'options', 'seqlen', 'tested', 'alphabet', 'background', 'sequence_db', 'motif_dbs', 'sequences', 'motifs'])

簡(jiǎn)單的代碼就提取了敌蜂。

sequences = data["sequences"]
motifs = data["motifs"]

extracted_seq = []  # 這里作為一個(gè)例子箩兽,把它們保存在列表里。

for motif in motifs:
    seqs_idx = motif["seqs"]
    seqs_id = [sequences[i] for i in seqs_idx]
    extracted_seq.append({"id": motif["id"], "seq": seqs_id})

print(extracted_seq[1]["seq"][:10])

# ['chr2:22587565-22588065', 'chrX:143482808-143483308', 'chr1:7397843-7398343', 'chr5:88764784-88765284', 'chr9:20651695-20652195', 'chr8:25016942-25017442', 'chr6:21949731-21950231', 'chr10:30842681-30843181', 'chr3:138442803-138443303', 'chr2:3283792-3284292']

之后做什么處理章喉,就看各自的需求了汗贫。

在此身坐,結(jié)束了。

參考

https://stackoverflow.com/questions/13323976/how-to-extract-a-json-object-that-was-defined-in-a-html-page-javascript-block-us
https://meme-suite.org/meme/doc/centrimo.html?man_type=web

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末落包,一起剝皮案震驚了整個(gè)濱河市部蛇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咐蝇,老刑警劉巖涯鲁,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異有序,居然都是意外死亡抹腿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門笔呀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幢踏,“玉大人髓需,你說我怎么就攤上這事许师。” “怎么了僚匆?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵微渠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我咧擂,道長(zhǎng)逞盆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任松申,我火速辦了婚禮云芦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贸桶。我一直安慰自己舅逸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布皇筛。 她就那樣靜靜地躺著琉历,像睡著了一般。 火紅的嫁衣襯著肌膚如雪水醋。 梳的紋絲不亂的頭發(fā)上旗笔,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音拄踪,去河邊找鬼蝇恶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惶桐,可吹牛的內(nèi)容都是我干的撮弧。 我是一名探鬼主播的猛,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼想虎!你這毒婦竟也來了卦尊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤舌厨,失蹤者是張志新(化名)和其女友劉穎岂却,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裙椭,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躏哩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了揉燃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扫尺。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖炊汤,靈堂內(nèi)的尸體忽然破棺而出正驻,到底是詐尸還是另有隱情,我是刑警寧澤抢腐,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布姑曙,位于F島的核電站,受9級(jí)特大地震影響迈倍,放射性物質(zhì)發(fā)生泄漏伤靠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一啼染、第九天 我趴在偏房一處隱蔽的房頂上張望宴合。 院中可真熱鬧,春花似錦迹鹅、人聲如沸卦洽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逐样。三九已至,卻和暖如春打肝,著一層夾襖步出監(jiān)牢的瞬間脂新,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國打工粗梭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留争便,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓断医,卻偏偏與公主長(zhǎng)得像滞乙,于是被迫代替她去往敵國和親奏纪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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