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
<[EMAIL PROTECTED]> 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: <[EMAIL PROTECTED]>).
>  This will not catch this other column fusion Modelfree bug.
>
> Regards,
>
> Edward
>
>
> On Sat, Apr 12, 2008 at 11:20 PM, Sébastien Morin
> <[EMAIL PROTECTED]> 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: <[EMAIL PROTECTED]>).
>
>
>
> On Sat, Apr 12, 2008 at 10:39 PM, <[EMAIL PROTECTED]> 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:
>  <[EMAIL PROTECTED]>)
>
>
>  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
> [email protected]
>
> 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
>
>
>
>
>
>

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

This is the relax-devel mailing list
[email protected]

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

Reply via email to