Thank you for the very straightforward suggestion! I will try using --minimize, or --minimize --local_only. Does that sound appropriate? Additionally, is smina capable of performing such alignment? For now, I am going to use other software like RDKit.
Thank you for the very straightforward suggestion! I will try using --minimize, or --minimize --local_only. Does that sound appropriate?
Thank you for the very straightforward suggestion! I will try --minimize, --local_only.
If you want to do template docking, I recommend generating a large ensemble of conformers for each of your ligands, aligning to the common substructure, and then minimizing with smina rather than docking.
Thank you very much for your quick reply! I will define new atom types and prepare the PDBQT files accordingly. Actually, the problem I am working on is the lack of docking poses where the common substructure of my ligands (the scaffold) is placed in the "correct" location. Is it possible to apply constraints on the positions of specific atoms in my ligands?
--custom_atoms is what you want. To see the format of the file it is expecting run smina with --print_atom_types. If you are using the default Vina scoring function the number you want to change is the xs_radius.
Dear Dr. Koes, We would like to reduce the van der Waals radius of atoms in a fragmental moiety that are commonly found in our ligand molecules. Can I set up such calculations by using an option implemeted in smina ? Thank you in advance, Best regards, Yutaro.
The ligand is charged which means OpenBabel wants to add a hydrogen to the charged nitrogen, but it doesn't really know how and uses a random vector resulting in non-deterministic output. If the charge is removed or if the ligand is first converted to a different format (e.g. pdbqt) you get deterministic output. You also get deterministic output with gnina, since gnina explicitly initializes the random number generator that OpenBabel uses with the user provided seed. I've backported this behavior...
Set RNG with seed for deterministic openbabel
There are some cases when repeated run with options --local_only and/or --minimize gives varying results. For example, when I repeatedly run the following command with the files I attached: smina.static -r 8B8H_OJQ_protein.pdb -l 8B8H_OJQ_ligand.sdf \ --local_only --minimize -o output.sdf the minimizedAffinity value of output.sdf results in one of: -10.98858 -10.48566 -9.52101 Using --seed doesn't give deterministic results either. I attached another pair of examples "8ACL_LQL" that shows the same...
There are some cases when repeated run with options --local_only and/or --minimize gives varying results. For example, when I repeatedly run the following commands with the files I attached: smina.static -r 8B8H_OJQ_protein.pdb -l 8B8H_OJQ_ligand.sdf \ --local_only --minimize -o output.sdf the minimizedAffinity value of output.sdf results in one of: -10.98858 -10.48566 -9.52101 Using --seed doesn't give deterministic results either. I attached another pair of examples "8ACL_LQL" that shows the same...
thanks so much.. because I always use open babel to generate 3D conformer with --minimize .. but someone mentioned that you do not need this. just convert to 3D..
smina only samples torsions. If there are issues with the rest of the geometry they will not be fixed. Pretty much any conformer generator will produce reasonable conformations that do not need additional energy minimization.
I know this might be a very basic question. But I need to make sure. Before using smina, is it really necessary to minimize ligands ? Because I read somewhere else a comment saying that ligand energy minimization is not that necessary
Thanks so much. I found that openbabel has integrated python package with rmsd tools.
afaik isn't pybel an openbabel wrapper for Python, I might be wrong. And also I think there is a UI tool for openbabel for mac https://macinchem.org/ibabel/
No, it is a commandline tool. But rdkit GetBestRMS will also do what you want.
Thank you! I have one more question, because I know that openbabel has a Python package, is it possible to do it in Python, and if so, do you know how?
You should be able to use obrms (from openbabel) and not have to worry about file format conversion (and the RMSD will be symmetry corrected if need be).
I am attaching the files. 2vnt_output.pdbqt - output of smina 2vnt_ligand.sdf - reference 2vnt_ligand.pdbqt - converted reference to docking
Hey, I got the results in PDBQT format. The file contains atomic indexes preserved from the underlying SDF file. Now I would like to compare the RMSD between the results from AutoDock Smina with other programs., But first I need to convert my PDBQT to SDF format. However, I don't know how to do it to keep the appropriate indexes in the file. Could anyone help me?
Correct. Polar hydrogens are important as they are used for atom typing and will determine if a nitrogen/oxygen is a donor and/or acceptor.
Thanks for the quick reply! and the docking algorithm also always works without nonpolar hydrogens?
addH determines if hydrogens are added prior to atom typing. The output always has nonpolar hydrogens removed.
Hello! How to use --addH Tell me how to use --addH, I tried --addH no, --addH off, --addH 0, --addH false, --addH true, --addH=no, --addH 1, --addH=false and .... The result is always the same - part of the hydrogens disappear from my initial state of the ligand. extremely grateful
okay XD it's stupid but it works. I made a loop which runs docking until we get 100 modes
thanks, but it still doesn't solve my problem. it is better but it is still difficult to achieve the expected amount
I don't know that that can be exactly guaranteed, but the reason you get less is the RMSD filtering to remove duplicates. Setting --min_rmsd_filter 0 should result in closer to what you want.
Hi, I'm trying to perform something around 1000 dockings for my protein x ligand matrix. And for all of them, I want to recieve 100 conformation modes. But sometimes, I recieve less (for example 98). My command in loop: smina -r <receptor> -l <ligand> --autobox-ligand <native_ligand> --autobox-add 8 --exhausiveness 32 --num_modes 100 --atom_term_data --min_rmsd_filter 0.01 --energy_range 100 ... Do you know what can i change to obtain exactly 100 modes per docking? Maciek
thanks, but still i have problem. even if i sum up all energies (gauss, gauss2, repulsion, hydrophobic and non_dir_h_bond): -3.449749116 -6.784153 2.098477063 -1.4445595 -3.449979 and add to that ur equation e / (1 + 0.05846*NTORSIONS) with NTORSIONS = 13 it equals 1.544495863 the result equals -11.48546769 and the affinity is -7.404037.
There is also a num_tors_div term that reweights the energy based on the number of torsions like this: e / (1 + 0.05846*NTORSIONS) Based on that, your molecule should have 13 rotatable bonds.
Hi, I'm trying to analyze the smina scoring function and I can't understand one thing. For example for first conformation our affinity equals -7.404037 but sum of terms from per-atom interaction term values output doesn't equal to this affinity. atomid el pos gauss(o=0,_w=0.5,_c=8) gauss(o=3,_w=2,_c=8) repulsion(o=0,_c=8) hydrophobic(g=0.5,_b=1.5,_c=8) non_dir_h_bond(g=-0.7,_b=0,_c=8) 1 C <8.16176,8.08049,30.2923> -0.135554 -0.168733 2.92616e-05 -0 -0 4 N <8.74609,7.67115,29.009> -0.0985983 -0.209402...
so only half of the molecules are acting this way and they do happen to come from another receptor but I don't see how that could have caused problems
I downloaded smina through conda and the only version of openbabel on conda list is : openbabel 3.1.1 py310h4b1c3e3_4 conda-forge
But what version is smina linked against?
I don't think so............as in processing the .sdf files or initially when converting to PDBQT files
This is an example of the many. I am actually docking it to 6D9H, which is also attached. The SMILES: Cc1ccc(-c2nc(N)nc(N3CCN(C)CC3)n2)cc1
You are probably using an older version of OpenBabel that doesn't Keukilize the molecules properly.
This is an example of the many. I am actually docking. I am actually docking it to 6D9H, which would is also attached. The SMILES: Cc1ccc(-c2nc(N)nc(N3CCN(C)CC3)n2)cc1
This is an example of the many.
Perhaps your molecule is charged with an extra hydrogen on the N but the charge set in the file? Without examples files and commondline, I can only speculate.
hello! I tried docking some compounds using SMINA. Scoring and SDF Files are generated however when reading them back into Python with RDkit I encounter this weird issue: 09:44:49] Explicit valence for atom # 9 N, 4, is greater than permitted [09:44:49] ERROR: Could not sanitize molecule ending on line 55 [09:44:49] ERROR: Explicit valence for atom # 9 N, 4, is greater than permitted However I can visualise the files using Chimera quite okay. which is utterly confusing!
Wouldn't it make more sense to modify PyRx to look for the appropriate output fields in smina/gnina?
Hi Team, I have tried to run smina in PyRx 0.9.2, by replacing the vina binaries with smina.static in PyRx and rename. It does work (with smina.static only). _______ _______ _________ _ _______ ( ____ \( )\__ __/( ( /|( ___ ) | ( \/| () () | ) ( | \ ( || ( ) | | (_____ | || || | | | | \ | || (___) | (_____ )| |(_)| | | | | (\ \) || ___ | ) || | | | | | | | \ || ( ) | /\____) || ) ( |___) (___| ) \ || ) ( | \_______)|/ \|\_______/|/ )_)|/ \| smina is based off AutoDock Vina. Please cite appropriately....
https://github.com/gnina/gnina/blob/master/scripts/makeflex.py
Thank you. Are you aware of any method that could be used to stitch the flexible residues into the original receptor structure? I'm willing to do the scripting but am unable to assign the new coordinates to the correct atoms as the pdb outputs for the flexible residues are redundant (e.g. all carbon atoms are called C rather than CA, CG, etc...)
Hi together, first of all many thanks for providing smina and its nice user interface. I have a problem with understanding the results of my minimisation. Affinity: -35.98056 1.66626 (kcal/mol) I assume the first value (-35.98056) refers to the binding energy. What is the meaning of the second term (1.66626 )? I assume it is a statistic metric, but which and how it is calculated? Best and thanks, Lars
The short answer is not easily. You need to reassemble the receptor structure and then run score_only on the ligand and this structure. As a sanity check you can also score only with flexible residues turned on. Take the difference to get the flexible only contribution.
apologies, have just seen that my first question has been answered in https://sourceforge.net/p/smina/discussion/help/thread/cef2d93015/ I still am unsure about my second question, however - is it possible to separate the free energy scores of the ligand from the flexible receptor sidechains interatcting with the receptor?
Hi, I'm running minimization of ligands against a receptor using --minimize and I'm also specifying which sidechains should be flexible with --flexres. As soon as I started using --flexres I noticed the free energy scores improved dramatically but the ligands don't seem to be in much more favourable positions (and in many cases, seem as if they would bind much less favorably). In cases where this happen the flexible sidechains do seem to have much less free energy so I suspect that the free energy...
Hi, I'm running minimization of ligands against a receptor using --minimize and I'm also specifying which sidechains should be flexible with --flexres. As soon as I started using --flexres I noticed the free energy scores improved dramatically but the ligands don't seem to be in much more favourable positions (and in many cases, seem as if they would bind much less favorably). In cases where this happen the flexible sidechains do seem to have much less free energy so I suspect that the free energy...
I think this issue is original to Vina. I noticed that Vina scores differed when identical side chain positions were either flexible or fixed. I had an email exchange with either Oleg Trott about this, but I was never satisfied by the explanation. Whether or not a chain is defined as flexible should not logically affect the binding energy - it's artificial that any side chain is fixed in any case. I think it's an artifact of dividing by the degrees of system freedom, encoded in the original software...
All the atoms of your ligand are at the origin. You need to provide a valid conformer.
OpenBabel3 is required.
OpenBabel/PDBQT Error on cmake
Thank you, sorry for the delay. Here I attach the ligand (CS10) and the receptor (5a14).
Can you provide the input files?
Hello everyone! I'm having trouble running some data with smina. The EXACT error message displayed: An internal error occurred in d:\bld\smina_1612000395592\work\src\lib\tree.h(133). Version is : smina 2020.12.10 conda-forge:b08c07c Built Jan 30 2021. Based on AutoDock Vina 1.1.2. Im running data in Windows OS 11 64x. Here are the commands I'm using: $ smina -r prot.pdbqt -l ligs_pdbqt/CS1.pdbqt -o CS1_docked.pdbqt --log CS1_docked.log --center_x -11.7835 --center_y 204.09 --center_z 113.75 --size_x...
Thank you so much for taking the time to answer our questions.
If you provide a pdbqt, smina will use it exactly as-is. If the pdbqt isn't protonated, then atom typing will be done without hydrogens. Any other file format and openbabel will be used to add hydrogens before performing atom typing. Different atom typing from different protonation states will result in different docking scores.
If you provide a pdbqt, smina will use it exactly as-is. If it isn't protonated, then atom typing will be done without hydrogens. Any other file format and openbabel will be used to add hydrogens before performing atom typing. Different atom typing from different protonation states will result in different docking scores.
Hi, would you mind providing the link to the script you posted? In order to answer the questions we discussed, I would like to have a look at it.
Dear Koes, I can understand what him/her was asking. Because I have the same question recently when I try to do structure-based virtual screening using smina. In the tutorial, smina runs with receptor.pdb and combined_ligand.sdf. The problem is autodock4 would prefer using pdbqt format input for it is protonated and added hydrogen. In addition, some believe that protonated ligands and receptors could dock more precisely and results could be more confident. Our questions are: Does smina run with unprotonated...
I have redocked the starting models from pdb files and recieved the good results, consisting with the theory and flexible docking was better then rigid. I dont know where to look for, probably usage of pdbqt, made by AutoDockTools, brings some bugs into the computational scheme, implemented in smina.
I have redocked the starting models from pdb files and recieved the good results, consisting with the theory. Flexible doocking was better then rigid. I dont know where to look for, probably usage of pdbqt, made by AutoDockTools brings some bugs into the computationan scheme.
I have redocked the starting models from pdb files and recieved the good results? consisting with the theory. Flexible doocking was better then rigid. I dont know where to look for, probably usage of pdbqt, made by AutoDockTools brings some bugs into the computationan scheme.
You're going to have to provide an actual reproducible test case for me to look into this further, as I get reasonable results with 6nv1. Have you looked at the output files to see what is going on? grep ^ATOM 6nv1.pdb > rec.pdb grep "E01 A" 6nv1.pdb > lig.pdb smina -r rec.pdb -l lig.pdb --autobox_ligand=lig.pdb --autobox_add 8 --seed 0 -o rdocked.sdf _______ _______ _________ _ _______ ( ____ \( )\__ __/( ( /|( ___ ) | ( \/| () () | ) ( | \ ( || ( ) | | (_____ | || || | | | | \ | || (___) | (_____...
The protein was 6NV1
The problem is that the energy goes up and becomes more positive. I've tried gnina in the same conditions and the energy became more negative as it should. Rigid docking _ _ _ _ _______ ( ____ ( )_ __/( ( /|( ) | ( \/| () () | ) ( | \ ( || ( ) | | (_ | || || | | | | \ | || () | (_____ )| |()| | | | | (\ ) || | ) || | | | | | | | \ || ( ) | /_) || ) ( |) (| ) \ || ) ( | ___)|/ |_____/|/ )_)|/ | smina is based off AutoDock Vina. Please cite appropriately. Weights Terms -0.035579 gauss(o=0,_w=0.5,_c=8)...
Can you provide examples with data files? You should expect the predicted energy to go down (more negative) with increased flexibility it should be possible to sample lower energy conformations. dkoes@jedi:~/git/gnina/test/gnina$ smina -r data/10gs_rec.pdb -l data/10gs_lig.sdf --flexdist 3 --flexdist_ligand data/10gs_lig.sdf --autobox_ligand data/10gs_lig.sdf _______ _______ _________ _ _______ ( ____ \( )\__ __/( ( /|( ___ ) | ( \/| () () | ) ( | \ ( || ( ) | | (_____ | || || | | | | \ | || (___)...
I've tried flexible docking with vina and smina and it seems, that smina does not take into account flexible residues when applying scoring function to the system, as the computed affinity tends to zero when more and more aminoacid residues are considered as flexible. Therefore in order to use flexible docking you should either use Vina, or debug tho source of smina to compile the working version.
Yes, that's how we fake covalent docking currently. Usually the local optimum isn't very far away though - you can check the minimizedRMSD and if it is small assume the compounds is still essentially in covalent range.
Thanks for your quick answers! I see what you mean. However, I think this will not work for this case because of the covalent docking mode. If I would refine the pose, the link atom will be dangling somewhere it should not be. This is the reason why we kept the pose as is. Keeping it this way, the linkatom (both present in the protein and ligand) would remain at the same position for every generated pose from GOLD. Our hypothesis was that keeping the pose as is would then result in a systemic error....
You have different scoring functions. They will not have the same local minima. For example, if GOLD prefers hydrogen bonds to be closer than smina's defaults, they will contribute more to the repulsion term and result in higher (more positive) scores, even though hydrogen bonds are favorable. You need to minimize to get a local optima for the score to make sense. I'd also recommend using gnina if your goal is effective rescoring.
I don't know if I understand you correctly. I am using smina to rescore the poses that I have. I have obtained the poses using GOLD. These poses were thus minimized by GOLD already. We are not using any flexibility for the protein except for hydrogen rotation. Smina is used as an extra scoring function outside the GOLD scoring function package to check whether it could give a better ranking as compared to experimental data.
There's some correlation between whatever is inducing the higher score and affinity. Having you tried minimizing to the local optimum and using those scores?
Dear David Koes, I have a couple of pose solutions in which a link atom is present in both protein and ligand having exactly the same coordinates (In this case a S from a CYS residue). I have rescored the solutions using smina with the flag --score_only. I chose to not use the quasi-covalent mode from smina because all my poses have exactly this overlap. My thought was that this overlap would be a systemic error and would not affect the relative ranking of poses. Scores could be obtained without...
Dear David Kroes, I have a couple of pose solutions in which a link atom is present in both protein and ligand having exactly the same coordinates (In this case a S from a CYS residue). I have rescored the solutions using smina with the flag --score_only. I chose to not use the quasi-covalent mode from smina because all my poses have exactly this overlap. My thought was that this overlap would be a systemic error and would not affect the relative ranking of poses. Scores could be obtained without...
I'm sorry, I'm not sure what you are asking. If you provide a pdbqt, smina will use it exactly as-is. If you provide a pdb, openbabel will be used to convert it to an pdbqt internally.
Thanks, a tutorial from the web was used for my workflow: prepare protein and ligand, define the binding site, and finally dock. But that directly converts receptor(.pdb) file to pdbqt file without separating them, and I also find a few amino acid residues are lost in this progress, does that matter in the final results?
Thanks, a tutorial from the web was used for my workflow: prepare protein and ligand, define the binding site, and finally dock. But that directly converts receptor(.pdb) file to pdbqt file without separating them, does it matter the final results?
It isn't clear to me what your workflow is, but smina uses OpenBabel to construct its PDBQT, not autodock tools.
Hello! I am a novice in molecular docking and have some confusion. Why is the receptor.pdbqt file(that downloads from PDB then removes ligands and charges by autodock) prepared for docking, different from the receptor.pdbqt obtained from (python) smina processing? Many Thanks!
I don't have time to look through the code to verify, but I would guess we don't do the precalculation of the grid based potentials if they won't be needed for docking.
Hi Koes, I did a comparison between vina and smina for score_only and local_only mode. score_only comparison !time externals/vina_v1.2.3.1 --config data/case-1/vina_docking_conf.in --ligand data/tmp8jk71etz_rdk.bestscore.pdbqt --score_only real 0m3.377s user 0m2.330s sys 0m1.047s !time externals/smina.static --config data/case-1/vina_docking_conf.in --ligand data/tmp8jk71etz_rdk.bestscore.pdbqt --score_only real 0m0.116s user 0m0.100s sys 0m0.016s local_only comparison !time externals/vina_v1.2.3.1...
Since the score is calibrated to be a delta G, you can certainly apply that formula, in which case you are picking the temperature.
Thanks! However, does it means that smina can't convert binding affinity to dissociation constant using formula as following: Ki =Kd = exp(δG/(R * T))
There isn't one. This isn't a molecular simulation.
What's the default temperature when running smina dockings?
You can't. Smina doesn't support Boron as an atom type. gnina does and is a fork of smina though.
Hi, how to put Boron related changes in smina when I use Jupyter virtual environment?
Resolved: uninstalled and reinstalled everything!
get this error: 'Parse error on line 4 in file "1OYT-FSN.pdbqt": Unknown or inappropriate tag' with this command: smina -r 1OYT-receptor.pdbqt -l 1OYT-FSN.pdbqt --autobox_ligand 1OYT-FSN.pdbqt --autobox_add 8 --exhaustiveness 16 -o 1OYT-redock.pdbqt pdbqt files were generated from pdb files with openbabel 3.1.1 using: obabel 1OYT-receptor.pdb -xr -O 1OYT-receptor.pdbqt obabel 1OYT-FSN.pdb -xr -O 1OYT-FSN.pdbqt I'm new to command line work in general, and have a new macbook pro M1. After reading the...
Those are smiles, not a mol2 or pdb. I need the actual input file that files.
Thanks David. Here they are: smiles=['C1=NC(=C2C(=N1)N(C=N2)CCOCP(=O)(O)O)N', 'C1=NC(=C2C(=N1)N(C=N2)[C@H]3C@@HO)O)N', 'CC@@HC(=O)N1C3=CC=CC=C3)NC4=NC=NC5=C4NC=N5', 'C1=NC(=C2C(=N1)N(C=N2)C3C(C(C(O3)CO)O)O)N', 'CC@HOCP@@(N[C@@H]', 'C1=NC(=C2C(=N1)N(C=N2)[C@H]3C@@HN)N)O)O)N', 'CS+N)C[C@@H]1C@HO)O', 'CN1C=C(C(=N1)OC)NC2=C3C(=NC(=N2)N4CC@HNC(=O)C=C)N(C=N3)C', 'C1COC[C@@H]1NC2=C3C(=NC=N2)N(C=N3)[C@H]4C@@HO)O'] The first three ligdand docked without any problem but docking failed for the 4th ligand with...
I need the input files. My assumption is there is something broken with the molecules.
Thanks, David. Below is my command line run in Jupyter Note book: !../smina.osx.12.sh -r {'1X1R_clean_H.pdb'} -l {'InputMols.mol2'} -o {'1X1R_lig_smina_out.sdf'} --center_x 3.4204999953508377 --center_y 9.91599988937378 --center_z 11.27299976348877 --size_x 19.56700000166893 --size_y 18.30399990081787 --size_z 23.20599937438965 --exhaustiveness 8 --num_modes 5. Do you see any problem with this command? Thank you
That error happens when a norm of a vector is zero, which shouldn't be possible. Do you only get this error for certain inputs? Can you provide the input example?
Hello, I am getting this error: 'An internal error occurred in /Users/dkoes/git/smina/src/lib/tree.h(133).' What would be the reason? Thank you