Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Every Job Ran for Martinize2 is Killed/No Residues Recognized #586

Closed
zamydm opened this issue Apr 15, 2024 · 9 comments
Closed

Every Job Ran for Martinize2 is Killed/No Residues Recognized #586

zamydm opened this issue Apr 15, 2024 · 9 comments
Labels
question user not dev raised issue

Comments

@zamydm
Copy link

zamydm commented Apr 15, 2024

Good morrow.

I have been trying to use martinize2 for coarsegraining a protein+lipid+water system, and every single job I have run has been killed prematurely with the added issue that all residues, even very generic ones, are not recognized. It says the residues are no known to the Charmm forcefield, however I am certain that this is not an issue as all .pdb files were generated with Charmm-Gui. Any advice on how to resolve this issue of refusal to recognize residues would be greatly appreciated.

Thank you.

@csbrasnett
Copy link
Collaborator

From what you've described, it sounds like you're trying to generate Martini topologies for a whole system in one go. Have you tried generating a single topology of your protein on its own? Tools like insane can then be used to build your system.

@pckroon
Copy link
Member

pckroon commented Apr 16, 2024

Hello hello, that sounds... undesirable. Could you provide us with your command line and the screen output of martinize2 (ideally with -v)? Please just copy paste the text, rather then for example a screenshot or attachment.

As a side note, martinize2 can't coarse-grain water/solvent (yet).

@pckroon pckroon added question user not dev raised issue labels Apr 16, 2024
@zamydm
Copy link
Author

zamydm commented Apr 16, 2024

Hey, thanks for the speedy reply!

I was uncertain of the coarse graining capabilities of Martinize2, so I tried both with the whole system and just the protein. In both cases, I get the same error where it seems that even basic residues of my protein are not being recognized. I have attached the command line prompt and the error below:

Command Line V1: martinize2 -f 8HKQStripped.pdb -x 8HKQCoarse.pdb
Command Line V2: martinize2 -f 8HKQStripped.pdb -x 8HKQCoarse.pdb -o topol.top -ff martini3001 -dssp -elastic

I hope that this isn't something as simple as I made a mistake in command line input. For both versions, I got the exact same error:
Screenshot 2024-04-16 at 09 52 06

I am on Mac M2 for operating system. I know how to use Insane, and haven't had any issues in using it in conjunction with martinize.py from the martini website. This is the out of date version from several years back. I will admit though that I cannot for the life of me get simulations using files generated from those programs running no matter what I do, so if anyone has experience with that, that would also be appreciated.

@pckroon
Copy link
Member

pckroon commented Apr 17, 2024

Instead of posting an image of the partial screen output, could you please copy paste the complete text?

@zamydm
Copy link
Author

zamydm commented Apr 17, 2024

The complete text is thousands of lines long. It is just the same as the top of the command prompt repeated ad nauseam. It produces that line for every single atom in the protein.

@pckroon
Copy link
Member

pckroon commented Apr 18, 2024

Alright, the following stands out: Your input structure is fishy, since atom names are not unique within residues. This is a red flag (or at least dark orange). In addition, there is an LQ9 residue that martinize2 does not know.
Martinize2 uses bonds to identify which atom is which (alongside some other criteria). If we can't get that information from atomnames (for whatever reason), we use distance criteria (as the message says), which is simply more error prone. If this results in wrong bonds it will cause all sorts of chaos, and one of the side effects can be excessive memory use and runtime as martinize2 tries to desperately salvage your simulation.
Finally, it's actually not martinize2 killing itself, but something else. Maybe the memory consumption is going to high and the kernel terminates it? How long does it run for before it breaks? More so that for martinize1, for martinize2 it is very strongly garbage in, garbage out. Please check your input structure for clashes carefully.

@zamydm
Copy link
Author

zamydm commented Apr 18, 2024

Okay, thanks for the reply.

For reference, the .pdb that I generated was produced from Charmm-Gui. I haven't had issues with the protein when running atomistic simulations in OpenMM, so I find it hard to believe that the issue is the protein unless Martinize2 is incompatible with the Charmm36 forcefield. Note when I use the martinize.py script from the martini3 website, a script that I am aware is out of date, the protein is coarse grained without issue.

While using distance criteria for some less common residues is understandable, the fact that even extremely common residues such as ARG or LYS are not being recognized concerns me greatly. Perhaps Martinize2 is simply refusing to recognize any residues/atoms? In which case, what should I do to resolve that issue? Is there a problem with it in installation that I am missing, such as there are necessary libraries that I forgot to install in addition to Vermouth? I used the command: "$pip install vermouth" to install it.

For memory allocation, I believe you are right as the job does seem to consume most of the memory available on my system before terminating. I agree that this is likely from the distance method.

@pckroon
Copy link
Member

pckroon commented Apr 19, 2024

Neither of that says anything about the correctness of your simulations though.
If you read the warning and my previous message you'll see that martinize2 recognizes the residues just fine (except for the last one), but that your input structure is suspect. I guess you have a dimer (multimer?) with identical chain identifiers? If so, a solution could be to add TER records in between the monomers.

@zamydm
Copy link
Author

zamydm commented Apr 19, 2024

Okay, I will try that and let you know how it goes. Thanks so much for your help, you have been awesome!

@zamydm zamydm closed this as completed May 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question user not dev raised issue
Projects
None yet
Development

No branches or pull requests

3 participants