我正在研究蛋白质序列的匹配算法。我从一个对齐的蛋白质序列开始,我试图将一个错误排列的序列转换成正确对齐的序列。下面是一个例子:蛋白质序列模式匹配python
原始对齐序列:---- AB - CD -----
未对齐的序列:--a - BC --- D-
预期的输出应该是这样的:
原来的排列顺序:---- AB - CD -----
未对齐的序列:---- AB - CD ---- - (都是现在一样)
我被告知是非常具体关于我的问题,但我想匹配的序列长度> 4000个字符,并且在粘贴时看起来很荒谬。不过,我会发布代表我的问题的两个序列,而且应该这样做。
seq="---A-A--AA---A--"
newseq="AA---A--A-----A-----"
seq=list(seq) #changing maaster sequence from string to list
newseq=list(newseq) #changing new sequence from string to list
n=len(seq) #obtaining length of master sequence
newseq.extend('.') #adding a tag to end of new sequence to account for terminal gaps
print(seq, newseq,n) #verification of sequences in list form and length
for i in range(n)
if seq[i]!=newseq[i]:
if seq[i] != '-': #gap deletion
del newseq[i]
elif newseq[i] != '-':
newseq.insert(i,'-') #gap insertion
elif newseq[i] == '-':
del newseq[i]
old=''.join(seq) #changing list to string
new=''.join(newseq) #changing list to string
new=new.strip('.') #removing tag
print(old) #verification of master-sequence fidelity
print(new) #verification of matching sequence
我从这个特殊的代码获取和设置序列的输出是:
--- AA - AA --- A--
--- AA - A- --- A ----- A -----
我似乎无法得到循环正确删除字符之间不需要的破折号不止一次,因为其余的循环迭代被使用在添加短划线/删除短划线对。
这是这里问题的一个好开始。
我怎样才能成功写入该循环,以获得期望的我的输出(两个相同的序列)
没有环路在此代码示例 –
感谢您指出了这一点!我想我在混洗中丢失了循环命令。 – AHuck