我正在尝试编写一个脚本,将任何基因组中观察到的基因作为输入,计算观察到给定基因的次数,然后将所有输入计数合并到列中唯一基因组的数据框中行中有独特的基因,每个基因的数量都在矩阵中。我能够编写一个脚本,例如一个简单的2基因组示例。在附加的* gz文件(tony_script.tar.gz)中,OUT.txt和OUT2.txt是来自两个不同基因组的基因列表。具有此信息的脚本称为“ gene_table.py”。我的脚本可以满足我的要求,但是如果我将其扩展到数百个基因组(或文本文件),则难以唯一地加载每个文本文件,或者不切实际。我很难弄清楚如何对许多文本文件执行此操作。我想出了如何将几个文本文件读入python(glob),打开并读取它们的方法。
但是如何独立存储其内容,并执行计数/数据帧功能?
#simple example for creating a genome-protein coding gene table
#using python dictinoaries
#start with just two genomes, reading in each separately
#reads in genes from sorted gene lists, counts genes, stores in
#dictionary, combines dictionaries into table
import pandas as pd
with open("OUT.txt") as f:
content = f.readlines()
content [x.strip() for x in content]
from collections import Counter
#count genes in first genome
genome_1 = Counter(content)
#open genome 2
with open("OUT2.txt") as f2:
content2 = f2.readlines()
content2 = [x.strip() for x in content2]
from collections import Counter
genome_2 = Counter(content2)
mydicts = [genome_1, genome_2]
#make the dataframe
df = pd.concat([pd.Series(d) for d in mdicts],
axis=1).fillna(0).T
df.index = ['genome_1', 'genome_2']
print(df)