Re: [AMBER] RMSD on two slightly different structures

From: Guillaume Roellinger <roellinger.bio.mx>
Date: Thu, 25 Sep 2014 08:39:49 +0000

Dear all,

Thank you very much for your answers. Unfortunately in both cases, it did not work.

About Jason's answer:
Providing any mask in the reference corrupts my parm data. When I do a "list parm", I get an insane number of atoms and residues:
[0: '!', 16504981539634859568 atoms, 1304625 res, box: None, 1 mol, 1 frames]

When I want to "clear parm" or "clear all", I definitely get this (see below), which makes me think that somehow adding a mask in the "reference" statement corrupts my parm data.
[> clear parm
*** Error in `/apps/prod/amber14/bin/cpptraj': double free or corruption (!prev): 0x0000000002901970 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7ac56)[0x7fb9933e3c56]
/lib64/libc.so.6(+0x7b9d3)[0x7fb9933e49d3]
/apps/prod/amber14/bin/cpptraj[0x410d1c]
/apps/prod/amber14/bin/cpptraj[0x55ab28]
/apps/prod/amber14/bin/cpptraj[0x4fda81]
/apps/prod/amber14/bin/cpptraj[0x4f36c8]
/apps/prod/amber14/bin/cpptraj[0x4f7fed]
/apps/prod/amber14/bin/cpptraj[0x4faf48]
/apps/prod/amber14/bin/cpptraj[0x40bd3d]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fb99338aa15]
/apps/prod/amber14/bin/cpptraj[0x40bd9d]
======= Memory map: ========
00400000-006cb000 r-xp 00000000 00:21 30426264 /apps/prod/amber14/bin/cpptraj
008cb000-00918000 r--p 002cb000 00:21 30426264 /apps/prod/amber14/bin/cpptraj
00918000-00920000 rw-p 00318000 00:21 30426264 /apps/prod/amber14/bin/cpptraj
00920000-00939000 rw-p 00000000 00:00 0
027b2000-02bd6000 rw-p 00000000 00:00 0 [heap]
7fb99312f000-7fb993133000 rw-p 00000000 00:00 0
7fb993133000-7fb993168000 r-xp 00000000 08:06 1842708 /usr/lib64/libquadmath.so.0.0.0
7fb993168000-7fb993367000 ---p 00035000 08:06 1842708 /usr/lib64/libquadmath.so.0.0.0
7fb993367000-7fb993368000 r--p 00034000 08:06 1842708 /usr/lib64/libquadmath.so.0.0.0
7fb993368000-7fb993369000 rw-p 00035000 08:06 1842708 /usr/lib64/libquadmath.so.0.0.0
7fb993369000-7fb99350d000 r-xp 00000000 08:06 786463 /lib64/libc-2.17.so
7fb99350d000-7fb99370c000 ---p 001a4000 08:06 786463 /lib64/libc-2.17.so
7fb99370c000-7fb993710000 r--p 001a3000 08:06 786463 /lib64/libc-2.17.so
7fb993710000-7fb993712000 rw-p 001a7000 08:06 786463 /lib64/libc-2.17.so
7fb993712000-7fb993716000 rw-p 00000000 00:00 0
7fb993716000-7fb99372b000 r-xp 00000000 08:06 786444 /lib64/libgcc_s.so.1
7fb99372b000-7fb99392a000 ---p 00015000 08:06 786444 /lib64/libgcc_s.so.1
7fb99392a000-7fb99392b000 r--p 00014000 08:06 786444 /lib64/libgcc_s.so.1
7fb99392b000-7fb99392c000 rw-p 00015000 08:06 786444 /lib64/libgcc_s.so.1
7fb99392c000-7fb993a29000 r-xp 00000000 08:06 809390 /lib64/libm-2.17.so
7fb993a29000-7fb993c28000 ---p 000fd000 08:06 809390 /lib64/libm-2.17.so
7fb993c28000-7fb993c29000 r--p 000fc000 08:06 809390 /lib64/libm-2.17.so
7fb993c29000-7fb993c2a000 rw-p 000fd000 08:06 809390 /lib64/libm-2.17.so
7fb993c2a000-7fb993d12000 r-xp 00000000 08:06 1838837 /usr/lib64/libstdc++.so.6.0.17
7fb993d12000-7fb993f11000 ---p 000e8000 08:06 1838837 /usr/lib64/libstdc++.so.6.0.17
7fb993f11000-7fb993f19000 r--p 000e7000 08:06 1838837 /usr/lib64/libstdc++.so.6.0.17
7fb993f19000-7fb993f1b000 rw-p 000ef000 08:06 1838837 /usr/lib64/libstdc++.so.6.0.17
7fb993f1b000-7fb993f30000 rw-p 00000000 00:00 0
7fb993f30000-7fb994044000 r-xp 00000000 08:06 1843397 /usr/lib64/libgfortran.so.3.0.0
7fb994044000-7fb994243000 ---p 00114000 08:06 1843397 /usr/lib64/libgfortran.so.3.0.0
7fb994243000-7fb994244000 r--p 00113000 08:06 1843397 /usr/lib64/libgfortran.so.3.0.0
7fb994244000-7fb994246000 rw-p 00114000 08:06 1843397 /usr/lib64/libgfortran.so.3.0.0
7fb994246000-7fb994254000 r-xp 00000000 08:06 1840643 /usr/lib64/libbz2.so.1.0.6
7fb994254000-7fb994453000 ---p 0000e000 08:06 1840643 /usr/lib64/libbz2.so.1.0.6
7fb994453000-7fb994454000 r--p 0000d000 08:06 1840643 /usr/lib64/libbz2.so.1.0.6
7fb994454000-7fb994455000 rw-p 0000e000 08:06 1840643 /usr/lib64/libbz2.so.1.0.6
7fb994455000-7fb99446a000 r-xp 00000000 08:06 786478 /lib64/libz.so.1.2.7
7fb99446a000-7fb994669000 ---p 00015000 08:06 786478 /lib64/libz.so.1.2.7
7fb994669000-7fb99466a000 r--p 00014000 08:06 786478 /lib64/libz.so.1.2.7
7fb99466a000-7fb99466b000 rw-p 00015000 08:06 786478 /lib64/libz.so.1.2.7
7fb99466b000-7fb99468c000 r-xp 00000000 08:06 809438 /lib64/ld-2.17.so
7fb9946e9000-7fb99481a000 rw-p 00000000 00:00 0
7fb99481a000-7fb994859000 r--p 00000000 08:06 1842576 /usr/lib/locale/en_US.utf8/LC_CTYPE
7fb994859000-7fb99485c000 rw-p 00000000 00:00 0
7fb994881000-7fb994882000 rw-p 00000000 00:00 0
7fb994882000-7fb994889000 r--s 00000000 08:06 16539 /usr/lib64/gconv/gconv-modules.cache
7fb994889000-7fb99488c000 rw-p 00000000 00:00 0
7fb99488c000-7fb99488d000 r--p 00021000 08:06 809438 /lib64/ld-2.17.so
7fb99488d000-7fb99488e000 rw-p 00022000 08:06 809438 /lib64/ld-2.17.so
7fb99488e000-7fb99488f000 rw-p 00000000 00:00 0
7fff7ffed000-7fff8000e000 rw-p 00000000 00:00 0 [stack]
7fff801ff000-7fff80200000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted]

I tried it with many others structures and I still get parm data corruption (the prmtop file is intact, only the parm data loaded in cpptraj are corrupted).

About Daniel's answer:

The statement [rms reference :1-265.CA :6-270.CA] works however I have no idea how cpptraj knows which mask is related to which structure. I tried to add parmindex for each mask but it did not work. Switching both masks did not work [rms reference :6-270.CA :1-265.CA] and the output let me think that only the first mask is taken into account and the second mask is just ignored:
  [0: [rms reference :1-265.CA :6-270.CA out RMSD.dat]
        Mask [:1-265.CA] corresponds to 265 atoms.]
It would then explain why the mask switching did not work: if only the first mask matters, it is looking in both structures for :6-270.CA. In the structure with 271 residues, the masks corresponds to more atoms than in the second structure with 265 residues. Mismatch in the number of atom will cause rms to fail.

Best regards,

Guillaume


___________________________________
Von: Jason Swails <jason.swails.gmail.com>
Gesendet: Montag, 22. September 2014 14:23
An: amber.ambermd.org
Betreff: Re: [AMBER] RMSD on two slightly different structures

On Mon, 2014-09-22 at 07:18 +0000, Guillaume Roellinger wrote:
> Dear all,
>
>
> Using cpptraj, I am computing the RMSD between two almost similar
> structures with two different topology files and then perform a PCA.
> Structure A has 265 residues and structure B: 271. The sequence in
> structure A from residue 1 to 265 is the almost the same (there are
> 2-3 mutations) as in structure B from residue 5 to 270.

Note that there is 1 more residue between residues 5 and 270 compared to
residues 1 to 265. I'll assume you really meant 6 to 270 (so the first
5 residues are different) in the rest of my answer.
>
> I am computing the RMSD this way and it is working:
>
> parm structureA.prmtop
> parm structureB.prmtop
> trajin structureA.pdb parmindex 0
> trajin structureB.pdb parmindex 1
> reference structureA.pdb parmindex 0
> rms reference :1-265.CA
>
> 1st question: When I am selecting the residue range 1-265, does it
> take from both structure A and B the residues 1 to 265 or does it
> select from structure A residues 1 to 265 and from structure B
> residues 5 to 270 (=the almost common sequence part)?

It selects both 1 to 265 of both residues. If you want to select
residues 6 to 270 of the reference structure, you should provide that
mask to the reference statement. For example, change the reference
command to:

reference structureA.pdb parmindex 0 :6-270

This will bring in the 265 residues starting from residue 6 (and they
should be renumbered sequentially starting from 1).

>
> 2nd question (related to the first one): In an other example, I have
> structures C with 278 residues and D with 277. What appends if I have
> "gaps" in both sequences and if I compute the RMSD with :1-277.CA as
> mask (this is working as well!) ?

cpptraj does not recognize "gaps" by default. You may want to look into
the "atommap" command, which may help you create a mapping between the
two structures you want to compare.

HTH,
Jason

--
Jason M. Swails
BioMaPS,
Rutgers University
Postdoctoral Researcher
_______________________________________________
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 Thu Sep 25 2014 - 02:00:02 PDT
Custom Search