<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pymol.org/index.php?action=history&amp;feed=atom&amp;title=MakeVinaCommand</id>
	<title>MakeVinaCommand - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pymol.org/index.php?action=history&amp;feed=atom&amp;title=MakeVinaCommand"/>
	<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=MakeVinaCommand&amp;action=history"/>
	<updated>2026-07-11T04:13:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=MakeVinaCommand&amp;diff=8079&amp;oldid=prev</id>
		<title>Pyadmin: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=MakeVinaCommand&amp;diff=8079&amp;oldid=prev"/>
		<updated>2014-03-28T02:16:31Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:16, 28 March 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Pyadmin</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=MakeVinaCommand&amp;diff=8078&amp;oldid=prev</id>
		<title>Folf: /* The Code */</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=MakeVinaCommand&amp;diff=8078&amp;oldid=prev"/>
		<updated>2010-08-24T12:58:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The Code&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Overview =&lt;br /&gt;
[http://vina.scripps.edu/ Vina] is a new, very fast, molecular docking program, written by Oleg Trott.  In order to run Vina, you should have [http://mgltools.scripps.edu/downloads MGLTools1.5.4] installed (you need prepare_receptor4.py and prepare_ligand4.py).  But, you don't need MGLTools for this script to run.&lt;br /&gt;
&lt;br /&gt;
To run Vina it needs to know the center of the protein and also its extents (size in XYZ directions).  We can easily do this with PyMOL.&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
* [[COM]] -- simple script to get the center of mass of a selection&lt;br /&gt;
&lt;br /&gt;
Todo:&lt;br /&gt;
* Commandline options&lt;br /&gt;
* Robustness to vagaries of input&lt;br /&gt;
* Usage &amp;amp; Help&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pymol -cq ./makeVinaCommandFromProtein.py proteinFile ligandFile&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For high-throughput screening, where we compare each ligand to each protein, I typically wrap the script in a for-loop like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# foreach protein in my proteins directory&lt;br /&gt;
for protein in proteinsDir/*; do&lt;br /&gt;
&lt;br /&gt;
  # foreach ligand in my ligands directory&lt;br /&gt;
  for ligand in ligandsDir/*; do;&lt;br /&gt;
&lt;br /&gt;
    # make a Vina command to run the protein vs the ligand.&lt;br /&gt;
    # note the backticks to run the output&lt;br /&gt;
    `pymol -cq ./makeVinaCommandFromProtein.py $protein $ligand | grep vina`;&lt;br /&gt;
&lt;br /&gt;
  done;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
#&lt;br /&gt;
# makeVinaCommandFromProtein.py -- automatically make a valid Vina command from a PDB file and a ligand (name)&lt;br /&gt;
#&lt;br /&gt;
# Author: Jason Vertrees&lt;br /&gt;
# Date  : 2/2009&lt;br /&gt;
#&lt;br /&gt;
from pymol import cmd&lt;br /&gt;
from sys import argv&lt;br /&gt;
from os import path&lt;br /&gt;
&lt;br /&gt;
# try to keep PyMOL quiet&lt;br /&gt;
cmd.feedback(&amp;quot;disable&amp;quot;,&amp;quot;all&amp;quot;,&amp;quot;actions&amp;quot;)&lt;br /&gt;
cmd.feedback(&amp;quot;disable&amp;quot;,&amp;quot;all&amp;quot;,&amp;quot;results&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# prepare some output names&lt;br /&gt;
protName= path.basename(argv[-2])&lt;br /&gt;
ligName = path.basename(argv[-1])&lt;br /&gt;
outName = protName.split(&amp;quot;.&amp;quot;)[0] + &amp;quot;.&amp;quot; + ligName.split(&amp;quot;.&amp;quot;)[0] + &amp;quot;.docked.pdbqt&amp;quot;&lt;br /&gt;
logName = protName.split(&amp;quot;.&amp;quot;)[0] + &amp;quot;.&amp;quot; + ligName.split(&amp;quot;.&amp;quot;)[0] + &amp;quot;.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# very unsafe commandline checking; needs updating&lt;br /&gt;
cmd.load(argv[-2], protName)&lt;br /&gt;
cmd.load(argv[-1], ligName)&lt;br /&gt;
&lt;br /&gt;
# remove the ligand before calculating the center of mass&lt;br /&gt;
cmd.delete(ligName)&lt;br /&gt;
&lt;br /&gt;
# load center of mass script&lt;br /&gt;
cmd.do(&amp;quot;run /home/path/to/COM.py&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# calculate the center of mass and extents&lt;br /&gt;
(comX, comY, comZ) = COM(protName)&lt;br /&gt;
((maxX, maxY, maxZ), (minX, minY, minZ)) = cmd.get_extent(protName)&lt;br /&gt;
&lt;br /&gt;
# print the command line&lt;br /&gt;
print &amp;quot;vina --receptor &amp;quot;+protName&amp;quot;qt --ligand &amp;quot;+ligName+&amp;quot;qt --center_x &amp;quot;, str(comX), &amp;quot; --center_y &amp;quot;, str(comY),\&lt;br /&gt;
&amp;quot; --center_z &amp;quot;, str(comZ), &amp;quot; --size_x &amp;quot;, str(abs(maxX-minX)), &amp;quot; --size_y &amp;quot;, str(abs(maxY-minY)), &amp;quot; --size_z &amp;quot;, \&lt;br /&gt;
str(abs(maxZ-minZ)), &amp;quot; --all &amp;quot;, outName , &amp;quot; --exhaustiveness 200 --log &amp;quot;, logName, &amp;quot; \n&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# execute the script&lt;br /&gt;
&amp;gt; pymol -cq ./makeVinaCommandFromProtein.py 1ia6_gh09.pdb glucose.pdb | grep vina&lt;br /&gt;
&lt;br /&gt;
# the output&lt;br /&gt;
vina --receptor  1ia6_gh09.pdbqt  --ligand  glucose_dimer.pdbqt --center_x  1.86797851457  --center_y  17.7951449088  --center_z  65.2250072289  --size_x  55.9499988556  --size_y  49.7459993362  --size_z  58.1769981384  --all  1ia6_gh09.glucose_dimer.docked.pdbqt  --exhaustiveness 100 --log  1ia6_gh09.glucose_dimer.log&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [[COM]] -- you need this script&lt;br /&gt;
* [http://vina.scripps.edu/ Vina] -- the docking software&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|MakeVinaCommandFromProtein]]&lt;/div&gt;</summary>
		<author><name>Folf</name></author>
	</entry>
</feed>