On 4/10/07, Gary S. Thompson <garyt@xxxxxxxxxxxxxxx> wrote:
Edward d'Auvergne wrote: > Hi, > > I'm sorry that I was unable to respond to emails last week. That week > was my last at Melbourne Uni and I had to pack and prepare for my > postdoc position in Europe which will be starting soon. > can you give us details?
Well, I'll be working as a postdoc in the laboratory of Prof. Christian Griesinger in Goettingen, Germany. I'll be continuing with the study of protein dynamics using NMR but until the project is underway and the details are more concrete I shouldn't say much more than that ;)
> As for the error, I'm not sure what is happening. we think we do now ;-) > Each Element > container corresponding to a residue for which relaxation data has > been loaded must have the 'num_ri' variable. The script is definitely > not the source of the error and I can't find the problem reported in > the bug tracker (https://gna.org/bugs/?group=relax). Would you like > to have a go at trying to find the bug Gary? Could you run the script > using relax version 1.2.10, 1.3.0, or the 1.2 repository line to see > if the bug is located in that code as well or if it is something which > is solely found in the code of the multi_processor branch? Its not a multiprocessor specific bug because it appears in the 1.3.0 tag. It appears that in write_columnar_results /# No simulation values. / *else*: /# Sphere. / *if* self.relax.data.diff[self.run].type == *'sphere'*: diff_params = [None] /# Spheroid. / *elif* self.relax.data.diff[self.run].type == *'spheroid'*: diff_params = [None, None, None, None] /# Ellipsoid. / *elif* self.relax.data.diff[self.run].type == *'ellipsoid'*: diff_params = [None, None, None, None, None, None] /# Loop over the sequence. / *for* j *in* xrange(len(self.relax.data.res[self.run])): /# Reassign data structure. / data = self.relax.data.res[self.run][j] /# Model details. / model = None *if* hasattr(data, *'model'*): model = data.model equation = None *if* hasattr(data, *'equation'*): equation = data.equation we should have /# Loop over the sequence. / *for* j *in* xrange(len(self.relax.data.res[self.run])): /# Reassign data structure. / data = self.relax.data.res[self.run][j] if not data.selected: continue which avoids writing mc data for residues with no relaxation data (the data sets I was using were some of the ones chris cooked up for 'selection' problems). I can test this against a 1.2 version but I have no idea what revison to try against. Chris isn't sure either. I also don't have any data (old 'correct' montecarlo results files) which I can test the current behaviour against.
The skipping in the results file should not occur. There should be a line for each deselected spin system as well. This stores all the info on that spin. For example the deselection could be temporary and there could be much data associated with that spin that you could use later on. The problem is elsewhere, and I think I have just spotted it. The structure of the write_columnar_results() function is divided into 4 sections: the header, the value, the error, and the simulation. This mirrors the results file. The problem could be that the code for assembling the relaxation data in the value section and the simulation section is different! In the first, the structure 'num_ri' is checked for and the section skipped if it does not exist. In the second, the test is absent. I'll make changes to the multi_processor branch to see if they will work. If it fixes the bug, I'll hand port it to the 1.2 and 1.3 lines. Otherwise Gary, could you revert the revision. One other thing, could you make a bug report for the problem Gary? This will very useful for others who encounter the problem to see that it has been fixed (or is in the process of being fixed). Thanks, Edward