0

MUC20 17615 NP_689886.2 MET 01280 NP_001120972.1 体外;体内;酵母 2-杂交 15314156

SMURF2 06901 NP_073576.1 TFPI2 08962 NP_006519.1 酵母 2-杂交 15231748

ERBB2 01281 NP_004439.2 ERBB2 01281 NP_004439.2 体外;体内 10372802,1706616,12354693,11500516

ACPP 01378 NP_001127666.1 ERBB2 01281 NP_004439.2 体外;体内 11067847,10851066,9705354

PIK3R1 01381 NP_852664.1 ERBB2 01281 NP_004439.2 体内 1351056,16843263

PLCG1 01398 NP_002651.2 ERBB2 01281 NP_004439.2 体内 1676673,1683701

……

请帮助我。我的数据看起来像这样。我只想使用 python 解析蛋白质的配对名称(粗体)。成对的名字应该像下面这样存储。例如,MUC20 10 MET。和 SMURF2 10 TFPI2。在名称之间,应插入数字 10。

MUC20 10 满足

SMURF2 10 TFPI2

ERBB2 10 ERBB2

ACPP 10 ERBB2

我怎样才能像上面那样解析?

谢谢你。

4

3 回答 3

2

你能用空格分割然后取第 0 个和第 3 个元素并在它们之间插入“10”吗?

例如:

def parseString(origString):
    splitString = origString.split(' ')
    return splitString[0] + ' 10 ' + splitString[3]
于 2012-11-15T08:40:56.407 回答
1

这是(至少)三个问题:

  1. 解析,即识别输入文件中感兴趣的信息,将其与您不感兴趣的内容分开。也许可以查看这部分的正则表达式。
  2. 将解析出的信息存储在合适的结构中。一个普通的 Python 列表就足够了。
  3. 使用存储的信息生成其他一些新的“报告”,您可以在其中插入10s。只需遍历 (2) 中的列表,这是微不足道的。
于 2012-11-15T08:43:40.637 回答
0

您可能不需要正则表达式来解决此问题,但如果您想使用它们,请尝试:

import re

pattern = re.compile('^(\w+)\D\d+\D\w+\D\d\D(\w+)')
groups = pattern.search(your_string).groups()
print groups[0] + ' 10 ' + groups[1]
于 2012-11-15T10:06:30.593 回答