所以我有大约千行的文件,看起来像这样:
COADREAD ZNF271 Missense_Mutation TCGA-AA-3947 Q14591 A177T
COADREAD ZNF271 Missense_Mutation TCGA-AA-A00N Q14591 I26T
COADREAD ZNF271 Missense_Mutation TCGA-AG-A002 Q14591 M418T
我有代码,寻找第5列的id和抓取两个字母之间的数字。你知道吗
有没有一种方法,我也可以在第5列(或第6列令牌)的id之后获取整个令牌。你知道吗
我想抓住那个令牌,这样我就可以把它写到另一个文件上。你知道吗
到目前为止,我得到的是(这段代码将给我数字,但是有没有方法可以同时得到要计算的数字和要打印到输出文件上的该标记的整个字符串): 例如,如果我调用lookup[Q14591],它会给我['177','26',418],但我还需要177t I26T和M418T
lookup = defaultdict(list)
mydata = open('summaryfile.txt')
for line in csv.reader(mydata, delimiter='\t'):
code = re.match('[a-z](\d+)[a-z]', line[-1], re.I)
if code:
lookup[line[-2]].append(code.group(1))
当使用正则表达式时,
group(0)
应该包含整个匹配的字符串。所以在你的情况下:应该包含整个令牌。因此,如果您将代码修改为如下所示:
然后您可以像这样访问整个令牌:
或者像这样的子令牌:
当然。像这样: 替换此行:
有了这个:
[您已经有了要询问的部分…您正在正则表达式中使用它!]你知道吗
至于您现在如何访问: 在此之前:
现在: lookup[Q14591]==[('177','A177T'),('26','I26T'),('418','A177T')]
…所以查找[Q14591][0]=='177',查找[Q14591][1]=='A177T'
相关问题 更多 >
编程相关推荐