pharmer doesn't do that. Check out PharmaGist: https://pmc.ncbi.nlm.nih.gov/articles/PMC2447755/
Here is the code from my version of load_query which seems to work: def get_neighbors(points, point, num_neighbors): ''' Naive method for finding the nearest neighbors of a point on a sphere of points Arguments: points -- list of points (numpy arrays) point -- point of interest num_neighbors -- number of neighbors to return Returns: neighbors -- list of neighboring points ''' distances = [ [pt, np.linalg.norm(point - pt)] for pt in points] pts = np.stack(list(map(lambda x: x[0], sorted(distances,...
Based on the N with 4 bonds it looks like you need a newer version of openbabel (e.g., current git version).
I'm not sure I can elaborate beyond the error message much. You have molecules next to each other in the file that have different chemistries but have the same name. This isn't allowed since names are used to uniquely identify molecules.
Doesn't look like brew installed the development (header) files.
Looks like you didn't have openbabel3 installed (or at least it couldn't find it). Glad to hear the precompiled binaries still work.
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.
--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.
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
Add features requested by Amedeo Caflisch
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.
No, it is a commandline tool. But rdkit GetBestRMS will also do what you want.
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).
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.
addH determines if hydrogens are added prior to atom typing. The output always has nonpolar hydrogens removed.
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.
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.
Merge branch 'master' of ssh://git.code.sf.net/p/pharmit/code
update interaction points to get cation pi
Bug fix
Merge branch 'master' of ssh://git.code.sf.net/p/pharmit/code
script fixes
But what version is smina linked against?
You are probably using an older version of OpenBabel that doesn't Keukilize the molecules properly.
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.
Wouldn't it make more sense to modify PyRx to look for the appropriate output fields in smina/gnina?
https://github.com/gnina/gnina/blob/master/scripts/makeflex.py
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.
Add building of shapedb executable
The command you posted is identifying all the features on the ligand. If want only the interaction features you need to also specify the receptor. If you want some consensus pharmacophore derived from multiple ligands, you need to use some other software as pharmit doesn't do that.
Port 11111 is what startlibbuild.py listens on by default. These instructions are for if you want to host your own library building service. Are you sure this is what you want to do? It is much simpler to build the libraries directly using the commandline if you are the only one who needs to make libraries.
Looks like you are missing the boost system library or are linking against a different version than you compiled headers with.
All the atoms of your ligand are at the origin. You need to provide a valid conformer.
OpenBabel3 is required.
This isn't an appropriate forum to raise issues with ZINCPharmer. I suggest you email the person responsible for that website or use Pharmit instead.
Can you provide the input files?
Failed to build pharmit
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.
Your openbabel installation is missing maeparser and coordgen, which are notorious both in their absence and presence for causing build problems. Try configuring cmake with -DWITH_MAEPARSER=0 -DWITH_COORDGEN=0 or otherwise modifying cmake to not require these superfluous libraries.
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 _______ _______ _________ _ _______ ( ____ \( )\__ __/( ( /|( ___ ) | ( \/| () () | ) ( | \ ( || ( ) | | (_____ | || || | | | | \ | || (___) | (_____...
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 _______ _______ _________ _ _______ ( ____ \( )\__ __/( ( /|( ___ ) | ( \/| () () | ) ( | \ ( || ( ) | | (_____ | || || | | | | \ | || (___)...
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.
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.
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?
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.
It isn't clear to me what your workflow is, but smina uses OpenBabel to construct its PDBQT, not autodock tools.
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.
Since the score is calibrated to be a delta G, you can certainly apply that formula, in which case you are picking the temperature.
There isn't one. This isn't a molecular simulation.
You can't. Smina doesn't support Boron as an atom type. gnina does and is a fork of smina though.
Build with gcc11
Build with newer compilers
comment
Make 1.0 default radius; sphere quality diffs
Fix radius update problem
Fix body position
Those are smiles, not a mol2 or pdb. I need the actual input file that files.
I need the input files. My assumption is there is something broken with the molecules.
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?
Fix bug with very small libraries
Each separate component needs to be wrapped in BEGIN_RES/END_RES as is output, for example, with the -xs option for openbabel pdbqt export: BEGIN_RES ASP X 613 ROOT ATOM 1 C ASP X 613 46.673 49.691 53.077 0.00 0.00 +0.000 C ENDROOT BRANCH 1 2 ATOM 2 C ASP X 613 45.842 49.784 54.303 0.00 0.00 +0.000 C ATOM 3 O ASP X 613 46.347 49.741 55.471 0.00 0.00 +0.000 OA ATOM 4 O ASP X 613 44.635 49.793 54.100 0.00 0.00 +0.000 OA ENDBRANCH 1 2 BRANCH 1 5 ATOM 5 C ASP X 613 45.963 50.454 51.954 0.00 0.00 +0.000...
You'll need to pass the --no_lig argument as well so smina knows there is no ligand and it should just optimize the flex part.
You don't need to modify the source code. Provide the ligand as the "flex" argument as a pdbqt that is formatted so the ROOT is the part you don't want to move.
There's no atom type that only participates in repulsion but not van der wals so you aren't going to be able to get exactly what you want.
Terms with an angular component (e.g. directional H-bonding) aren't supported unless you're willing to implement them.
You are correct that intramolecular energies aren't included in the reported affinity.
A "curl" function is applied to positive values to prevent blowup of forces. You can increase the value of force_cap to lessen this squashing: smina -r rec.pdb -l lig.sdf --score_only --force_cap 1000000
I've stepped through the code and it seems to be doing exactly what it is suppose to and the fix would break things.
Yes, the vector matching is approximate so when you have many of them the accumulated approximations can result in too narrow of a query.
How was lig2.sdf created? What happens if you remove all the vectors from the query?
Put receptor atoms there.
But there isn't a mismatch if you set the same residues to be flexible. It would be troubling if a system with more interacting atoms in it didn't have a different score.
In order for the rescoring to have the same scores you need to continue to specify the same residues as flexible. This is because the intramolecular interactions of the flexible sidechains are included in the original score. If you have an example where this is not the case, please provide it.
As it turns out, I never added build support for the server binary to the cmake files. This has been fixed as well.
Improve cmake
Merge branch 'master' of ssh://git.code.sf.net/p/smina/code
Sorry, these instructions weren't updated with the move to the cmake git clone http://git.code.sf.net/p/smina/code smina cd smina mkdir build cd build cmake .. make -j8 cp libsmina.a /usr/local/lib/
add chrono
Merge branch 'master' of ssh://git.code.sf.net/p/smina/code
Merge branch 'master' of ssh://git.code.sf.net/p/smina/code into master
enable osx build
pg
gulp
Merge branch 'master' of ssh://git.code.sf.net/p/pharmit/code
fix chrome
You can try increasing sampling by increasing exhaustiveness, but the default value is already pretty good so I would expect diminishing returns - a better use of computational resources would be to evaluate other methods so you can do consensus scoring. You could also try the Vinardo scoring function, it does slightly better at VS.
That's a great question. As in it is a deep research question and is beyond the scope of this forum. You could apply a variety of consensus scoring techniques. You could apply machine learning. You could use deep learning (e.g. gnina).
That's a great question.
It's going to be a while before I can have the time to look into this in more detail and understand your proposed fix, but I do not see an artificial constraint being added. If you --randomize_only then smina is more than happy to produce extended conformations with these atoms far apart. However, if you minimize the compound it likes to put them together to get better intramolecular contacts.
Can you provide example structures?
You need to set SMINA_DIR to the correct location when running cmake.
Fix stupid bug I introduced trying to be clever.
Merge branch 'master' of ssh://git.code.sf.net/p/pharmit/code
There is a bug in vanilla Vina where it "optimizes" the positions of hydrogens despite hydrogens not participating in scoring. It is possible this is responsible for the extra variance. The option --flex_hydrogens re-enables this bug for exact compatibility with Vina if you want test this hypothesis.
I've uploaded an updated MacOS binary. See if it works for you.
Your input files had mixed number of columns. I can't help with R issues. I suspect you installed the various libraries prior to upgrading your operating system and you need to update them with homebrew/conda.
As you undoubtedly realize from reading the error messages, there is a mismatch in the version of the operating system you are building for and the version your installed libraries are built for. What version of MacOS are you running? How did you install these libraries?
What is the error you are getting?