这可能是一个非常简单的问题,但我希望有人能给我一个快速有效的答案。。。我试图把染色体数据输入数据库,同时稍微改变一下格式。当前数据如下所示:
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。每个转录本都有一个固定数量的外显子,如外显子计数所示(例8)。较大的转录本中每个外显子的开始和结束由外显子和外显子列表中的匹配值指定。例如,本例中的第一个外显子范围为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的启动子,那么这个区域就不会被认为是外显子区域。你知道吗
像这样的?你知道吗
压缩
ExonStart,ExonEnd
对,并丢弃ExonStart,ExonEnd
位于PromoterStart,PromoterEnd
之间的任何条目。然后解压缩压缩列表以获取新值示例
ExonStart
和ExonEnd
的第一个条目都被删除,因为它位于PromoterStart
和PromoterEnd
之间相关问题 更多 >
编程相关推荐