Hi all,
After using martinize2 to successfully obtain Martini 3 coarse-grained (CG) protein structures a couple of years ago, I have recently been attempting the same, this time aiming to obtain GōMartini parameters rather than using the standard Martini elastic network. But I have been facing issues with martinize2 in this process. Details are as follows. I would appreciate any help/suggestions.
In a fresh conda environment, I have installed:
- vermouth 0.15.0 (
pip install vermouth- as per instructions on GitHub) - dssp 3.0.0 (
conda install -c salilab dssp) - python 3.10
My command to run martinize2 (based on the tutorial):
martinize2 -f prot.pdb -o prot.top -x prot_cg.pdb -ff martini3001 -p backbone -dssp -go contact_map.out -go-low 0.3 -go-up 1.1 -go-eps 9.414
Error message:
INFO - general - Read 2 molecules from PDB file prot.pdb
INFO - step - Guessing the bonds.
INFO - general - 1 molecules after guessing bonds
INFO - step - Repairing the graph.
INFO - general - Applying modification N-ter to residue A-LEU1
INFO - general - Applying modification + to residue A-LEU1
INFO - general - Applying modification C-ter to residue A-GLU1009
INFO - general - Applying modification + to residue A-GLU1009
INFO - general - Applying modification N-ter to residue B-GLY1
INFO - general - Applying modification C-ter to residue B-THR762
INFO - missing-atom - Missing atom GLU1009:OXT
INFO - missing-atom - Missing atom THR762:OXT
INFO - step - Dealing with modifications.
INFO - general - Identified the modifications ['N-ter', 'N-ter'] on residues ['LEU1', 'LEU1', 'LEU1', 'LEU1']
INFO - general - Identified the modifications ['C-ter'] on residues ['ALA762', 'ALA762', 'ALA762']
Traceback (most recent call last):
File "~/miniconda3/envs/martinize2/bin/martinize2", line 1205, in <module>
entry()
File "~/miniconda3/envs/martinize2/bin/martinize2", line 916, in entry
system = pdb_to_universal(
File "~/miniconda3/envs/martinize2/bin/martinize2", line 157, in pdb_to_universal
vermouth.CanonicalizeModifications().run_system(canonicalized)
File "~/miniconda3/envs/martinize2/lib/python3.10/site-packages/vermouth/processors/processor.py", line 37, in run_system
mols.append(self.run_molecule(molecule))
File "~/miniconda3/envs/martinize2/lib/python3.10/site-packages/vermouth/processors/canonicalize_modifications.py", line 380, in run_molecule
fix_ptm(molecule)
File "~/miniconda3/envs/martinize2/lib/python3.10/site-packages/vermouth/processors/canonicalize_modifications.py", line 312, in fix_ptm
identified = identify_ptms(residue, res_ptms, options)
File "~/miniconda3/envs/martinize2/lib/python3.10/site-packages/vermouth/processors/canonicalize_modifications.py", line 184, in identify_ptms
assert not ptm_atoms
AssertionError
Sneakpeak into my input PDB file:
ATOM 1 N LEU A 1 -7.690 8.560 15.210 1.00 0.00 N
ATOM 2 CA LEU A 1 -8.230 8.360 13.870 1.00 0.00 C
ATOM 3 CB LEU A 1 -8.870 9.640 13.340 1.00 0.00 C
ATOM 4 CG LEU A 1 -9.620 9.530 12.010 1.00 0.00 C
ATOM 5 CD1 LEU A 1 -11.010 8.950 12.250 1.00 0.00 C
ATOM 6 CD2 LEU A 1 -9.730 10.900 11.340 1.00 0.00 C
ATOM 7 C LEU A 1 -7.150 7.870 12.900 1.00 0.00 C
ATOM 8 O LEU A 1 -6.940 6.670 12.750 1.00 0.00 O
ATOM 9 N ASN A 2 -6.290 8.730 12.340 1.00 0.00 N
ATOM 10 CA ASN A 2 -5.290 8.220 11.420 1.00 0.00 C
ATOM 11 CB ASN A 2 -5.830 8.200 9.980 1.00 0.00 C
ATOM 12 CG ASN A 2 -6.270 9.560 9.510 1.00 0.00 C
ATOM 13 OD1 ASN A 2 -6.700 10.410 10.290 1.00 0.00 O
ATOM 14 ND2 ASN A 2 -6.160 9.800 8.200 1.00 0.00 N
ATOM 15 C ASN A 2 -4.000 9.030 11.480 1.00 0.00 C
ATOM 16 O ASN A 2 -3.190 8.980 10.560 1.00 0.00 O
.
.
ATOM 7761 OE1 GLU A1009 -147.780 67.230 112.630 1.00 34.78 O
ATOM 7762 OE2 GLU A1009 -146.400 68.840 113.360 1.00 34.78 O
ATOM 7763 C GLU A1009 -149.090 71.460 112.420 1.00 34.78 C
ATOM 7764 O GLU A1009 -148.200 71.730 113.230 1.00 34.78 O
ATOM 7765 OXT GLU A1009 -147.841 71.628 112.420 1.00 34.78 O
TER
ATOM 1 N GLY B 1 -41.220 -14.740 50.140 1.00 0.00 N
ATOM 2 CA GLY B 1 -41.500 -14.580 48.720 1.00 0.00 C
ATOM 3 C GLY B 1 -40.300 -14.170 47.900 1.00 0.00 C
ATOM 4 O GLY B 1 -39.230 -13.890 48.460 1.00 0.00 O
ATOM 5 N PRO B 2 -40.370 -14.200 46.540 1.00 0.00 N
ATOM 6 CA PRO B 2 -39.300 -13.800 45.650 1.00 0.00 C
ATOM 7 CD PRO B 2 -41.530 -14.520 45.950 1.00 0.00 C
ATOM 8 CB PRO B 2 -39.830 -14.140 44.260 1.00 0.00 C
ATOM 9 CG PRO B 2 -41.280 -14.420 44.470 1.00 0.00 C
ATOM 10 C PRO B 2 -38.980 -12.300 45.770 1.00 0.00 C
ATOM 11 O PRO B 2 -39.890 -11.490 45.900 1.00 0.00 O
.
.
ATOM 5865 N THR B 762 -104.340 152.380 133.490 1.00 34.21 N
ATOM 5866 CA THR B 762 -102.890 152.380 133.490 1.00 34.21 C
ATOM 5867 CB THR B 762 -102.340 151.680 132.250 1.00 34.21 C
ATOM 5868 OG1 THR B 762 -100.920 151.570 132.360 1.00 34.21 O
ATOM 5869 CG2 THR B 762 -102.700 152.480 131.010 1.00 34.21 C
ATOM 5870 C THR B 762 -102.370 153.810 133.490 1.00 34.21 C
ATOM 5871 O THR B 762 -101.480 154.080 134.290 1.00 34.21 O
ATOM 5872 OXT THR B 762 -101.122 153.986 133.490 1.00 34.21 O
TER
I have tried martinizing:
- with and without hydrogens
- with continuous atom/residue numbering
- with and without “TER”
- with a single chain instead of 2
- replacing
-go contact_map.out -go-low 0.3 -go-up 1.1 -go-eps 9.414with-elastic -el 0 -eu 0.85(successful 2 years ago - oldermartinizeversion, samedsspversion) - with martinize2 v0.9.5 (
pip install vermouth==0.9.5in a fresh conda env with the samedsspand python version as before) but soon realized that obtaining Go parameters was not implemented in this version.
For now, I have successfully obtained a CG structure using CHARMM-GUI (which only uses standard Martini elastic network, obtaining Go model not implemented), but my aim is to obtain Go parameters. Also, this is my first time dealing with GōMartini. So, the error could be on my end.. or it could be that the new martinize version has an issue and therefore I am unable to use it (regardless of standard elastic network or Go model).
If anyone has a solution / workaround for this, or can figure out if I am doing something silly, I would highly appreciate your help. Or please let me know if we’re all on the same boat waiting for an update from the developers. Thanks a lot.
PS: This issue was opened on Github in April 2024 (I did not find the discussion very helpful for my case): Error While Martinizing "AssertionError" · Issue #592 · marrink-lab/vermouth-martinize · GitHub