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

Simulating a metallo-protein with 2 ligands #81

Open
sadiogo opened this issue Sep 26, 2023 · 7 comments
Open

Simulating a metallo-protein with 2 ligands #81

sadiogo opened this issue Sep 26, 2023 · 7 comments

Comments

@sadiogo
Copy link

sadiogo commented Sep 26, 2023

Hi, I found in the closed issues a notebook to run simulation with two ligands. However, my protein also has a Mn ion. Is it currently possible to run this type of simulation? If so, I should keep the Mn ion with the protein PDB and apply AMBER force field?

@sadiogo
Copy link
Author

sadiogo commented Sep 26, 2023

I tried running the 2-ligand notebook with Mn in the protein pdb. First I got a minimization error which I overcame by not adding hydrogens and providing all files with correct protonation state. However, now I am getting the following error:

[19:51:12] Explicit valence for atom # 12 O, 3, is greater than permitted
---------------------------------------------------------------------------
ArgumentError                             Traceback (most recent call last)
[<ipython-input-6-955e71b4dc31>](https://localhost:8080/#) in <cell line: 98>()
     96 
     97 #fix ligands
---> 98 charge1 = minimize_ligand_charge(ligand1_pdb, ligand1_pdb2)
     99 charge2 = minimize_ligand_charge(ligand2_pdb, ligand2_pdb2)
    100 

[<ipython-input-6-955e71b4dc31>](https://localhost:8080/#) in minimize_ligand_charge(input, output)
     81     hmol = Chem.MolFromMolFile('temp.mol', removeHs=False)
     82     # hmol = Chem.AddHs(mol)
---> 83     mp = AllChem.MMFFGetMoleculeProperties(hmol)
     84     ff = AllChem.MMFFGetMoleculeForceField(hmol, mp)
     85     for a in hmol.GetAtoms():

ArgumentError: Python argument types in
    rdkit.Chem.rdForceFieldHelpers.MMFFGetMoleculeProperties(NoneType)
did not match C++ signature:
    MMFFGetMoleculeProperties(RDKit::ROMol {lvalue} mol, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mmffVariant='MMFF94', unsigned int mmffVerbosity=0)

I looked in the Bonds Block of the connection table in temp.mol file and found that atom # 12 does perform 3 bonds, but when I look it up in the Atom Block of the table, the 12th line of the block is actually a Nitrogen, and not an Oxygen like has been stated in the error. Does this make sense? I have attached the temp.mol file.
temp.mol.txt

@pablo-arantes
Copy link
Owner

Hi Diogo,

Thank you for letting me know about the issue.
The notebook for 2-ligands has not been updated. I will take a look in your error and try to change and update the code.
Regarding Mn ion, I need to check the code as well to check if the notebook accepts ions in protein PDB.

I will back to you, as soon as possible.

Thank you.

Best,

Pablo

@sadiogo
Copy link
Author

sadiogo commented Oct 17, 2023

Hi Pablo!

I'm looking forward to the updated notebook for 2 ligands!

@pablo-arantes
Copy link
Owner

Hi @sadiogo,

I have a lot of things on my plate right now. So, I will try to fix the code in the end of this week.

I hope you understand.

Thank you.

Best,

Pablo

@sadiogo
Copy link
Author

sadiogo commented Oct 17, 2023

No worries! I totally understand.

All the best,
Diogo

@jochuan
Copy link

jochuan commented Nov 15, 2023

I don't know if this is related but i am trying to run a simulation with two ligands on the same pdb file but i am getting this error on the input cell:

OSError Traceback (most recent call last)
in <cell line: 71>()
70
71 if Add_ligand_hydrogens == "Yes":
---> 72 mol= [m for m in pybel.readfile(filename=ligand_pdb, format='pdb')][0]
73 out=pybel.Outputfile(filename="temp.mol",format='mol',overwrite=True)
74 out.write(mol)

/usr/local/lib/python3.10/site-packages/openbabel/pybel.py in readfile(format, filename, opt)
159 raise ValueError("%s is not a recognised Open Babel format" % format)
160 if not os.path.isfile(filename):
--> 161 raise IOError("No such file: '%s'" % filename)
162
163 def filereader():

Is there something that i need to do for it to work or it is a currently bug when trying to run simulations with more than one ligand ?
Forget about it i think that i figured out my error

@jochuan
Copy link

jochuan commented Nov 15, 2023

Yeah looks like i have the same problem trying to do a simulation with a heme ligand which contains a Fe atom:

[19:24:51] Explicit valence for atom # 9 N, 4, is greater than permitted

ArgumentError Traceback (most recent call last)
in <cell line: 71>()
76
77 mol = Chem.MolFromMolFile('temp.mol', removeHs=True)
---> 78 hmol = Chem.AddHs(mol)
79 mp = AllChem.MMFFGetMoleculeProperties(hmol)
80 ff = AllChem.MMFFGetMoleculeForceField(hmol, mp)

ArgumentError: Python argument types in
rdkit.Chem.rdmolops.AddHs(NoneType)
did not match C++ signature:
AddHs(RDKit::ROMol mol, bool explicitOnly=False, bool addCoords=False, boost::python::api::object onlyOnAtoms=None, bool addResidueInfo=False)

And this was on the main notebook for protein-ligand simulations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants