Closed ZhuDaoScience closed 1 year ago
Hellohello! Does martinize2 give any output? Does martinize2 at least create the same number of residues?
Yes, the output is given. And the number of residues is same. The mistake I find is that the order of residues in the output is different from the input atomic model.
Have you repeated this bug?
Sorry, I meant to ask if martinize2 prints anything to screen (and what). I haven't had time yet to run it myself, hopefully I can find some time tomorrow.
OK. The output of martinize2 is the following lines.
INFO - general - Read 1 molecules from PDB file test_at.pdb
INFO - step - Guessing the bonds.
INFO - general - 3 molecules after guessing bonds
INFO - step - Repairing the graph.
INFO - general - Applying modification C-ter to residue B-VAL620
INFO - general - Applying modification N-ter to residue B-ASN641
INFO - general - Applying modification C-ter to residue B-THR676
INFO - general - Applying modification N-ter to residue C-ALA27
INFO - missing-atom - Missing atom VAL620:OXT
INFO - missing-atom - Missing atom THR676:OXT
INFO - general - Applying modification N-ter to residue B-SER689
INFO - general - Applying modification C-ter to residue B-THR827
INFO - missing-atom - Missing atom THR827:OXT
INFO - general - Applying modification N-ter to residue B-LYS854
INFO - general - Applying modification C-ter to residue B-ASP1146
INFO - step - Dealing with modifications.
INFO - general - Identified the modifications ['N-ter'] on residues ['ALA27', 'ALA27', 'ALA27', 'ALA27']
INFO - general - Identified the modifications ['C-ter'] on residues ['VAL620', 'VAL620', 'VAL620']
INFO - general - Identified the modifications ['N-ter'] on residues ['ASN641', 'ASN641', 'ASN641', 'ASN641']
INFO - general - Identified the modifications ['C-ter'] on residues ['THR676', 'THR676', 'THR676']
INFO - general - Identified the modifications ['N-ter'] on residues ['SER689', 'SER689', 'SER689', 'SER689']
INFO - general - Identified the modifications ['C-ter'] on residues ['THR827', 'THR827', 'THR827']
INFO - general - Identified the modifications ['N-ter'] on residues ['LYS854', 'LYS854', 'LYS854', 'LYS854']
INFO - general - Identified the modifications ['C-ter'] on residues ['ASP1146', 'ASP1146', 'ASP1146']
INFO - step - Read input.
INFO - step - Creating the graph at the target resolution.
INFO - general - Applying modification mapping ('C-ter',)
INFO - general - Applying modification mapping ('N-ter',)
INFO - general - Applying modification mapping ('C-ter',)
INFO - general - Applying modification mapping ('N-ter',)
INFO - general - Applying modification mapping ('N-ter',)
INFO - general - Applying modification mapping ('C-ter',)
INFO - general - Applying modification mapping ('C-ter',)
INFO - general - Applying modification mapping ('N-ter',)
INFO - step - Averaging the coordinates.
INFO - step - Applying the links.
INFO - step - Placing the charge dummies.
INFO - step - Applying position restraints.
INFO - step - Adding includes for Virtual Site Go Martini.
INFO - general - The output topology will require files generated by "create_goVirt.py".
INFO - step - Writing output.
INFO - general - Please cite: Souza, P C T; Alessandri, R; Barnoud, J; Thallmair, S; Faustino, I; Grünewald, F; Patmanidis, I; Abdizadeh, H; Bruininks, B M H; Wassenaar, T A; Kroon, P C; Melcr, J; Nieto, V; Corradi, V; Khan, H M; Domański, J; Javanainen, M; Martinez-Seara, H; Reuter, N; Best, R B; Vattulainen, I; Monticelli, L; Periole, X; Tieleman, D P; de Vries, A H; Marrink, S J; Nature Methods 2021; 10.1038/s41592-021-01098-3
INFO - general - Happiness is a dry martini and a good woman... or a bad woman. -- George Burns
Ok, it's awkward. For some reason your chain C (starting with resid 27) gets put in between your chain Bs. My initial suspicion was that the MergeAllMolecules processor was shuffling the order (for some reason). When I run martinize2 -f test_at.pdb -o system.top -x test_cg.pdb -ff martini3001 -elastic -eunit all
(and I disable the atomid sorting) the same issues crops up, so there's something fishy with the order of molecules.
Further digging revealed that there are 3 molecules: The last spans resids 854-1146; second resids 689-827; and the first 567-43 (!). So the first molecule contains chain C.
DEBUG - general - vermouth.processors.make_bonds - Guessed bond between 7B-ARG567:CD and 4123C-PHE43:O based on distance.
is the culprit.
I need to brood on this a bit more before I declare this a real bug. Maybe the real bug is actually in the atom sorting (sort_molecule_atoms.py
) for hiding this.
Either way, your atomistic structure is problematic
Thank you for your reply. I find that it works well after the energy of the atomistic model is minimized. And it's true that there is some crash in the sidechains of my model. I think it will be much better if Martinize2 can give some warnings for these crash in the future. Thank you very much.
Happy to hear things are working by now. We're in the progress of overhauling the whole Go flow (#550). Maybe that will improve matters a bit, but issuing warnings for clashes sounds like an excellent plan.
I'm trying to create a coarse-grained model with an all-atom model. When I use the following command for coarse-graining,
martinize2 -f test_at.pdb -o system.top -x test_cg.pdb -dssp dssp -p backbone -ff martini3001 -govs-include -govs-moltype open -cys auto -scfix
the coarse-grained model I get has the different residue order when compared to the atomic model. It may be something wrong with the script processing the order of molecules, in which the script puts some molecules ahead with a mistake.
I have appended the all-atom model (test_at.pdb.txt) in this issue. The version of Vermouth I use is vermouth-0.9.7.dev4.
Hope you can repeat this bug.
All-atom model (part):
Coarse-grained model (part):