Re: [AMBER] Mass-weighted RMSD one-liner with cpptraj - possible?

From: Martin Mielke <m_mlk.yahoo.com>
Date: Fri, 8 May 2020 12:06:43 +0200

Hi Daniel,

thank you very much for your time and help on this! You are a star!

In my case, and in order to come to the same values I get with the
Python script and QMol, I had to do introduce a little change:

# Load file01 as the reference
parm N3_Covid19_01.pdb
reference N3_Covid19_01.pdb

# Load file02
parm N3_Covid19_02.pdb
trajin N3_Covid19_02.pdb parmindex 1

# to obtain previous values    <--- HERE
center reference               <--- HERE

# RMS, no fitting
rms RMSD reference nofit out rmsd.dat

# Center file02 on file01
center reference

# RMS after centering, no fitting, mass-weighted
rms RMSDmw reference mass nofit out rmsd.dat


So it yields:

cat rmsd.dat
#Frame           RMSD       RMSDmw
        1      10.9017      10.8749


Have a great weekend!


Best,

Martin


On 2020-05-07 21:47, Daniel Roe wrote:
> Hi,
>
> I think I've figured out what's going on. I took a look at that python
> script you were using, and I saw that that there was an option for
> translating structures. So I suspected that maybe the RMSD you posted
> from that script had centered the structures on each other, and then
> taken the RMSD without fitting. That turned out to be it. Here are the
> results:
>
> #Frame NoFit NoFitM NoRotate Fit FitM
> 1 12.5962 12.6316 10.8749 0.0007 0.0007
>
> The 'NoRotate' number is the no-fit RMSD after centering file02.pdb.
> Here's the cpptraj script I used to get the above numbers in case
> you're interested:
>
> # Load file01 as the reference
> parm file01.pdb
> reference file01.pdb
> # Load file02
> parm file02.pdb
> trajin file02.pdb parmindex 1
> # RMS, no fitting
> rms NoFit reference nofit out rmsd.dat
> # RMS, no fitting, mass-weighted
> rms NoFitM reference mass nofit out rmsd.dat
> # Center file02 on file01
> center reference
> # RMS after centering, no fitting, mass-weighted
> rms NoRotate reference mass nofit out rmsd.dat
> # RMS after fitting
> rms Fit reference out rmsd.dat
> # RMS after fitting, mass-weighted
> rms FitM reference mass out rmsd.dat
>
> Hope this clears things up,
>
> -Dan
>
> On Wed, May 6, 2020 at 9:28 AM Martin Mielke <m_mlk.yahoo.com> wrote:
>> Hello again Daniel,
>>
>> I followed your instructions and I can now calculate the RMSD and the
>> mass-weighted RMSD. So far, so good...
>>
>> Now, there is a notable difference between the values obtained with
>> calculate_rmsd.py (https://github.com/charnley/rmsd/tree/master/rmsd)
>> and QMol (Windows application).
>>
>> Using both of them I come to the same results:
>>
>> a) RMSD
>>
>> 01 vs v2 10.901
>>
>> b) mass-weighted RMSD
>>
>> 01 vs v2 10.874
>>
>>
>> But when I use cpptraj, the results differ quite a lot:
>>
>> c) RMSD - cpptraj
>>
>> 01 vs 02 12.5962
>>
>> d) mass-weighted RMSD - cpptraj
>>
>> 01 vs 02 12.6316
>>
>>
>> For both cases [a) and b)] the only modification is rotation=none; with
>> cpptraj, "nofit" does the same.
>>
>> Still, I do not know why cpptraj's results are so different from the
>> other tools...
>>
>>
>> Am I overseeing the obvious?
>>
>>
>> Thanks and regards,
>>
>> Martin
>>
>>
>> On 2020-05-05 23:26, Martin Mielke wrote:
>>> Hi Daniel,
>>>
>>> Thanks for your reply.
>>>
>>> I will give it a try and, most probably, will write a wrapper script
>>> that accepts file1.pdb and file2.pdb as arguments...
>>>
>>> Also thanks for pointing me in the right direction!
>>>
>>>
>>> Best,
>>>
>>> Martin
>>>
>>> On 2020-05-05 15:08, Daniel Roe wrote:
>>>> Hi,
>>>>
>>>> On Mon, May 4, 2020 at 9:23 AM Martin Mielke<m_mlk.yahoo.com> wrote:
>>>>> It seems like calculating a mass-weighted RMSD is possible too, so I was
>>>>> wondering if someone would point me to the right direction in telling me
>>>>> how to use cpptraj in a way that it yields the mass-weighted RMSD for 2
>>>>> given PDB files? All I want is the final value shown on screen, no graph
>>>>> files etc needed.
>>>>>
>>>>> For example:
>>>>> $ cpptraj [options for mass-weighted RMSD here] file1.pdb file2.pdb [hit
>>>>> enter]
>>>>> 10.874
>>>> This will require a short input file. Something like a file named e.g.
>>>> myinput.in:
>>>>
>>>> # load reference pdb
>>>> parm pdb1.pdb
>>>> reference pdb1.pdb parmindex 0
>>>> # load target pdb
>>>> parm pdb2.pdb
>>>> trajin pdb2.pdb parmindex 1
>>>> # Calculate RMSD
>>>> rmsd RMS reference mass
>>>> run
>>>> printdata RMS
>>>>
>>>> Then run 'cpptraj -i myinput.in'.
>>>>
>>>> This will be a best-fit RMSD by default, assumes that pdb1.pdb and
>>>> pdb2.pdb have the exact same atoms, and that you want the final RMSD
>>>> to include every atom. If the PDBs are different you would have to
>>>> give mask expressions that describe the regions you want to use in the
>>>> RMSD calculation. There needs to be a 1 to 1 correspondence between
>>>> the atoms in the target and reference structures for the RMSD to be
>>>> meaningful.
>>>>
>>>> Please let me know if you have more questions. It's probably also a
>>>> good idea to look at the 'rmsd' command section of the cpptraj manual,
>>>> and maybe do 1 or 2 of the basic cpptraj tutorials
>>>> (https://ambermd.org/tutorials/TrajectoryAnalysis.php). If you run
>>>> cpptraj interactively (by just typing cpptraj with no other input) and
>>>> type 'help rmsd', it will show you the command syntax.
>>>>
>>>> Hope this helps,
>>>>
>>>> -Dan
>>>>
>>>> _______________________________________________
>>>> AMBER mailing list
>>>> AMBER.ambermd.org
>>>> http://lists.ambermd.org/mailman/listinfo/amber
>> _______________________________________________
>> AMBER mailing list
>> AMBER.ambermd.org
>> http://lists.ambermd.org/mailman/listinfo/amber
> _______________________________________________
> AMBER mailing list
> AMBER.ambermd.org
> http://lists.ambermd.org/mailman/listinfo/amber
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Fri May 08 2020 - 03:30:02 PDT
Custom Search