> Oh, do you think it should be inversely proportional so that the > bigger the molecule, the bigger the tensor? In a hybrid model created > using run.hybridise(), do you think we should scale the multiple > diffusion tensors equally? One way would be to loop over every last > atom in the PDB and get the mass of the entire lot (rather than just > the selected residues).
I was going to suggest this in all cases. The diffusion tensor applies to and is determined by all atoms in the molecule, not just the ones we happen to be analysing in any particular run. Thus the mass, center of mass, and molecular dimentions for scaling should be calculated for all atoms in the PDB
For the combination of the hybrid models with a multidomain macromolecule, i.e. where domain 1 of macromolecule is fit to one diffusion tensor and domain 2 to another, the centre of mass should be the centre of mass of each individual domain. The option of autoscaling by proportionality to inverse mass in these systems should be the same though - hence the single mass would be useful.
I can see the potential for a few functions to be added to the 'generic_fns/structure.py' file (I've just skipped forward a couple of days in time there, the function is currently 'pdb.py' :). These could mimick the 'self.centre_of_mass()' function but be more advanced. For example there could be a function called 'self.mass()' which either calculates the mass for all atoms or only the selected residues depending on a function argument. Another argument could be used to select all atoms of the system (excluding H2O) rather than just the relevant organic, carbohydrate, RNA, DNA, or protein molecule (i.e. metals, ligands, etc.).
If someone sees the need, there could even be a user function called 'structure.create_inertia_pdb()' (again jumping into the future). Another function of 'generic_fns/structure.py' could be called 'self.inertia_tensor()' which is called by 'self.create_inertia_pdb()'. This could then use much of the code of 'structure.create_tensor_pdb()' to create a representation of the inertia tensor very similar to that of the diffusion tensor.
Actually now that I think about it, I should rename 'pdb.create_tensor_pdb()' to 'structure.create_diff_pdb()'!
> In any case, the diffusion rate per Angstrom should be made abundantly > clear to the user so that they then hopefully report the rate per > Angstrom in their figure legend. I personally feel that this is > essential, despite the fact Tensor hides this info. It's not uncommon > in the literature for the diffusion tensor parameters to not be > reported. Comparisons are very important, especially if working on a > homologous system, attempting to replicate published results, or > reanalysing data.
I agree that reporting the diffusion tensor is critical in relaxation analysis. I would go further and say a figure of this type, even if the scale is reported, is not an alternative to reporting actual values for the tensor components.
Exactly. Unfortunately it is easy to find published model-free analyses where these values are absent! Another common thing is to report the shape of the diffusion tensor through the tm and Dratio parameters but not report the spherical angles used to orient the frame. It's probably best I don't point these out here.
Even with a scale, this figure gives no truely quantitative data, in part it is a two dimentional projection of a 3D object, and also because the degree of magnification is never reported in this type of cartoon structural figure ie. even with a scale an a ruler, I can never work out the size of the diffusion tensor from this figure. For this reason I'm not so hung up about the scale, but ofcourse it needs to be clearly reported by relax and perhaps written as a REMARK to the pdb file.
The scale of the image should give a good idea though. However if the diffusion results are properly reported, then this isn't essential. The scaling value should nevertheless give the reader a good idea as to the relative magnitude of the tensor.
Edward