我如何转换肽序列转换成二进制码

问题描述:

bin_dict = { 
'A':'10000000000000000000', 
'C':'01000000000000000000', 
'D':'00100000000000000000', 
'E':'00010000000000000000', 
'F':'00001000000000000000', 
'G':'00000100000000000000', 
'H':'00000010000000000000', 
'I':'00000001000000000000', 
'K':'00000000100000000000', 
'L':'00000000010000000000', 
'M':'00000000001000000000', 
'N':'00000000000100000000', 
'P':'00000000000010000000', 
'Q':'00000000000001000000', 
'R':'00000000000000100000', 
'S':'00000000000000010000', 
'T':'00000000000000001000', 
'V':'00000000000000000100', 
'W':'00000000000000000010', 
'Y':'00000000000000000001' 
} 

seq1="ACDE" 

bin_string='' 
svm_string='' 
for letter in seq: 
    code = bin_dict[letter] 
    print code 

出来把这个代码是走出这样我如何转换肽序列转换成二进制码

10000000000000000000 
01000000000000000000 
00100000000000000000 
00010000000000000000 

我的第一个问题已经解决了我所期望的方式输出,如@goncalopp建议我正试图重新引入我的Qtn以便更好地理解。

Fig 1. 

步骤第一:SEQ = ACDE

第二步:通过INT的这个二进制码位置的 “1” 将被下面

 10000000000000000000010000000000000000000010000000000000000000010000000000000000 
     |     |     |     | 
     1:1     1:22    1:42     1:58 

第三步所给出的计算:计算的位置

  1:1 1:22 1:42 1:58 

第四步:

 Ultimate output should be a text file having code only 1:1 1:22 1:42 1:58 to represent the string ACDE 

现在请建议我这是什么python代码。

+0

另外,请写出每个职位只有一个问题。 –

+0

对于你的第一个问题,你只需要在你的打印中加一个逗号:'打印代码,'。我不完全理解你的第二个问题。你只是想找到1的位置?您可能想要重述这个问题,因为大多数人都不知道肽序列是什么。 – goncalopp

+0

@ goncalopp我编辑了我的帖子,请提出建议。 – JAZs

试试这个:

print("".join([bin_dict[l] for l in seq1])) 

本文将结合各个琴弦。

binstring = ''.join([bindict.get(l) for l in seq1]) 

应该先做。第二我会有另一个字典,并使用它。

既然你最终只需要1位,并且每个项目由20增长序列你也可能直接跳到到:

pos_dict = {'A':1, 'C':2, 'D':3, 'E':4, 'F':5, 'G':6, 'H':7, 'I':8, 
      'K':9, 'L':10, 'M':11, 'N':12, 'P':13, 'Q':14, 'R':15, 
      'S':16, 'T':17, 'V':18, 'W':19, 'Y':20 } 
S = 1 
for Seq in Seqences: 
    so_far = 0 
    for l in Seq: 
     print "%d:%d" % (S, so_far + pos_dict.get(l,-999)), 
     so_far += 20