<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.docking.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jwagsta</id>
	<title>DISI - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.docking.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jwagsta"/>
	<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Special:Contributions/Jwagsta"/>
	<updated>2026-05-25T07:58:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12457</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12457"/>
		<updated>2020-04-16T16:58:34Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: /* Keyboard shortcuts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing output poses from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock requires a fair amount of clicking and mouse movement. To reduce these you can use this [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators] script, mostly written by Tom Goddard ([http://plato.cgl.ucsf.edu/pipermail/chimera-users/2020-March/016642.html Chimera user list discussion]):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def register_accelerators():                                                     &lt;br /&gt;
                                                                                 &lt;br /&gt;
  from Accelerators import standard_accelerators                                 &lt;br /&gt;
  standard_accelerators.register_accelerators()                                  &lt;br /&gt;
                                                                                 &lt;br /&gt;
  from Accelerators import add_accelerator                                       &lt;br /&gt;
  add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete) &lt;br /&gt;
  add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged)  &lt;br /&gt;
  add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable)  &lt;br /&gt;
  add_accelerator(&#039;cn&#039;, &#039;Move to next View Dock compound&#039;, vdock_next)           &lt;br /&gt;
  add_accelerator(&#039;cp&#039;, &#039;Move to next View Dock compound&#039;, vdock_previous)       &lt;br /&gt;
  add_accelerator(&#039;ct&#039;, &#039;Print ViewDock totals to Reply Log&#039;, vdock_totals)                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_delete():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Deleted)                                            &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_purged():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Purged)                                             &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_viable():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Viable)                                             &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_set_state(state):                                                      &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        vd.results.setSelectedState(state)                                       &lt;br /&gt;
        vd._reloadCompounds()                                                    &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_next():                                                                &lt;br /&gt;
    vdock_step(1)                                                                &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_previous():                                                            &lt;br /&gt;
    vdock_step(-1)                                                               &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_step(step):                                                            &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        r = vd.results                                                           &lt;br /&gt;
        csel = r.selected                                                        &lt;br /&gt;
        if csel:                                                                 &lt;br /&gt;
          c = csel[0]                                                            &lt;br /&gt;
          clist = r.compoundList                                                 &lt;br /&gt;
          i = clist.index(c)                                                     &lt;br /&gt;
          if i+step &amp;lt; len(clist) and i+step &amp;gt;= 0:                                &lt;br /&gt;
            nextc = clist[i+step]                                                &lt;br /&gt;
            vd.results.setSelected([nextc])                                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_totals():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    print &amp;quot;Counting ViewDock molecules&amp;quot;                                          &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        r = vd.results                                                           &lt;br /&gt;
        clist = r.compoundList                                                   &lt;br /&gt;
        if clist:                                                                &lt;br /&gt;
            n_total   = 0                                                        &lt;br /&gt;
            n_viable  = 0                                                        &lt;br /&gt;
            n_deleted = 0                                                        &lt;br /&gt;
            n_purged  = 0                                                        &lt;br /&gt;
            for c in clist:                                                      &lt;br /&gt;
                n_total += 1                                                     &lt;br /&gt;
                if c.state == Compound.Viable:                                   &lt;br /&gt;
                    n_viable  += 1                                               &lt;br /&gt;
                elif c.state == Compound.Deleted:                                &lt;br /&gt;
                    n_deleted += 1                                               &lt;br /&gt;
                elif c.state == Compound.Purged:                                 &lt;br /&gt;
                    n_purged  += 1                                               &lt;br /&gt;
        print n_total, &amp;quot;total compounds.&amp;quot;                                        &lt;br /&gt;
        print n_viable, &amp;quot;viable compounds.&amp;quot;                                      &lt;br /&gt;
        print n_deleted, &amp;quot;deleted compounds.&amp;quot;                                    &lt;br /&gt;
        print n_purged, &amp;quot;purged compounds.&amp;quot;                                      &lt;br /&gt;
        print &amp;quot;Keep at it!&amp;quot;                                                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_dialog():                                                              &lt;br /&gt;
    from ViewDock import ViewDock                                                &lt;br /&gt;
    from chimera import extension                                                &lt;br /&gt;
    for vd in extension.manager.instances:                                       &lt;br /&gt;
        if isinstance(vd, ViewDock):                                             &lt;br /&gt;
            return vd                                                            &lt;br /&gt;
    return None &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
Accelerators &amp;quot;cv&amp;quot; (Viable), &amp;quot;cd&amp;quot; (Delete), &amp;quot;cx&amp;quot; (Purge), work like clicking the radio buttons in the ViewDock dialog box - they change the status of the selected compound. Accelerators &amp;quot;cn&amp;quot; and &amp;quot;cp&amp;quot; move forward or back one compound. &amp;quot;ct&amp;quot; counts the compounds with each status, the output is shown in the Chimera &amp;quot;Reply Log&amp;quot; (Tools &amp;gt; Utilities &amp;gt; Reply Log).&lt;br /&gt;
&lt;br /&gt;
== ChimeraX/ViewDockX ==&lt;br /&gt;
&lt;br /&gt;
There is an equivalent tool [https://www.cgl.ucsf.edu/chimerax/docs/user/tools/viewdockx.html ViewDockX] in the next generation visualisation tool [https://www.cgl.ucsf.edu/chimerax/ ChimeraX].&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=DOCK_3.7_2018/06/05_abl1_Tutorial&amp;diff=12456</id>
		<title>DOCK 3.7 2018/06/05 abl1 Tutorial</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=DOCK_3.7_2018/06/05_abl1_Tutorial&amp;diff=12456"/>
		<updated>2020-04-16T16:58:07Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: /* curating and hit-picking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This tutorial use the 3.7.2 beta version of dock release on April 17, 2015.&lt;br /&gt;
&lt;br /&gt;
This is for a Linux environment and the scripts assume that you are running on SGE queuing system.&lt;br /&gt;
&lt;br /&gt;
More information and tutorials, see [[DOCK_3.7]]. &lt;br /&gt;
&lt;br /&gt;
== set up directories and get databases ==&lt;br /&gt;
&lt;br /&gt;
Create directory called &amp;quot;RotationProject&amp;quot;&lt;br /&gt;
&lt;br /&gt;
create a python file called &amp;quot;0000.autodude_db_download.py&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 # this gets the database from the autodude webpage&lt;br /&gt;
 &lt;br /&gt;
 import sys, os&lt;br /&gt;
 import urllib&lt;br /&gt;
 &lt;br /&gt;
 system = &#039;abl1&#039;&lt;br /&gt;
 url = &#039;http://autodude.docking.org/dude_e_db2/&#039;&lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;url = &amp;quot; + url&lt;br /&gt;
 &lt;br /&gt;
 #page=requests.get(url)&lt;br /&gt;
 &lt;br /&gt;
 webfile = urllib.urlopen(url)&lt;br /&gt;
 page    = webfile.read()&lt;br /&gt;
 webfile.close()&lt;br /&gt;
 &lt;br /&gt;
 splitpage=page.split(&#039;\n&#039;)&lt;br /&gt;
 &lt;br /&gt;
 for line in splitpage:&lt;br /&gt;
    if system in line: &lt;br /&gt;
       file = line.replace(&#039;&amp;quot;&#039;,&#039; &#039;).split()[2]&lt;br /&gt;
       print url+file&lt;br /&gt;
       urllib.urlretrieve(url+file,file)&lt;br /&gt;
 &lt;br /&gt;
      # exit()&lt;br /&gt;
&lt;br /&gt;
This python script will download the dockable db2 databases from the autodude webpage.&lt;br /&gt;
&lt;br /&gt;
 python /mnt/nfs/home/rstein/RotationProject/autodude_db_download.py &lt;br /&gt;
&lt;br /&gt;
make a subdirectory called databases:&lt;br /&gt;
&lt;br /&gt;
 mkdir databases&lt;br /&gt;
&lt;br /&gt;
go inside.&lt;br /&gt;
&lt;br /&gt;
 cd databases&lt;br /&gt;
&lt;br /&gt;
make directories for ligands and decoys and move the corresponding files into those directories&lt;br /&gt;
&lt;br /&gt;
 mkdir decoys &lt;br /&gt;
 mv decoys*db2.gz decoys&lt;br /&gt;
&lt;br /&gt;
 mkdir ligands &lt;br /&gt;
 mv ligands*db2.gz ligands&lt;br /&gt;
&lt;br /&gt;
download the ligand and decoy isomeric smiles file:&lt;br /&gt;
&lt;br /&gt;
 wget http://autodude.docking.org/abl1/decoys_final.ism&lt;br /&gt;
 mv decoys_final.ism decoys.ism&lt;br /&gt;
&lt;br /&gt;
note that the scripts expect the name to be decoys.ism, so we changed the name. &lt;br /&gt;
&lt;br /&gt;
 wget http://autodude.docking.org/abl1/actives_final.ism&lt;br /&gt;
 mv actives_final.ism ligands.ism&lt;br /&gt;
&lt;br /&gt;
== run be_blasti.py==&lt;br /&gt;
&lt;br /&gt;
First we need to get our protein of interest from the protein databank (pdb).  We will typiclly use a receptor with a ligand bound as is the case for pdbcode 2HYY, which is the Abl kinase domain in complex with imatinib (STI571, Glivec). &lt;br /&gt;
&lt;br /&gt;
Note, in the following scripts, that DOCKBASE is a environment variable that point to the DOCK3.7 code. e.g.:&lt;br /&gt;
&lt;br /&gt;
 setenv DOCKBASE &amp;quot;/path2dock3.7/DOCK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 setenv DOCKBASE &amp;quot;/nfs/home/tbalius/zzz.github/DOCK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note, if you get an error ImportError: No module named Bio.PDB, then install the biopython as followed:&lt;br /&gt;
&lt;br /&gt;
 sudo yum install python-biopython&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create the following cshell script 0001.be_balsti_py.csh by using your favorite text editor (eg vim). &lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;#&amp;quot; symbol denotes a comment to explain what the script is doing. &lt;br /&gt;
&lt;br /&gt;
 #!/bin/csh &lt;br /&gt;
 &lt;br /&gt;
 # this script calls be_blasti.py which creates a receptor and ligand file from a (list of) pdbcode(s).&lt;br /&gt;
 &lt;br /&gt;
 # msms is a molecular surface generation program needed for be_blasti.py to run&lt;br /&gt;
 # which is put in your path&lt;br /&gt;
 set path = ( /nfs/home/tbalius/zzz.programs/msms $path )&lt;br /&gt;
 # you will need to have msms on you system.   &lt;br /&gt;
 &lt;br /&gt;
 set list = &amp;quot;2HYY&amp;quot; # or use `cat filename` to list your pdb codes here from a text file like pdblist_rat, to loop over each variable (pdb code) later&lt;br /&gt;
 #set list = `cat $1`&lt;br /&gt;
 #set list = `cat /nfs/work/users/tbalius/VDR/Enrichment/pdblist_rat `&lt;br /&gt;
 &lt;br /&gt;
 # CHANGE THIS, according to where the magic is going to happen&lt;br /&gt;
 #set mountdir = &amp;quot;/mnt/nfs/work/users/tbalius/VDR/&amp;quot;&lt;br /&gt;
 set mountdir = `pwd` &lt;br /&gt;
 &lt;br /&gt;
 # loop over pdbnames e.g. 1DB1 or list&lt;br /&gt;
 foreach pdbname ( $list )&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot; ${pdbname} &amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # for each pdb makes a directory with its name&lt;br /&gt;
 set workdir = ${mountdir}/${pdbname}&lt;br /&gt;
 &lt;br /&gt;
 ## so you don&#039;t blow away stuff; continue means STOP here and continue with next pdb from list&lt;br /&gt;
 if ( -s $workdir ) then&lt;br /&gt;
    echo &amp;quot;$workdir exits&amp;quot;&lt;br /&gt;
    continue&lt;br /&gt;
 endif&lt;br /&gt;
 &lt;br /&gt;
   mkdir -p ${workdir}&lt;br /&gt;
   cd ${workdir}&lt;br /&gt;
 &lt;br /&gt;
 # the atom type definition is needed for msms which is sym-linked into the cwd&lt;br /&gt;
   ln -s /nfs/home/tbalius/zzz.programs/msms/atmtypenumbers .&lt;br /&gt;
 # carbs are disregarded as ligands! if it is: carbohydrate instead of noncarbohydrate&lt;br /&gt;
 # renumber renumbers the residue number&lt;br /&gt;
   python $DOCKBASE/proteins/pdb_breaker/be_blasti.py --pdbcode $pdbname nocarbohydrate original_numbers | tee -a pdbinfo_using_biopython.log&lt;br /&gt;
 &lt;br /&gt;
 # error checking looks for receptor and ligand file which should be produced by be_blasti.py&lt;br /&gt;
   if !(-s rec.pdb) then&lt;br /&gt;
       echo &amp;quot;rec.pdb is not found&amp;quot;&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
   mv rec.pdb temp.pdb&lt;br /&gt;
   grep -v TER temp.pdb | grep -v END  &amp;gt; rec.pdb&lt;br /&gt;
 &lt;br /&gt;
   rm temp.pdb&lt;br /&gt;
 &lt;br /&gt;
 # be_blasti.py produces peptide which may be used as a ligand if no other ligand is produced&lt;br /&gt;
   if (-s lig.pdb) then&lt;br /&gt;
      sed -e &amp;quot;s/HETATM/ATOM  /g&amp;quot; lig.pdb &amp;gt; xtal-lig.pdb&lt;br /&gt;
   else if (-s pep.pdb) then ## if no ligand and peptide&lt;br /&gt;
      sed -e &amp;quot;s/HETATM/ATOM  /g&amp;quot; pep.pdb &amp;gt; xtal-lig.pdb&lt;br /&gt;
   else&lt;br /&gt;
      echo &amp;quot;Warning: No ligand or peptid.&amp;quot;&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
 end # system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
running 0001.be_balsti_py.csh will run a script that comes with dock called be_blasti.&lt;br /&gt;
&lt;br /&gt;
issue the following command to run the script:&lt;br /&gt;
  csh 0001.be_balsti_py.csh&lt;br /&gt;
  &lt;br /&gt;
It will do the following &lt;br /&gt;
# Download the pdb file from the web&lt;br /&gt;
# Break the file into rec and ligand components&lt;br /&gt;
&lt;br /&gt;
Note that you will need to have msms on you system.&lt;br /&gt;
&lt;br /&gt;
[[get msms]]&lt;br /&gt;
&lt;br /&gt;
For Shoichet lab members msms is already installed.&lt;br /&gt;
&lt;br /&gt;
check to make sure that the right ligand was selected and the the residue is not missing anything of importance.  &lt;br /&gt;
If this automatic procedure has not prepared these files correctly, then modify them. &lt;br /&gt;
&lt;br /&gt;
Visualize them with chimera or an alternive visualization program like pymol. &lt;br /&gt;
&lt;br /&gt;
 cd 2HYY&lt;br /&gt;
&lt;br /&gt;
 chimera rec.pdb lig.pdb&lt;br /&gt;
&lt;br /&gt;
[[File:rec_lig_2HYY.png|thumb|center|375px|2HYY, the receptor and ligand generated from be_blasti.py.]]&lt;br /&gt;
&lt;br /&gt;
== run blastermaster.py ==&lt;br /&gt;
&lt;br /&gt;
Write (paste what follows) the following script using a text editor like vi. This script creates the files necessary for docking including the spheres (for orienting the ligands/decoys) and grids (for scoring the ligand/decoy poses)&lt;br /&gt;
&lt;br /&gt;
WARNING: if you copy and pasted the script make sure there is no space before the &amp;quot;EOF&amp;quot;; this is because &amp;quot;EOF&amp;quot; designates the &amp;quot;end of file&amp;quot; for the cat command, if a space is there it wont stop cat&#039;ing.    &lt;br /&gt;
&lt;br /&gt;
0002.blastermaster.csh &lt;br /&gt;
&lt;br /&gt;
 #!/bin/csh &lt;br /&gt;
 &lt;br /&gt;
 # This script runs Ryan&#039;s blastermaster python masterscript for generating everything that dock needs, i.e. grids, spheres&lt;br /&gt;
 # Run on sgehead as jobs are submitted to the queue&lt;br /&gt;
 &lt;br /&gt;
 # list is same as in 001... script &lt;br /&gt;
 set list = &amp;quot;2HYY&amp;quot;&lt;br /&gt;
 #set list = `cat $1`&lt;br /&gt;
 #set list = `cat /nfs/work/users/tbalius/VDR/Enrichment/pdblist_all `&lt;br /&gt;
 &lt;br /&gt;
 set mountdir = `pwd`&lt;br /&gt;
 #set mountdir = &amp;quot;/nfs/work/users/tbalius/VDR/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # loop over all pdb(s)&lt;br /&gt;
 foreach pdbname ( $list )&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;${pdbname}&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 set workdir = ${mountdir}/${pdbname}&lt;br /&gt;
 &lt;br /&gt;
 # checks that 001 ran successfully and produced the directory structure as expected&lt;br /&gt;
 # if not stops with current pdb code and continues with next one in list&lt;br /&gt;
   if ! ( -s $workdir ) then&lt;br /&gt;
      echo &amp;quot;$workdir does not exit&amp;quot;&lt;br /&gt;
      continue&lt;br /&gt;
   endif&lt;br /&gt;
 &lt;br /&gt;
 cd $workdir&lt;br /&gt;
 &lt;br /&gt;
 #cat xtal-lig_ori.pdb | awk &#039;{if ($1 == &amp;quot;ATOM&amp;quot; || $1 == &amp;quot;HETATM&amp;quot;){print $0}}&#039; | sed -e &amp;quot;s/HETATM/ATOM  /g&amp;quot;  &amp;gt;  xtal-lig.pdb&lt;br /&gt;
 &lt;br /&gt;
 # the following lines create a qsub script which submits blastermaster to the queue&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt; qsub.csh&lt;br /&gt;
 #!/bin/csh &lt;br /&gt;
 #\$ -cwd&lt;br /&gt;
 #\$ -j yes&lt;br /&gt;
 #\$ -o stderr&lt;br /&gt;
 #\$ -q all.q&lt;br /&gt;
 cd $workdir&lt;br /&gt;
 python $DOCKBASE/proteins/blastermaster/blastermaster.py --addhOptions=&amp;quot; -HIS -FLIPs &amp;quot;  -v&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 qsub qsub.csh &lt;br /&gt;
 &lt;br /&gt;
 end # pdbname&lt;br /&gt;
 # going to the next pdb&lt;br /&gt;
 &lt;br /&gt;
 # this will produce two directories:&lt;br /&gt;
 # 1) working - contains all input and output files that are generated; not needed afterwards but as a reference&lt;br /&gt;
 # 2) dockfiles - contains everything that is needed to run dock (copied from working)&lt;br /&gt;
 #    grids &lt;br /&gt;
 #    	trim.electrostatics.phi &lt;br /&gt;
 #    	vdw.vdw &lt;br /&gt;
 #    	vdw.bmp &lt;br /&gt;
 # 	ligand.desolv.heavy&lt;br /&gt;
 # 	ligand.desolv.hydrogen&lt;br /&gt;
 #    spheres&lt;br /&gt;
 #    	matching_spheres.sph&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modifications to INDOCK ==&lt;br /&gt;
&lt;br /&gt;
Before run the enrichment calculations consider modifying your INDOCK file.  &lt;br /&gt;
&lt;br /&gt;
For example, you might want to modify the the energy threshold maximum that controls poses (or molecules) written to a mol2 files (that is, for molecule that do not score below this thresold, poses  will not written ).&lt;br /&gt;
&lt;br /&gt;
Change from&lt;br /&gt;
     mol2_score_maximum            -10.0&lt;br /&gt;
To: &lt;br /&gt;
     mol2_score_maximum            +10.0 &lt;br /&gt;
&lt;br /&gt;
Another parameter to consider changing might be the heavy atom count maximum: &lt;br /&gt;
&lt;br /&gt;
Change from &lt;br /&gt;
     atom_maximum                  25&lt;br /&gt;
to &lt;br /&gt;
     atom_maximum                 100&lt;br /&gt;
&lt;br /&gt;
== Visualize the docking spheres ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the showsphere program:&lt;br /&gt;
&lt;br /&gt;
  $DOCKBASE/proteins/showsphere/bin/showsphere &lt;br /&gt;
&lt;br /&gt;
  $DOCKBASE/proteins/showsphere/doshowsph.csh file.sph 1 file.pdb&lt;br /&gt;
&lt;br /&gt;
for example: &lt;br /&gt;
 $DOCKBASE/proteins/showsphere/doshowsph.csh 2HYY/dockfiles/matching_spheres.sph 1 matching_spheres.pdb&lt;br /&gt;
&lt;br /&gt;
Alternatively, use the following simple cshell/awk script to convert spheres to pdb format: &lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt; EOF &amp;gt; sphere2pdb.csh&lt;br /&gt;
 #!/bin/csh -f&lt;br /&gt;
 awk &#039;$0!~/e/{ \&lt;br /&gt;
 printf(&amp;quot;ATOM  %5d  C   SPH%5d%12.3f%8.3f%8.3f%6.2f%6.2f\nTER\n&amp;quot;, \$1, \$1, \$2, \$3, \$4, 1, \$5)}&#039; \$1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
This command statement will write the commands script to a file called sphere2pdb.csh.  Make sure there is not space before the second EOF (end of file) above.  To run the command:&lt;br /&gt;
&lt;br /&gt;
 csh sphere2pdb.csh file.sph &amp;gt; file.pdb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cd 2HYY/working&lt;br /&gt;
&lt;br /&gt;
chimera rec.pdb matching_spheres.pdb&lt;br /&gt;
&lt;br /&gt;
[[File:Spheres.png|thumb|center|375px|The spheres generated from blastermaster.py in relation to the receptor.]]&lt;br /&gt;
&lt;br /&gt;
The box used for scoring can also be visualized in chimera with the following command:&lt;br /&gt;
&lt;br /&gt;
chimera rec.pdb matching_spheres.pdb box&lt;br /&gt;
&lt;br /&gt;
[[File:Spheresbox.png|thumb|center|375px|The spheres and box generated from blastermaster.py in relation to the receptor.]]&lt;br /&gt;
&lt;br /&gt;
== run enrichment calculations ==&lt;br /&gt;
&lt;br /&gt;
Submit an enrichment calculation via  0003.lig-decoy_enrichment_submit.csh &lt;br /&gt;
&lt;br /&gt;
We recommend using this method, as it uses the DOCK submission infrastructure. &lt;br /&gt;
&lt;br /&gt;
* Write a file called 0003.lig-decoy_enrichment_submit.csh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/csh&lt;br /&gt;
 &lt;br /&gt;
 #This script provides a alternative way to dock a DUD-e like ligand-decoy-database for the enrichment evaluation of actives over decoys&lt;br /&gt;
 #It assumes that ligands and decoys have been pre-prepation (see script blablabla_ToDo) which needs to be run in SF.&lt;br /&gt;
 &lt;br /&gt;
 set filedir = &amp;quot;/mnt/nfs/home/jklyu/work/DOCK_tutorial&amp;quot;  #CHANGE THIS&lt;br /&gt;
 # this is where the work is done:&lt;br /&gt;
 set mountdir = $filedir                         # Might CHANGE THIS&lt;br /&gt;
 set dude_dir = &amp;quot;/mnt/nfs/home/jklyu/work/DOCK_tutorial/databases&amp;quot;  # should contain decoy.smi and ligand.smi for ROC script 00005...csh&lt;br /&gt;
   ## TO DO - rename this outside in the dir structure and call in blbalbalbabla script&lt;br /&gt;
 if (-s $dude_dir) then&lt;br /&gt;
  echo &amp;quot; $dude_dir exist&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
  # this is something to modified in future. &lt;br /&gt;
  # probably better to exit if it is not there.&lt;br /&gt;
  echo &amp;quot;databases do not exist. &amp;quot;&lt;br /&gt;
  echo &amp;quot;consider making a symbolic link to the database files&amp;quot;&lt;br /&gt;
 endif&lt;br /&gt;
 &lt;br /&gt;
 set list = &amp;quot;2HYY&amp;quot;  # CHANGE THIS (pdbname)&lt;br /&gt;
 foreach pdbname ( $list )&lt;br /&gt;
 # creates &amp;quot;ligands&amp;quot; and &amp;quot;decoys&amp;quot; and has the aim to dock all of the subsets for those two&lt;br /&gt;
 foreach db_type ( &amp;quot;ligands&amp;quot; &amp;quot;decoys&amp;quot; )&lt;br /&gt;
 set workdir1 = &amp;quot;${mountdir}/${pdbname}/${db_type}&amp;quot;&lt;br /&gt;
 set workdir2 = &amp;quot;${mountdir}/${pdbname}&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 echo $mountdir&lt;br /&gt;
 echo $workdir1&lt;br /&gt;
 echo $workdir2&lt;br /&gt;
 #&lt;br /&gt;
 mkdir -p  ${workdir1}&lt;br /&gt;
 cd  ${workdir1}&lt;br /&gt;
 #creat dirlist for *.db2.gz files prepared for docking&lt;br /&gt;
 ls ${dude_dir}/${db_type}/*.db2.gz &amp;gt; ${db_type}_files.txt&lt;br /&gt;
 #copy the files needed for dock&lt;br /&gt;
 cp ${workdir2}/INDOCK ${workdir1}&lt;br /&gt;
 ln -s ${workdir2}/dockfiles/ ${workdir1}&lt;br /&gt;
 #use dirlist to creat chunks for job submission&lt;br /&gt;
 python /nfs/home/tbalius/zzz.github/DOCK/docking/setup/setup_db2_zinc15_file_number.py ./ chunk ./${db_type}_files.txt 500  count&lt;br /&gt;
 #&lt;br /&gt;
 csh $DOCKBASE/docking/submit/submit.csh&lt;br /&gt;
 &lt;br /&gt;
 end # db_type&lt;br /&gt;
 end # pdbname&lt;br /&gt;
&lt;br /&gt;
* Run the above script&lt;br /&gt;
&lt;br /&gt;
 csh 0003.lig-decoy_enrichment_submit.csh&lt;br /&gt;
&lt;br /&gt;
== combine scores and poses ==&lt;br /&gt;
&lt;br /&gt;
Write this file as 0004.combineScoresAndPoses.csh. This script combines your docking runs (for ligands and decoys) and stores them in the extract_all.txt file. It also creates a .mol2 file containing all top scoring poses for each ligand/decoy.&lt;br /&gt;
&lt;br /&gt;
Note that if you used the alternative (which is preferred) submission in the above step, then you will need to modify the directory structure in the below script. &lt;br /&gt;
&lt;br /&gt;
From: &lt;br /&gt;
  ${mountdir}/${pdbname}/ligands-decoys/${db_type}/allChunksCombined&lt;br /&gt;
To: &lt;br /&gt;
  ${mountdir}/${pdbname}/${db_type}/allChunksCombined&lt;br /&gt;
&lt;br /&gt;
 #!/bin/csh&lt;br /&gt;
 &lt;br /&gt;
 # This script combines the results from the ligand-decoy run 0003 (all chunks) into a combine file containing dock scores from OUTDOCK files&lt;br /&gt;
 # Three files are produced (one for lig, decoy and both) &lt;br /&gt;
 # and: a file which has top poses as specified (e.g. top 1000 molecules with 2 poses each); two files (for lig and for decoys)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # to remove dir&lt;br /&gt;
 # rm -fr pdbs/3O1D/ligands-decoys/ligands/allChunksCombined/ pdbs/3O1D/ligands-decoys/decoys/allChunksCombined/ pdbs/3O1D/ligands-decoys/dockedLigDecoyCombined/&lt;br /&gt;
 &lt;br /&gt;
 set filedir = &amp;quot;/mnt/nfs/home/rstein/RotationProject&amp;quot;&lt;br /&gt;
 set mountdir = &amp;quot;/mnt/nfs/home/rstein/RotationProject&amp;quot;&lt;br /&gt;
 set d37 =  $DOCKBASE/analysis/&lt;br /&gt;
 &lt;br /&gt;
 cd $mountdir&lt;br /&gt;
 &lt;br /&gt;
 set list = &amp;quot;2HYY&amp;quot;&lt;br /&gt;
 #set list = `cat filename`&lt;br /&gt;
 #set list = `cat $1`&lt;br /&gt;
 &lt;br /&gt;
 foreach pdbname ( $list )&lt;br /&gt;
 &lt;br /&gt;
 foreach db_type ( &amp;quot;ligands&amp;quot; &amp;quot;decoys&amp;quot; )&lt;br /&gt;
 &lt;br /&gt;
 set workdir = ${mountdir}/${pdbname}/ligands-decoys/${db_type}/allChunksCombined&lt;br /&gt;
 &lt;br /&gt;
 echo $pdbname&lt;br /&gt;
 &lt;br /&gt;
 #ls -l ${mountdir}/${pdbname}/${db_type}/&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p ${workdir}&lt;br /&gt;
 cd ${workdir}&lt;br /&gt;
  &lt;br /&gt;
 # creates a file called dirlist that contains the full path of all directories with docked runs (chunks)&lt;br /&gt;
 ls -ld ${mountdir}/${pdbname}/ligands-decoys/${db_type}/* | awk &#039;/chunk/{print $9}&#039; &amp;gt; dirlist&lt;br /&gt;
 &lt;br /&gt;
 #ls -ld ${mountdir}/${pdbname}/ligands-decoys/${db_type}/*&lt;br /&gt;
 &lt;br /&gt;
 # for debuging&lt;br /&gt;
 #echo &amp;quot;print $db_type dirlist:&amp;quot;&lt;br /&gt;
 #cat dirlist&lt;br /&gt;
 &lt;br /&gt;
 # script extracts scores from all docking runs specified in dirlist&lt;br /&gt;
 $d37/extract_all.py&lt;br /&gt;
 # script gets poses for top scoring molecules and produces poses.mol2 (default name)&lt;br /&gt;
 $d37/getposes.py -d ${mountdir}/${pdbname}/ligands-decoys/${db_type}&lt;br /&gt;
 &lt;br /&gt;
 end # db_type&lt;br /&gt;
 &lt;br /&gt;
 ## combine decoyes and actives&lt;br /&gt;
 set workdir =  ${mountdir}/${pdbname}/ligands-decoys/dockedLigDecoyCombined&lt;br /&gt;
 &lt;br /&gt;
 rm -rf ${workdir}&lt;br /&gt;
 mkdir -p ${workdir}&lt;br /&gt;
 cd ${workdir}&lt;br /&gt;
 &lt;br /&gt;
 cat ${mountdir}/${pdbname}/ligands-decoys/ligands/allChunksCombined/dirlist ${mountdir}/${pdbname}/ligands-decoys/decoys/allChunksCombined/dirlist &amp;gt; dirlist&lt;br /&gt;
 &lt;br /&gt;
 # for debuging&lt;br /&gt;
 #echo &amp;quot;print ALL dirlist&amp;quot;&lt;br /&gt;
 #cat dirlist&lt;br /&gt;
 &lt;br /&gt;
 $d37/extract_all.py&lt;br /&gt;
 #$d37/getposes.py -d ${mountdir}/${pdbname}     # doesn&#039;t work yet; not really needed&lt;br /&gt;
 #getposes.py -z -l 1000 -x 2 -f extract_all.sort.uniq.txt -o ligands.1000.mol2 -d /mnt/nfs/work/users/fischer/VDR/27Jan2014_learningDOCKrgc/Enrichment/1DB1/DOCKING/ligands&lt;br /&gt;
 &lt;br /&gt;
 end # pdbname&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:liganddock.png|thumb|center|375px|The pose generated from a ligand (purple) docked to Abl1 compared to imatinib (blue).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:decoydock.png|thumb|center|375px|The pose generated from a decoy (green) docked to Abl1 compared to imatinib (blue).]]&lt;br /&gt;
&lt;br /&gt;
== create AUC plot of ligands and decoys ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure that you are using a version of python that has matplotlib/numpy/scipy modules:&lt;br /&gt;
&lt;br /&gt;
For Shoichet user source the following:&lt;br /&gt;
  source /nfs/soft/python/envs/complete/latest/env.sh&lt;br /&gt;
or&lt;br /&gt;
  source /nfs/soft/python/envs/complete/latest/env.csh&lt;br /&gt;
Also, if you are running the processing script remotely make sure to use X11 forwarding by including a -X in the ssh command.&lt;br /&gt;
eg:&lt;br /&gt;
  ssh gimel.ucsf.bkslab.org -X &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Write a file called 0005.AUCplot_of-lig-decoys.csh.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/csh&lt;br /&gt;
 &lt;br /&gt;
 # This script creates a log adjusted AUC (ROC) plot with ligand vs decoy results&lt;br /&gt;
 # need X11 forwarding enabled when running remotely (ssh sgehead -X). &lt;br /&gt;
 &lt;br /&gt;
 set filedir = &amp;quot;/mnt/nfs/home/rstein/RotationProject&amp;quot;            #CHANGE THIS&lt;br /&gt;
 set mountdir = &amp;quot;/mnt/nfs/home/rstein/RotationProject&amp;quot;           #CHANGE THIS&lt;br /&gt;
 set d37 =  $DOCKBASE/analysis&lt;br /&gt;
 set dude_dir = &amp;quot;/mnt/nfs/home/rstein/RotationProject/databases&amp;quot;         # should contain decoy.smi and ligands.smi&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # ln -s /mnt/nfs/work/users/fischer/VDR/lig-decoy-db/ligands.mod.smi /mnt/nfs/work/users/fischer/VDR/lig-decoy-db/ligands.smi&lt;br /&gt;
 &lt;br /&gt;
 # CHANGE THIS&lt;br /&gt;
 set list = &amp;quot;2HYY&amp;quot;&lt;br /&gt;
 #set list = `cat filename`&lt;br /&gt;
 #set list = `cat $1`&lt;br /&gt;
 &lt;br /&gt;
 foreach pdbname ( $list )&lt;br /&gt;
 &lt;br /&gt;
 set workdir = ${mountdir}/${pdbname}/ROC_ligdecoy/&lt;br /&gt;
 &lt;br /&gt;
 # This script will not work without the following line:&lt;br /&gt;
 echo &amp;quot;HERE is the HAWK&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # checks that previous script 0003 has produced mol2 files&lt;br /&gt;
 if (! ( -s $mountdir/${pdbname}/ligands-decoys/decoys/allChunksCombined/poses.mol2) &amp;amp;&amp;amp; ! (-s $mountdir/${pdbname}/ligands-decoys/ligands/allChunksCombined/poses.mol2 )) then&lt;br /&gt;
    ls -l $mountdir/${pdbname}/ligands-decoys/decoys/allChunksCombined/poses.mol2&lt;br /&gt;
    ls -l $mountdir/${pdbname}/ligands-decoys/ligands/allChunksCombined/poses.mol2&lt;br /&gt;
    echo &amp;quot;skipping ${pdbname}. cannot generate ROC&amp;quot;&lt;br /&gt;
    continue&lt;br /&gt;
 endif&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 rm -rf $workdir&lt;br /&gt;
 mkdir -p $workdir&lt;br /&gt;
 cd $workdir&lt;br /&gt;
 &lt;br /&gt;
 #wget http://dude.docking.org/targets/aa2ar/actives_final.ism&lt;br /&gt;
 &lt;br /&gt;
 # reads ZINC ids (ligand or decoy molecule names)&lt;br /&gt;
 # everything&lt;br /&gt;
 awk &#039;{print $2}&#039; $dude_dir/decoys.ism &amp;gt; decoys.name   # note that you may have to change the column ($2) based on where the SMILES codes are&lt;br /&gt;
 awk &#039;{printf &amp;quot;%9s\n&amp;quot;, $3}&#039; $dude_dir/ligands.ism &amp;gt; ligands.name # note that you may have to change the column ($3) based on where the SMILES codes are&lt;br /&gt;
 #things that finished docking&lt;br /&gt;
 awk &#039;{print $3}&#039; $mountdir/${pdbname}/ligands-decoys/decoys/allChunksCombined/extract_all.sort.uniq.txt &amp;gt; decoys.finished.name&lt;br /&gt;
 awk &#039;{print $3}&#039; $mountdir/${pdbname}/ligands-decoys/ligands/allChunksCombined/extract_all.sort.uniq.txt &amp;gt; ligands.finished.name&lt;br /&gt;
 &lt;br /&gt;
 cat ${mountdir}/${pdbname}/ligands-decoys/ligands/allChunksCombined/dirlist ${mountdir}/${pdbname}/ligands-decoys/decoys/allChunksCombined/dirlist &amp;gt; dirlist&lt;br /&gt;
 &lt;br /&gt;
 #which enrich.py&lt;br /&gt;
 set enrich_py = $d37/enrich.py&lt;br /&gt;
 set plots_py = $d37/plots.py&lt;br /&gt;
 &lt;br /&gt;
 pwd&lt;br /&gt;
 # calculates AUCs, stores in txt file which is then plotted for finished ligands and decoys&lt;br /&gt;
 python ${enrich_py} -i .  -o . --ligand-file=ligands.finished.name --decoy-file=decoys.finished.name&lt;br /&gt;
 python ${plots_py} -i . -o . --ligand-file=ligands.finished.name --decoy-file=decoys.finished.name -l $pdbname&lt;br /&gt;
 &lt;br /&gt;
 mv roc.txt     roc.finished.txt&lt;br /&gt;
 mv roc_own.txt roc_own.finished.txt&lt;br /&gt;
 mv roc_own.png roc_own.finished.png&lt;br /&gt;
 &lt;br /&gt;
 # &lt;br /&gt;
 # calculates AUCs, stores in txt file which is then plotted for all ligands and decoys&lt;br /&gt;
 # - i is the flag for the input directory, this dir should contain the extract_all.sort.uniq.txt.&lt;br /&gt;
 #  the scripts enrich_py and plots_py will go through the extract file and look for the ligand and decoy names.&lt;br /&gt;
 #  when it finds them it will populate the ROC cruve. these values are devied by the total number of ligand or decoys.&lt;br /&gt;
 #  note that often not all ligands and not all decoys finish so the point (1,1) is always included and interpolations is performed . . . &lt;br /&gt;
 #&lt;br /&gt;
 #python ${enrich_py} -i $mountdir/${pdbname}/ligands-decoys/dockedLigDecoyCombined/ -o . --ligand-file=ligands.name --decoy-file=decoys.name &lt;br /&gt;
 #python ${plots_py} -i $mountdir/${pdbname}/ligands-decoys/dockedLigDecoyCombined/ -o . --ligand-file=ligands.name --decoy-file=decoys.name -l $pdbname &lt;br /&gt;
 python ${enrich_py} -i . -o . --ligand-file=ligands.name --decoy-file=decoys.name&lt;br /&gt;
 python ${plots_py} -i . -o . --ligand-file=ligands.name --decoy-file=decoys.name -l $pdbname &lt;br /&gt;
 &lt;br /&gt;
 end   #pbdname&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The ROC plot for ligands and decoys docking to Abl1 looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:AblROCplot.png|thumb|center|375px|The ROC plot generated for the ligands and decoys.]]&lt;br /&gt;
&lt;br /&gt;
This shows poor enrichment, though it is better than random (indicated by the dotted line). This is to be expected as docking to kinases is notoriously difficult. Two changes to our procedure would be to delete some of the spheres to focus docking on a particular region of the protein we are most interested in, as well as increasing the polarity of the hinge region of Abl1 to allow for more hydrogen bonding.&lt;br /&gt;
&lt;br /&gt;
== improving docking ==&lt;br /&gt;
===Modify matching spheres===&lt;br /&gt;
The docking could be potentially improved by modifying the spheres and orienting the ligands/decoys to only those spheres within the hinge region of Abl1. The following image show modified spheres:&lt;br /&gt;
&lt;br /&gt;
[[File:modspheres.png|thumb|center|375px|Modified spheres to improve docking.]]&lt;br /&gt;
&lt;br /&gt;
To modify spheres: first, convert them to pdb format; then, visualize them in your favorite program (pymol, chimera, etc.); then, delete, move, or add atoms to this file; and finally convert it back to the sph format.  &lt;br /&gt;
&lt;br /&gt;
As discussed above [[http://wiki.bkslab.org/index.php/DOCK_3.7_2015/04/15_abl1_Tutorial#Visualize_the_docking_spheres]], you may use doshowsph.csh to convert the spheres to pdb format. &lt;br /&gt;
&lt;br /&gt;
Here is the program that will convert a pdb file into a sphere file (this program take 2 inputs: name of pdbfile to convert and the name of the sphere file that you want to create.). &lt;br /&gt;
 $DOCKBASE/proteins/pdbtosph/bin/pdbtosph&lt;br /&gt;
&lt;br /&gt;
for example: &lt;br /&gt;
 $DOCKBASE/proteins/pdbtosph/bin/pdbtosph matching_spheres_mod.pdb matching_spheres_mod.sph&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 0003.lig-decoy_enrichment.csh would be modified to include this line and renamed to 0003.lig-decoy_enrichment_mod_sph.csh:&lt;br /&gt;
&lt;br /&gt;
 !/bin/csh&lt;br /&gt;
 &lt;br /&gt;
 #This script docks a DUD-e like ligand-decoy-database to evaluate the enrichment performance of actives over decoys&lt;br /&gt;
 #It assumes that ligands and decoys have been pre-prepation (see script blablabla_ToDo) which needs to be run in SF.&lt;br /&gt;
 &lt;br /&gt;
 # filedir is where your rec.pdb and xtal-lig.pdb and dockfiles directory live &lt;br /&gt;
 set filedir = &amp;quot;/mnt/nfs/home/rstein/RotationProject&amp;quot;    #CHANGE THIS&lt;br /&gt;
 # this is where the work is done:&lt;br /&gt;
 set mountdir = $filedir                         # Might CHANGE THIS&lt;br /&gt;
 set dude_dir = &amp;quot;/mnt/nfs/home/rstein/RotationProject/databases&amp;quot;  # should contain decoy.smi and ligand.smi for ROC script 00005...csh&lt;br /&gt;
   ## TO DO - rename this outside in the dir structure and call in blbalbalbabla script&lt;br /&gt;
 if (-s $dude_dir) then&lt;br /&gt;
   echo &amp;quot; $dude_dir exist&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   # this is something to modified in future. &lt;br /&gt;
   # probably better to exit if it is not there.&lt;br /&gt;
   echo &amp;quot;databases do not exist. &amp;quot;&lt;br /&gt;
   echo &amp;quot;consider making a symbolic link to the database files&amp;quot;&lt;br /&gt;
   #echo &amp;quot;making a symbolic link:&amp;quot;&lt;br /&gt;
 #echo &amp;quot;ln -s /mnt/nfs/work/users/fischer/VDR/27Jan2014_learningDOCKrgc/databases_all_xtal-ligand_decoy $dude_dir&amp;quot;&lt;br /&gt;
   #ln -s /mnt/nfs/work/users/fischer/VDR/27Jan2014_learningDOCKrgc/databases_all_xtal-ligand_decoy $dude_dir&lt;br /&gt;
 endif&lt;br /&gt;
 &lt;br /&gt;
 # change if you want to use a different or consistent dock version&lt;br /&gt;
 set dock = ${DOCKBASE}/docking/DOCK/bin/dock64&lt;br /&gt;
 &lt;br /&gt;
 set list = &amp;quot;2HYY&amp;quot;&lt;br /&gt;
 #set list = `cat $1`&lt;br /&gt;
 #set list = `cat file`&lt;br /&gt;
                                 # CHANGE THIS (pdbname)&lt;br /&gt;
 foreach pdbname ( $list )&lt;br /&gt;
 &lt;br /&gt;
 # creates &amp;quot;ligands&amp;quot; and &amp;quot;decoys&amp;quot; and has the aim to dock all of the subsets for those two&lt;br /&gt;
 foreach db_type ( &amp;quot;ligands&amp;quot; &amp;quot;decoys&amp;quot; )&lt;br /&gt;
 set workdir1 = &amp;quot;${mountdir}/${pdbname}/ligands-decoys_sphmod/${db_type}&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p  ${workdir1}&lt;br /&gt;
 cd  ${workdir1}&lt;br /&gt;
 # puts dockfiles in the right relative-path that INDOCK file expects&lt;br /&gt;
 ln -s $filedir/${pdbname}/dockfiles .&lt;br /&gt;
 &lt;br /&gt;
 set count = &#039;1&#039;&lt;br /&gt;
 &lt;br /&gt;
 # loop over database files to put each into a seperate chunk&lt;br /&gt;
 foreach dbfile (`ls $dude_dir/${db_type}/${db_type}*.db2.gz`)&lt;br /&gt;
 &lt;br /&gt;
 echo $dbfile&lt;br /&gt;
 &lt;br /&gt;
 set chunk = &amp;quot;chunk$count&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 set workdir2 = ${workdir1}/$chunk&lt;br /&gt;
 ## so you don&#039;t blow away stuff&lt;br /&gt;
 if ( -s $workdir2 ) then&lt;br /&gt;
    echo &amp;quot;$workdir2 exits&amp;quot;&lt;br /&gt;
    continue&lt;br /&gt;
 endif&lt;br /&gt;
 &lt;br /&gt;
 #rm -rf ${workdir}&lt;br /&gt;
 mkdir -p ${workdir2}&lt;br /&gt;
 cd ${workdir2}&lt;br /&gt;
 &lt;br /&gt;
 # copy INDOCK file of choice in right location&lt;br /&gt;
 #cp $filedir/zzz.dock3_input/INDOCK . &lt;br /&gt;
 #cp $filedir/INDOCK_match20K INDOCK&lt;br /&gt;
 #cp $filedir/INDOCK_5k_TolerantClash INDOCK     # CHANGE THIS&lt;br /&gt;
 cp $filedir/${pdbname}/INDOCK .&lt;br /&gt;
 # modified the dock file using sed. here we change some key sampling parameters; sed -i changes input file internally (overwrites), -e changes file externally (pipes it to screen or into file if redirected)&lt;br /&gt;
 #sed -i &amp;quot;s/bump_maximum                  50.0/bump_maximum                  500.0/g&amp;quot; INDOCK &lt;br /&gt;
 #sed -i &amp;quot;s/bump_rigid                    50.0/bump_rigid                    500.0/g&amp;quot; INDOCK &lt;br /&gt;
 #sed -i &amp;quot;s/check_clashes                 yes/check_clashes                 no/g&amp;quot; INDOCK &lt;br /&gt;
 sed -i &amp;quot;s/receptor_sphere_file          ..\/dockfiles\/matching_spheres.sph/receptor_sphere_file          ..\/..\/..\/working\/matching_spheres_mod.sph/g&amp;quot; INDOCK&lt;br /&gt;
 &lt;br /&gt;
 ln -s $dbfile .&lt;br /&gt;
 &lt;br /&gt;
 set dbf = `ls *.gz`&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;./$dbf&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # says what to dock and where it sits&lt;br /&gt;
 echo &amp;quot;./$dbf&amp;quot; &amp;gt; split_database_index\&lt;br /&gt;
 # writes submission script that runs dock on the sgehead queue&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt; DOCKING_${db_type}.csh&lt;br /&gt;
 #\$ -S /bin/csh&lt;br /&gt;
 #\$ -cwd&lt;br /&gt;
 #\$ -q all.q&lt;br /&gt;
 #\$ -o stdout&lt;br /&gt;
 #\$ -e stderr&lt;br /&gt;
 &lt;br /&gt;
 cd ${workdir2}&lt;br /&gt;
 echo &amp;quot;starting . . .&amp;quot;&lt;br /&gt;
 date&lt;br /&gt;
 echo $dock &lt;br /&gt;
 $dock&lt;br /&gt;
 date&lt;br /&gt;
 echo &amp;quot;finished . . .&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 EOF&lt;br /&gt;
 qsub DOCKING_${db_type}.csh&lt;br /&gt;
 # alternatively if you don&#039;t want to run it on the queue but locally comment in this instead:&lt;br /&gt;
 #csh DOCKING_${lig_type}.csh &amp;amp;&lt;br /&gt;
 &lt;br /&gt;
 @ count = ${count} + 1&lt;br /&gt;
 # counter is chuch dir&lt;br /&gt;
 &lt;br /&gt;
 end # dbfile&lt;br /&gt;
 end # db_type&lt;br /&gt;
 end # pdbname&lt;br /&gt;
&lt;br /&gt;
=== make the hing region more polar ===&lt;br /&gt;
see the following page:&lt;br /&gt;
[[DOCK_3.7_tart]]&lt;br /&gt;
&lt;br /&gt;
==Virtual Screening==&lt;br /&gt;
&lt;br /&gt;
===database setup===&lt;br /&gt;
&lt;br /&gt;
This part of the tutorial is tailored for shoichet lab use.  An outside user of dock might need to deviate from what is described. &lt;br /&gt;
&lt;br /&gt;
Go to zinc and select your compounds of interested:&lt;br /&gt;
 &#039;[http://zinc15.docking.org/tranches/home http://zinc15.docking.org/tranches/home]&#039;&lt;br /&gt;
&lt;br /&gt;
This is the tranches page which allows users to select the region of chemical space of interest.&lt;br /&gt;
&lt;br /&gt;
lets select the fragment preset.&lt;br /&gt;
&lt;br /&gt;
on lets download the index file.  This file contains the location of each database on our cluster.  outside users will need to download the databases themselves.    &lt;br /&gt;
&lt;br /&gt;
now lets setup the directorys for docking by running the following script: &lt;br /&gt;
&lt;br /&gt;
 python /nfs/home/tbalius/zzz.github/DOCK/docking/setup/setup_db2_zinc15_file_number.py ./ vs_frag /nfs/work/tbalius/database_ph4/frags.txt 500  count&lt;br /&gt;
&lt;br /&gt;
The file /nfs/work/tbalius/database_ph4/frags.txt should be changed to that you downloaded from ZINC.  &lt;br /&gt;
&lt;br /&gt;
The above script has 5 parameters: &lt;br /&gt;
:(1) path where directories will be located (present directory); &lt;br /&gt;
:(2) prefix name of the directories; &lt;br /&gt;
:(3) the file that contains the db2 files locations; &lt;br /&gt;
:(4) the number of directories to be created; and &lt;br /&gt;
:(5) the type of run: count (evenly distributes the db2 file among the dirs, this is much faster than the other options), size (It will try and make the directory of equal size), or both (will try and satisfy both criteria).  &lt;br /&gt;
&lt;br /&gt;
Note that this script is avable in later beta versons of DOCK3.7.&lt;br /&gt;
&lt;br /&gt;
===submitting the docking calculations===&lt;br /&gt;
&lt;br /&gt;
This script will submit a job to the queue for each of the docking directorys created by the setup script.&lt;br /&gt;
&lt;br /&gt;
 $DOCKBASE/docking/submit/submit.csh&lt;br /&gt;
&lt;br /&gt;
DOCK3.7 is a serial program and is parallelized by submiting many serial jobs to the queue.&lt;br /&gt;
&lt;br /&gt;
===combining the results===&lt;br /&gt;
&lt;br /&gt;
After your docking jobs have all completed, This script will combine all your results into an &#039;&#039;extract_all&#039;&#039; file. &lt;br /&gt;
  $DOCKBASE/analysis/extract_all.py&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is to make sure the energy cutoff when running &#039;&#039;extract_all.py&#039;&#039; is less than the energy cutoff for writing to the mol2 file during docking (the &#039;&#039;mol2_score_maximum&#039;&#039; parameter).&lt;br /&gt;
&lt;br /&gt;
for example, if &#039;&#039;mol2_score_maximum = -10&#039;&#039;  (this is the default value)&lt;br /&gt;
&lt;br /&gt;
then run:&lt;br /&gt;
&lt;br /&gt;
  $DOCKBASE/analysis/extract_all.py -s -10&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
  $DOCKBASE/analysis/extract_all_blazing_fast.py dirlist extact_all.txt -10&lt;br /&gt;
&lt;br /&gt;
Otherwise you may get an error. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This script will create a mol2 file with the top scoring molecules: &lt;br /&gt;
  $DOCKBASE/analysis/getposes.py&lt;br /&gt;
&lt;br /&gt;
=== curating and hit-picking ===&lt;br /&gt;
&lt;br /&gt;
Typically we will visualize the ligands in UCSF Chimera using the [[ViewDock]] tool (using the DOCK4, 5, or 6 format).&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12394</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12394"/>
		<updated>2020-03-30T15:20:14Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing output poses from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock requires a fair amount of clicking and mouse movement. To reduce these you can use this [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators script], mostly written by Tom Goddard ([http://plato.cgl.ucsf.edu/pipermail/chimera-users/2020-March/016642.html Chimera user list discussion]):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def register_accelerators():                                                     &lt;br /&gt;
                                                                                 &lt;br /&gt;
  from Accelerators import standard_accelerators                                 &lt;br /&gt;
  standard_accelerators.register_accelerators()                                  &lt;br /&gt;
                                                                                 &lt;br /&gt;
  from Accelerators import add_accelerator                                       &lt;br /&gt;
  add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete) &lt;br /&gt;
  add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged)  &lt;br /&gt;
  add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable)  &lt;br /&gt;
  add_accelerator(&#039;cn&#039;, &#039;Move to next View Dock compound&#039;, vdock_next)           &lt;br /&gt;
  add_accelerator(&#039;cp&#039;, &#039;Move to next View Dock compound&#039;, vdock_previous)       &lt;br /&gt;
  add_accelerator(&#039;ct&#039;, &#039;Print ViewDock totals to Reply Log&#039;, vdock_totals)                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_delete():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Deleted)                                            &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_purged():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Purged)                                             &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_viable():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Viable)                                             &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_set_state(state):                                                      &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        vd.results.setSelectedState(state)                                       &lt;br /&gt;
        vd._reloadCompounds()                                                    &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_next():                                                                &lt;br /&gt;
    vdock_step(1)                                                                &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_previous():                                                            &lt;br /&gt;
    vdock_step(-1)                                                               &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_step(step):                                                            &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        r = vd.results                                                           &lt;br /&gt;
        csel = r.selected                                                        &lt;br /&gt;
        if csel:                                                                 &lt;br /&gt;
          c = csel[0]                                                            &lt;br /&gt;
          clist = r.compoundList                                                 &lt;br /&gt;
          i = clist.index(c)                                                     &lt;br /&gt;
          if i+step &amp;lt; len(clist) and i+step &amp;gt;= 0:                                &lt;br /&gt;
            nextc = clist[i+step]                                                &lt;br /&gt;
            vd.results.setSelected([nextc])                                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_totals():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    print &amp;quot;Counting ViewDock molecules&amp;quot;                                          &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        r = vd.results                                                           &lt;br /&gt;
        clist = r.compoundList                                                   &lt;br /&gt;
        if clist:                                                                &lt;br /&gt;
            n_total   = 0                                                        &lt;br /&gt;
            n_viable  = 0                                                        &lt;br /&gt;
            n_deleted = 0                                                        &lt;br /&gt;
            n_purged  = 0                                                        &lt;br /&gt;
            for c in clist:                                                      &lt;br /&gt;
                n_total += 1                                                     &lt;br /&gt;
                if c.state == Compound.Viable:                                   &lt;br /&gt;
                    n_viable  += 1                                               &lt;br /&gt;
                elif c.state == Compound.Deleted:                                &lt;br /&gt;
                    n_deleted += 1                                               &lt;br /&gt;
                elif c.state == Compound.Purged:                                 &lt;br /&gt;
                    n_purged  += 1                                               &lt;br /&gt;
        print n_total, &amp;quot;total compounds.&amp;quot;                                        &lt;br /&gt;
        print n_viable, &amp;quot;viable compounds.&amp;quot;                                      &lt;br /&gt;
        print n_deleted, &amp;quot;deleted compounds.&amp;quot;                                    &lt;br /&gt;
        print n_purged, &amp;quot;purged compounds.&amp;quot;                                      &lt;br /&gt;
        print &amp;quot;Keep at it!&amp;quot;                                                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_dialog():                                                              &lt;br /&gt;
    from ViewDock import ViewDock                                                &lt;br /&gt;
    from chimera import extension                                                &lt;br /&gt;
    for vd in extension.manager.instances:                                       &lt;br /&gt;
        if isinstance(vd, ViewDock):                                             &lt;br /&gt;
            return vd                                                            &lt;br /&gt;
    return None &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
Accelerators &amp;quot;cv&amp;quot; (Viable), &amp;quot;cd&amp;quot; (Delete), &amp;quot;cx&amp;quot; (Purge), work like clicking the radio buttons in the ViewDock dialog box - they change the status of the selected compound. Accelerators &amp;quot;cn&amp;quot; and &amp;quot;cp&amp;quot; move forward or back one compound. &amp;quot;ct&amp;quot; counts the compounds with each status, the output is shown in the Chimera &amp;quot;Reply Log&amp;quot; (Tools &amp;gt; Utilities &amp;gt; Reply Log).&lt;br /&gt;
&lt;br /&gt;
== ChimeraX/ViewDockX ==&lt;br /&gt;
&lt;br /&gt;
There is an equivalent tool [https://www.cgl.ucsf.edu/chimerax/docs/user/tools/viewdockx.html ViewDockX] in the next generation visualisation tool [https://www.cgl.ucsf.edu/chimerax/ ChimeraX].&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12393</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12393"/>
		<updated>2020-03-30T15:19:18Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing output poses from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock requires a fair amount of clicking and mouse movement. To reduce these you can use this [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators script], mostly written by Tom Goddard ([http://plato.cgl.ucsf.edu/pipermail/chimera-users/2020-March/016642.html Chimera user list discussion]):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def register_accelerators():                                                     &lt;br /&gt;
                                                                                 &lt;br /&gt;
  from Accelerators import standard_accelerators                                 &lt;br /&gt;
  standard_accelerators.register_accelerators()                                  &lt;br /&gt;
                                                                                 &lt;br /&gt;
  from Accelerators import add_accelerator                                       &lt;br /&gt;
  add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete) &lt;br /&gt;
  add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged)  &lt;br /&gt;
  add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable)  &lt;br /&gt;
  add_accelerator(&#039;cn&#039;, &#039;Move to next View Dock compound&#039;, vdock_next)           &lt;br /&gt;
  add_accelerator(&#039;cp&#039;, &#039;Move to next View Dock compound&#039;, vdock_previous)       &lt;br /&gt;
  add_accelerator(&#039;ct&#039;, &#039;Print vdock totals&#039;, vdock_totals)                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_delete():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Deleted)                                            &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_purged():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Purged)                                             &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_viable():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Viable)                                             &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_set_state(state):                                                      &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        vd.results.setSelectedState(state)                                       &lt;br /&gt;
        vd._reloadCompounds()                                                    &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_next():                                                                &lt;br /&gt;
    vdock_step(1)                                                                &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_previous():                                                            &lt;br /&gt;
    vdock_step(-1)                                                               &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_step(step):                                                            &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        r = vd.results                                                           &lt;br /&gt;
        csel = r.selected                                                        &lt;br /&gt;
        if csel:                                                                 &lt;br /&gt;
          c = csel[0]                                                            &lt;br /&gt;
          clist = r.compoundList                                                 &lt;br /&gt;
          i = clist.index(c)                                                     &lt;br /&gt;
          if i+step &amp;lt; len(clist) and i+step &amp;gt;= 0:                                &lt;br /&gt;
            nextc = clist[i+step]                                                &lt;br /&gt;
            vd.results.setSelected([nextc])                                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_totals():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    print &amp;quot;Counting ViewDock molecules&amp;quot;                                          &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        r = vd.results                                                           &lt;br /&gt;
        clist = r.compoundList                                                   &lt;br /&gt;
        if clist:                                                                &lt;br /&gt;
            n_total   = 0                                                        &lt;br /&gt;
            n_viable  = 0                                                        &lt;br /&gt;
            n_deleted = 0                                                        &lt;br /&gt;
            n_purged  = 0                                                        &lt;br /&gt;
            for c in clist:                                                      &lt;br /&gt;
                n_total += 1                                                     &lt;br /&gt;
                if c.state == Compound.Viable:                                   &lt;br /&gt;
                    n_viable  += 1                                               &lt;br /&gt;
                elif c.state == Compound.Deleted:                                &lt;br /&gt;
                    n_deleted += 1                                               &lt;br /&gt;
                elif c.state == Compound.Purged:                                 &lt;br /&gt;
                    n_purged  += 1                                               &lt;br /&gt;
        print n_total, &amp;quot;total compounds.&amp;quot;                                        &lt;br /&gt;
        print n_viable, &amp;quot;viable compounds.&amp;quot;                                      &lt;br /&gt;
        print n_deleted, &amp;quot;deleted compounds.&amp;quot;                                    &lt;br /&gt;
        print n_purged, &amp;quot;purged compounds.&amp;quot;                                      &lt;br /&gt;
        print &amp;quot;Keep at it!&amp;quot;                                                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_dialog():                                                              &lt;br /&gt;
    from ViewDock import ViewDock                                                &lt;br /&gt;
    from chimera import extension                                                &lt;br /&gt;
    for vd in extension.manager.instances:                                       &lt;br /&gt;
        if isinstance(vd, ViewDock):                                             &lt;br /&gt;
            return vd                                                            &lt;br /&gt;
    return None &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
Accelerators &amp;quot;cv&amp;quot; (Viable), &amp;quot;cd&amp;quot; (Delete), &amp;quot;cx&amp;quot; (Purge), work like clicking the radio buttons in the ViewDock dialog box - they change the status of the selected compound. Accelerators &amp;quot;cn&amp;quot; and &amp;quot;cp&amp;quot; move forward or back one compound. &amp;quot;ct&amp;quot; counts the compounds with each status, the output is shown in the Chimera &amp;quot;Reply Log&amp;quot; (Tools &amp;gt; Utilities &amp;gt; Reply Log).&lt;br /&gt;
&lt;br /&gt;
== ChimeraX/ViewDockX ==&lt;br /&gt;
&lt;br /&gt;
There is an equivalent tool [https://www.cgl.ucsf.edu/chimerax/docs/user/tools/viewdockx.html ViewDockX] in the next generation visualisation tool [https://www.cgl.ucsf.edu/chimerax/ ChimeraX].&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12392</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12392"/>
		<updated>2020-03-30T15:18:11Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: /* Keyboard shortcuts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing outputs from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock requires a fair amount of clicking and mouse movement. To reduce these you can use this [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators script], mostly written by Tom Goddard ([http://plato.cgl.ucsf.edu/pipermail/chimera-users/2020-March/016642.html Chimera user list discussion]):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def register_accelerators():                                                     &lt;br /&gt;
                                                                                 &lt;br /&gt;
  from Accelerators import standard_accelerators                                 &lt;br /&gt;
  standard_accelerators.register_accelerators()                                  &lt;br /&gt;
                                                                                 &lt;br /&gt;
  from Accelerators import add_accelerator                                       &lt;br /&gt;
  add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete) &lt;br /&gt;
  add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged)  &lt;br /&gt;
  add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable)  &lt;br /&gt;
  add_accelerator(&#039;cn&#039;, &#039;Move to next View Dock compound&#039;, vdock_next)           &lt;br /&gt;
  add_accelerator(&#039;cp&#039;, &#039;Move to next View Dock compound&#039;, vdock_previous)       &lt;br /&gt;
  add_accelerator(&#039;ct&#039;, &#039;Print vdock totals&#039;, vdock_totals)                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_delete():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Deleted)                                            &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_purged():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Purged)                                             &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_viable():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    vdock_set_state(Compound.Viable)                                             &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_set_state(state):                                                      &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        vd.results.setSelectedState(state)                                       &lt;br /&gt;
        vd._reloadCompounds()                                                    &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_next():                                                                &lt;br /&gt;
    vdock_step(1)                                                                &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_previous():                                                            &lt;br /&gt;
    vdock_step(-1)                                                               &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_step(step):                                                            &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        r = vd.results                                                           &lt;br /&gt;
        csel = r.selected                                                        &lt;br /&gt;
        if csel:                                                                 &lt;br /&gt;
          c = csel[0]                                                            &lt;br /&gt;
          clist = r.compoundList                                                 &lt;br /&gt;
          i = clist.index(c)                                                     &lt;br /&gt;
          if i+step &amp;lt; len(clist) and i+step &amp;gt;= 0:                                &lt;br /&gt;
            nextc = clist[i+step]                                                &lt;br /&gt;
            vd.results.setSelected([nextc])                                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_totals():                                                              &lt;br /&gt;
    from ViewDock.Compound import Compound                                       &lt;br /&gt;
    print &amp;quot;Counting ViewDock molecules&amp;quot;                                          &lt;br /&gt;
    vd = vdock_dialog()                                                          &lt;br /&gt;
    if vd:                                                                       &lt;br /&gt;
        r = vd.results                                                           &lt;br /&gt;
        clist = r.compoundList                                                   &lt;br /&gt;
        if clist:                                                                &lt;br /&gt;
            n_total   = 0                                                        &lt;br /&gt;
            n_viable  = 0                                                        &lt;br /&gt;
            n_deleted = 0                                                        &lt;br /&gt;
            n_purged  = 0                                                        &lt;br /&gt;
            for c in clist:                                                      &lt;br /&gt;
                n_total += 1                                                     &lt;br /&gt;
                if c.state == Compound.Viable:                                   &lt;br /&gt;
                    n_viable  += 1                                               &lt;br /&gt;
                elif c.state == Compound.Deleted:                                &lt;br /&gt;
                    n_deleted += 1                                               &lt;br /&gt;
                elif c.state == Compound.Purged:                                 &lt;br /&gt;
                    n_purged  += 1                                               &lt;br /&gt;
        print n_total, &amp;quot;total compounds.&amp;quot;                                        &lt;br /&gt;
        print n_viable, &amp;quot;viable compounds.&amp;quot;                                      &lt;br /&gt;
        print n_deleted, &amp;quot;deleted compounds.&amp;quot;                                    &lt;br /&gt;
        print n_purged, &amp;quot;purged compounds.&amp;quot;                                      &lt;br /&gt;
        print &amp;quot;Keep at it!&amp;quot;                                                      &lt;br /&gt;
                                                                                 &lt;br /&gt;
def vdock_dialog():                                                              &lt;br /&gt;
    from ViewDock import ViewDock                                                &lt;br /&gt;
    from chimera import extension                                                &lt;br /&gt;
    for vd in extension.manager.instances:                                       &lt;br /&gt;
        if isinstance(vd, ViewDock):                                             &lt;br /&gt;
            return vd                                                            &lt;br /&gt;
    return None &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
Accelerators &amp;quot;cv&amp;quot; (Viable), &amp;quot;cd&amp;quot; (Delete), &amp;quot;cx&amp;quot; (Purge), work like clicking the radio buttons in the ViewDock dialog box - they change the status of the selected compound. Accelerators &amp;quot;cn&amp;quot; and &amp;quot;cp&amp;quot; move forward or back one compound. &amp;quot;ct&amp;quot; counts the compounds with each status, the output is shown in the Chimera &amp;quot;Reply Log&amp;quot; (Tools &amp;gt; Utilities &amp;gt; Reply Log).&lt;br /&gt;
&lt;br /&gt;
== ChimeraX/ViewDockX ==&lt;br /&gt;
&lt;br /&gt;
There is an equivalent tool [https://www.cgl.ucsf.edu/chimerax/docs/user/tools/viewdockx.html ViewDockX] in the next generation visualisation tool [https://www.cgl.ucsf.edu/chimerax/ ChimeraX].&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=DOCK_3.7&amp;diff=12391</id>
		<title>DOCK 3.7</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=DOCK_3.7&amp;diff=12391"/>
		<updated>2020-03-30T14:35:58Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: /* Analysis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About = &lt;br /&gt;
&lt;br /&gt;
DOCK 3.7 the current version in the [[DOCK 3]] series of docking programs developed and used by the [[Shoichet Lab]]. Please read and cite the DOCK 3.7 paper&lt;br /&gt;
[http://www.plosone.org/article/info:doi/10.1371/journal.pone.0075992 Coleman, Carchia, Sterling, Irwin &amp;amp; Shoichet, PLOS ONE 2013.]&lt;br /&gt;
&lt;br /&gt;
DOCK 3.7 is written in Fortran and some C. It is an update of [[DOCK 3.6]] with many improved features. DOCK 3.7 comes with all the tools necessary to prepare a &lt;br /&gt;
protein for docking and some tools necessary to build ligands, though some tools must be obtained externally. It uses new Flexibase/DB2 files found in [[ZINC15]]. It includes tools to prepare receptors, and several auxiliary scripts.&lt;br /&gt;
&lt;br /&gt;
DOCK 3.7 is available at  [http://dock.compbio.ucsf.edu/DOCK3.7/ http://dock.compbio.ucsf.edu/DOCK3.7/].&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
= Start here =&lt;br /&gt;
* [[So you want to set up a lab]] - only if you don&#039;t already have hardware ready.&lt;br /&gt;
* [[Install DOCK 3.7]]&lt;br /&gt;
* [[DOCK 3.7 2014/09/25 FXa Tutorial]]&lt;br /&gt;
* [[DOCK 3.7 2015/04/15 abl1 Tutorial]] superseded&lt;br /&gt;
* [[DOCK 3.7 2018/06/05 abl1 Tutorial]]&lt;br /&gt;
* [[DOCK 3.7 2016/09/16 Tutorial for Enrichment Calculations (Trent &amp;amp;  Jiankun)]]&lt;br /&gt;
* [[DOCK 3.7 tutorial (Anat)]]&lt;br /&gt;
* [[DOCK 3.7 with GIST tutorials]]&lt;br /&gt;
* [[DOCK 3.7 tutorial based on Webinar 2017/06/28]]&lt;br /&gt;
* [[Getting started with DOCK 3.7]]&lt;br /&gt;
* [[Blastermaster]] - Prepare input for and then run [[DOCK 3.7]].&lt;br /&gt;
* [[Ligand preparation 3.7]] - Create dockable databases for [[DOCK 3.7]].&lt;br /&gt;
* [[Ligand preparation]] - different version. &lt;br /&gt;
* [[Ligand prep Irwin Nov 2016]] - John&#039;s current version&lt;br /&gt;
* [[Mol2db2 Format 2]] - details on the database formate.&lt;br /&gt;
* [[Running docking 3.7]] - how to actually run docking.&lt;br /&gt;
* [[DOCK 3.7 Development]] - for software developers&lt;br /&gt;
* [[prepare a receptor with a cofactor for docking]]&lt;br /&gt;
=== For DOCKovalent, start here ===&lt;br /&gt;
* [[DOCKovalent_3.7]]&lt;br /&gt;
* [[DOCKovalent lysine inhibitor design tutorial]]&lt;br /&gt;
* [[DOCKovalent cysteine inhibitor design tutorial]]&lt;br /&gt;
&lt;br /&gt;
= Prepare Receptor = &lt;br /&gt;
* [[Protein Target Preparation]]&lt;br /&gt;
* [[Protein Target Preparation Updated]]&lt;br /&gt;
* [[Using_thin_spheres_in_DOCK3.7]]&lt;br /&gt;
* [[Adding Static Waters to the Protein Structure]]&lt;br /&gt;
* [[Flexible Docking]]&lt;br /&gt;
* [[Visualize docking grids]]&lt;br /&gt;
* [[Minimize protein-ligand complex with AMBER]]&lt;br /&gt;
* [[Minimize protein-covalent ligand complex with AMBER]]&lt;br /&gt;
&lt;br /&gt;
= Prepare Screening Library =&lt;br /&gt;
* [[mol2db2]] is the program that creates [[mol2db2 format]] database files which are read by [[DOCK 3.7]]&lt;br /&gt;
* [[ligand preparation 3.7]]&lt;br /&gt;
* [[generating decoys (Reed&#039;s way)]]&lt;br /&gt;
* [[generating extrema set]]&lt;br /&gt;
&lt;br /&gt;
= Running Docking =&lt;br /&gt;
* [[Running docking 3.7]] - JJI currently working on this.&lt;br /&gt;
* [[Running DOCK 3.7]] - this seems to be slightly dated.&lt;br /&gt;
* [[INDOCK 3.7]] - file format used by [[DOCK 3.7]]&lt;br /&gt;
* [[DOCK3.7_INDOCK_Minimization_Parameter]] - How to run DOCK 3.7.1rc1 (and latter versions) with the minimization.&lt;br /&gt;
* Interpreting the [[OUTDOCK 3.7]] file.&lt;br /&gt;
&lt;br /&gt;
= Analysis =&lt;br /&gt;
* [[Analyzing DOCK Results]]&lt;br /&gt;
* [http://autodude.docking.org/ Auto-DUD-E Test Set] (external site) &lt;br /&gt;
* [[Other Useful Stuff]]&lt;br /&gt;
* [[Bootstrap AUC]]&lt;br /&gt;
* [[another get_poses.py]]&lt;br /&gt;
* [[Converting SMILES to Kekule Format]]&lt;br /&gt;
* Viewing results using [[ViewDock]]&lt;br /&gt;
&lt;br /&gt;
= Post Docking Clustering=&lt;br /&gt;
* [[How to process results from a large-scale docking]] &lt;br /&gt;
* [[Large-scale SMILES Requesting and Fingerprints Converting]]&lt;br /&gt;
* [[ECFP4 Best First Clustering]]&lt;br /&gt;
* [[Bemis-Murcko Scaffold Analysis]]&lt;br /&gt;
&lt;br /&gt;
= Post Docking Filters=&lt;br /&gt;
* [[Large-scale TC Calculations]]&lt;br /&gt;
* [[Whole Library TC to Knowns Calculations]]&lt;br /&gt;
* [[Filtering ligands for novelty]]&lt;br /&gt;
* [[Strain Filtering]]&lt;br /&gt;
* [[Interaction Filtering]]&lt;br /&gt;
&lt;br /&gt;
= Redocking with Enhanced Sampling =&lt;br /&gt;
*[[Sample Additional Ring Puckers ]]&lt;br /&gt;
= Rescoring =&lt;br /&gt;
*[[Rescoring_with_DOCK_3.7]]&lt;br /&gt;
&lt;br /&gt;
= Available Libraries = &lt;br /&gt;
* [[ZINC Subset DB2 file locations]]&lt;br /&gt;
* how to get db2 files from zinc15.docking.org&lt;br /&gt;
&lt;br /&gt;
= Analog by Catalog= &lt;br /&gt;
* [[Substructure searching]]&lt;br /&gt;
* [[TC analog searching in ZINC]]&lt;br /&gt;
&lt;br /&gt;
= Previous verisons and compatibility = &lt;br /&gt;
DOCK 3.7 is part of the [[DOCK 3]] series. It differs substantially from its immediate predecessor [[DOCK 3.6]],&lt;br /&gt;
which uses a different format of database files that cannot be read by [[DOCK 3.7]], and vice versa. &lt;br /&gt;
&lt;br /&gt;
= How to Cite = &lt;br /&gt;
To cite the DOCK 3.7 paper, please use&lt;br /&gt;
[http://www.plosone.org/article/info:doi/10.1371/journal.pone.0075992 Coleman, Carchia, Sterling, Irwin &amp;amp; Shoichet, PLOS ONE 2013.]&lt;br /&gt;
&lt;br /&gt;
= How to Download = &lt;br /&gt;
DOCK 3.7 is available at  [http://dock.compbio.ucsf.edu/DOCK3.7/ http://dock.compbio.ucsf.edu/DOCK3.7/].&lt;br /&gt;
&lt;br /&gt;
= Implementation = &lt;br /&gt;
DOCK 3.7 is written in Fortran and some C. Scripts are mostly in [[python]] and [[perl]].&lt;br /&gt;
&lt;br /&gt;
{{Template:CC-BY-SA-30}}&lt;br /&gt;
{{Template:Coleman}}&lt;br /&gt;
&lt;br /&gt;
[[Category:DOCK 3.7]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Freecom]]&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Analyzing_DOCK_Results&amp;diff=12390</id>
		<title>Analyzing DOCK Results</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Analyzing_DOCK_Results&amp;diff=12390"/>
		<updated>2020-03-30T14:34:58Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: add link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Analyzing [[DOCK 3.7]] results&lt;br /&gt;
&lt;br /&gt;
The dock37tools in $d37 contain various analysis programs. Once your jobs are done, you can run:&lt;br /&gt;
 $d37/extract_all.py&lt;br /&gt;
If your ran a prospective run, it can be advantageous to run extract_all.py and ignore bad poses with scores greater than -20.0 (adjust for your system), like this:&lt;br /&gt;
 $d37/extract_all.py -s -20.0&lt;br /&gt;
This may take awhile but it will pull all your results into a single file, etc. If you want to calculate enrichment, etc.:&lt;br /&gt;
 $d37/enrich.py -l ligand-file -d decoy-file &lt;br /&gt;
Where the ligand-file and decoy-file are single column files with the ligand and decoy IDs on individual lines. Plotting is also possible&lt;br /&gt;
 $d37/plots.py -i . -l label --ligand-file=ligand-file -d decoy-file &lt;br /&gt;
Common usage is to plot several different runs on a single plot like so:&lt;br /&gt;
 $d37/plots.py -i run1 -l label1 -i run2 -l label2 --ligand-file=ligand-file -d decoy-file &lt;br /&gt;
If you want to compare the scores from two runs, try:&lt;br /&gt;
 $d37/two_run_plot.py run1 run2&lt;br /&gt;
Of course, the plots must be run on a machine with the proper libraries installed, like sgehead.&lt;br /&gt;
&lt;br /&gt;
Another common use is to look at top poses in the [[ViewDock]] module of UCSF Chimera or with PyMOL. You can make a mol2 output file that can be read by these programs with the following command:&lt;br /&gt;
 $d37/getposes.py&lt;br /&gt;
The defaults on this script are to make a poses.mol2 file with the top 500 poses from the entire run, with a single pose per molecule ID. There are many options which can be seen with the &amp;quot;-h&amp;quot; flag. A more complex example is:&lt;br /&gt;
 $d37/getposes.py -z -l 1000 -x 2 -f ligands.txt -o ligands.1000.mol2&lt;br /&gt;
In order, the &#039;-z&#039; flag connects to ZINC for vendor information, the &amp;quot;-l 1000&amp;quot; flag only gets the first 1000 ligands in the file, &#039;-x 2&#039; gets the top 2 poses, the &#039;-f ligands.txt&#039; file designates the ligand file to use and &#039;-o ligands.1000.mol2&#039; designates the output filename.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re curious about the OUTDOCK file format, here is the header:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
mol# id_num flexiblecode matched nscored time hac setnum matnum rank cloud elect + vdW + psol + asol + inter + rec_e + rec_d + r_hyd = Total&lt;br /&gt;
mol# is just the number of the molecule, read in from the docking db2 files.&lt;br /&gt;
id_num is the ZINC code or other identifier for the molecule&lt;br /&gt;
flexiblecode is the combination of flexible receptor parts this molecule was docked to&lt;br /&gt;
matched is the number of matched orientations actually found by the matching algorithm&lt;br /&gt;
nscored is the number of atoms that were scored&lt;br /&gt;
time is the time in seconds for this molecule&lt;br /&gt;
hac is the heavy atom count for this ligand&lt;br /&gt;
setnum is the conformation number this ligand represents&lt;br /&gt;
matnum is the match number this ligand represents&lt;br /&gt;
rank is the rank of the score for this ligand within the ligand (if you want the top 10 poses, this number will increase from 1 to 10)&lt;br /&gt;
cloud is the cloud number, for an experimental matching scheme still under development&lt;br /&gt;
electrostatics is the electrostatics score&lt;br /&gt;
vdW is the van der Waals score (both attractive and repulsive together)&lt;br /&gt;
psol is the ligand polar desolvation&lt;br /&gt;
asol is the ligand apolar desolvation&lt;br /&gt;
inter is the internal energy&lt;br /&gt;
rec_e is the receptor energy (used in flexible docking)&lt;br /&gt;
rec_d is the receptor desolvation, not yet supported&lt;br /&gt;
r_hyd is the receptor hydrophobic effect, not yet supported&lt;br /&gt;
Total is the total score for this ligand pose&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:CC-BY-SA-30}}&lt;br /&gt;
{{Template:Coleman}}&lt;br /&gt;
[[Category:DOCK 3.7]]&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12389</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12389"/>
		<updated>2020-03-30T13:53:40Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: /* Keyboard shortcuts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing outputs from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock requires a fair amount of clicking and mouse movement. To reduce these you can use this [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators script], written by Tom Goddard ([http://plato.cgl.ucsf.edu/pipermail/chimera-users/2020-March/016642.html Chimera user list discussion]):&lt;br /&gt;
&lt;br /&gt;
 def register_accelerators():                                                       &lt;br /&gt;
                                                                                    &lt;br /&gt;
   from Accelerators import standard_accelerators                                   &lt;br /&gt;
   standard_accelerators.register_accelerators()                                    &lt;br /&gt;
                                                                                    &lt;br /&gt;
   from Accelerators import add_accelerator                                         &lt;br /&gt;
   add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete)&lt;br /&gt;
   add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged) &lt;br /&gt;
   add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable) &lt;br /&gt;
   add_accelerator(&#039;cn&#039;, &#039;Move to next View Dock compound&#039;, vdock_next)             &lt;br /&gt;
   add_accelerator(&#039;cp&#039;, &#039;Move to next View Dock compound&#039;, vdock_previous)         &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_delete():                                                                &lt;br /&gt;
     from ViewDock.Compound import Compound                                         &lt;br /&gt;
     vdock_set_state(Compound.Deleted)                                              &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_purged():                                                                &lt;br /&gt;
     from ViewDock.Compound import Compound                                         &lt;br /&gt;
     vdock_set_state(Compound.Purged)                                               &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_viable():                                                                &lt;br /&gt;
     from ViewDock.Compound import Compound                                         &lt;br /&gt;
     vdock_set_state(Compound.Viable)                                               &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_set_state(state):                                                        &lt;br /&gt;
     vd = vdock_dialog()                                                            &lt;br /&gt;
     if vd:                                                                         &lt;br /&gt;
         vd.results.setSelectedState(state)                                         &lt;br /&gt;
         vd._reloadCompounds()                                                      &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_next():                                                                  &lt;br /&gt;
     vdock_step(1)                                                                  &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_previous():                                                              &lt;br /&gt;
     vdock_step(-1)                                                                 &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_step(step):                                                              &lt;br /&gt;
     vd = vdock_dialog()                                                            &lt;br /&gt;
     if vd:                                                                         &lt;br /&gt;
         r = vd.results                                                             &lt;br /&gt;
         csel = r.selected                                                          &lt;br /&gt;
         if csel:                                                                   &lt;br /&gt;
           c = csel[0]                                                              &lt;br /&gt;
           clist = r.compoundList                                                   &lt;br /&gt;
           i = clist.index(c)                                                       &lt;br /&gt;
           if i+step &amp;lt; len(clist) and i+step &amp;gt;= 0:                                  &lt;br /&gt;
             nextc = clist[i+step]                                                  &lt;br /&gt;
             vd.results.setSelected([nextc])                                        &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_dialog():                                                                &lt;br /&gt;
     from ViewDock import ViewDock                                                  &lt;br /&gt;
     from chimera import extension                                                  &lt;br /&gt;
     for vd in extension.manager.instances:                                         &lt;br /&gt;
         if isinstance(vd, ViewDock):                                               &lt;br /&gt;
             return vd                                                              &lt;br /&gt;
     return None       &lt;br /&gt;
&lt;br /&gt;
To use, [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
Accelerators &amp;quot;cv&amp;quot; (Viable), &amp;quot;cd&amp;quot; (Delete), &amp;quot;cx&amp;quot; (Purge), work like clicking the radio buttons in the ViewDock dialog box - they change the status of the selected compound. Accelerators &amp;quot;cn&amp;quot; and &amp;quot;cp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== ChimeraX/ViewDockX ==&lt;br /&gt;
&lt;br /&gt;
There is an equivalent tool [https://www.cgl.ucsf.edu/chimerax/docs/user/tools/viewdockx.html ViewDockX] in the next generation visualisation tool [https://www.cgl.ucsf.edu/chimerax/ ChimeraX].&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12388</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12388"/>
		<updated>2020-03-30T13:51:28Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: updated code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing outputs from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock requires a fair amount of clicking and mouse movement. To reduce these you can use this [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators script], written by Tom Goddard ([http://plato.cgl.ucsf.edu/pipermail/chimera-users/2020-March/016642.html] Chimer user list discussion):&lt;br /&gt;
&lt;br /&gt;
 def register_accelerators():                                                       &lt;br /&gt;
                                                                                    &lt;br /&gt;
   from Accelerators import standard_accelerators                                   &lt;br /&gt;
   standard_accelerators.register_accelerators()                                    &lt;br /&gt;
                                                                                    &lt;br /&gt;
   from Accelerators import add_accelerator                                         &lt;br /&gt;
   add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete)&lt;br /&gt;
   add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged) &lt;br /&gt;
   add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable) &lt;br /&gt;
   add_accelerator(&#039;cn&#039;, &#039;Move to next View Dock compound&#039;, vdock_next)             &lt;br /&gt;
   add_accelerator(&#039;cp&#039;, &#039;Move to next View Dock compound&#039;, vdock_previous)         &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_delete():                                                                &lt;br /&gt;
     from ViewDock.Compound import Compound                                         &lt;br /&gt;
     vdock_set_state(Compound.Deleted)                                              &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_purged():                                                                &lt;br /&gt;
     from ViewDock.Compound import Compound                                         &lt;br /&gt;
     vdock_set_state(Compound.Purged)                                               &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_viable():                                                                &lt;br /&gt;
     from ViewDock.Compound import Compound                                         &lt;br /&gt;
     vdock_set_state(Compound.Viable)                                               &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_set_state(state):                                                        &lt;br /&gt;
     vd = vdock_dialog()                                                            &lt;br /&gt;
     if vd:                                                                         &lt;br /&gt;
         vd.results.setSelectedState(state)                                         &lt;br /&gt;
         vd._reloadCompounds()                                                      &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_next():                                                                  &lt;br /&gt;
     vdock_step(1)                                                                  &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_previous():                                                              &lt;br /&gt;
     vdock_step(-1)                                                                 &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_step(step):                                                              &lt;br /&gt;
     vd = vdock_dialog()                                                            &lt;br /&gt;
     if vd:                                                                         &lt;br /&gt;
         r = vd.results                                                             &lt;br /&gt;
         csel = r.selected                                                          &lt;br /&gt;
         if csel:                                                                   &lt;br /&gt;
           c = csel[0]                                                              &lt;br /&gt;
           clist = r.compoundList                                                   &lt;br /&gt;
           i = clist.index(c)                                                       &lt;br /&gt;
           if i+step &amp;lt; len(clist) and i+step &amp;gt;= 0:                                  &lt;br /&gt;
             nextc = clist[i+step]                                                  &lt;br /&gt;
             vd.results.setSelected([nextc])                                        &lt;br /&gt;
                                                                                    &lt;br /&gt;
 def vdock_dialog():                                                                &lt;br /&gt;
     from ViewDock import ViewDock                                                  &lt;br /&gt;
     from chimera import extension                                                  &lt;br /&gt;
     for vd in extension.manager.instances:                                         &lt;br /&gt;
         if isinstance(vd, ViewDock):                                               &lt;br /&gt;
             return vd                                                              &lt;br /&gt;
     return None       &lt;br /&gt;
&lt;br /&gt;
To use, [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
Accelerators &amp;quot;cv&amp;quot; (Viable), &amp;quot;cd&amp;quot; (Delete), &amp;quot;cx&amp;quot; (Purge), work like clicking the radio buttons in the ViewDock dialog box - they change the status of the selected compound. Accelerators &amp;quot;cn&amp;quot; and &amp;quot;cp&amp;quot;&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12374</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12374"/>
		<updated>2020-03-27T14:03:02Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing outputs from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock as designed requires a fair amount of clicking and mouse movement. To reduce these one option is to do the following.&lt;br /&gt;
&lt;br /&gt;
Create a [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators script] containing this code, originally written by Tom Goddard:&lt;br /&gt;
&lt;br /&gt;
 def register_accelerators():&lt;br /&gt;
     from Accelerators import standard_accelerators&lt;br /&gt;
     standard_accelerators.register_accelerators()&lt;br /&gt;
 &lt;br /&gt;
     from Accelerators import add_accelerator&lt;br /&gt;
     add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete)&lt;br /&gt;
     add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged)&lt;br /&gt;
     add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 def vdock_delete():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Deleted)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_purged():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Purged)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_viable():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Viable)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_set_state(state):&lt;br /&gt;
     vd = vdock_dialog()&lt;br /&gt;
     if vd:&lt;br /&gt;
         vd.results.setSelectedState(state)&lt;br /&gt;
         vd._reloadCompounds()&lt;br /&gt;
 &lt;br /&gt;
 def vdock_dialog():&lt;br /&gt;
     from ViewDock import ViewDock&lt;br /&gt;
     from chimera import extension&lt;br /&gt;
     for vd in extension.manager.instances:&lt;br /&gt;
         if isinstance(vd, ViewDock):&lt;br /&gt;
             return vd&lt;br /&gt;
     return None&lt;br /&gt;
&lt;br /&gt;
Then [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
When looking at your compounds, initially assign them all status &amp;quot;Deleted&amp;quot; and show only &amp;quot;Deleted&amp;quot; compounds by choosing Compounds &amp;gt; List Deleted in the compound table dialog. Use accelerators &amp;quot;cv&amp;quot;and &amp;quot;cx&amp;quot; to reassign &amp;quot;Purged&amp;quot;, and &amp;quot;Viable&amp;quot; statuses.&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12373</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12373"/>
		<updated>2020-03-27T14:02:26Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing outputs from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock as designed requires a fair amount of clicking and mouse movement. To reduce these one option is to do the following:&lt;br /&gt;
&lt;br /&gt;
Create a [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators script] containing this code, originally written by Tom Goddard:&lt;br /&gt;
&lt;br /&gt;
 def register_accelerators():&lt;br /&gt;
     from Accelerators import standard_accelerators&lt;br /&gt;
     standard_accelerators.register_accelerators()&lt;br /&gt;
 &lt;br /&gt;
     from Accelerators import add_accelerator&lt;br /&gt;
     add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete)&lt;br /&gt;
     add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged)&lt;br /&gt;
     add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 def vdock_delete():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Deleted)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_purged():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Purged)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_viable():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Viable)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_set_state(state):&lt;br /&gt;
     vd = vdock_dialog()&lt;br /&gt;
     if vd:&lt;br /&gt;
         vd.results.setSelectedState(state)&lt;br /&gt;
         vd._reloadCompounds()&lt;br /&gt;
 &lt;br /&gt;
 def vdock_dialog():&lt;br /&gt;
     from ViewDock import ViewDock&lt;br /&gt;
     from chimera import extension&lt;br /&gt;
     for vd in extension.manager.instances:&lt;br /&gt;
         if isinstance(vd, ViewDock):&lt;br /&gt;
             return vd&lt;br /&gt;
     return None&lt;br /&gt;
&lt;br /&gt;
Then [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
When looking at your compounds, initially assign them all status &amp;quot;Deleted&amp;quot; and show only &amp;quot;Deleted&amp;quot; compounds by choosing Compounds &amp;gt; List Deleted in the compound table dialog. Use accelerators &amp;quot;cv&amp;quot;and &amp;quot;cx&amp;quot; to reassign &amp;quot;Purged&amp;quot;, and &amp;quot;Viable&amp;quot; statuses.&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12372</id>
		<title>ViewDock</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ViewDock&amp;diff=12372"/>
		<updated>2020-03-27T12:56:48Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: Created page with &amp;quot;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing outputs ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cgl.ucsf.edu/chimera/docs/ContributedSoftware/viewdock/framevd.html ViewDock] is a [https://www.cgl.ucsf.edu/chimera/ UCSF Chimera] extension for viewing outputs from several docking software packages. There is a [https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/vdtut.html tutorial] on the Chimera web pages.&lt;br /&gt;
&lt;br /&gt;
== Keyboard shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Using ViewDock as designed requires a fair amount of clicking and mouse movement. To reduce these one option is to do the following:&lt;br /&gt;
&lt;br /&gt;
Create a [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#adding Chimera accelerators script] containing:&lt;br /&gt;
&lt;br /&gt;
 def register_accelerators():&lt;br /&gt;
     from Accelerators import standard_accelerators&lt;br /&gt;
     standard_accelerators.register_accelerators()&lt;br /&gt;
 &lt;br /&gt;
     from Accelerators import add_accelerator&lt;br /&gt;
     add_accelerator(&#039;cd&#039;, &#039;Mark current View Dock compound deleted&#039;, vdock_delete)&lt;br /&gt;
     add_accelerator(&#039;cx&#039;, &#039;Mark current View Dock compound purged&#039;, vdock_purged)&lt;br /&gt;
     add_accelerator(&#039;cv&#039;, &#039;Mark current View Dock compound viable&#039;, vdock_viable)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 def vdock_delete():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Deleted)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_purged():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Purged)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_viable():&lt;br /&gt;
     from ViewDock.Compound import Compound&lt;br /&gt;
     vdock_set_state(Compound.Viable)&lt;br /&gt;
 &lt;br /&gt;
 def vdock_set_state(state):&lt;br /&gt;
     vd = vdock_dialog()&lt;br /&gt;
     if vd:&lt;br /&gt;
         vd.results.setSelectedState(state)&lt;br /&gt;
         vd._reloadCompounds()&lt;br /&gt;
 &lt;br /&gt;
 def vdock_dialog():&lt;br /&gt;
     from ViewDock import ViewDock&lt;br /&gt;
     from chimera import extension&lt;br /&gt;
     for vd in extension.manager.instances:&lt;br /&gt;
         if isinstance(vd, ViewDock):&lt;br /&gt;
             return vd&lt;br /&gt;
     return None&lt;br /&gt;
&lt;br /&gt;
Then [https://www.cgl.ucsf.edu/chimera/current/docs/ContributedSoftware/accelerators/accelerators.html#dialog enable Chimera keyboard shortcuts] and load the new file.&lt;br /&gt;
&lt;br /&gt;
When looking at your compounds, initially assign them all status &amp;quot;Deleted&amp;quot; and show only &amp;quot;Deleted&amp;quot; compounds by choosing Compounds &amp;gt; List Deleted in the compound table dialog. Use accelerators &amp;quot;cv&amp;quot;and &amp;quot;cx&amp;quot; to reassign &amp;quot;Purged&amp;quot;, and &amp;quot;Viable&amp;quot; statuses.&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC_via_curl&amp;diff=12315</id>
		<title>ZINC via curl</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC_via_curl&amp;diff=12315"/>
		<updated>2020-03-11T21:08:19Z</updated>

		<summary type="html">&lt;p&gt;Jwagsta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can query ZINC using curl as follows: &lt;br /&gt;
&lt;br /&gt;
= Download all the IDs in a file = &lt;br /&gt;
&lt;br /&gt;
 curl -s --data-urlencode zinc.ids=&amp;quot;( cat test.list )&amp;quot; -d page.format=properties http://zinc.docking.org/results&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suppose your file is big, then use the following script to chunk it up by 1000 molecules at a time:&lt;br /&gt;
&lt;br /&gt;
 split -l 1000 test.list&lt;br /&gt;
 foreach i (x??)&lt;br /&gt;
        curl -o $i.mol2 --data-urlencode zinc.ids=&amp;quot;(cat $i)&amp;quot; -d page.format=mol2 http://zinc.docking.org/results&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
= Get all the information about an ID (March 2020) =&lt;br /&gt;
&lt;br /&gt;
 curl http://zinc15.docking.org/substances.txt  -F zinc_id-in=@./zinc.txt -F output_fields=&amp;quot;zinc_id mwt num_atoms num_rings&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Output fields can be found at http://zinc15.docking.org/substances/help/&lt;br /&gt;
zinc.txt should look like:&lt;br /&gt;
&lt;br /&gt;
 7 &lt;br /&gt;
 10&lt;br /&gt;
 ZINC92349234&lt;br /&gt;
&lt;br /&gt;
= Get all the information about an ID = &lt;br /&gt;
This includes target annotations and such, using the &amp;quot;800-lb-gorilla&amp;quot; format&lt;br /&gt;
&lt;br /&gt;
 curl -s --data-urlencode zinc.ids=&amp;quot;$( cat test.list )&amp;quot; -d page.format=800-lb-gorilla http://zinc.docking.org/results&lt;br /&gt;
&lt;br /&gt;
This format is basically tab-delimited, with a few columns that are semi-colon sub-delimited (and column sub-sub-delimited). It&#039;s meant to be used with awk. I can give you json output if you&#039;d like to format it yourself.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:ZINC]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:NEED ATTENTION]]&lt;/div&gt;</summary>
		<author><name>Jwagsta</name></author>
	</entry>
</feed>