def get_species(fullseq, homophobic) :
''' Split a sequence of multiple molecules ('&') into a list:
:param: homophobic Choose whether to return homo-dimers or not
:return: [(name, seq), (name&name, seq&seq), ...]
'''
subseqs = c.OrderedDict.fromkeys(fullseq.split('&'))
species = list(string.uppercase[:len(subseqs)])
monomers = zip(species, subseqs)
dim = len(monomers)
dimers = []
for x in range(dim):
for y in range(x, dim):
if (homophobic and x == y) : continue
(speX, seqX) = monomers[x]
(speY, seqY) = monomers[y]
dimers.append((speX+'&'+speY, seqX+'&'+seqY))
return monomers + dimers
评论列表
文章目录