我正在编写一个 python 程序,它必须计算一组字符串的突变残基和位置的数字编码。这些字符串是蛋白质序列。这些序列存储在 fasta 格式文件中,每个蛋白质序列用逗号分隔。序列不同蛋白质的长度可能不同。在此我试图找到突变的位置和序列。
我使用以下代码来获取它。
a = 'AGFESPKLH'
b = 'KGFEHMKLH'
for i in range(len(a)):
if a[i] != b[i]:
print i, a[i], b[i]
但是我想要序列文件作为输入文件。下图将讲述我的项目。在这个图中,第一个框代表输入文件序列的对齐。最后一个框代表输出文件。我怎样才能在 Python 中做到这一点?请帮我。谢谢大家的时间。
例子:
input file
MTAQDD,MTAQDD,MTSQED,MTAQDD,MKAQHD
positions 1 2 3 4 5 6 1 2 3 4 5 6
protein sequence1 M T A Q D D T A D
protein sequence2 M T A Q D D T A D
protein sequence3 M T S Q E D T S E
protein sequence4 M T A Q D D T A D
protein sequence5 M K A Q H D K A H
PROTEIN SEQUENCE ALIGNMENT DISCARD NON-VARIABLE REGION
positions 2 2 3 3 5 5 5
protein sequence1 T A D
protein sequence2 T A D
protein sequence3 T S E
protein sequence4 T A D
protein sequence5 K A H
MUTATED RESIDUE IS SPLITED TO SEPARATE COLUMN
输出文件应该是这样的:
position+residue 2T 2K 3A 3S 5D 5E 5H
sequence1 1 0 1 0 1 0 0
sequence2 1 0 1 0 1 0 0
sequence3 1 0 0 1 0 1 0
sequence4 1 0 1 0 1 0 0
sequence5 0 1 1 0 0 0 1
(RESIDUES ARE CODED 1 IF PRESENT, 0 IF ABSENT)