【发布时间】:2015-10-03 01:49:50
【问题描述】:
我想合并共享一个公共列的两个制表符分隔的文本文件。我有一个看起来像这样的“标识符文件”(2 列 x 1050 行):
module 1 gene 1
module 1 gene 2
..
module x gene y
我还有一个制表符分隔的“目标”文本文件,看起来像这样(36 列 x 12000 行):
gene 1 sample 1 sample 2 etc
gene 2 sample 1 sample 2 etc
..
gene z sample 1 sample 2 etc
我想根据基因标识符合并这两个文件,并从标识符和目标文件中获得匹配的表达值和模块隶属关系。本质上是从标识符文件中获取基因,在目标文件中找到它们并创建一个新文件,其中包含模块#、基因#和表达值都在一个文件中。欢迎提出任何建议。
我想要的输出是由制表符分隔的基因 ID 选项卡模块隶属关系选项卡样本值。
这是我想出的脚本。编写的脚本不会产生任何错误消息,但它给了我一个空文件。
expression_values = {}
matches = []
with open("identifiers.txt") as ids, open("target.txt") as target:
for line in target:
expression_values = {line.split()[0]:line.split()}
for line in ids:
block_idents=line.split()
for gene in expression_values.iterkeys():
if gene==block_idents[1]:
matches.append(block_idents[0]+block_idents[1]+expression_values)
csvfile = "modules.csv"
with open(csvfile, "w") as output:
writer = csv.writer(output, lineterminator='\n')
for val in matches:
writer.writerow([val])
谢谢!
【问题讨论】: