mailRe: r5607 - /1.3/generic_fns/palmer.py


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

Header


Content

Posted by Edward d'Auvergne on April 13, 2008 - 01:15:
I once was quite familiar with the Modelfree code base (which is in
Fortran) as I did a bit of debugging to solve a few problems.  These
fixes are in the current Modelfree version.  However I don't remember
the formatting string for the STAR format output for the model-free
parameters.  I could possibly pull this formatting string out from the
Modelfree code base, and that may allow the columns for these
parameters to be split up exactly.  Actually, here it is from the
modelout.F file:

          write(iunit,'(10x,i10,2f15.3,i5,4f15.3)',
     1     iostat=ierr,err=999)
     1       resnum(i),guess(4,i),punc(4,i),
     1       inlist(4,i),simpar(4,i),simvar(4,i),simabs(4,i),
     1       simgry(4,i)

So we have 10 spaces, an interger right justified in a column of 10
characters (the residue number, I forgot Modelfree only handles one
spin per residue), 2 floats of 15.3, an integer in a column of 5 char,
and 4 final columns of floats to 3 decimals of a width of 15 char.
These correspond to:

_Residue, _Fit_value, _Fit_error, _Flag, _Sim_value, _Sim_error,
_Sim_abs, _Geary-Z

So this could be relatively easy to parse, if we knew exactly what
Fortran does when these columns overflow!  To get a single space
between columns, you'd need a '1x' between all formatting strings.

Regards,

Edward


On Sun, Apr 13, 2008 at 12:34 AM, Sébastien Morin
<sebastien.morin.1@xxxxxxxxx> wrote:

 Yeah, right.

 That's why I asked. I didn't think that this change would correct the
problem I found this week...

 Concerning that, I wrote an e-mail to Arthur Palmer concerning this
formatting issue. I don't know if it will be solved in the near future, so
this would maybe be a good idea to add something for catching this bug also
in relax... If I have an idea, I'll tell you.



 Ciao !


 Séb





 Edward d'Auvergne wrote:
 Hi,

No, no, this is the old bug with many *'s in a column, specifically
for Rex, that I described here
(https://mail.gna.org/public/relax-users/2008-04/msg00020.html,
Message-id: <7f080ed10804090112m437f001ar81399aa9f79cae9c@xxxxxxxxxxxxxx>).
 This will not catch this other column fusion Modelfree bug.

Regards,

Edward


On Sat, Apr 12, 2008 at 11:20 PM, Sébastien Morin
<sebastien.morin.1@xxxxxxxxx> wrote:


 Hi Ed,

 Nice that you found this one.

 So you say that this will catch the ModelFree fused column bug ?

 Ciao !


 Séb



 Edward d'Auvergne wrote:

 Hi,

I've found one bug below. Note though that this is an ancient bug I
introduced many, many years ago and affects the code for catching the
Modelfree fused column bug
(https://mail.gna.org/public/relax-users/2008-04/msg00018.html,
Message-id: <47FB8D12.8090502@xxxxxxxxx>).



On Sat, Apr 12, 2008 at 10:39 PM, <sebastien.morin.1@xxxxxxxxx> wrote:


 Author: semor
 Date: Sat Apr 12 22:39:33 2008
 New Revision: 5607

 URL: http://svn.gna.org/viewcvs/relax?rev=5607&view=rev
 Log:
 Corrected more of the bugs introduced in former revisions as part of the
move to the new design.

 These were spotted by Edward d'Auvergne in a post at:
 https://mail.gna.org/public/relax-devel/2008-04/msg00056.html (#
Message-id:
 <1208030368.8064.47.camel@localhost>)


 Modified:
 1.3/generic_fns/palmer.py

 Modified: 1.3/generic_fns/palmer.py
 URL:
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/palmer.py?rev=5607&r1=5606&r2=5607&view=diff

==============================================================================
 --- 1.3/generic_fns/palmer.py (original)
 +++ 1.3/generic_fns/palmer.py Sat Apr 12 22:39:33 2008
 @@ -505,7 +505,7 @@
 chdir(orig_dir)


 - def extract(self, dir):
 + def extract(self, dir, spin_id=None):
 """Function for extracting the Modelfree4 results out of the 'mfout'
file."""

 # Alias the current data pipe.
 @@ -545,65 +545,63 @@

 # Loop over the sequence.
 pos = 0
 - for i in xrange(len(cdp.res)):
 - # Reassign the data structure.
 - data = cdp.res[i]
 + for spin in spin_loop(spin_id):

 # Skip unselected residues.
 - if not data.select:
 + if not spin.select:
 continue

 # Missing data sets.
 - if not hasattr(data, 'model'):
 + if not hasattr(spin, 'model'):
 continue

 # No relaxation data.
 - if not hasattr(data, 'num_frq'):
 + if not hasattr(spin, 'num_frq'):
 continue

 # Get the S2 data.
 - if 'S2' in data.params:
 - data.s2, data.s2_err = self.get_mf_data(self.mfout_S2_pos + pos)
 + if 'S2' in spin.params:
 + spin.s2, spin.s2_err = self.get_mf_data(self.mfout_S2_pos + pos)

 # Get the S2f data.
 - if 'S2f' in data.params or 'S2s' in data.params:
 - data.s2f, data.s2f_err = self.get_mf_data(self.mfout_S2f_pos + pos)
 + if 'S2f' in spin.params or 'S2s' in spin.params:
 + spin.s2f, spin.s2f_err = self.get_mf_data(self.mfout_S2f_pos + pos)

 # Get the S2s data.
 - if 'S2f' in data.params or 'S2s' in data.params:
 - data.s2s, data.s2s_err = self.get_mf_data(self.mfout_S2s_pos + pos)
 + if 'S2f' in spin.params or 'S2s' in spin.params:
 + spin.s2s, spin.s2s_err = self.get_mf_data(self.mfout_S2s_pos + pos)

 # Get the te data.
 - if 'te' in data.params:
 - data.te, data.te_err = self.get_mf_data(self.mfout_te_pos + pos)
 - data.te = data.te / 1e12
 - data.te_err = data.te_err / 1e12
 + if 'te' in spin.params:
 + spin.te, spin.te_err = self.get_mf_data(self.mfout_te_pos + pos)
 + spin.te = spin.te / 1e12
 + spin.te_err = spin.te_err / 1e12

 # Get the ts data.
 - if 'ts' in data.params:
 - data.ts, data.ts_err = self.get_mf_data(self.mfout_te_pos + pos)
 - data.ts = data.ts / 1e12
 - data.ts_err = data.ts_err / 1e12
 + if 'ts' in spin.params:
 + spin.ts, spin.ts_err = self.get_mf_data(self.mfout_te_pos + pos)
 + spin.ts = spin.ts / 1e12
 + spin.ts_err = spin.ts_err / 1e12

 # Get the Rex data.
 - if 'Rex' in data.params:
 - data.rex, data.rex_err = self.get_mf_data(self.mfout_Rex_pos + pos)
 + if 'Rex' in spin.params:
 + spin.rex, spin.rex_err = self.get_mf_data(self.mfout_Rex_pos + pos)
 try:
 - data.rex = data.rex / (2.0 * pi * data.frq[0])**2
 - data.rex_err = data.rex_err / (2.0 * pi * data.frq[0])**2
 + spin.rex = spin.rex / (2.0 * pi * spin.frq[0])**2
 + spin.rex_err = spin.rex_err / (2.0 * pi * spin.frq[0])**2
 except TypeError:
 # Bug in Modelfree4's mfout output file (fusion of columns).
 - data.rex = None
 - data_rex_err = None
 + spin.rex = None
 + spin_rex_err = None

 Here is my bug. The last line should read 'spin.rex_eror = None'
rather than 'spin_res_error'. I'll fix this bug in both the 1.2 and
1.3 lines.

Cheers,

Edward

_______________________________________________
relax (http://nmr-relax.com)

This is the relax-devel mailing list
relax-devel@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel









Related Messages


Powered by MHonArc, Updated Sun Apr 13 01:41:58 2008