Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/allpy/rev/bb338c8f1bb6
Дата изменения: Unknown
Дата индексирования: Tue Oct 2 00:34:37 2012
Кодировка:
allpy: bb338c8f1bb6

allpy

changeset 1033:bb338c8f1bb6

blocks_to_pymol(): take alter code into account while fitting Only alt codes '' and 'a' should be selectedto prevent error "Atom counts between selection sets don't match". close #147
author Boris Nagaev <bnagaev@gmail.com>
date Fri, 16 Mar 2012 23:41:59 +0400
parents 2421101d4aae
children 9ae235d79156
files allpy/structure.py
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line diff
     1.1 --- a/allpy/structure.py	Fri Mar 16 16:06:18 2012 +0400
     1.2 +++ b/allpy/structure.py	Fri Mar 16 23:41:59 2012 +0400
     1.3 @@ -539,6 +539,7 @@
     1.4                      intervals.append(str(group[0]) + '-' + str(group[-1]))
     1.5              return '((resi %(resi)s) and %(seq)s)' % \
     1.6                  {'resi': ','.join(intervals), 'seq': sequence_line(s)}
     1.7 +        FITTABLE = " and name ca and alt a+''"
     1.8          pdbs = set(sequence_to_pdb(s) for s in self.sequences)
     1.9          for pdb in pdbs:
    1.10              file.write("fetch %(pdb)s, async=0\n" % {'pdb': pdb})
    1.11 @@ -555,8 +556,8 @@
    1.12                  if fit_to in block.sequences and fit_from in block.sequences:
    1.13                      columns |= set(block.columns)
    1.14              file.write("pair_fit %(fit_from)s, %(fit_to)s\n" %
    1.15 -                {'fit_to': columns_line(columns, fit_to) + " and name ca",
    1.16 -                 'fit_from': columns_line(columns, fit_from) + " and name ca"})
    1.17 +                {'fit_to': columns_line(columns, fit_to) + FITTABLE,
    1.18 +                 'fit_from': columns_line(columns, fit_from) + FITTABLE})
    1.19          file.write("hide everything, all\n")
    1.20          for s in self.sequences:
    1.21              file.write("show sticks, %(seq)s and name c+n+ca\n" %
    1.22 @@ -576,13 +577,16 @@
    1.23  def by_block(i):
    1.24      main_seq = block_to_seqs[i][0]
    1.25      for seq in block_to_seqs[i][1:]:
    1.26 -        template = "block_%(i)s and %(seq)s and name ca"
    1.27 +        template = "block_%(i)s and %(seq)s {FITTABLE}"
    1.28          fit_to = template % {'i': i, 'seq': main_seq}
    1.29          fit_from = template % {'i': i, 'seq': seq}
    1.30          cmd.do("pair_fit %(fit_from)s, %(fit_to)s" % vars())
    1.31  cmd.extend('by_block', by_block)
    1.32  python end
    1.33 -        '''.replace('{block_to_seqs}', json.dumps(block_to_seqs)))
    1.34 +        '''
    1.35 +        .replace('{block_to_seqs}', json.dumps(block_to_seqs))
    1.36 +        .replace('{FITTABLE}', FITTABLE)
    1.37 +        )
    1.38  
    1.39  class BlockMixin(base.Block, AlignmentMixin):
    1.40      """Mixin to add 3D properties to blocks.