所以我有大约一千行的文件,看起来像这样:
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 之后获取整个标记。
我想获取该 token ,以便将其写入另一个文件。
这是我目前所拥有的(这段代码会给我数字,但是有没有办法同时获得要计算的数字和要打印到输出文件的该标记的整个字符串): 例如,如果我调用 lookup[Q14591] 它会给我 ['177','26',418] 但我还想要 A177T 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) 应该包含整个匹配的字符串。所以在你的情况下:
code.group(0)
应该包含整个标记。因此,如果您将代码修改为如下所示:
lookup = defaultdict(list)
wholelookup = 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))
wholelookup[line[-2]].append(code.group(0))
然后您可以像这样访问整个 token :
wholelookup['Q14591']
或者像这样的子标记:
lookup['Q14591']
