-
Notifications
You must be signed in to change notification settings - Fork 93
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
Explicit valence for atom # 18 N, 4, is greater than permitted #1984
Comments
I am not sure my file got pasted here. I add it here again
|
Thanks for writing in - I've reproduced the error and am working to get to the bottom of it. |
Looking at the canonical structure of biliverdin (which this either is, or is very similar to), it appears that only three of the pyrrole groups should be protonated. I don't have an editor close at hand that could modify this, but if you do @emainas, could you try deprotonating the nitrogen with the explicit double bond and see if that clears it up? |
yes it works without the proton but I want to study different protonation states, one of which is the structure with all 4 rings protonated. why would it not work though? all the valencies look good (unless I am missing sth?). |
(Is protomer synonymous with protonation state? I forget a lot of cheminformatics jargon, disregard if I'm confused) The toolkit provides >>> from openff.toolkit import Molecule
>>> bill = Molecule.from_inchi("InChI=1S/C33H34N4O6/c1-7-20-19(6)32(42)37-27(20)14-25-18(5)23(10-12-31(40)41)29(35-25)15-28-22(9-11-30(38)39)17(4)24(34-28)13-26-16(3)21(8-2)33(43)36-26/h7-8,13-15,35H,1-2,9-12H2,3-6H3,(H,36,43)(H,37,42)(H,38,39)(H,40,41)/b26-13-,27-14-,28-15-")
>>> for index, protomer in enumerate(bill.enumerate_protomers()):
... protomer.to_file(f"protomer{index}.sdf", file_format="sdf")
... Molecule.from_file(f"protomer{index}.sdf", file_format="sdf").n_atoms
...
75
76
76
77 |
Thanks for checking on the deprotonated form, @emainas. My big-conjugated-molecules knowledge is a little rusty but I'm inclined to think (4/10) that the fully protonated form is chemically valid. Could you share how you made the structure in this report (namely, was the kekule structure hand-drawn, or interpreted by some tool? This will help me debug) Matt - I think the issue is with RDKit file I/O specifically. Since your code block runs |
@mattwthompson I suspect that this is the protomers of the propionic tails. biliverdin is technically a tetrapyrrolic di-acid because of the two tails so I guess your code generated the atom numbers for
and I believe that all 4 of these protomers refer to the same version of the ring system where 3 out of 4 rings are protonated. nevertheless the snippet you attached actually comes super handy for stuff I work on so thanks for that @j-wags I have a pdb (I don't remember where I got it initially - I think from some biliprotein in the PDBdatabank) that I then edited manually to get the nomenclature correct. next I opened it with pymol and added the +1 charge on the 4th (normally deprotonated) ring. I attach the pdb file I had before and after the pymol proton addition. I might have created a monster of an sdf file with all this editing and converting. see the attached pdb (the extra proton I added with pymol is question: what is the proper way to generate the sdf file? with amber only mol2 files are needed instead of sdf for ligands. |
I went down so many rabbit holes, and I think I found the issues in the funniest possible place. In the final line of the original file, you have |
Hi everyone, I am simply doing ligand_off_molecule = Molecule.from_file("molecule.sdf", file_format='sdf')
where my molecule has a positive charge on nitrogen 19 (18 if you start counting from 0) and I do not know how to pass it properly. I attach my molecule.sdf file. I added the flag "M CHG 1 19 1" at the end but it does not work. Any ideas?
The text was updated successfully, but these errors were encountered: