這可能是一個非常簡單的問題,但我希望有人能夠爲我提供快速高效的答案......我試圖將染色體數據輸入到數據庫中有些改變格式。該數據目前看起來像:Python:通過多列值解析數據
chrom = chr1
txStart = 134212702
exonCount = 8
exonStarts = 134212702,134221529,134222782,134224273,134224707,134226534,134227135,134227897,
exonEnds= 134213049,134221650,134222806,134224425,134224773,134226654,134227268,134229870,
我創建了所有上述數據,包括啓動子,外顯子和內含子的位置信息的數據庫。每組數據(來自單行的數據,如上面的樣本)將對應於單個轉錄本。我將啓動子定義爲txStart(例如134212702) - 2000.每個轉錄子都有一組外顯子,如外顯子數所指定的(ex.8)。較大轉錄本中每個外顯子的開始和結束由exonStarts和exonEnds列表中的匹配值指定。例如,在這種情況下,第一外顯子將範圍從134212702到134213049.內含子位於外顯子之間,使得第一外顯子會從134213050到134221528.我成功地做到了這一點做的:
PromoterStart = int(TxStart) - 2000
PromoterEnd = int(TxStart) -1
ExonStart = map(int, ExonStart[:-1].split(","))
ExonEnd = map(int, ExonEnd[:-1].split(","))
i = 0
while i < int(ExonCount):
ExonCount = i +1
if i != int(ExonCount) -1:
IntronStart[i] = ExonEnd[i] +1
IntronEnd[i] = ExonStart[i+1] -1
i += 1
使用這種方法然後我將所有數據插入數據庫以供以後比較。現在我想重新使用從TxStart -2000到TxStart + 2000的啓動子定義重新進行此分析。然而,似乎使用此代碼在外顯子和啓動子之間存在大量重疊並且僅將啓動子改變爲= int (TxStart)+2000,顯着降低了我的下游分析速度。我想找到一種方法,以便如果某個區域被認爲是從txStart -2000到txStart +2000的啓動子,則該區域不會被視爲外顯子區域。
我看了你的問題兩次,我害怕被刪除我不知道你在問什麼。 :-(你能否在沒有所有遺傳學(?)專業詞彙的情況下重新構成模糊你想達到的目標? – Christoph
是的,它是遺傳的東西,但我真的不明白你想達到什麼目的,我認爲我們需要知道你的數據庫格式是什麼,因爲我認爲你試圖包含前一個基因的數據???你能否圍繞你的問題的確切核心重新提出這個問題 – RickyA
@RickyA:我試圖重新解釋和澄清我的問題。的數據對應於單個基因/轉錄本,幷包含我需要的所有信息用於分析。更具體地說,我正在查看更大區域的幾個較小部分。 – user2165857