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

allpy

changeset 814:4e4d53155e42

structure: fix filtering by model in save_pdb method of SequenceMixin * add accept_model method to MySelect class * move class code after code defining model to use closure * use is instead of Equal-to operator for chains and models in MySelect * create helper variables chain and model
author boris (kodomo) <bnagaev@gmail.com>
date Fri, 15 Jul 2011 02:56:28 +0400
parents 5102c8443718
children 2c0391cca127
files allpy/structure.py
diffstat 1 files changed, 10 insertions(+), 10 deletions(-) [+]
line diff
     1.1 --- a/allpy/structure.py	Thu Jul 14 18:15:45 2011 +0400
     1.2 +++ b/allpy/structure.py	Fri Jul 15 02:56:28 2011 +0400
     1.3 @@ -234,21 +234,21 @@
     1.4  
     1.5      def save_pdb(self, out_filename, new_chain=None, new_model=None):
     1.6          """ Save pdb_chain to out_file """
     1.7 -        class MySelect(Select):
     1.8 -            def accept_chain(myselect, chain):
     1.9 -                if chain == self.pdb_chain:
    1.10 -                    return 1
    1.11 -                else:
    1.12 -                    return 0
    1.13 -        old_chain = self.pdb_chain.id
    1.14 +        chain = self.pdb_chain
    1.15 +        old_chain = chain.id
    1.16          if new_chain:
    1.17 -            self.pdb_chain.id = new_chain # change private member
    1.18 -        model = self.pdb_chain.get_parent()
    1.19 +            chain.id = new_chain # change private member
    1.20 +        model = chain.get_parent()
    1.21          old_model = model.id
    1.22          if new_model:
    1.23              model.id = new_model # change private member
    1.24 +        class MySelect(Select):
    1.25 +            def accept_chain(myselect, tested_chain):
    1.26 +                return tested_chain is chain
    1.27 +            def accept_model(myselect, tested_model):
    1.28 +                return tested_model is model
    1.29          io = PDBIO()
    1.30 -        structure = self.pdb_chain.get_parent().get_parent()
    1.31 +        structure = model.get_parent()
    1.32          io.set_structure(structure)
    1.33          io.save(out_filename, MySelect())
    1.34          self.pdb_chain.id = old_chain