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.