如何匹配字典键值对并将Fasta序列导出至对应命名文件?
解决Fasta序列按分组导出到独立文件的问题
需求目标
匹配Fasta信息中的序列数据,将序列名称与序列内容导出至独立文件。需将dict_1的键与dict_2的值进行匹配,生成以dict_2的键为文件名的文件,文件内包含对应的dict_1条目(序列标识+序列内容)。
现有数据
- dict_1:键为序列标识(如NODE_XXX),值为对应氨基酸序列;
- dict_2:键为文件命名标识,值为序列标识列表。
问题描述
编写循环代码时无法完成匹配验证与内容输出,无法实现预期的文件生成效果。
预期输出
例如生成MGs27_5k_1_D5.txt文件,内容为Fasta格式的对应序列。
解决方案
以下Python代码实现了匹配逻辑与文件写入功能,可满足需求:
def fileWrite(fileName, nodeName, fileContents): print(f'正在将>{nodeName} {fileContents} 写入 {fileName + ".txt"}') file=open( fileName + ".txt",'w+') file.write('>'+nodeName+'\n') file.write(fileContents+'\n') file.close() for k2,v2 in dict2.items(): for k1 in dict1: if k1 in v2: fileWrite(k2,k1,dict1[k1])
代码说明
fileWrite函数负责创建目标文件,并按Fasta格式写入序列标识和对应的序列内容;- 外层循环遍历dict_2的每个分组(键为文件名,值为该文件需要包含的序列标识列表);
- 内层循环检查dict_1中的每个序列标识是否属于当前分组,匹配成功则调用
fileWrite生成对应文件。
内容的提问来源于stack exchange,提问作者Katie S
相关产品推荐
相关产品推荐

