mailRe: MII-MV of full_analysis.py with RNA


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on September 29, 2006 - 17:47:
On 9/29/06, Alexandar Hansen <viochemist@xxxxxxxxx> wrote:
Hello again,

I'm having some problems getting relax to read in an RNA pdb.  When I use MI
(local_tm) it runs perfectly well, but when I go to sphere, it crashes.

I realized quickly that I needed to tell the pdb input function to look for
different nuclei so I changed those lines (380 and 174) in full_analysis.py
to:

pdb(name, 'etar_au22_phage_df_pt.pdb', heteronuc='N1', proton='H1')

 And that helped, but still it crashed.  I was using a pdb where the
residues weren't numbered sequentially, so I tried one where they were
sequential and that didn't help.  I simplified the PDB and input down to one
residue and it still failed.  Using the Input and PDB I have below, this is
my full result when setting self.diff_model = 'sphere':

Are these three failures identical? Do they print out the same error message (the traceback)?


$ python relax full_analysis.py

relax> run.create(run='sphere', run_type='mf')

relax> results.read(run='sphere', file='results', dir='local_tm/aic',
format='columnar')
Opening the file 'local_tm/aic/results.bz2' for reading.

relax> model_free.remove_tm(run='sphere', res_num=None)

relax> pdb(run='sphere', file='etar_au22_phage_df_pt.pdb',
dir=None, model=None, heteronuc='N1', proton='H1', load_seq=1)
Loading all structures from the PDB file.
Structure('etar_au22_phage_df_pt.pdb', model=1):
  Nucleotide chain of length 1


Calculating unit XH vectors.


Structure 1

Traceback (most recent call last):
  File "relax", line 458, in ?
    Relax()
  File "relax", line 170, in __init__
    self.interpreter.run()
  File
"/local/home/viochem/relax_1.2.7/prompt/interpreter.py",
line 213, in run
    run_script(intro=self.relax.intro_string, local=self.local,
script_file=self.relax.script_file, quit=1)
  File
"/local/home/viochem/relax_1.2.7/prompt/interpreter.py",
line 388, in run_script
    console.interact (intro, local, script_file, quit)
  File
"/local/home/viochem/relax_1.2.7/prompt/interpreter.py",
line 340, in interact_script
    execfile(script_file, local)
  File "full_analysis.py", line 412, in ?
    Main()
  File "full_analysis.py", line 174, in __init__
    pdb(name, 'etar_au22_phage_df_pt.pdb', heteronuc='N1', proton='H1')
  File "/local/home/viochem/relax_1.2.7/prompt/pdb.py",
line 129, in pdb
    self.relax.generic.pdb.load(run=run, file=file, dir=dir, model=model,
heteronuc=heteronuc, proton=proton, load_seq=load_seq)
  File
"/local/home/viochem/relax_1.2.7/generic_fns/pdb.py", line
198, in load
    self.vectors()
  File
"/local/home/viochem/relax_1.2.7/generic_fns/pdb.py", line
229, in vectors
    pdb_residues =
self.relax.data.pdb[self.run].structures[i].peptide_chains[0].residues
IndexError: list index out of range


Is this a bug, or is there something else I'm forgetting? I find the second to last line a little curious (pdb_residues = ... .peptide_chains[0]... ) since I'm using a nucleic acid.

Yep, that is most definitely a bug! For your molecule it should be 'nucleotide_chains' rather than 'peptide_chains'. Could you please create another bug report for this one? Thanks. All that's needed is the print out from the program together with the traceback message, a link to your post which is now archived at https://mail.gna.org/public/relax-users/ (don't forget to include the message ID as this helps others to precisely identify the post in their archived email messages), and possibly the sample data from the end of your message.

Now, the difference between 'nucleotide_chains' and 'peptide_chains'
brings up an interesting problem.  For a PDB file with a single
protein/peptide or a single nucleic acid molecule, there should be no
problems.  But what happens if a PDB file is input which has one
protein molecule and one RNA molecule?  In this case there will be
both 'nucleotide_chains' and 'peptide_chains'.  How will relax know
whether the user is studying the protein or the RNA (or both)?  Or
what if there are two protein molecules?  Or two RNA molecules?  The
solution to all these questions should probably be implemented in
relax as a fix to the bug.  The current 'pdb()' user function is very
limited.


So, In relation to this, what are the important features of the input pdb?

1) sequential numbering of the residues

This I don't know. The PDB file is being read by the PDB reader from Scientific python (http://starship.python.net/~hinsen/ScientificPython/). The description of the resultant data structure is given in the Scientific python manual at http://starship.python.net/~hinsen/ScientificPython/ScientificPythonManual/Scientific_25.html. If Scientific python can't handle a certain PDB file, unfortunately there's not much I can do about it. For most PDB files this shouldn't be a problem.

2) sequential numbering of the atoms

Again this is up to Scientific python.

3) spacing of the columns

This shouldn't be a problem (unless two columns are fused due to insufficient whitespace).

4) first line (MODEL      #)
5) Last two lines (ENDMDL and END)

The Scientific PDB reader handles all PDB types so these lines should not be a worry.

In the distant past relax had two user functions, one called 'pdb()'
and the other 'vectors()'.  These were fused into the single 'pdb()'
function.  Thinking about how RNA has multiple data sets per residue,
each of which is specified by different atom names in the PDB, I think
the function should be separated again.  Then the PDB would be loaded
once and the XH unit vectors calculated separately for each data set
type.

I hope this info helps,

Edward



Related Messages


Powered by MHonArc, Updated Fri Sep 29 19:20:10 2006