Python:使用解析器比较同一组蛋白质的两个多fasta文件,以发现和计算治疗后的突变
我的任务是计算治疗后几种蛋白质发生的突变。序列以相同的顺序出现在两个文件中。我用biopython中的fasta解析器(SeqIO.parse)打开了这两个文件,我得到了列出的所有蛋白质(在治疗前后分开) 我的问题:Python:使用解析器比较同一组蛋白质的两个多fasta文件,以发现和计算治疗后的突变,python,parsing,statistics,bioinformatics,fasta,Python,Parsing,Statistics,Bioinformatics,Fasta,我的任务是计算治疗后几种蛋白质发生的突变。序列以相同的顺序出现在两个文件中。我用biopython中的fasta解析器(SeqIO.parse)打开了这两个文件,我得到了列出的所有蛋白质(在治疗前后分开) 我的问题: 如何将解析器压缩到一起以计算突变 来自Bio导入序列 对于SeqIO.parse中的正常样本(“/data/statistic/normal\u samples”,“fasta”): 打印(普通样本.id) 打印(报告(正常样本顺序)) 打印(透镜(普通样品)) 对于SeqI
- 如何将解析器压缩到一起以计算突变
来自Bio导入序列
对于SeqIO.parse中的正常样本(“/data/statistic/normal\u samples”,“fasta”):
打印(普通样本.id)
打印(报告(正常样本顺序))
打印(透镜(普通样品))
对于SeqIO.parse中的已处理样本(“/data/statistic/with_treatment”,“fasta”):
打印(普通样本.id)
打印(报告(正常样本顺序))
打印(透镜(普通样品))
dict_n_t=dict(zip(正常样本和处理样本))
假设:
- 两个文件中的序列顺序相同
- 仅发生点突变(因此两个文件中相应序列的长度相同)
- 你很明显对突变计数感兴趣,而不是它们的位置
from Bio import SeqIO
normal_samples = SeqIO.parse("/data/statistic/normal_samples", "fasta")
treated_samples = SeqIO.parse("/data/statistic/with_treatment", "fasta")
for normal, treated in zip(normal_samples, treated_samples):
if normal.id == treated.id:
mutations = sum(1 for n, t in zip(str(normal.seq), str(treated.seq)) if n != t)
print(f"Found {mutations} mutation(s) for id {normal.id}")
你也可以提出这个问题。