<?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=Jyoung</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=Jyoung"/>
	<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Special:Contributions/Jyoung"/>
	<updated>2026-05-24T07:01:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://wiki.docking.org/index.php?title=TLDR&amp;diff=12604</id>
		<title>TLDR</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=TLDR&amp;diff=12604"/>
		<updated>2020-05-27T17:13:51Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UCSF Tools 2018 (tools18.docking.org) is a web-based interface to molecular docking and related tools.&lt;br /&gt;
The system currently consists of a dozen apps.  We plan to support dozens, perhaps a hundred all told.&lt;br /&gt;
Here we list the apps you can currently use, with usage notes. &lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Analog == &lt;br /&gt;
The purpose of the analog app is to find analogs of your active compounds that you can use to explore SAR by catalog around your hits.&lt;br /&gt;
&lt;br /&gt;
This app requires: &lt;br /&gt;
* a starting molecule (one at a time for now)&lt;br /&gt;
* a tanimoto limit&lt;br /&gt;
* mwt and logP limits&lt;br /&gt;
* which bioisosteric replacements are acceptable (default all)&lt;br /&gt;
 &lt;br /&gt;
This app returns:&lt;br /&gt;
* 2D molecules within limits on molecular weight and logP (default 400 and 4.0 respectively) and tanimoto (default 0.5).&lt;br /&gt;
* Results are in three separate files. &lt;br /&gt;
** a. molecules you can buy according to ZINC&lt;br /&gt;
** b. molecules you can make or have made in one, two or three steps from commercially available building blocks&lt;br /&gt;
** c. molecules that are intriguingly similar but will require more synthetic effort.&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by the following other modules in Tools 18&lt;br /&gt;
* blaster, for docking. &lt;br /&gt;
* build 3d, to build docking libraries&lt;br /&gt;
* potentially covalent, depending on warhead&lt;br /&gt;
* cluster, to cluster the results&lt;br /&gt;
* dude, to generate decoys&lt;br /&gt;
* libanalysis, to get a detailed analysis of properties and targets&lt;br /&gt;
* report2d, to get a quick summary of physical and chemical properties&lt;br /&gt;
&lt;br /&gt;
status: Not working yet.&lt;br /&gt;
&lt;br /&gt;
== Blaster == &lt;br /&gt;
The purpose of the blaster app is to prepare a receptor for docking, including some basic analysis.&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* A structure for your receptor protein provided as a pdb file&lt;br /&gt;
* A binding site provided in one of the following ways: &lt;br /&gt;
  1) Supply ligand in binding site&lt;br /&gt;
  2) Provide binding site residues&lt;br /&gt;
  3) Use a program to identify all potential binding sites.  Choose which of the binding sites to test or test them all.&lt;br /&gt;
&lt;br /&gt;
The app returns:&lt;br /&gt;
* dockfiles, which may be used for large library docking&lt;br /&gt;
* workfiles, which may be used for grid and sphere optimization.&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* asdf&lt;br /&gt;
* sef&lt;br /&gt;
* sdfafd&lt;br /&gt;
&lt;br /&gt;
Status: works. (equivalent of blastermaster.py)&lt;br /&gt;
&lt;br /&gt;
== Build3D == &lt;br /&gt;
Works&lt;br /&gt;
&lt;br /&gt;
== Covalent == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status: Works with special cases only. Nearly ready to use.  If interested, ask jji for assistance. &lt;br /&gt;
&lt;br /&gt;
== Cluster == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Works. &lt;br /&gt;
&lt;br /&gt;
== DUDE-Z == &lt;br /&gt;
Purpose: Assemble decoys for docking using the DUDEZ approach. See http://dudez.docking.org for sample data&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* Ligands provided in smiles format (actives.smi)&lt;br /&gt;
* Current default parameters are shown in the following decoy_generation.in file:&lt;br /&gt;
&lt;br /&gt;
    PROTONATE YES&lt;br /&gt;
    MWT 0 125&lt;br /&gt;
    LOGP 0 3.6&lt;br /&gt;
    RB 0 5&lt;br /&gt;
    HBA 0 4&lt;br /&gt;
    HBD 0 3&lt;br /&gt;
    CHARGE 0 0&lt;br /&gt;
    LIGAND TC RANGE 0.0 0.35&lt;br /&gt;
    MINIMUM DECOYS PER LIGAND 20&lt;br /&gt;
    DECOYS PER LIGAND 50&lt;br /&gt;
    MAXIMUM TC BETWEEN DECOYS 0.8&lt;br /&gt;
    TANIMOTO YES&lt;br /&gt;
&lt;br /&gt;
See http://wiki.docking.org/index.php/Generating_decoys_(Reed%27s_way) for an explanation of what these parameters mean and how DUDE-Z works.&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* List of decoys&lt;br /&gt;
&lt;br /&gt;
Status:  Nearly ready to use.  Awaiting advice from Reed&lt;br /&gt;
&lt;br /&gt;
== Libanalysis == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== Reaction == &lt;br /&gt;
&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Works at a basic level, with minor caveats.&lt;br /&gt;
* need to handle mwt and logP cutoff parametrically.&lt;br /&gt;
* needs work to handle millions of molecules&lt;br /&gt;
* needs work to connect to reagents, reactions and schemes&lt;br /&gt;
&lt;br /&gt;
== Report2d ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== Shape ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
Search for similar shape molecules for ligands&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== ZINCbatch ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status: Not working yet&lt;br /&gt;
&lt;br /&gt;
= Technical info = &lt;br /&gt;
&lt;br /&gt;
== starting the server in single-threaded mode == &lt;br /&gt;
 source /mnt/nfs/work/chinzo/Projects/BlasterX_supritha/venv/bin/activate&lt;br /&gt;
 python code/DOCKBlaster/autoapp.py&lt;br /&gt;
&lt;br /&gt;
== How to add new module ==&lt;br /&gt;
See [[Add Tools18 module]]&lt;br /&gt;
== Supported field types == &lt;br /&gt;
 For now, the model accepts &amp;quot;text_box&amp;quot;, &amp;quot;check_box&amp;quot;, &amp;quot;drop_down&amp;quot; , &amp;quot;radio_button&amp;quot;,  and so on&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;type&amp;quot; is &amp;quot;text_box&amp;quot;, it can contain a text or number with a min and a max range. If there is a min and a max range, then they have to be mentioned as &amp;quot;value_type&amp;quot;: &amp;quot;number&amp;quot;, &amp;quot;value_range&amp;quot;: {&amp;quot;min_value&amp;quot;: 0.1,&amp;quot;max_value&amp;quot;: 0.99} as in parameters.json for cluster.&lt;br /&gt;
If &amp;quot;type&amp;quot; is &amp;quot;text_box&amp;quot; and &amp;quot;value_type&amp;quot; is &amp;quot;text&amp;quot;, then it is a normal text box with no range or validations.&lt;br /&gt;
6. Every input mentioned under the key &amp;quot;inputs&amp;quot; has a field called &amp;quot;file_name&amp;quot;, which the name by which the input file uploaded/filled by the user gets stored in the file system at /nfs/ex7/blaster/jobs/JobID%10/Jobname_jobID folder. &lt;br /&gt;
&lt;br /&gt;
7. Every job type has a &amp;quot;job_output&amp;quot; field, which currently stores an empty results.txt file which can be modified to do another action later. For now, the inputs uploaded, and the output file name specified by the user gets stored in the file system under the path that I mentioned in point 6.&lt;br /&gt;
&lt;br /&gt;
[[Category: TLDR]]&lt;br /&gt;
[[Category: Tools18]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Add_TLDR_module&amp;diff=12602</id>
		<title>Add TLDR module</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Add_TLDR_module&amp;diff=12602"/>
		<updated>2020-05-27T17:13:20Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* Test run! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is quick guide to add your script into [[Tools18]] interface&lt;br /&gt;
=== Scripts ===&lt;br /&gt;
&lt;br /&gt;
=== Add job type into psql table ===&lt;br /&gt;
*Access the database&lt;br /&gt;
 $ psql -h mem blaster blasteruser&lt;br /&gt;
&lt;br /&gt;
*Look for the next available index on job_types table&lt;br /&gt;
 blaster=&amp;gt; select * from job_types order by job_type_id;&lt;br /&gt;
 You will see table like this&lt;br /&gt;
  job_type_id |        last_updated        |    short_name     &lt;br /&gt;
 -------------+----------------------------+-------------------&lt;br /&gt;
            1 | 2018-10-05 00:00:00        | analog&lt;br /&gt;
            2 | 2018-10-05 00:00:00        | blaster&lt;br /&gt;
            3 | 2018-10-05 00:00:00        | blasterpdb&lt;br /&gt;
            4 | 2018-10-05 00:00:00        | build2d&lt;br /&gt;
            5 | 2018-10-05 00:00:00        | build3d&lt;br /&gt;
            6 | 2018-10-05 00:00:00        | cluster&lt;br /&gt;
            7 | 2018-10-05 00:00:00        | covalent&lt;br /&gt;
            8 | 2018-10-05 00:00:00        | dude&lt;br /&gt;
            9 | 2018-10-05 00:00:00        | libanalysis&lt;br /&gt;
           10 | 2018-10-05 00:00:00        | reaction&lt;br /&gt;
           11 | 2018-10-05 00:00:00        | sea&lt;br /&gt;
           12 | 2018-10-05 00:00:00        | threec&lt;br /&gt;
           13 | 2018-10-05 00:00:00        | transform&lt;br /&gt;
           14 | 2018-10-05 00:00:00        | zincbatch&lt;br /&gt;
           15 | 2018-12-01 18:47:34        | cluster_molecules&lt;br /&gt;
&lt;br /&gt;
* Insert new job type (Please be extra careful when doing this step)&lt;br /&gt;
 &#039;&#039;&#039;This is important to start command with &#039;begin;&#039; so that if any syntax mistakes could be undo.&#039;&#039;&#039;&lt;br /&gt;
 blaster=&amp;gt; begin; insert into job_types values(&amp;lt;next_available_id&amp;gt;, now(), &#039;&amp;lt;your_job_name&amp;gt;&#039;);&lt;br /&gt;
 Example: &lt;br /&gt;
 blaster=&amp;gt; begin; insert into job_types values(16, now(), &#039;shape&#039;);&lt;br /&gt;
 //To save data&lt;br /&gt;
 blaster=&amp;gt; commit;&lt;br /&gt;
 //Or if made mistake, to reserve cmd&lt;br /&gt;
 blaster=&amp;gt; rollback;&lt;br /&gt;
&lt;br /&gt;
=== Setting up templates ===&lt;br /&gt;
* Create directory&lt;br /&gt;
 $ cd /nfs/ex7/blaster/templates/&lt;br /&gt;
 $ mkdir &amp;lt;job_name&amp;gt; // job_name must match the shortname in job_types table&lt;br /&gt;
 $ chmod 777 job_name //for now... &lt;br /&gt;
* Get parameters.json&lt;br /&gt;
This is recommend that you go though all the currently existing modules on [http://tools18.docking.org/start Tools18] and reuse instead of starting one from scratch.&lt;br /&gt;
 $ cd job_name&lt;br /&gt;
 $ cp &amp;lt;whatever parameters.json you pick&amp;gt;&lt;br /&gt;
 $ vim parameters.json&lt;br /&gt;
 Change the variables. Check on the website if the module shows up.&lt;br /&gt;
* Move your shell scripts in directory&lt;br /&gt;
&lt;br /&gt;
=== Test run! ===&lt;br /&gt;
&lt;br /&gt;
[[Category: Tools18]]&lt;br /&gt;
[[Category: TLDR]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Add_TLDR_module&amp;diff=12601</id>
		<title>Add TLDR module</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Add_TLDR_module&amp;diff=12601"/>
		<updated>2020-05-27T17:13:09Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is quick guide to add your script into [[Tools18]] interface&lt;br /&gt;
=== Scripts ===&lt;br /&gt;
&lt;br /&gt;
=== Add job type into psql table ===&lt;br /&gt;
*Access the database&lt;br /&gt;
 $ psql -h mem blaster blasteruser&lt;br /&gt;
&lt;br /&gt;
*Look for the next available index on job_types table&lt;br /&gt;
 blaster=&amp;gt; select * from job_types order by job_type_id;&lt;br /&gt;
 You will see table like this&lt;br /&gt;
  job_type_id |        last_updated        |    short_name     &lt;br /&gt;
 -------------+----------------------------+-------------------&lt;br /&gt;
            1 | 2018-10-05 00:00:00        | analog&lt;br /&gt;
            2 | 2018-10-05 00:00:00        | blaster&lt;br /&gt;
            3 | 2018-10-05 00:00:00        | blasterpdb&lt;br /&gt;
            4 | 2018-10-05 00:00:00        | build2d&lt;br /&gt;
            5 | 2018-10-05 00:00:00        | build3d&lt;br /&gt;
            6 | 2018-10-05 00:00:00        | cluster&lt;br /&gt;
            7 | 2018-10-05 00:00:00        | covalent&lt;br /&gt;
            8 | 2018-10-05 00:00:00        | dude&lt;br /&gt;
            9 | 2018-10-05 00:00:00        | libanalysis&lt;br /&gt;
           10 | 2018-10-05 00:00:00        | reaction&lt;br /&gt;
           11 | 2018-10-05 00:00:00        | sea&lt;br /&gt;
           12 | 2018-10-05 00:00:00        | threec&lt;br /&gt;
           13 | 2018-10-05 00:00:00        | transform&lt;br /&gt;
           14 | 2018-10-05 00:00:00        | zincbatch&lt;br /&gt;
           15 | 2018-12-01 18:47:34        | cluster_molecules&lt;br /&gt;
&lt;br /&gt;
* Insert new job type (Please be extra careful when doing this step)&lt;br /&gt;
 &#039;&#039;&#039;This is important to start command with &#039;begin;&#039; so that if any syntax mistakes could be undo.&#039;&#039;&#039;&lt;br /&gt;
 blaster=&amp;gt; begin; insert into job_types values(&amp;lt;next_available_id&amp;gt;, now(), &#039;&amp;lt;your_job_name&amp;gt;&#039;);&lt;br /&gt;
 Example: &lt;br /&gt;
 blaster=&amp;gt; begin; insert into job_types values(16, now(), &#039;shape&#039;);&lt;br /&gt;
 //To save data&lt;br /&gt;
 blaster=&amp;gt; commit;&lt;br /&gt;
 //Or if made mistake, to reserve cmd&lt;br /&gt;
 blaster=&amp;gt; rollback;&lt;br /&gt;
&lt;br /&gt;
=== Setting up templates ===&lt;br /&gt;
* Create directory&lt;br /&gt;
 $ cd /nfs/ex7/blaster/templates/&lt;br /&gt;
 $ mkdir &amp;lt;job_name&amp;gt; // job_name must match the shortname in job_types table&lt;br /&gt;
 $ chmod 777 job_name //for now... &lt;br /&gt;
* Get parameters.json&lt;br /&gt;
This is recommend that you go though all the currently existing modules on [http://tools18.docking.org/start Tools18] and reuse instead of starting one from scratch.&lt;br /&gt;
 $ cd job_name&lt;br /&gt;
 $ cp &amp;lt;whatever parameters.json you pick&amp;gt;&lt;br /&gt;
 $ vim parameters.json&lt;br /&gt;
 Change the variables. Check on the website if the module shows up.&lt;br /&gt;
* Move your shell scripts in directory&lt;br /&gt;
&lt;br /&gt;
=== Test run! ===&lt;br /&gt;
&lt;br /&gt;
[Category: Tools18]]&lt;br /&gt;
[[Category: TLDR]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=TLDR&amp;diff=12572</id>
		<title>TLDR</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=TLDR&amp;diff=12572"/>
		<updated>2020-05-27T00:54:13Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* DUDE-Z */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UCSF Tools 2018 (tools18.docking.org) is a web-based interface to molecular docking and related tools.&lt;br /&gt;
The system currently consists of a dozen apps.  We plan to support dozens, perhaps a hundred all told.&lt;br /&gt;
Here we list the apps you can currently use, with usage notes. &lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Analog == &lt;br /&gt;
The purpose of the analog app is to find analogs of your active compounds that you can use to explore SAR by catalog around your hits.&lt;br /&gt;
&lt;br /&gt;
This app requires: &lt;br /&gt;
* a starting molecule (one at a time for now)&lt;br /&gt;
* a tanimoto limit&lt;br /&gt;
* mwt and logP limits&lt;br /&gt;
* which bioisosteric replacements are acceptable (default all)&lt;br /&gt;
 &lt;br /&gt;
This app returns:&lt;br /&gt;
* 2D molecules within limits on molecular weight and logP (default 400 and 4.0 respectively) and tanimoto (default 0.5).&lt;br /&gt;
* Results are in three separate files. &lt;br /&gt;
** a. molecules you can buy according to ZINC&lt;br /&gt;
** b. molecules you can make or have made in one, two or three steps from commercially available building blocks&lt;br /&gt;
** c. molecules that are intriguingly similar but will require more synthetic effort.&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by the following other modules in Tools 18&lt;br /&gt;
* blaster, for docking. &lt;br /&gt;
* build 3d, to build docking libraries&lt;br /&gt;
* potentially covalent, depending on warhead&lt;br /&gt;
* cluster, to cluster the results&lt;br /&gt;
* dude, to generate decoys&lt;br /&gt;
* libanalysis, to get a detailed analysis of properties and targets&lt;br /&gt;
* report2d, to get a quick summary of physical and chemical properties&lt;br /&gt;
&lt;br /&gt;
status: Not working yet.&lt;br /&gt;
&lt;br /&gt;
== Blaster == &lt;br /&gt;
The purpose of the blaster app is to prepare a receptor for docking, including some basic analysis.&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* A structure for your receptor protein provided as a pdb file&lt;br /&gt;
* A binding site provided in one of the following ways: &lt;br /&gt;
  1) Supply ligand in binding site&lt;br /&gt;
  2) Provide binding site residues&lt;br /&gt;
  3) Use a program to identify all potential binding sites.  Choose which of the binding sites to test or test them all.&lt;br /&gt;
&lt;br /&gt;
The app returns:&lt;br /&gt;
* dockfiles, which may be used for large library docking&lt;br /&gt;
* workfiles, which may be used for grid and sphere optimization.&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* asdf&lt;br /&gt;
* sef&lt;br /&gt;
* sdfafd&lt;br /&gt;
&lt;br /&gt;
Status: works. (equivalent of blastermaster.py)&lt;br /&gt;
&lt;br /&gt;
== Build3D == &lt;br /&gt;
Works&lt;br /&gt;
&lt;br /&gt;
== Covalent == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status: Works with special cases only. Nearly ready to use.  If interested, ask jji for assistance. &lt;br /&gt;
&lt;br /&gt;
== Cluster == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Works. &lt;br /&gt;
&lt;br /&gt;
== DUDE-Z == &lt;br /&gt;
Purpose: Assemble decoys for docking using the DUDEZ approach. See http://dudez.docking.org for sample data&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* Ligands provided in smiles format (actives.smi)&lt;br /&gt;
* Current default parameters are shown in the following decoy_generation.in file:&lt;br /&gt;
&lt;br /&gt;
    PROTONATE YES&lt;br /&gt;
    MWT 0 125&lt;br /&gt;
    LOGP 0 3.6&lt;br /&gt;
    RB 0 5&lt;br /&gt;
    HBA 0 4&lt;br /&gt;
    HBD 0 3&lt;br /&gt;
    CHARGE 0 0&lt;br /&gt;
    LIGAND TC RANGE 0.0 0.35&lt;br /&gt;
    MINIMUM DECOYS PER LIGAND 20&lt;br /&gt;
    DECOYS PER LIGAND 50&lt;br /&gt;
    MAXIMUM TC BETWEEN DECOYS 0.8&lt;br /&gt;
    TANIMOTO YES&lt;br /&gt;
&lt;br /&gt;
See http://wiki.docking.org/index.php/Generating_decoys_(Reed%27s_way) for an explanation of what these parameters mean and how DUDE-Z works.&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* List of decoys&lt;br /&gt;
&lt;br /&gt;
Status:  Nearly ready to use.  Awaiting advice from Reed&lt;br /&gt;
&lt;br /&gt;
== Libanalysis == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== Reaction == &lt;br /&gt;
&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Works at a basic level, with minor caveats.&lt;br /&gt;
* need to handle mwt and logP cutoff parametrically.&lt;br /&gt;
* needs work to handle millions of molecules&lt;br /&gt;
* needs work to connect to reagents, reactions and schemes&lt;br /&gt;
&lt;br /&gt;
== Report2d ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== Shape ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
Search for similar shape molecules for ligands&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== ZINCbatch ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status: Not working yet&lt;br /&gt;
&lt;br /&gt;
= Technical info = &lt;br /&gt;
&lt;br /&gt;
== starting the server in single-threaded mode == &lt;br /&gt;
 source /mnt/nfs/work/chinzo/Projects/BlasterX_supritha/venv/bin/activate&lt;br /&gt;
 python code/DOCKBlaster/autoapp.py&lt;br /&gt;
&lt;br /&gt;
== How to add new module ==&lt;br /&gt;
See [[Add Tools18 module]]&lt;br /&gt;
== Supported field types == &lt;br /&gt;
 For now, the model accepts &amp;quot;text_box&amp;quot;, &amp;quot;check_box&amp;quot;, &amp;quot;drop_down&amp;quot; , &amp;quot;radio_button&amp;quot;,  and so on&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;type&amp;quot; is &amp;quot;text_box&amp;quot;, it can contain a text or number with a min and a max range. If there is a min and a max range, then they have to be mentioned as &amp;quot;value_type&amp;quot;: &amp;quot;number&amp;quot;, &amp;quot;value_range&amp;quot;: {&amp;quot;min_value&amp;quot;: 0.1,&amp;quot;max_value&amp;quot;: 0.99} as in parameters.json for cluster.&lt;br /&gt;
If &amp;quot;type&amp;quot; is &amp;quot;text_box&amp;quot; and &amp;quot;value_type&amp;quot; is &amp;quot;text&amp;quot;, then it is a normal text box with no range or validations.&lt;br /&gt;
6. Every input mentioned under the key &amp;quot;inputs&amp;quot; has a field called &amp;quot;file_name&amp;quot;, which the name by which the input file uploaded/filled by the user gets stored in the file system at /nfs/ex7/blaster/jobs/JobID%10/Jobname_jobID folder. &lt;br /&gt;
&lt;br /&gt;
7. Every job type has a &amp;quot;job_output&amp;quot; field, which currently stores an empty results.txt file which can be modified to do another action later. For now, the inputs uploaded, and the output file name specified by the user gets stored in the file system under the path that I mentioned in point 6.&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=TLDR&amp;diff=12571</id>
		<title>TLDR</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=TLDR&amp;diff=12571"/>
		<updated>2020-05-27T00:53:50Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* DUDE-Z */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UCSF Tools 2018 (tools18.docking.org) is a web-based interface to molecular docking and related tools.&lt;br /&gt;
The system currently consists of a dozen apps.  We plan to support dozens, perhaps a hundred all told.&lt;br /&gt;
Here we list the apps you can currently use, with usage notes. &lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Analog == &lt;br /&gt;
The purpose of the analog app is to find analogs of your active compounds that you can use to explore SAR by catalog around your hits.&lt;br /&gt;
&lt;br /&gt;
This app requires: &lt;br /&gt;
* a starting molecule (one at a time for now)&lt;br /&gt;
* a tanimoto limit&lt;br /&gt;
* mwt and logP limits&lt;br /&gt;
* which bioisosteric replacements are acceptable (default all)&lt;br /&gt;
 &lt;br /&gt;
This app returns:&lt;br /&gt;
* 2D molecules within limits on molecular weight and logP (default 400 and 4.0 respectively) and tanimoto (default 0.5).&lt;br /&gt;
* Results are in three separate files. &lt;br /&gt;
** a. molecules you can buy according to ZINC&lt;br /&gt;
** b. molecules you can make or have made in one, two or three steps from commercially available building blocks&lt;br /&gt;
** c. molecules that are intriguingly similar but will require more synthetic effort.&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by the following other modules in Tools 18&lt;br /&gt;
* blaster, for docking. &lt;br /&gt;
* build 3d, to build docking libraries&lt;br /&gt;
* potentially covalent, depending on warhead&lt;br /&gt;
* cluster, to cluster the results&lt;br /&gt;
* dude, to generate decoys&lt;br /&gt;
* libanalysis, to get a detailed analysis of properties and targets&lt;br /&gt;
* report2d, to get a quick summary of physical and chemical properties&lt;br /&gt;
&lt;br /&gt;
status: Not working yet.&lt;br /&gt;
&lt;br /&gt;
== Blaster == &lt;br /&gt;
The purpose of the blaster app is to prepare a receptor for docking, including some basic analysis.&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* A structure for your receptor protein provided as a pdb file&lt;br /&gt;
* A binding site provided in one of the following ways: &lt;br /&gt;
  1) Supply ligand in binding site&lt;br /&gt;
  2) Provide binding site residues&lt;br /&gt;
  3) Use a program to identify all potential binding sites.  Choose which of the binding sites to test or test them all.&lt;br /&gt;
&lt;br /&gt;
The app returns:&lt;br /&gt;
* dockfiles, which may be used for large library docking&lt;br /&gt;
* workfiles, which may be used for grid and sphere optimization.&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* asdf&lt;br /&gt;
* sef&lt;br /&gt;
* sdfafd&lt;br /&gt;
&lt;br /&gt;
Status: works. (equivalent of blastermaster.py)&lt;br /&gt;
&lt;br /&gt;
== Build3D == &lt;br /&gt;
Works&lt;br /&gt;
&lt;br /&gt;
== Covalent == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status: Works with special cases only. Nearly ready to use.  If interested, ask jji for assistance. &lt;br /&gt;
&lt;br /&gt;
== Cluster == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Works. &lt;br /&gt;
&lt;br /&gt;
== DUDE-Z == &lt;br /&gt;
Purpose: Assemble decoys for docking using the DUDEZ approach. See http://dudez.docking.org for sample data&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* Ligands provided in smiles format (actives.smi)&lt;br /&gt;
* Current default parameters are shown in the following decoy_generation.in file:&lt;br /&gt;
&lt;br /&gt;
    PROTONATE YES&lt;br /&gt;
&lt;br /&gt;
    MWT 0 125&lt;br /&gt;
&lt;br /&gt;
    LOGP 0 3.6&lt;br /&gt;
&lt;br /&gt;
    RB 0 5&lt;br /&gt;
&lt;br /&gt;
    HBA 0 4&lt;br /&gt;
&lt;br /&gt;
    HBD 0 3&lt;br /&gt;
&lt;br /&gt;
    CHARGE 0 0&lt;br /&gt;
&lt;br /&gt;
    LIGAND TC RANGE 0.0 0.35&lt;br /&gt;
&lt;br /&gt;
    MINIMUM DECOYS PER LIGAND 20&lt;br /&gt;
&lt;br /&gt;
    DECOYS PER LIGAND 50&lt;br /&gt;
&lt;br /&gt;
    MAXIMUM TC BETWEEN DECOYS 0.8&lt;br /&gt;
&lt;br /&gt;
    TANIMOTO YES&lt;br /&gt;
&lt;br /&gt;
See http://wiki.docking.org/index.php/Generating_decoys_(Reed%27s_way) for an explanation of what these parameters mean and how DUDE-Z works.&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* List of decoys&lt;br /&gt;
&lt;br /&gt;
Status:  Nearly ready to use.  Awaiting advice from Reed&lt;br /&gt;
&lt;br /&gt;
== Libanalysis == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== Reaction == &lt;br /&gt;
&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Works at a basic level, with minor caveats.&lt;br /&gt;
* need to handle mwt and logP cutoff parametrically.&lt;br /&gt;
* needs work to handle millions of molecules&lt;br /&gt;
* needs work to connect to reagents, reactions and schemes&lt;br /&gt;
&lt;br /&gt;
== Report2d ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== Shape ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
Search for similar shape molecules for ligands&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== ZINCbatch ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status: Not working yet&lt;br /&gt;
&lt;br /&gt;
= Technical info = &lt;br /&gt;
&lt;br /&gt;
== starting the server in single-threaded mode == &lt;br /&gt;
 source /mnt/nfs/work/chinzo/Projects/BlasterX_supritha/venv/bin/activate&lt;br /&gt;
 python code/DOCKBlaster/autoapp.py&lt;br /&gt;
&lt;br /&gt;
== How to add new module ==&lt;br /&gt;
See [[Add Tools18 module]]&lt;br /&gt;
== Supported field types == &lt;br /&gt;
 For now, the model accepts &amp;quot;text_box&amp;quot;, &amp;quot;check_box&amp;quot;, &amp;quot;drop_down&amp;quot; , &amp;quot;radio_button&amp;quot;,  and so on&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;type&amp;quot; is &amp;quot;text_box&amp;quot;, it can contain a text or number with a min and a max range. If there is a min and a max range, then they have to be mentioned as &amp;quot;value_type&amp;quot;: &amp;quot;number&amp;quot;, &amp;quot;value_range&amp;quot;: {&amp;quot;min_value&amp;quot;: 0.1,&amp;quot;max_value&amp;quot;: 0.99} as in parameters.json for cluster.&lt;br /&gt;
If &amp;quot;type&amp;quot; is &amp;quot;text_box&amp;quot; and &amp;quot;value_type&amp;quot; is &amp;quot;text&amp;quot;, then it is a normal text box with no range or validations.&lt;br /&gt;
6. Every input mentioned under the key &amp;quot;inputs&amp;quot; has a field called &amp;quot;file_name&amp;quot;, which the name by which the input file uploaded/filled by the user gets stored in the file system at /nfs/ex7/blaster/jobs/JobID%10/Jobname_jobID folder. &lt;br /&gt;
&lt;br /&gt;
7. Every job type has a &amp;quot;job_output&amp;quot; field, which currently stores an empty results.txt file which can be modified to do another action later. For now, the inputs uploaded, and the output file name specified by the user gets stored in the file system under the path that I mentioned in point 6.&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=TLDR&amp;diff=12570</id>
		<title>TLDR</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=TLDR&amp;diff=12570"/>
		<updated>2020-05-27T00:53:16Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UCSF Tools 2018 (tools18.docking.org) is a web-based interface to molecular docking and related tools.&lt;br /&gt;
The system currently consists of a dozen apps.  We plan to support dozens, perhaps a hundred all told.&lt;br /&gt;
Here we list the apps you can currently use, with usage notes. &lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
== Analog == &lt;br /&gt;
The purpose of the analog app is to find analogs of your active compounds that you can use to explore SAR by catalog around your hits.&lt;br /&gt;
&lt;br /&gt;
This app requires: &lt;br /&gt;
* a starting molecule (one at a time for now)&lt;br /&gt;
* a tanimoto limit&lt;br /&gt;
* mwt and logP limits&lt;br /&gt;
* which bioisosteric replacements are acceptable (default all)&lt;br /&gt;
 &lt;br /&gt;
This app returns:&lt;br /&gt;
* 2D molecules within limits on molecular weight and logP (default 400 and 4.0 respectively) and tanimoto (default 0.5).&lt;br /&gt;
* Results are in three separate files. &lt;br /&gt;
** a. molecules you can buy according to ZINC&lt;br /&gt;
** b. molecules you can make or have made in one, two or three steps from commercially available building blocks&lt;br /&gt;
** c. molecules that are intriguingly similar but will require more synthetic effort.&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by the following other modules in Tools 18&lt;br /&gt;
* blaster, for docking. &lt;br /&gt;
* build 3d, to build docking libraries&lt;br /&gt;
* potentially covalent, depending on warhead&lt;br /&gt;
* cluster, to cluster the results&lt;br /&gt;
* dude, to generate decoys&lt;br /&gt;
* libanalysis, to get a detailed analysis of properties and targets&lt;br /&gt;
* report2d, to get a quick summary of physical and chemical properties&lt;br /&gt;
&lt;br /&gt;
status: Not working yet.&lt;br /&gt;
&lt;br /&gt;
== Blaster == &lt;br /&gt;
The purpose of the blaster app is to prepare a receptor for docking, including some basic analysis.&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* A structure for your receptor protein provided as a pdb file&lt;br /&gt;
* A binding site provided in one of the following ways: &lt;br /&gt;
  1) Supply ligand in binding site&lt;br /&gt;
  2) Provide binding site residues&lt;br /&gt;
  3) Use a program to identify all potential binding sites.  Choose which of the binding sites to test or test them all.&lt;br /&gt;
&lt;br /&gt;
The app returns:&lt;br /&gt;
* dockfiles, which may be used for large library docking&lt;br /&gt;
* workfiles, which may be used for grid and sphere optimization.&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* asdf&lt;br /&gt;
* sef&lt;br /&gt;
* sdfafd&lt;br /&gt;
&lt;br /&gt;
Status: works. (equivalent of blastermaster.py)&lt;br /&gt;
&lt;br /&gt;
== Build3D == &lt;br /&gt;
Works&lt;br /&gt;
&lt;br /&gt;
== Covalent == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status: Works with special cases only. Nearly ready to use.  If interested, ask jji for assistance. &lt;br /&gt;
&lt;br /&gt;
== Cluster == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Works. &lt;br /&gt;
&lt;br /&gt;
== DUDE-Z == &lt;br /&gt;
Purpose: Assemble decoys for docking using the DUDEZ approach. See http://dudez.docking.org for sample data&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* Ligands provided in smiles format (actives.smi)&lt;br /&gt;
* Current default parameters are shown in the following decoy_generation.in file:&lt;br /&gt;
&lt;br /&gt;
PROTONATE YES&lt;br /&gt;
&lt;br /&gt;
MWT 0 125&lt;br /&gt;
&lt;br /&gt;
LOGP 0 3.6&lt;br /&gt;
&lt;br /&gt;
RB 0 5&lt;br /&gt;
&lt;br /&gt;
HBA 0 4&lt;br /&gt;
&lt;br /&gt;
HBD 0 3&lt;br /&gt;
&lt;br /&gt;
CHARGE 0 0&lt;br /&gt;
&lt;br /&gt;
LIGAND TC RANGE 0.0 0.35&lt;br /&gt;
&lt;br /&gt;
MINIMUM DECOYS PER LIGAND 20&lt;br /&gt;
&lt;br /&gt;
DECOYS PER LIGAND 50&lt;br /&gt;
&lt;br /&gt;
MAXIMUM TC BETWEEN DECOYS 0.8&lt;br /&gt;
&lt;br /&gt;
TANIMOTO YES&lt;br /&gt;
&lt;br /&gt;
See http://wiki.docking.org/index.php/Generating_decoys_(Reed%27s_way) for an explanation of what these parameters mean and how DUDE-Z works.&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* List of decoys&lt;br /&gt;
&lt;br /&gt;
Status:  Nearly ready to use.  Awaiting advice from Reed&lt;br /&gt;
&lt;br /&gt;
== Libanalysis == &lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== Reaction == &lt;br /&gt;
&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Works at a basic level, with minor caveats.&lt;br /&gt;
* need to handle mwt and logP cutoff parametrically.&lt;br /&gt;
* needs work to handle millions of molecules&lt;br /&gt;
* needs work to connect to reagents, reactions and schemes&lt;br /&gt;
&lt;br /&gt;
== Report2d ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== Shape ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
Search for similar shape molecules for ligands&lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status:  Not working yet&lt;br /&gt;
&lt;br /&gt;
== ZINCbatch ==&lt;br /&gt;
Purpose: &lt;br /&gt;
&lt;br /&gt;
This app requires:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
This app returns:&lt;br /&gt;
* asdf&lt;br /&gt;
&lt;br /&gt;
The output of this app can be used by:&lt;br /&gt;
* adsfasdf&lt;br /&gt;
&lt;br /&gt;
Status: Not working yet&lt;br /&gt;
&lt;br /&gt;
= Technical info = &lt;br /&gt;
&lt;br /&gt;
== starting the server in single-threaded mode == &lt;br /&gt;
 source /mnt/nfs/work/chinzo/Projects/BlasterX_supritha/venv/bin/activate&lt;br /&gt;
 python code/DOCKBlaster/autoapp.py&lt;br /&gt;
&lt;br /&gt;
== How to add new module ==&lt;br /&gt;
See [[Add Tools18 module]]&lt;br /&gt;
== Supported field types == &lt;br /&gt;
 For now, the model accepts &amp;quot;text_box&amp;quot;, &amp;quot;check_box&amp;quot;, &amp;quot;drop_down&amp;quot; , &amp;quot;radio_button&amp;quot;,  and so on&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;type&amp;quot; is &amp;quot;text_box&amp;quot;, it can contain a text or number with a min and a max range. If there is a min and a max range, then they have to be mentioned as &amp;quot;value_type&amp;quot;: &amp;quot;number&amp;quot;, &amp;quot;value_range&amp;quot;: {&amp;quot;min_value&amp;quot;: 0.1,&amp;quot;max_value&amp;quot;: 0.99} as in parameters.json for cluster.&lt;br /&gt;
If &amp;quot;type&amp;quot; is &amp;quot;text_box&amp;quot; and &amp;quot;value_type&amp;quot; is &amp;quot;text&amp;quot;, then it is a normal text box with no range or validations.&lt;br /&gt;
6. Every input mentioned under the key &amp;quot;inputs&amp;quot; has a field called &amp;quot;file_name&amp;quot;, which the name by which the input file uploaded/filled by the user gets stored in the file system at /nfs/ex7/blaster/jobs/JobID%10/Jobname_jobID folder. &lt;br /&gt;
&lt;br /&gt;
7. Every job type has a &amp;quot;job_output&amp;quot; field, which currently stores an empty results.txt file which can be modified to do another action later. For now, the inputs uploaded, and the output file name specified by the user gets stored in the file system under the path that I mentioned in point 6.&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12471</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12471"/>
		<updated>2020-04-17T22:29:36Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction https://github.com/docking-org/ZINC21-Tools=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  &lt;br /&gt;
&lt;br /&gt;
See github repo https://github.com/docking-org/ZINC21-Tools&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==(If you are using our cluster) Source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html==&lt;br /&gt;
Read the section : How to install RDKit with Conda.  Once you do &lt;br /&gt;
    conda activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
    conda install -c conda-forge tqdm&lt;br /&gt;
&lt;br /&gt;
You are ready to run the Python script.&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The input smiles file should have the following 2 columns&lt;br /&gt;
*smiles&lt;br /&gt;
*ID&lt;br /&gt;
&lt;br /&gt;
    python rdkit_hlogp_batch_mp.py &amp;lt;smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output file will be a file with the name &amp;lt;smiles_file&amp;gt;_hlogp and will have the following 3 columns&lt;br /&gt;
* original smiles&lt;br /&gt;
* original ID&lt;br /&gt;
* HxxPyyy HxxMyyy&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12470</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12470"/>
		<updated>2020-04-17T22:29:19Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  &lt;br /&gt;
&lt;br /&gt;
See github repo https://github.com/docking-org/ZINC21-Tools&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==(If you are using our cluster) Source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html==&lt;br /&gt;
Read the section : How to install RDKit with Conda.  Once you do &lt;br /&gt;
    conda activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
    conda install -c conda-forge tqdm&lt;br /&gt;
&lt;br /&gt;
You are ready to run the Python script.&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The input smiles file should have the following 2 columns&lt;br /&gt;
*smiles&lt;br /&gt;
*ID&lt;br /&gt;
&lt;br /&gt;
    python rdkit_hlogp_batch_mp.py &amp;lt;smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output file will be a file with the name &amp;lt;smiles_file&amp;gt;_hlogp and will have the following 3 columns&lt;br /&gt;
* original smiles&lt;br /&gt;
* original ID&lt;br /&gt;
* HxxPyyy HxxMyyy&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Rdkit_hlogp_batch.py&amp;diff=12447</id>
		<title>Rdkit hlogp batch.py</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Rdkit_hlogp_batch.py&amp;diff=12447"/>
		<updated>2020-04-15T19:15:41Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
###########################&lt;br /&gt;
# Written by Jennifer Young            &lt;br /&gt;
# Last revised April 2020                &lt;br /&gt;
# Version 1.0                                    &lt;br /&gt;
###########################&lt;br /&gt;
&lt;br /&gt;
from __future__ import print_function&lt;br /&gt;
import pdb&lt;br /&gt;
import itertools&lt;br /&gt;
import sys&lt;br /&gt;
import shlex&lt;br /&gt;
import subprocess&lt;br /&gt;
&lt;br /&gt;
from rdkit.Chem import (&lt;br /&gt;
            MolFromSmiles,&lt;br /&gt;
            MolToSmiles,&lt;br /&gt;
            AddHs,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
from rdkit.Chem.SaltRemover import (&lt;br /&gt;
            SaltRemover&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
from rdkit.Chem.Descriptors import MolLogP, MolWt&lt;br /&gt;
&lt;br /&gt;
def scale_logp_value(logp):&lt;br /&gt;
    if logp &amp;lt; -9.0:&lt;br /&gt;
        logp = -9.0&lt;br /&gt;
    elif logp &amp;gt; 9.0:&lt;br /&gt;
        logp = 9.0&lt;br /&gt;
    elif logp &amp;lt; 0 or logp &amp;gt;= 5.0:&lt;br /&gt;
        logp = 100*int(logp)&lt;br /&gt;
    elif logp &amp;gt;= 0.0 or logp &amp;lt; 1:&lt;br /&gt;
        logp = 10*int(10*logp)&lt;br /&gt;
    elif logp &amp;gt;= 1.0 or logp &amp;lt; 4:&lt;br /&gt;
        logp = int(100*logp)&lt;br /&gt;
    elif logp &amp;gt;=4 or logp &amp;lt; 5:&lt;br /&gt;
        logp = 10*int(10*logp)&lt;br /&gt;
    return logp&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    if len(sys.argv) != 3:&lt;br /&gt;
        print(&#039;Usage: python rdkit_hlogp_batch.py &amp;lt;smiles&amp;gt; &amp;lt;batch_size&amp;gt;&#039;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    BATCH_SIZE = int(sys.argv[2])&lt;br /&gt;
    hlogp_list = list()&lt;br /&gt;
    with open(sys.argv[1]) as smiles_file:&lt;br /&gt;
        file_lines = smiles_file.readlines()&lt;br /&gt;
        for line in file_lines:&lt;br /&gt;
            if line.strip():&lt;br /&gt;
                smiles, cid = str(line).strip().split()[:2]&lt;br /&gt;
                mol = MolFromSmiles(smiles)&lt;br /&gt;
                remover = SaltRemover()&lt;br /&gt;
                res, deleted = remover.StripMolWithDeleted(mol)&lt;br /&gt;
                if res is not None:&lt;br /&gt;
                    res.SetProp(&#039;_Name&#039;, cid)&lt;br /&gt;
                logp = MolLogP(res)&lt;br /&gt;
                num_heavy_atoms = res.GetNumHeavyAtoms()&lt;br /&gt;
                if num_heavy_atoms &amp;gt; 99:&lt;br /&gt;
                    num_heavy_atoms = 99&lt;br /&gt;
                scaled_logp = scale_logp_value(logp)&lt;br /&gt;
                if logp &amp;lt; 0.0:&lt;br /&gt;
                    sign = &#039;M&#039;&lt;br /&gt;
                    #remove the minus sign so it&#039;s not printed&lt;br /&gt;
                    scaled_logp = scaled_logp * -1&lt;br /&gt;
                else:&lt;br /&gt;
                    sign = &#039;P&#039;&lt;br /&gt;
                key_string = &#039;H{:02}{}{:03}&#039;.format(num_heavy_atoms, sign, scaled_logp)&lt;br /&gt;
&lt;br /&gt;
                #store in list up to batch size, then write out to new file&lt;br /&gt;
                final_string = &#039;{0} {1} {2}\n&#039;.format(smiles, cid, key_string)&lt;br /&gt;
                hlogp_list.append(final_string)&lt;br /&gt;
&lt;br /&gt;
                #write the key string to the file&lt;br /&gt;
                if len(hlogp_list) &amp;gt;= BATCH_SIZE:&lt;br /&gt;
                    with open(&#039;{0}_hlogp&#039;.format(sys.argv[1]), &#039;a+&#039;) as category_file:&lt;br /&gt;
                        for entry in hlogp_list:&lt;br /&gt;
                            category_file.write(&#039;{0}&#039;.format(entry))&lt;br /&gt;
                    #clear list because we already wrote these&lt;br /&gt;
                    hlogp_list = list()&lt;br /&gt;
    #write remaining molecules to file&lt;br /&gt;
    for entry in hlogp_list:&lt;br /&gt;
        with open(&#039;{0}_hlogp&#039;.format(sys.argv[1]), &#039;a+&#039;) as category_file:&lt;br /&gt;
                for entry in hlogp_list:&lt;br /&gt;
                    category_file.write(&#039;{0}&#039;.format(entry))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12443</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12443"/>
		<updated>2020-04-15T17:25:00Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==(If you are using our cluster) Source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html==&lt;br /&gt;
Read the section : How to install RDKit with Conda.  Once you do &lt;br /&gt;
    conda activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
You are ready to run the Python script.&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
The input smiles file should have the following 2 columns&lt;br /&gt;
*smiles&lt;br /&gt;
*ID&lt;br /&gt;
&lt;br /&gt;
See python script http://wiki.docking.org/index.php/Rdkit_hlogp_batch.py for reference&lt;br /&gt;
&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output file will be a file with the name &amp;lt;smiles_file&amp;gt;_hlogp and will have the following 3 columns&lt;br /&gt;
* original smiles&lt;br /&gt;
* original ID&lt;br /&gt;
* HxxPyyy HxxMyyy&lt;br /&gt;
&lt;br /&gt;
=Sample Bash script for running on many smiles files=&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following script which is reproduced below.&lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12441</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12441"/>
		<updated>2020-04-14T21:38:57Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==(If you are using our cluster) Source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html==&lt;br /&gt;
Read the section : How to install RDKit with Conda.  Once you do &lt;br /&gt;
    conda activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
You are ready to run the Python script.&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
The input smiles file should have the following 2 columns&lt;br /&gt;
*smiles&lt;br /&gt;
*ID&lt;br /&gt;
&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output file will be a file with the name &amp;lt;smiles_file&amp;gt;_hlogp and will have the following 3 columns&lt;br /&gt;
* original smiles&lt;br /&gt;
* original ID&lt;br /&gt;
* HxxPyyy HxxMyyy&lt;br /&gt;
&lt;br /&gt;
=Sample Bash script for running on many smiles files=&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following script which is reproduced below.&lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12440</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12440"/>
		<updated>2020-04-14T21:15:14Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==(If you are using our cluster) Source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html==&lt;br /&gt;
Read the section : How to install RDKit with Conda.  Once you do &lt;br /&gt;
    conda activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
You are ready to run the Python script.&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sample Bash script for running on many smiles files=&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following script which is reproduced below.&lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12439</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12439"/>
		<updated>2020-04-14T21:13:36Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==(If you are using our cluster) Source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html==&lt;br /&gt;
Read the section : How to install RDKit with Conda.  Once you do &lt;br /&gt;
    conda activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
You are ready to run the Python script.&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Bash script for running on many smiles files==&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following script which is reproduced below.&lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12438</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12438"/>
		<updated>2020-04-14T21:12:50Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==Create or source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html&lt;br /&gt;
Read the section : How to install RDKit with Conda.  Once you do &lt;br /&gt;
    conda activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
You are ready to run the Python script.&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Bash script for running on many smiles files==&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following script which is reproduced below.&lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12437</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12437"/>
		<updated>2020-04-14T21:11:03Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==Create or source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Bash script for running on many smiles files==&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following script which is reproduced below.&lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12436</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12436"/>
		<updated>2020-04-14T21:10:29Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==Source conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
If you need to create a conda environment, follow the instructions at https://rdkit.org/docs/Install.html&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Bash script for running on many smiles files==&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following script which is reproduced below.&lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12435</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12435"/>
		<updated>2020-04-14T21:00:37Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==Create and/or source a conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Bash script for running on many smiles files==&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following script which is reproduced below.&lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12434</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12434"/>
		<updated>2020-04-14T21:00:04Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* Sample Bash script for running on many smiles files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==Create and/or source a conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Bash script for running on many smiles files==&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12433</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12433"/>
		<updated>2020-04-14T20:59:51Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==Create and/or source a conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
==Run Python script with the desired arguments==&lt;br /&gt;
The smiles file and batch size are command line arguments.  If you choose a batch size of 10,000, the output file will be written to after each batch of 10,000 molecules is processed.&lt;br /&gt;
    python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py &amp;lt;smiles_file&amp;gt; &amp;lt;batch_size&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Bash script for running on many smiles files==&lt;br /&gt;
If your smiles file is large, split into chunks of 1 million (or whatever your desired size).  &lt;br /&gt;
    split -l 1000000 &amp;lt;your_smiles&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/runall.sh &lt;br /&gt;
&lt;br /&gt;
Change the x?? to the desired pattern and change the batch size to the desired value.&lt;br /&gt;
&lt;br /&gt;
    #!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
    for i in x??;&lt;br /&gt;
    do&lt;br /&gt;
&lt;br /&gt;
       source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;br /&gt;
&lt;br /&gt;
       python /nfs/home/jyoung/code/fine_tranche_hlogp_scripts/rdkit_hlogp_batch.py $i 10000&lt;br /&gt;
    done&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12432</id>
		<title>ZINC22:Fine Tranching with RDKit using Heavy Atom Count and LogP</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC22:Fine_Tranching_with_RDKit_using_Heavy_Atom_Count_and_LogP&amp;diff=12432"/>
		<updated>2020-04-14T20:54:18Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: Created page with &amp;quot;Written by Jennifer Young on April 14, 2020   =Introduction= These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 14, 2020 &lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
These scripts perform fine tranching with RDKit to compute the heavy atom count and logP for each molecule and put it in a bucket of the form HxxPyyy for positive valued logp (i.e. 0 &amp;lt; logp) and HxxMyyy for negative valued logp (i.e. logp &amp;lt; 0).  The scripts are located in &lt;br /&gt;
    /nfs/home/jyoung/code/fine_tranche_hlogp_scripts&lt;br /&gt;
&lt;br /&gt;
=How to run=&lt;br /&gt;
&lt;br /&gt;
==Create and/or source a conda environment for RDKit==&lt;br /&gt;
If you are using our cluster, there is already a conda environment with RDKit available and you just need to source it using the following command.  You need to use bash.&lt;br /&gt;
     bash &lt;br /&gt;
&lt;br /&gt;
    source /mnt/nfs/home/devtest/anaconda3/bin/activate my-rdkit-env&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12423</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12423"/>
		<updated>2020-04-08T18:31:30Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* List of Publicly Available Maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
    alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
    c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
    Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
&lt;br /&gt;
Find updated list of maps&lt;br /&gt;
http://sw.docking.org/search/maps&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12422</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12422"/>
		<updated>2020-04-08T18:29:26Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* Example Request */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
    alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
    c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
    Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-19Q4-301K&lt;br /&gt;
* BB-Stock-19Q4-1.6M&lt;br /&gt;
* In-Stock-19Q4-13.8M&lt;br /&gt;
* ZINC-All-For-Sale-19Q4-1.4B&lt;br /&gt;
*ZINC-All-19Q4-1.4B&lt;br /&gt;
*BB-all-for-sale-19Q4-26M&lt;br /&gt;
*Wait-OK-19Q4-1.1B&lt;br /&gt;
*WorldDrugs-20Q1-3004&lt;br /&gt;
*WuXi-19Q4-115M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12421</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12421"/>
		<updated>2020-04-08T18:29:06Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* Example Request */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
    alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
    c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
    Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-19Q4-301K&lt;br /&gt;
* BB-Stock-19Q4-1.6M&lt;br /&gt;
* In-Stock-19Q4-13.8M&lt;br /&gt;
* ZINC-All-For-Sale-19Q4-1.4B&lt;br /&gt;
*ZINC-All-19Q4-1.4B&lt;br /&gt;
*BB-all-for-sale-19Q4-26M&lt;br /&gt;
*Wait-OK-19Q4-1.1B&lt;br /&gt;
*WorldDrugs-20Q1-3004&lt;br /&gt;
*WuXi-19Q4-115M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12420</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12420"/>
		<updated>2020-04-08T18:13:25Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* The SmallWorld API provides the following additional entry points: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
    alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
    c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
    Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-19Q4-301K&lt;br /&gt;
* BB-Stock-19Q4-1.6M&lt;br /&gt;
* In-Stock-19Q4-13.8M&lt;br /&gt;
* ZINC-All-For-Sale-19Q4-1.4B&lt;br /&gt;
*ZINC-All-19Q4-1.4B&lt;br /&gt;
*BB-all-for-sale-19Q4-26M&lt;br /&gt;
*Wait-OK-19Q4-1.1B&lt;br /&gt;
*WorldDrugs-20Q1-3004&lt;br /&gt;
*WuXi-19Q4-115M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12419</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12419"/>
		<updated>2020-04-08T18:12:29Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* List of Publicly Available Maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
    alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
    c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
    Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-19Q4-301K&lt;br /&gt;
* BB-Stock-19Q4-1.6M&lt;br /&gt;
* In-Stock-19Q4-13.8M&lt;br /&gt;
* ZINC-All-For-Sale-19Q4-1.4B&lt;br /&gt;
*ZINC-All-19Q4-1.4B&lt;br /&gt;
*BB-all-for-sale-19Q4-26M&lt;br /&gt;
*Wait-OK-19Q4-1.1B&lt;br /&gt;
*WorldDrugs-20Q1-3004&lt;br /&gt;
*WuXi-19Q4-115M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12418</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12418"/>
		<updated>2020-04-08T18:03:34Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* List of Publicly Available Maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
    alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
    c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
    Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-19Q4-301K&lt;br /&gt;
* BB-Stock-19Q4-1.6M&lt;br /&gt;
* In-Stock-19Q4-13.8M&lt;br /&gt;
* ZINC-All-For-Sale-19Q4-1.4B&lt;br /&gt;
*ZINC-All-19Q4-1.4B&lt;br /&gt;
*BB-all-for-sale-19Q4-26M&lt;br /&gt;
*ZINC-On-Demand-1B&lt;br /&gt;
*GDB13-977M&lt;br /&gt;
*Wait-OK-1B&lt;br /&gt;
*WuXi-58.6M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12417</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12417"/>
		<updated>2020-04-08T18:00:07Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* Example Request */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
    alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
    c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
    Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
    Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-297K&lt;br /&gt;
* BB-Stock-1.5M&lt;br /&gt;
* In-Stock-13.9M&lt;br /&gt;
* ZINC-All-For-Sale-1.2B&lt;br /&gt;
*ZINC-All-1.2B&lt;br /&gt;
*BB-all-for-sale-18M&lt;br /&gt;
*ZINC-On-Demand-1B&lt;br /&gt;
*GDB13-977M&lt;br /&gt;
*Wait-OK-1B&lt;br /&gt;
*WuXi-58.6M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12416</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12416"/>
		<updated>2020-04-08T17:59:48Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* Example Request */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
    alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
    c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
    Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
   Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
   Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
   Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-297K&lt;br /&gt;
* BB-Stock-1.5M&lt;br /&gt;
* In-Stock-13.9M&lt;br /&gt;
* ZINC-All-For-Sale-1.2B&lt;br /&gt;
*ZINC-All-1.2B&lt;br /&gt;
*BB-all-for-sale-18M&lt;br /&gt;
*ZINC-On-Demand-1B&lt;br /&gt;
*GDB13-977M&lt;br /&gt;
*Wait-OK-1B&lt;br /&gt;
*WuXi-58.6M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12415</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12415"/>
		<updated>2020-04-08T17:59:26Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=4&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
The result should be a tab-separated file.  An example of the first 5 rows of data is shown below:&lt;br /&gt;
alignment   dist    ecfp4   daylight    topodist    mces    tdn tup rdn rup ldn lup mut maj min hyb sub&lt;br /&gt;
c1ccccc1 ZINC000000967532   0   1.0 1.0 0   6   0   0   0   0   0   0   0   0   0   0   0&lt;br /&gt;
Cc1ccccc1 ZINC000000967534  1   0.25    0.5 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
Clc1ccccc1 ZINC000000896527 1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
Nc1ccccc1 ZINC000017886255  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
Oc1ccccc1 ZINC000005133329  1   0.25    0.46153846153846156 1   6   0   1   0   0   0   0   0   0   0   0   1&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-297K&lt;br /&gt;
* BB-Stock-1.5M&lt;br /&gt;
* In-Stock-13.9M&lt;br /&gt;
* ZINC-All-For-Sale-1.2B&lt;br /&gt;
*ZINC-All-1.2B&lt;br /&gt;
*BB-all-for-sale-18M&lt;br /&gt;
*ZINC-On-Demand-1B&lt;br /&gt;
*GDB13-977M&lt;br /&gt;
*Wait-OK-1B&lt;br /&gt;
*WuXi-58.6M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12414</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12414"/>
		<updated>2020-04-08T17:53:42Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written June 2019, last edited April 2020&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export).&lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-19Q4-301K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039;&lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:41.50935658255791}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:148.02130720196192}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:3.282822525335502}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:21.226566994030474}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:186,&amp;quot;numNodes&amp;quot;:124,&amp;quot;numWaveFront&amp;quot;:139,&amp;quot;numEdgesPerSec&amp;quot;:70.66031825799395}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;2.7 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:135.50838359982603}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:69.01339726395788}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;5.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:76.56265813644858}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;7.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:56.37474193026946}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;8.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:52.941425238087234}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;10.8 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:40.87295825851863}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;11.3 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:40.56744993960358}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:34.86240072055839}&lt;br /&gt;
    data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:4,&amp;quot;elap&amp;quot;:&amp;quot;13.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:179.35768786209644}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 4.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-297K&lt;br /&gt;
* BB-Stock-1.5M&lt;br /&gt;
* In-Stock-13.9M&lt;br /&gt;
* ZINC-All-For-Sale-1.2B&lt;br /&gt;
*ZINC-All-1.2B&lt;br /&gt;
*BB-all-for-sale-18M&lt;br /&gt;
*ZINC-On-Demand-1B&lt;br /&gt;
*GDB13-977M&lt;br /&gt;
*Wait-OK-1B&lt;br /&gt;
*WuXi-58.6M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation_on_CentOS_6&amp;diff=12293</id>
		<title>Tomcat Installation on CentOS 6</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation_on_CentOS_6&amp;diff=12293"/>
		<updated>2020-02-20T21:02:37Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on July 11, 2019. Last modified on February 20, 2020&lt;br /&gt;
&lt;br /&gt;
=This wiki page should really be named Tomcat Installation on CentOS 6=&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
The Tomcat server runs on n-9-22 on port 8080.&lt;br /&gt;
&lt;br /&gt;
==What if n-9-22 is restarted / rebooted?==&lt;br /&gt;
Tomcat should automatically start up whenever n-9-22 reboots.  To check if tomcat is running, you can use &lt;br /&gt;
    ps -ef | grep tomcat&lt;br /&gt;
&lt;br /&gt;
Tomcat Instance 1&lt;br /&gt;
    su - tomcat&lt;br /&gt;
    cd ../tomcat_instance_1/bin&lt;br /&gt;
    ./startup.sh&lt;br /&gt;
&lt;br /&gt;
==Where to get information if the server is currently running?==&lt;br /&gt;
The Tomcat server runs on n-9-22 on port 8080.  If the server is currently running, you can access the Tomcat GUI with links to the official documentation for the currently installed version and links to the manager app and more at the following link:&lt;br /&gt;
    http://10.20.9.22:8080/&lt;br /&gt;
Since this link is on the private network, you must be logged in using the SSH tunnel to access it.&lt;br /&gt;
&lt;br /&gt;
From here you can click the button Manager App to access the manager page, or simply go to &lt;br /&gt;
    http://10.20.9.22:8080/manager/html&lt;br /&gt;
&lt;br /&gt;
The user name is admin.  The password is the usual password.&lt;br /&gt;
This page allows you to start and stop applications individually and deploy new applications.&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Tomcat, the official documentation for the currently installed version is available here:&lt;br /&gt;
    http://10.20.9.22:8080/docs/&lt;br /&gt;
If the server, is offline, look for the documentation for Tomcat 9.0.17.  This was the most recent version of Tomcat at the time of installation.&lt;br /&gt;
&lt;br /&gt;
The current public version of SmallWorld is &lt;br /&gt;
    /sw-ws&lt;br /&gt;
&lt;br /&gt;
Click the stop button to stop SmallWorld and the start button to start it.  Do not click undeploy unless you want to start SmallWorld with new source in the form of a new .war file.&lt;br /&gt;
&lt;br /&gt;
==Install and Set Up on TomCat==&lt;br /&gt;
===Step 1: Check the CentOS version and Java version ===&lt;br /&gt;
SmallWorld currently runs on n-9-22, which runs CentOS 6.10.  You can check the version of CentOS with the following command:&lt;br /&gt;
    cat /etc/centos-release&lt;br /&gt;
&lt;br /&gt;
Check your current version of Java with the following command:&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
If you do not have the correct version, install it using yum.&lt;br /&gt;
Follow the steps on this tutorial https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-apache-tomcat-7-0-on-rhel-6-centos-6.html&lt;br /&gt;
&lt;br /&gt;
===Step 2: Create Tomcat Service Account===&lt;br /&gt;
This must be done as a root user and has already been done for n-9-22.&lt;br /&gt;
    groupadd tomcat&lt;br /&gt;
    mkdir /opt/tomcat&lt;br /&gt;
    useradd -g tomcat -d /opt/tomcat tomcat&lt;br /&gt;
&lt;br /&gt;
===Step 3: Create Initialization Script to Control Apache TomCat===&lt;br /&gt;
Download the latest version of Apache TomCat from the website https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
    vi /etc/init.d/tomcat9&lt;br /&gt;
&lt;br /&gt;
Copy the bash script from here&lt;br /&gt;
https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-apache-tomcat-7-0-on-rhel-6-centos-6.html&lt;br /&gt;
&lt;br /&gt;
==How to Restart the TomCat Server==&lt;br /&gt;
&lt;br /&gt;
Login to n-9-22 as root and run the screen called tomcat.  You don&#039;t need to be in a screen to run this command, but I have the screen just to keep the tomcat commands in one place.&lt;br /&gt;
&lt;br /&gt;
To restart, use&lt;br /&gt;
&lt;br /&gt;
    service tomcat9 restart&lt;br /&gt;
&lt;br /&gt;
To start and stop separately, use&lt;br /&gt;
&lt;br /&gt;
   service tomcat9 start&lt;br /&gt;
&lt;br /&gt;
   service tomcat9 stop&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation_on_CentOS_6&amp;diff=12292</id>
		<title>Tomcat Installation on CentOS 6</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation_on_CentOS_6&amp;diff=12292"/>
		<updated>2020-02-20T21:02:21Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on July 11, 2019. Last modified on February 20, 2020&lt;br /&gt;
&lt;br /&gt;
This wiki page should really be named Tomcat Installation on CentOS 6&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
The Tomcat server runs on n-9-22 on port 8080.&lt;br /&gt;
&lt;br /&gt;
==What if n-9-22 is restarted / rebooted?==&lt;br /&gt;
Tomcat should automatically start up whenever n-9-22 reboots.  To check if tomcat is running, you can use &lt;br /&gt;
    ps -ef | grep tomcat&lt;br /&gt;
&lt;br /&gt;
Tomcat Instance 1&lt;br /&gt;
    su - tomcat&lt;br /&gt;
    cd ../tomcat_instance_1/bin&lt;br /&gt;
    ./startup.sh&lt;br /&gt;
&lt;br /&gt;
==Where to get information if the server is currently running?==&lt;br /&gt;
The Tomcat server runs on n-9-22 on port 8080.  If the server is currently running, you can access the Tomcat GUI with links to the official documentation for the currently installed version and links to the manager app and more at the following link:&lt;br /&gt;
    http://10.20.9.22:8080/&lt;br /&gt;
Since this link is on the private network, you must be logged in using the SSH tunnel to access it.&lt;br /&gt;
&lt;br /&gt;
From here you can click the button Manager App to access the manager page, or simply go to &lt;br /&gt;
    http://10.20.9.22:8080/manager/html&lt;br /&gt;
&lt;br /&gt;
The user name is admin.  The password is the usual password.&lt;br /&gt;
This page allows you to start and stop applications individually and deploy new applications.&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Tomcat, the official documentation for the currently installed version is available here:&lt;br /&gt;
    http://10.20.9.22:8080/docs/&lt;br /&gt;
If the server, is offline, look for the documentation for Tomcat 9.0.17.  This was the most recent version of Tomcat at the time of installation.&lt;br /&gt;
&lt;br /&gt;
The current public version of SmallWorld is &lt;br /&gt;
    /sw-ws&lt;br /&gt;
&lt;br /&gt;
Click the stop button to stop SmallWorld and the start button to start it.  Do not click undeploy unless you want to start SmallWorld with new source in the form of a new .war file.&lt;br /&gt;
&lt;br /&gt;
==Install and Set Up on TomCat==&lt;br /&gt;
===Step 1: Check the CentOS version and Java version ===&lt;br /&gt;
SmallWorld currently runs on n-9-22, which runs CentOS 6.10.  You can check the version of CentOS with the following command:&lt;br /&gt;
    cat /etc/centos-release&lt;br /&gt;
&lt;br /&gt;
Check your current version of Java with the following command:&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
If you do not have the correct version, install it using yum.&lt;br /&gt;
Follow the steps on this tutorial https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-apache-tomcat-7-0-on-rhel-6-centos-6.html&lt;br /&gt;
&lt;br /&gt;
===Step 2: Create Tomcat Service Account===&lt;br /&gt;
This must be done as a root user and has already been done for n-9-22.&lt;br /&gt;
    groupadd tomcat&lt;br /&gt;
    mkdir /opt/tomcat&lt;br /&gt;
    useradd -g tomcat -d /opt/tomcat tomcat&lt;br /&gt;
&lt;br /&gt;
===Step 3: Create Initialization Script to Control Apache TomCat===&lt;br /&gt;
Download the latest version of Apache TomCat from the website https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
    vi /etc/init.d/tomcat9&lt;br /&gt;
&lt;br /&gt;
Copy the bash script from here&lt;br /&gt;
https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-apache-tomcat-7-0-on-rhel-6-centos-6.html&lt;br /&gt;
&lt;br /&gt;
==How to Restart the TomCat Server==&lt;br /&gt;
&lt;br /&gt;
Login to n-9-22 as root and run the screen called tomcat.  You don&#039;t need to be in a screen to run this command, but I have the screen just to keep the tomcat commands in one place.&lt;br /&gt;
&lt;br /&gt;
To restart, use&lt;br /&gt;
&lt;br /&gt;
    service tomcat9 restart&lt;br /&gt;
&lt;br /&gt;
To start and stop separately, use&lt;br /&gt;
&lt;br /&gt;
   service tomcat9 start&lt;br /&gt;
&lt;br /&gt;
   service tomcat9 stop&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Arthor_Documentation_for_Future_Developer&amp;diff=12250</id>
		<title>Arthor Documentation for Future Developer</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Arthor_Documentation_for_Future_Developer&amp;diff=12250"/>
		<updated>2020-01-30T23:30:05Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on December 16, 2019. Last edited January 30, 2020&lt;br /&gt;
&lt;br /&gt;
==Install and Set Up on TomCat==&lt;br /&gt;
Arthor currently runs on n-1-136, which runs CentOS Linux release 7.7.1908 (Core).  You can check the version of CentOS with the following command&lt;br /&gt;
     cat /etc/centos-release&lt;br /&gt;
&lt;br /&gt;
Check your current version of Java with the following command:&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
On n-1-136 we are running openjdk version &amp;quot;1.8.0_222&amp;quot;, OpenJDK Runtime Environment (build 1.8.0_222-b10), and OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)&lt;br /&gt;
If Java is not installed, install it using yum&lt;br /&gt;
&lt;br /&gt;
==See this wiki page for more detailed information about installing Tomcat on our cluster==&lt;br /&gt;
http://wiki.docking.org/index.php/Tomcat_Installation&lt;br /&gt;
&lt;br /&gt;
==Open port for Arthor==&lt;br /&gt;
In order for Arthor to be usable in the browser, the port you wish to run it on must be opened.&lt;br /&gt;
https://www.thegeekdiary.com/how-to-open-a-ports-in-centos-rhel-7/&lt;br /&gt;
&lt;br /&gt;
===Step 1: Check Port Status===&lt;br /&gt;
Check that the port is not open and that Apache is not showing that port. &lt;br /&gt;
    netstat -na | grep &amp;lt;port number you are checking&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    lsof -i -P |grep http&lt;br /&gt;
&lt;br /&gt;
===Step 2: Check Port Status in IP Tables===&lt;br /&gt;
    iptables-save | grep &amp;lt;port number you are checking&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I skipped Step 3 from the guide, because there was a lot of information in the /etc/services file and I didn&#039;t want to edit it and break something.&lt;br /&gt;
&lt;br /&gt;
===Step 4: Open Firewall Ports===&lt;br /&gt;
I did not include the zone=public section because the stand-alone servers are usually used for private instances of Arthor and SmallWorld.&lt;br /&gt;
Run as root.&lt;br /&gt;
    firewall-cmd --add-port=&amp;lt;port number you are adding&amp;gt;/tcp --permanent&lt;br /&gt;
&lt;br /&gt;
You need to reload the firewall after a change is made.&lt;br /&gt;
    firewall-cmd --reload&lt;br /&gt;
&lt;br /&gt;
==How to run standalone Arthor instance==&lt;br /&gt;
&lt;br /&gt;
===Step 1: Use or start a bash shell===&lt;br /&gt;
You can check your default shell using&lt;br /&gt;
    echo $SHELL&lt;br /&gt;
&lt;br /&gt;
If your default shell is csh, use &lt;br /&gt;
    bash&lt;br /&gt;
to start a new bash shell in the current terminal window.  Note that echo $SHELL will show you your default shell regardless of the current shell.&lt;br /&gt;
&lt;br /&gt;
===Step 2: Set your environment variables===&lt;br /&gt;
    export ARTHOR_DIR=/opt/nextmove/arthor/arthor-3.0-rt-beta-linux&lt;br /&gt;
    export PATH=$ARTHOR_DIR/bin/:$PATH&lt;br /&gt;
&lt;br /&gt;
Make sure the ARTHOR_DIR variable is set to the directory for the latest version of Arthor or whichever version you would like to test.&lt;br /&gt;
The PATH environment variable is needed if you wish to use the Arthor tools from the command line&lt;br /&gt;
&lt;br /&gt;
===Step 3: Run the arthor-server.jar===&lt;br /&gt;
    java -jar /opt/nextmove/arthor/arthor-3.0-rt-beta-linux/java/arthor-server.jar --httpPort &amp;lt;your httpPort&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setting environment variables for TomCat Server==&lt;br /&gt;
Set the environment variables in the setenv.sh file.  Note: Be sure to edit the file in the directory corresponding to the latest version of TomCat.  As of December 2019, we are running 9.0.27 on n-1-136.&lt;br /&gt;
&lt;br /&gt;
   vim  /opt/tomcat/apache-tomcat-9.0.27/bin/setenv.sh&lt;br /&gt;
&lt;br /&gt;
Add the line below to the setenv.sh file above, or substitute the path to wherever you currently store the arthor.cfg file&lt;br /&gt;
   export ARTHOR_CONFIG=/usr/local/tomcat/arthor.cfg&lt;br /&gt;
&lt;br /&gt;
Here is an example of the arthor.cfg file:&lt;br /&gt;
   # Arthor generated config file&lt;br /&gt;
   BINDIR=/opt/nextmove/arthor/arthor-2.1.2-centos7/bin&lt;br /&gt;
   DATADIR=/usr/local/tomcat/arthor_data&lt;br /&gt;
   STAGEDIR=/usr/local/arthor_data/stage&lt;br /&gt;
   NTHREADS=64 . &lt;br /&gt;
   NODEAFFINITY=true&lt;br /&gt;
   SearchAsYouDraw=true&lt;br /&gt;
   AutomaticIndex=true&lt;br /&gt;
   DEPICTION=./depict/bot/svg?w=%w&amp;amp;h=%h&amp;amp;svgunits=px&amp;amp;smi=%s&amp;amp;zoom=0.8&amp;amp;sma=%m&amp;amp;smalim=1&lt;br /&gt;
   RESOLVER=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important parts of the arthor.cfg file&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BINDIR&#039;&#039;&#039; is the location of the Arthor command line binaries.  These are used to generate the Arthor index files and to perform searches directly on n-1-136.  An example of this would be using atdbgrep for substructure search. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DATADIR&#039;&#039;&#039; This is the directory where the Arthor data files live.  Location where the index files will be created and loaded from.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;STAGEDIR&#039;&#039;&#039; Location where the index files will be built before being moved into the DATADIR.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NTHREADS&#039;&#039;&#039; The number of threads to use for both ATDB and ATFP searches&lt;br /&gt;
&lt;br /&gt;
Set &#039;&#039;&#039;AutomaticIndex&#039;&#039;&#039; to false if you don&#039;t want new smiles files added to the data directory to be indexed automatically&lt;br /&gt;
&lt;br /&gt;
==Setting up Round Table==&lt;br /&gt;
This is a new feature in Arthor 3.0 and is currently beta (January 2020). See section 2.4 in the manual&lt;br /&gt;
As explained in the manual, &amp;quot;Round Table allows you to serve and split chemical searches across multiple host machines.  The implementation provides a lightweight proxy that forwards requests to other Arthor host servers that do the actual search.  Communication is done using the existing Web APIs.&lt;br /&gt;
&lt;br /&gt;
Since Arthor requires CentOS 7, as of January 2020 we have 6 servers that are capable of running Arthor with Round Table.  See the table below for the machines currently involved in Round Table&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CentOS 7 Machine&lt;br /&gt;
! Private IP&lt;br /&gt;
! Arthor Install Location&lt;br /&gt;
! Round Table Data Directory&lt;br /&gt;
|-&lt;br /&gt;
| n-1-136&lt;br /&gt;
| 10.20.10.136&lt;br /&gt;
| /opt/nextmove/arthor/arthor-3.0-rt-beta-linux&lt;br /&gt;
| N/A. Round Table Server&lt;br /&gt;
|-&lt;br /&gt;
| abacus&lt;br /&gt;
| 10.20.0.5&lt;br /&gt;
| /opt/nextmove/arthor/arthor-3.0-rt-beta-linux&lt;br /&gt;
| /export/db2/arthor_round_table_abacus&lt;br /&gt;
|-&lt;br /&gt;
| shin&lt;br /&gt;
| 10.20.0.1&lt;br /&gt;
| /opt/nextmove/arthor/arthor-3.0-rt-beta-linux&lt;br /&gt;
| /export/db/arthor&lt;br /&gt;
|-&lt;br /&gt;
| zayin&lt;br /&gt;
| 10.20.0.2&lt;br /&gt;
| /opt/nextmove/arthor/arthor-3.0-rt-beta-linux&lt;br /&gt;
| /export/exa/work/jyoung/arthor_round_table_zayin&lt;br /&gt;
|- &lt;br /&gt;
| qof&lt;br /&gt;
| 10.20.9.29&lt;br /&gt;
| /opt/nextmove/arthor/arthor-3.0-rt-beta-linux&lt;br /&gt;
| /export/ex9/work/jyoung/arthor_data_qof/data&lt;br /&gt;
|-&lt;br /&gt;
| lamed&lt;br /&gt;
| 10.20.9.15&lt;br /&gt;
| /opt/nextmove/arthor/arthor-3.0-rt-beta-linux&lt;br /&gt;
| /export/ex6/work/jyoung&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12241</id>
		<title>Tomcat Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12241"/>
		<updated>2020-01-22T22:07:45Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* Important: Create setenv.sh for environment variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 17, 2020&lt;br /&gt;
&lt;br /&gt;
[[Category: Tomcat]] [[Category: Smallworld]] [[Category: Nextmove]] [[Category: Arthor]] [[Category: Sysadmin]]&lt;br /&gt;
&lt;br /&gt;
This guide is for CentOS 7.  Taken from https://phoenixnap.com/kb/install-tomcat-9-on-centos-7 with some modifications.&lt;br /&gt;
&lt;br /&gt;
=Step 0: Make sure Tomcat is not already installed=&lt;br /&gt;
Run as root&lt;br /&gt;
    systemctl status tomcat&lt;br /&gt;
&lt;br /&gt;
If you get an error saying there was no tomcat.service file found, then Tomcat has not yet been installed on this machine.&lt;br /&gt;
&lt;br /&gt;
=Step 1: Make sure Java is running on your machine=&lt;br /&gt;
&lt;br /&gt;
Check if java is already installed on your machine with&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
You should get something that looks similar to this:&lt;br /&gt;
openjdk version &amp;quot;1.8.0_232&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0_232-b09)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)&lt;br /&gt;
&lt;br /&gt;
If java is not installed run the following (as root):&lt;br /&gt;
    yum install java-1.8.0-openjdk-devel&lt;br /&gt;
&lt;br /&gt;
=Step 2: Download the latest version of Tomcat from the website=&lt;br /&gt;
https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
==Copy the .tar.gz file into /tmp on your machine==&lt;br /&gt;
&lt;br /&gt;
==Create tomcat user and directory==&lt;br /&gt;
Tomcat should not be run as root.  Create a tomcat user with fewer privileges. This will also create the /opt/tomcat directory on the machine where all tomcat files will be stored&lt;br /&gt;
    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat&lt;br /&gt;
&lt;br /&gt;
==Extract the contents of the tar.gz file==&lt;br /&gt;
As of the writing of this page, the latest version of Tomcat 9 is 9.0.30&lt;br /&gt;
    tar -xvzf apache-tomcat-9.0.30.tar.gz&lt;br /&gt;
&lt;br /&gt;
Move the extracted files to /opt/tomcat&lt;br /&gt;
     sudo mv apache-tomcat-9.0.30 /opt/tomcat/&lt;br /&gt;
&lt;br /&gt;
Optional: Create symbolic link for updates&lt;br /&gt;
    ln –s /opt/tomcat/apache-tomcat-9.0.30 /opt/tomcat/latest&lt;br /&gt;
&lt;br /&gt;
==Modify Tomcat User Permissions==&lt;br /&gt;
    chown –R tomcat:tomcat /opt/tomcat&lt;br /&gt;
    sh -c &#039;chmod +x /opt/tomcat/latest/bin/*.sh&#039;&lt;br /&gt;
&lt;br /&gt;
==Create a System Unit File==&lt;br /&gt;
Create the tomcat.service file&lt;br /&gt;
    vim /etc/systemd/system/tomcat.service&lt;br /&gt;
&lt;br /&gt;
Paste the below into the file&lt;br /&gt;
    [Unit]&lt;br /&gt;
    Description=Tomcat 9 servlet container&lt;br /&gt;
    After=network.target&lt;br /&gt;
    [Service]&lt;br /&gt;
    Type=forking&lt;br /&gt;
    User=tomcat&lt;br /&gt;
    Group=tomcat&lt;br /&gt;
    Environment=&amp;quot;JAVA_HOME=/usr/lib/jvm/jre&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;JAVA_OPTS=-Djava.security.egd=file:///dev/urandom&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_BASE=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_HOME=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_OPTS=-Xms32G -Xmx32G -server -XX:+UseParallelGC&amp;quot;&lt;br /&gt;
    ExecStart=/opt/tomcat/latest/bin/startup.sh&lt;br /&gt;
    ExecStop=/opt/tomcat/latest/bin/shutdown.sh&lt;br /&gt;
    [Install]&lt;br /&gt;
    WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Change the Xms and Xmx according to how much memory you want to provide to Tomcat.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;br /&gt;
Refresh system&lt;br /&gt;
    systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Set the tomcat service to start on boot&lt;br /&gt;
    systemctl enable tomcat&lt;br /&gt;
&lt;br /&gt;
==Adjust the firewall==&lt;br /&gt;
    firewall-cmd --zone=public --permanent --add-port=8080/tcp&lt;br /&gt;
&lt;br /&gt;
    firewall-cmd --reload&lt;br /&gt;
&lt;br /&gt;
=Setup Web Management Interface=&lt;br /&gt;
==Change the Admin Username and Password==&lt;br /&gt;
    vim /opt/tomcat/latest/conf/tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Inside the &amp;lt;tomcat-users&amp;gt; &amp;lt;/tomcat-users&amp;gt; block add the following:&lt;br /&gt;
    &amp;lt;role rolename=&amp;quot;admin-gui&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;role rolename=&amp;quot;manager-gui&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;user username=&amp;quot;TomcatAdmin&amp;quot; password=&amp;quot;&amp;lt;put-a-good-password-here&amp;gt;&amp;quot; roles=&amp;quot;admin-gui,manager-gui&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Password for Tomcat on n-1-136 and others is the usual password&lt;br /&gt;
&lt;br /&gt;
==Modify context.xml to access the Tomcat manager in the browser==&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
In this file you will see the following line:&lt;br /&gt;
    &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
             allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important! Comment out that line like below:&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now do the same for the corresponding context.xml in the host-manager directory:&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
Comment out the valve statement again&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Finally, start tomcat==&lt;br /&gt;
    systemctl start tomcat&lt;br /&gt;
&lt;br /&gt;
==Now go to the IP address of your machine and port 8080 in the browser==&lt;br /&gt;
For n-1-136 the link is below.  This link will NOT work unless you are at UCSF or are using an ssh tunnel with Switchy Omega&lt;br /&gt;
    http://10.20.10.136:8080/&lt;br /&gt;
The Tomcat manager should appear in the browser&lt;br /&gt;
&lt;br /&gt;
==Go to the Manager App section==&lt;br /&gt;
There is a button in the upper right corner that says Manager app.  Go there and scroll down to the Deploy section.  Under Deploy, it says &amp;quot;select which .war file to load&amp;quot;&lt;br /&gt;
Add the arthor-server.war file or any other .war file you wish to deploy&lt;br /&gt;
&lt;br /&gt;
=Important: Create setenv.sh for environment variables=&lt;br /&gt;
If your program requires environment variables to run the best place to put them is in &lt;br /&gt;
    /opt/tomcat/apache-tomcat-9.0.30/bin/setenv.sh&lt;br /&gt;
&lt;br /&gt;
You will need to create that file yourself.&lt;br /&gt;
    vim setenv.sh&lt;br /&gt;
&lt;br /&gt;
In that file add your environment variables.  For example, Arthor requires the arthor.cfg file.  Example below shown for n-1-136&lt;br /&gt;
    export ARTHOR_CONFIG=/usr/local/tomcat/arthor.cfg&lt;br /&gt;
&lt;br /&gt;
Make the setenv.sh executable&lt;br /&gt;
    chmod +x setenv.sh&lt;br /&gt;
&lt;br /&gt;
Change ownership to tomcat&lt;br /&gt;
    chown tomcat:tomcat setenv.sh&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12240</id>
		<title>Tomcat Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12240"/>
		<updated>2020-01-22T22:07:35Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: /* Important: Create setenv.sh for environment variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 17, 2020&lt;br /&gt;
&lt;br /&gt;
[[Category: Tomcat]] [[Category: Smallworld]] [[Category: Nextmove]] [[Category: Arthor]] [[Category: Sysadmin]]&lt;br /&gt;
&lt;br /&gt;
This guide is for CentOS 7.  Taken from https://phoenixnap.com/kb/install-tomcat-9-on-centos-7 with some modifications.&lt;br /&gt;
&lt;br /&gt;
=Step 0: Make sure Tomcat is not already installed=&lt;br /&gt;
Run as root&lt;br /&gt;
    systemctl status tomcat&lt;br /&gt;
&lt;br /&gt;
If you get an error saying there was no tomcat.service file found, then Tomcat has not yet been installed on this machine.&lt;br /&gt;
&lt;br /&gt;
=Step 1: Make sure Java is running on your machine=&lt;br /&gt;
&lt;br /&gt;
Check if java is already installed on your machine with&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
You should get something that looks similar to this:&lt;br /&gt;
openjdk version &amp;quot;1.8.0_232&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0_232-b09)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)&lt;br /&gt;
&lt;br /&gt;
If java is not installed run the following (as root):&lt;br /&gt;
    yum install java-1.8.0-openjdk-devel&lt;br /&gt;
&lt;br /&gt;
=Step 2: Download the latest version of Tomcat from the website=&lt;br /&gt;
https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
==Copy the .tar.gz file into /tmp on your machine==&lt;br /&gt;
&lt;br /&gt;
==Create tomcat user and directory==&lt;br /&gt;
Tomcat should not be run as root.  Create a tomcat user with fewer privileges. This will also create the /opt/tomcat directory on the machine where all tomcat files will be stored&lt;br /&gt;
    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat&lt;br /&gt;
&lt;br /&gt;
==Extract the contents of the tar.gz file==&lt;br /&gt;
As of the writing of this page, the latest version of Tomcat 9 is 9.0.30&lt;br /&gt;
    tar -xvzf apache-tomcat-9.0.30.tar.gz&lt;br /&gt;
&lt;br /&gt;
Move the extracted files to /opt/tomcat&lt;br /&gt;
     sudo mv apache-tomcat-9.0.30 /opt/tomcat/&lt;br /&gt;
&lt;br /&gt;
Optional: Create symbolic link for updates&lt;br /&gt;
    ln –s /opt/tomcat/apache-tomcat-9.0.30 /opt/tomcat/latest&lt;br /&gt;
&lt;br /&gt;
==Modify Tomcat User Permissions==&lt;br /&gt;
    chown –R tomcat:tomcat /opt/tomcat&lt;br /&gt;
    sh -c &#039;chmod +x /opt/tomcat/latest/bin/*.sh&#039;&lt;br /&gt;
&lt;br /&gt;
==Create a System Unit File==&lt;br /&gt;
Create the tomcat.service file&lt;br /&gt;
    vim /etc/systemd/system/tomcat.service&lt;br /&gt;
&lt;br /&gt;
Paste the below into the file&lt;br /&gt;
    [Unit]&lt;br /&gt;
    Description=Tomcat 9 servlet container&lt;br /&gt;
    After=network.target&lt;br /&gt;
    [Service]&lt;br /&gt;
    Type=forking&lt;br /&gt;
    User=tomcat&lt;br /&gt;
    Group=tomcat&lt;br /&gt;
    Environment=&amp;quot;JAVA_HOME=/usr/lib/jvm/jre&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;JAVA_OPTS=-Djava.security.egd=file:///dev/urandom&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_BASE=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_HOME=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_OPTS=-Xms32G -Xmx32G -server -XX:+UseParallelGC&amp;quot;&lt;br /&gt;
    ExecStart=/opt/tomcat/latest/bin/startup.sh&lt;br /&gt;
    ExecStop=/opt/tomcat/latest/bin/shutdown.sh&lt;br /&gt;
    [Install]&lt;br /&gt;
    WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Change the Xms and Xmx according to how much memory you want to provide to Tomcat.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;br /&gt;
Refresh system&lt;br /&gt;
    systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Set the tomcat service to start on boot&lt;br /&gt;
    systemctl enable tomcat&lt;br /&gt;
&lt;br /&gt;
==Adjust the firewall==&lt;br /&gt;
    firewall-cmd --zone=public --permanent --add-port=8080/tcp&lt;br /&gt;
&lt;br /&gt;
    firewall-cmd --reload&lt;br /&gt;
&lt;br /&gt;
=Setup Web Management Interface=&lt;br /&gt;
==Change the Admin Username and Password==&lt;br /&gt;
    vim /opt/tomcat/latest/conf/tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Inside the &amp;lt;tomcat-users&amp;gt; &amp;lt;/tomcat-users&amp;gt; block add the following:&lt;br /&gt;
    &amp;lt;role rolename=&amp;quot;admin-gui&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;role rolename=&amp;quot;manager-gui&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;user username=&amp;quot;TomcatAdmin&amp;quot; password=&amp;quot;&amp;lt;put-a-good-password-here&amp;gt;&amp;quot; roles=&amp;quot;admin-gui,manager-gui&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Password for Tomcat on n-1-136 and others is the usual password&lt;br /&gt;
&lt;br /&gt;
==Modify context.xml to access the Tomcat manager in the browser==&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
In this file you will see the following line:&lt;br /&gt;
    &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
             allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important! Comment out that line like below:&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now do the same for the corresponding context.xml in the host-manager directory:&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
Comment out the valve statement again&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Finally, start tomcat==&lt;br /&gt;
    systemctl start tomcat&lt;br /&gt;
&lt;br /&gt;
==Now go to the IP address of your machine and port 8080 in the browser==&lt;br /&gt;
For n-1-136 the link is below.  This link will NOT work unless you are at UCSF or are using an ssh tunnel with Switchy Omega&lt;br /&gt;
    http://10.20.10.136:8080/&lt;br /&gt;
The Tomcat manager should appear in the browser&lt;br /&gt;
&lt;br /&gt;
==Go to the Manager App section==&lt;br /&gt;
There is a button in the upper right corner that says Manager app.  Go there and scroll down to the Deploy section.  Under Deploy, it says &amp;quot;select which .war file to load&amp;quot;&lt;br /&gt;
Add the arthor-server.war file or any other .war file you wish to deploy&lt;br /&gt;
&lt;br /&gt;
=Important: Create setenv.sh for environment variables=&lt;br /&gt;
If your program requires environment variables to run the best place to put them is in &lt;br /&gt;
    /opt/tomcat/apache-tomcat-9.0.30/bin/setenv.sh&lt;br /&gt;
&lt;br /&gt;
You will need to create that file yourself.&lt;br /&gt;
    vim setenv.sh&lt;br /&gt;
&lt;br /&gt;
In that file add your environment variables.  For example, Arthor requires the arthor.cfg file.  Example below shown for n-1-136&lt;br /&gt;
    export ARTHOR_CONFIG=/usr/local/tomcat/arthor.cfg&lt;br /&gt;
&lt;br /&gt;
Make the setenv.sh executable&lt;br /&gt;
    chmod +x setenv.sh&lt;br /&gt;
&lt;br /&gt;
Change ownership to tomcat&lt;br /&gt;
chown tomcat:tomcat setenv.sh&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12239</id>
		<title>Tomcat Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12239"/>
		<updated>2020-01-22T22:00:07Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 17, 2020&lt;br /&gt;
&lt;br /&gt;
[[Category: Tomcat]] [[Category: Smallworld]] [[Category: Nextmove]] [[Category: Arthor]] [[Category: Sysadmin]]&lt;br /&gt;
&lt;br /&gt;
This guide is for CentOS 7.  Taken from https://phoenixnap.com/kb/install-tomcat-9-on-centos-7 with some modifications.&lt;br /&gt;
&lt;br /&gt;
=Step 0: Make sure Tomcat is not already installed=&lt;br /&gt;
Run as root&lt;br /&gt;
    systemctl status tomcat&lt;br /&gt;
&lt;br /&gt;
If you get an error saying there was no tomcat.service file found, then Tomcat has not yet been installed on this machine.&lt;br /&gt;
&lt;br /&gt;
=Step 1: Make sure Java is running on your machine=&lt;br /&gt;
&lt;br /&gt;
Check if java is already installed on your machine with&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
You should get something that looks similar to this:&lt;br /&gt;
openjdk version &amp;quot;1.8.0_232&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0_232-b09)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)&lt;br /&gt;
&lt;br /&gt;
If java is not installed run the following (as root):&lt;br /&gt;
    yum install java-1.8.0-openjdk-devel&lt;br /&gt;
&lt;br /&gt;
=Step 2: Download the latest version of Tomcat from the website=&lt;br /&gt;
https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
==Copy the .tar.gz file into /tmp on your machine==&lt;br /&gt;
&lt;br /&gt;
==Create tomcat user and directory==&lt;br /&gt;
Tomcat should not be run as root.  Create a tomcat user with fewer privileges. This will also create the /opt/tomcat directory on the machine where all tomcat files will be stored&lt;br /&gt;
    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat&lt;br /&gt;
&lt;br /&gt;
==Extract the contents of the tar.gz file==&lt;br /&gt;
As of the writing of this page, the latest version of Tomcat 9 is 9.0.30&lt;br /&gt;
    tar -xvzf apache-tomcat-9.0.30.tar.gz&lt;br /&gt;
&lt;br /&gt;
Move the extracted files to /opt/tomcat&lt;br /&gt;
     sudo mv apache-tomcat-9.0.30 /opt/tomcat/&lt;br /&gt;
&lt;br /&gt;
Optional: Create symbolic link for updates&lt;br /&gt;
    ln –s /opt/tomcat/apache-tomcat-9.0.30 /opt/tomcat/latest&lt;br /&gt;
&lt;br /&gt;
==Modify Tomcat User Permissions==&lt;br /&gt;
    chown –R tomcat:tomcat /opt/tomcat&lt;br /&gt;
    sh -c &#039;chmod +x /opt/tomcat/latest/bin/*.sh&#039;&lt;br /&gt;
&lt;br /&gt;
==Create a System Unit File==&lt;br /&gt;
Create the tomcat.service file&lt;br /&gt;
    vim /etc/systemd/system/tomcat.service&lt;br /&gt;
&lt;br /&gt;
Paste the below into the file&lt;br /&gt;
    [Unit]&lt;br /&gt;
    Description=Tomcat 9 servlet container&lt;br /&gt;
    After=network.target&lt;br /&gt;
    [Service]&lt;br /&gt;
    Type=forking&lt;br /&gt;
    User=tomcat&lt;br /&gt;
    Group=tomcat&lt;br /&gt;
    Environment=&amp;quot;JAVA_HOME=/usr/lib/jvm/jre&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;JAVA_OPTS=-Djava.security.egd=file:///dev/urandom&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_BASE=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_HOME=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_OPTS=-Xms32G -Xmx32G -server -XX:+UseParallelGC&amp;quot;&lt;br /&gt;
    ExecStart=/opt/tomcat/latest/bin/startup.sh&lt;br /&gt;
    ExecStop=/opt/tomcat/latest/bin/shutdown.sh&lt;br /&gt;
    [Install]&lt;br /&gt;
    WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Change the Xms and Xmx according to how much memory you want to provide to Tomcat.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;br /&gt;
Refresh system&lt;br /&gt;
    systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Set the tomcat service to start on boot&lt;br /&gt;
    systemctl enable tomcat&lt;br /&gt;
&lt;br /&gt;
==Adjust the firewall==&lt;br /&gt;
    firewall-cmd --zone=public --permanent --add-port=8080/tcp&lt;br /&gt;
&lt;br /&gt;
    firewall-cmd --reload&lt;br /&gt;
&lt;br /&gt;
=Setup Web Management Interface=&lt;br /&gt;
==Change the Admin Username and Password==&lt;br /&gt;
    vim /opt/tomcat/latest/conf/tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Inside the &amp;lt;tomcat-users&amp;gt; &amp;lt;/tomcat-users&amp;gt; block add the following:&lt;br /&gt;
    &amp;lt;role rolename=&amp;quot;admin-gui&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;role rolename=&amp;quot;manager-gui&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;user username=&amp;quot;TomcatAdmin&amp;quot; password=&amp;quot;&amp;lt;put-a-good-password-here&amp;gt;&amp;quot; roles=&amp;quot;admin-gui,manager-gui&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Password for Tomcat on n-1-136 and others is the usual password&lt;br /&gt;
&lt;br /&gt;
==Modify context.xml to access the Tomcat manager in the browser==&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
In this file you will see the following line:&lt;br /&gt;
    &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
             allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important! Comment out that line like below:&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now do the same for the corresponding context.xml in the host-manager directory:&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
Comment out the valve statement again&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Finally, start tomcat==&lt;br /&gt;
    systemctl start tomcat&lt;br /&gt;
&lt;br /&gt;
==Now go to the IP address of your machine and port 8080 in the browser==&lt;br /&gt;
For n-1-136 the link is below.  This link will NOT work unless you are at UCSF or are using an ssh tunnel with Switchy Omega&lt;br /&gt;
    http://10.20.10.136:8080/&lt;br /&gt;
The Tomcat manager should appear in the browser&lt;br /&gt;
&lt;br /&gt;
==Go to the Manager App section==&lt;br /&gt;
There is a button in the upper right corner that says Manager app.  Go there and scroll down to the Deploy section.  Under Deploy, it says &amp;quot;select which .war file to load&amp;quot;&lt;br /&gt;
Add the arthor-server.war file or any other .war file you wish to deploy&lt;br /&gt;
&lt;br /&gt;
=Important: Create setenv.sh for environment variables=&lt;br /&gt;
If your program requires environment variables to run the best place to put them is in &lt;br /&gt;
    /opt/tomcat/apache-tomcat-9.0.30/bin/setenv.sh&lt;br /&gt;
&lt;br /&gt;
You will need to create that file yourself.&lt;br /&gt;
    vim setenv.sh&lt;br /&gt;
&lt;br /&gt;
In that file add your environment variables.  For example, Arthor requires the arthor.cfg file.  Example below shown for n-1-136&lt;br /&gt;
    export ARTHOR_CONFIG=/usr/local/tomcat/arthor.cfg&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12238</id>
		<title>Tomcat Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12238"/>
		<updated>2020-01-22T21:58:10Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 17, 2020&lt;br /&gt;
&lt;br /&gt;
[[Category: Tomcat]] [[Category: Smallworld]] [[Category: Nextmove]] [[Category: Arthor]] [[Category: Sysadmin]]&lt;br /&gt;
&lt;br /&gt;
This guide is for CentOS 7.  Taken from https://phoenixnap.com/kb/install-tomcat-9-on-centos-7 with some modifications.&lt;br /&gt;
&lt;br /&gt;
=Step 0: Make sure Tomcat is not already installed=&lt;br /&gt;
Run as root&lt;br /&gt;
    systemctl status tomcat&lt;br /&gt;
&lt;br /&gt;
If you get an error saying there was no tomcat.service file found, then Tomcat has not yet been installed on this machine.&lt;br /&gt;
&lt;br /&gt;
=Step 1: Make sure Java is running on your machine=&lt;br /&gt;
&lt;br /&gt;
Check if java is already installed on your machine with&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
You should get something that looks similar to this:&lt;br /&gt;
openjdk version &amp;quot;1.8.0_232&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0_232-b09)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)&lt;br /&gt;
&lt;br /&gt;
If java is not installed run the following (as root):&lt;br /&gt;
    yum install java-1.8.0-openjdk-devel&lt;br /&gt;
&lt;br /&gt;
=Step 2: Download the latest version of Tomcat from the website=&lt;br /&gt;
https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
==Copy the .tar.gz file into /tmp on your machine==&lt;br /&gt;
&lt;br /&gt;
==Create tomcat user and directory==&lt;br /&gt;
Tomcat should not be run as root.  Create a tomcat user with fewer privileges. This will also create the /opt/tomcat directory on the machine where all tomcat files will be stored&lt;br /&gt;
    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat&lt;br /&gt;
&lt;br /&gt;
==Extract the contents of the tar.gz file==&lt;br /&gt;
As of the writing of this page, the latest version of Tomcat 9 is 9.0.30&lt;br /&gt;
    tar -xvzf apache-tomcat-9.0.30.tar.gz&lt;br /&gt;
&lt;br /&gt;
Move the extracted files to /opt/tomcat&lt;br /&gt;
     sudo mv apache-tomcat-9.0.30 /opt/tomcat/&lt;br /&gt;
&lt;br /&gt;
Optional: Create symbolic link for updates&lt;br /&gt;
    ln –s /opt/tomcat/apache-tomcat-9.0.30 /opt/tomcat/latest&lt;br /&gt;
&lt;br /&gt;
==Modify Tomcat User Permissions==&lt;br /&gt;
    chown –R tomcat:tomcat /opt/tomcat&lt;br /&gt;
    sh -c &#039;chmod +x /opt/tomcat/latest/bin/*.sh&#039;&lt;br /&gt;
&lt;br /&gt;
==Create a System Unit File==&lt;br /&gt;
Create the tomcat.service file&lt;br /&gt;
    vim /etc/systemd/system/tomcat.service&lt;br /&gt;
&lt;br /&gt;
Paste the below into the file&lt;br /&gt;
    [Unit]&lt;br /&gt;
    Description=Tomcat 9 servlet container&lt;br /&gt;
    After=network.target&lt;br /&gt;
    [Service]&lt;br /&gt;
    Type=forking&lt;br /&gt;
    User=tomcat&lt;br /&gt;
    Group=tomcat&lt;br /&gt;
    Environment=&amp;quot;JAVA_HOME=/usr/lib/jvm/jre&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;JAVA_OPTS=-Djava.security.egd=file:///dev/urandom&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_BASE=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_HOME=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_OPTS=-Xms32G -Xmx32G -server -XX:+UseParallelGC&amp;quot;&lt;br /&gt;
    ExecStart=/opt/tomcat/latest/bin/startup.sh&lt;br /&gt;
    ExecStop=/opt/tomcat/latest/bin/shutdown.sh&lt;br /&gt;
    [Install]&lt;br /&gt;
    WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Change the Xms and Xmx according to how much memory you want to provide to Tomcat.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;br /&gt;
Refresh system&lt;br /&gt;
    systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Set the tomcat service to start on boot&lt;br /&gt;
    systemctl enable tomcat&lt;br /&gt;
&lt;br /&gt;
==Adjust the firewall==&lt;br /&gt;
    firewall-cmd --zone=public --permanent --add-port=8080/tcp&lt;br /&gt;
&lt;br /&gt;
    firewall-cmd --reload&lt;br /&gt;
&lt;br /&gt;
=Setup Web Management Interface=&lt;br /&gt;
==Change the Admin Username and Password==&lt;br /&gt;
    vim /opt/tomcat/latest/conf/tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Inside the &amp;lt;tomcat-users&amp;gt; &amp;lt;/tomcat-users&amp;gt; block add the following:&lt;br /&gt;
&amp;lt;role rolename=&amp;quot;admin-gui&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;role rolename=&amp;quot;manager-gui&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;user username=&amp;quot;TomcatAdmin&amp;quot; password=&amp;quot;&amp;lt;put-a-good-password-here&amp;gt;&amp;quot; roles=&amp;quot;admin-gui,manager-gui&amp;quot;/&amp;gt; . Password for Tomcat on n-1-136 and others is the usual password&lt;br /&gt;
&lt;br /&gt;
==Modify context.xml to access the Tomcat manager in the browser==&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
In this file you will see the following line:&lt;br /&gt;
    &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
             allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important! Comment out that line like below:&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now do the same for the corresponding context.xml in the host-manager directory:&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
Comment out the valve statement again&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Finally, start tomcat==&lt;br /&gt;
    systemctl start tomcat&lt;br /&gt;
&lt;br /&gt;
==Now go to the IP address of your machine and port 8080 in the browser==&lt;br /&gt;
For n-1-136 the link is below.  This link will NOT work unless you are at UCSF or are using an ssh tunnel with Switchy Omega&lt;br /&gt;
    http://10.20.10.136:8080/&lt;br /&gt;
The Tomcat manager should appear in the browser&lt;br /&gt;
&lt;br /&gt;
==Go to the Manager App section==&lt;br /&gt;
There is a button in the upper right corner that says Manager app.  Go there and scroll down to the Deploy section.  Under Deploy, it says &amp;quot;select which .war file to load&amp;quot;&lt;br /&gt;
Add the arthor-server.war file or any other .war file you wish to deploy&lt;br /&gt;
&lt;br /&gt;
=Important: Create setenv.sh for environment variables=&lt;br /&gt;
If your program requires environment variables to run the best place to put them is in &lt;br /&gt;
    /opt/tomcat/apache-tomcat-9.0.30/bin/setenv.sh&lt;br /&gt;
&lt;br /&gt;
You will need to create that file yourself.&lt;br /&gt;
    vim setenv.sh&lt;br /&gt;
&lt;br /&gt;
In that file add your environment variables.  For example, Arthor requires the arthor.cfg file.  Example below shown for n-1-136&lt;br /&gt;
    export ARTHOR_CONFIG=/usr/local/tomcat/arthor.cfg&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12236</id>
		<title>Tomcat Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12236"/>
		<updated>2020-01-17T21:10:47Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 17, 2020&lt;br /&gt;
&lt;br /&gt;
[[Category: Tomcat]] [[Category: Smallworld]] [[Category: Nextmove]] [[Category: Arthor]] [[Category: Sysadmin]]&lt;br /&gt;
&lt;br /&gt;
This guide is for CentOS 7.  Taken from https://phoenixnap.com/kb/install-tomcat-9-on-centos-7 with some modifications.&lt;br /&gt;
&lt;br /&gt;
=Step 0: Make sure Tomcat is not already installed=&lt;br /&gt;
Run as root&lt;br /&gt;
    systemctl status tomcat&lt;br /&gt;
&lt;br /&gt;
If you get an error saying there was no tomcat.service file found, then Tomcat has not yet been installed on this machine.&lt;br /&gt;
&lt;br /&gt;
=Step 1: Make sure Java is running on your machine=&lt;br /&gt;
&lt;br /&gt;
Check if java is already installed on your machine with&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
You should get something that looks similar to this:&lt;br /&gt;
openjdk version &amp;quot;1.8.0_232&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0_232-b09)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)&lt;br /&gt;
&lt;br /&gt;
If java is not installed run the following (as root):&lt;br /&gt;
    yum install java-1.8.0-openjdk-devel&lt;br /&gt;
&lt;br /&gt;
=Step 2: Download the latest version of Tomcat from the website=&lt;br /&gt;
https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
==Copy the .tar.gz file into /tmp on your machine==&lt;br /&gt;
&lt;br /&gt;
==Create tomcat user and directory==&lt;br /&gt;
Tomcat should not be run as root.  Create a tomcat user with fewer privileges. This will also create the /opt/tomcat directory on the machine where all tomcat files will be stored&lt;br /&gt;
    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat&lt;br /&gt;
&lt;br /&gt;
==Extract the contents of the tar.gz file==&lt;br /&gt;
As of the writing of this page, the latest version of Tomcat 9 is 9.0.30&lt;br /&gt;
    tar -xvzf apache-tomcat-9.0.30.tar.gz&lt;br /&gt;
&lt;br /&gt;
Move the extracted files to /opt/tomcat&lt;br /&gt;
     sudo mv apache-tomcat-9.0.30 /opt/tomcat/&lt;br /&gt;
&lt;br /&gt;
Optional: Create symbolic link for updates&lt;br /&gt;
    ln –s /opt/tomcat/apache-tomcat-9.0.30 /opt/tomcat/latest&lt;br /&gt;
&lt;br /&gt;
==Modify Tomcat User Permissions==&lt;br /&gt;
    chown –R tomcat:tomcat /opt/tomcat&lt;br /&gt;
    sh -c &#039;chmod +x /opt/tomcat/latest/bin/*.sh&#039;&lt;br /&gt;
&lt;br /&gt;
==Create a System Unit File==&lt;br /&gt;
Create the tomcat.service file&lt;br /&gt;
    vim /etc/systemd/system/tomcat.service&lt;br /&gt;
&lt;br /&gt;
Paste the below into the file&lt;br /&gt;
    [Unit]&lt;br /&gt;
    Description=Tomcat 9 servlet container&lt;br /&gt;
    After=network.target&lt;br /&gt;
    [Service]&lt;br /&gt;
    Type=forking&lt;br /&gt;
    User=tomcat&lt;br /&gt;
    Group=tomcat&lt;br /&gt;
    Environment=&amp;quot;JAVA_HOME=/usr/lib/jvm/jre&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;JAVA_OPTS=-Djava.security.egd=file:///dev/urandom&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_BASE=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_HOME=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_OPTS=-Xms32G -Xmx32G -server -XX:+UseParallelGC&amp;quot;&lt;br /&gt;
    ExecStart=/opt/tomcat/latest/bin/startup.sh&lt;br /&gt;
    ExecStop=/opt/tomcat/latest/bin/shutdown.sh&lt;br /&gt;
    [Install]&lt;br /&gt;
    WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Change the Xms and Xmx according to how much memory you want to provide to Tomcat.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;br /&gt;
Refresh system&lt;br /&gt;
    systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Set the tomcat service to start on boot&lt;br /&gt;
    systemctl enable tomcat&lt;br /&gt;
&lt;br /&gt;
==Adjust the firewall==&lt;br /&gt;
    firewall-cmd --zone=public --permanent --add-port=8080/tcp&lt;br /&gt;
&lt;br /&gt;
    firewall-cmd –reload&lt;br /&gt;
&lt;br /&gt;
=Setup Web Management Interface=&lt;br /&gt;
==Change the Admin Username and Password==&lt;br /&gt;
    vim /opt/tomcat/latest/conf/tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Inside the &amp;lt;tomcat-users&amp;gt; &amp;lt;/tomcat-users&amp;gt; block add the following:&lt;br /&gt;
&amp;lt;role rolename=&amp;quot;admin-gui&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;role rolename=&amp;quot;manager-gui&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;user username=&amp;quot;TomcatAdmin&amp;quot; password=&amp;quot;&amp;lt;put-a-good-password-here&amp;gt;&amp;quot; roles=&amp;quot;admin-gui,manager-gui&amp;quot;/&amp;gt; . Password for Tomcat on n-1-136 and others is the usual password&lt;br /&gt;
&lt;br /&gt;
==Modify context.xml to access the Tomcat manager in the browser==&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
In this file you will see the following line:&lt;br /&gt;
    &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
             allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important! Comment out that line like below:&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now do the same for the corresponding context.xml in the host-manager directory:&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
Comment out the valve statement again&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Finally, start tomcat==&lt;br /&gt;
    systemctl start tomcat&lt;br /&gt;
&lt;br /&gt;
==Now go to the IP address of your machine and port 8080 in the browser==&lt;br /&gt;
For n-1-136 the link is below.  This link will NOT work unless you are at UCSF or are using an ssh tunnel with Switchy Omega&lt;br /&gt;
    http://10.20.10.136:8080/&lt;br /&gt;
The Tomcat manager should appear in the browser&lt;br /&gt;
&lt;br /&gt;
==Go to the Manager App section==&lt;br /&gt;
There is a button in the upper right corner that says Manager app.  Go there and scroll down to the Deploy section.  Under Deploy, it says &amp;quot;select which .war file to load&amp;quot;&lt;br /&gt;
Add the arthor-server.war file or any other .war file you wish to deploy&lt;br /&gt;
&lt;br /&gt;
=Important: Create setenv.sh for environment variables=&lt;br /&gt;
If your program requires environment variables to run the best place to put them is in &lt;br /&gt;
    /opt/tomcat/apache-tomcat-9.0.30/bin/setenv.sh&lt;br /&gt;
&lt;br /&gt;
You will need to create that file yourself.&lt;br /&gt;
    vim setenv.sh&lt;br /&gt;
&lt;br /&gt;
In that file add your environment variables.  For example, Arthor requires the arthor.cfg file.  Example below shown for n-1-136&lt;br /&gt;
    export ARTHOR_CONFIG=/usr/local/tomcat/arthor.cfg&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12235</id>
		<title>Tomcat Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12235"/>
		<updated>2020-01-17T21:04:23Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 17, 2020&lt;br /&gt;
&lt;br /&gt;
[[Category: Tomcat]] [[Category: Smallworld]] [[Category: Nextmove]] [[Category: Arthor]] [[Category: Sysadmin]]&lt;br /&gt;
&lt;br /&gt;
This guide is for CentOS 7.  Taken from https://phoenixnap.com/kb/install-tomcat-9-on-centos-7 with some modifications.&lt;br /&gt;
&lt;br /&gt;
=Step 0: Make sure Tomcat is not already installed=&lt;br /&gt;
Run as root&lt;br /&gt;
    systemctl status tomcat&lt;br /&gt;
&lt;br /&gt;
If you get an error saying there was no tomcat.service file found, then Tomcat has not yet been installed on this machine.&lt;br /&gt;
&lt;br /&gt;
=Step 1: Make sure Java is running on your machine=&lt;br /&gt;
&lt;br /&gt;
Check if java is already installed on your machine with&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
You should get something that looks similar to this:&lt;br /&gt;
openjdk version &amp;quot;1.8.0_232&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0_232-b09)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)&lt;br /&gt;
&lt;br /&gt;
If java is not installed run the following (as root):&lt;br /&gt;
    yum install java-1.8.0-openjdk-devel&lt;br /&gt;
&lt;br /&gt;
=Step 2: Download the latest version of Tomcat from the website=&lt;br /&gt;
https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
==Copy the .tar.gz file into /tmp on your machine==&lt;br /&gt;
&lt;br /&gt;
==Create tomcat user and directory==&lt;br /&gt;
Tomcat should not be run as root.  Create a tomcat user with fewer privileges. This will also create the /opt/tomcat directory on the machine where all tomcat files will be stored&lt;br /&gt;
    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat&lt;br /&gt;
&lt;br /&gt;
==Extract the contents of the tar.gz file==&lt;br /&gt;
As of the writing of this page, the latest version of Tomcat 9 is 9.0.30&lt;br /&gt;
    tar -xvzf apache-tomcat-9.0.30.tar.gz&lt;br /&gt;
&lt;br /&gt;
Move the extracted files to /opt/tomcat&lt;br /&gt;
     sudo mv apache-tomcat-9.0.30 /opt/tomcat/&lt;br /&gt;
&lt;br /&gt;
Optional: Create symbolic link for updates&lt;br /&gt;
    ln –s /opt/tomcat/apache-tomcat-9.0.30 /opt/tomcat/latest&lt;br /&gt;
&lt;br /&gt;
==Modify Tomcat User Permissions==&lt;br /&gt;
    chown –R tomcat:tomcat /opt/tomcat&lt;br /&gt;
    sh -c &#039;chmod +x /opt/tomcat/latest/bin/*.sh&#039;&lt;br /&gt;
&lt;br /&gt;
==Create a System Unit File==&lt;br /&gt;
Create the tomcat.service file&lt;br /&gt;
    vim /etc/systemd/system/tomcat.service&lt;br /&gt;
&lt;br /&gt;
Paste the below into the file&lt;br /&gt;
    [Unit]&lt;br /&gt;
    Description=Tomcat 9 servlet container&lt;br /&gt;
    After=network.target&lt;br /&gt;
    [Service]&lt;br /&gt;
    Type=forking&lt;br /&gt;
    User=tomcat&lt;br /&gt;
    Group=tomcat&lt;br /&gt;
    Environment=&amp;quot;JAVA_HOME=/usr/lib/jvm/jre&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;JAVA_OPTS=-Djava.security.egd=file:///dev/urandom&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_BASE=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_HOME=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_OPTS=-Xms32G -Xmx32G -server -XX:+UseParallelGC&amp;quot;&lt;br /&gt;
    ExecStart=/opt/tomcat/latest/bin/startup.sh&lt;br /&gt;
    ExecStop=/opt/tomcat/latest/bin/shutdown.sh&lt;br /&gt;
    [Install]&lt;br /&gt;
    WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Change the Xms and Xmx according to how much memory you want to provide to Tomcat.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;br /&gt;
Refresh system&lt;br /&gt;
    systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Set the tomcat service to start on boot&lt;br /&gt;
    systemctl enable tomcat&lt;br /&gt;
&lt;br /&gt;
==Adjust the firewall==&lt;br /&gt;
    firewall-cmd --zone=public --permanent --add-port=8080/tcp&lt;br /&gt;
&lt;br /&gt;
    firewall-cmd –reload&lt;br /&gt;
&lt;br /&gt;
=Setup Web Management Interface=&lt;br /&gt;
==Change the Admin Username and Password==&lt;br /&gt;
    vim /opt/tomcat/latest/conf/tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Inside the &amp;lt;tomcat-users&amp;gt; &amp;lt;/tomcat-users&amp;gt; block add the following:&lt;br /&gt;
&amp;lt;role rolename=&amp;quot;admin-gui&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;role rolename=&amp;quot;manager-gui&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;user username=&amp;quot;TomcatAdmin&amp;quot; password=&amp;quot;&amp;lt;put-a-good-password-here&amp;gt;&amp;quot; roles=&amp;quot;admin-gui,manager-gui&amp;quot;/&amp;gt; . Password for Tomcat on n-1-136 and others is the usual password&lt;br /&gt;
&lt;br /&gt;
==Modify context.xml to access the Tomcat manager in the browser==&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
In this file you will see the following line:&lt;br /&gt;
    &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
             allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important! Comment out that line like below:&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now do the same for the corresponding context.xml in the host-manager directory:&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
Comment out the valve statement again&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Finally, start tomcat==&lt;br /&gt;
    systemctl start tomcat&lt;br /&gt;
&lt;br /&gt;
==Now go to the IP address of your machine and port 8080 in the browser==&lt;br /&gt;
For n-1-136 the link is below.  This link will NOT work unless you are at UCSF or are using an ssh tunnel with Switchy Omega&lt;br /&gt;
    http://10.20.10.136:8080/&lt;br /&gt;
The Tomcat manager should appear in the browser&lt;br /&gt;
&lt;br /&gt;
==Go to the Manager App section==&lt;br /&gt;
There is a button in the upper right corner that says Manager app.  Go there and scroll down to the Deploy section.  Under Deploy, it says &amp;quot;select which .war file to load&amp;quot;&lt;br /&gt;
Add the arthor-server.war file or any other .war file you wish to deploy&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12234</id>
		<title>Tomcat Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12234"/>
		<updated>2020-01-17T21:02:59Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 17, 2020 (still in progress)&lt;br /&gt;
&lt;br /&gt;
This guide is for CentOS 7.  Taken from https://phoenixnap.com/kb/install-tomcat-9-on-centos-7 with some modifications.&lt;br /&gt;
&lt;br /&gt;
=Step 0: Make sure Tomcat is not already installed=&lt;br /&gt;
Run as root&lt;br /&gt;
    systemctl status tomcat&lt;br /&gt;
&lt;br /&gt;
If you get an error saying there was no tomcat.service file found, then Tomcat has not yet been installed on this machine.&lt;br /&gt;
&lt;br /&gt;
=Step 1: Make sure Java is running on your machine=&lt;br /&gt;
&lt;br /&gt;
Check if java is already installed on your machine with&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
You should get something that looks similar to this:&lt;br /&gt;
openjdk version &amp;quot;1.8.0_232&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0_232-b09)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)&lt;br /&gt;
&lt;br /&gt;
If java is not installed run the following (as root):&lt;br /&gt;
    yum install java-1.8.0-openjdk-devel&lt;br /&gt;
&lt;br /&gt;
=Step 2: Download the latest version of Tomcat from the website=&lt;br /&gt;
https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
==Copy the .tar.gz file into /tmp on your machine==&lt;br /&gt;
&lt;br /&gt;
==Create tomcat user and directory==&lt;br /&gt;
Tomcat should not be run as root.  Create a tomcat user with fewer privileges. This will also create the /opt/tomcat directory on the machine where all tomcat files will be stored&lt;br /&gt;
    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat&lt;br /&gt;
&lt;br /&gt;
==Extract the contents of the tar.gz file==&lt;br /&gt;
As of the writing of this page, the latest version of Tomcat 9 is 9.0.30&lt;br /&gt;
    tar -xvzf apache-tomcat-9.0.30.tar.gz&lt;br /&gt;
&lt;br /&gt;
Move the extracted files to /opt/tomcat&lt;br /&gt;
     sudo mv apache-tomcat-9.0.30 /opt/tomcat/&lt;br /&gt;
&lt;br /&gt;
Optional: Create symbolic link for updates&lt;br /&gt;
    ln –s /opt/tomcat/apache-tomcat-9.0.30 /opt/tomcat/latest&lt;br /&gt;
&lt;br /&gt;
==Modify Tomcat User Permissions==&lt;br /&gt;
    chown –R tomcat:tomcat /opt/tomcat&lt;br /&gt;
    sh -c &#039;chmod +x /opt/tomcat/latest/bin/*.sh&#039;&lt;br /&gt;
&lt;br /&gt;
==Create a System Unit File==&lt;br /&gt;
Create the tomcat.service file&lt;br /&gt;
    vim /etc/systemd/system/tomcat.service&lt;br /&gt;
&lt;br /&gt;
Paste the below into the file&lt;br /&gt;
    [Unit]&lt;br /&gt;
    Description=Tomcat 9 servlet container&lt;br /&gt;
    After=network.target&lt;br /&gt;
    [Service]&lt;br /&gt;
    Type=forking&lt;br /&gt;
    User=tomcat&lt;br /&gt;
    Group=tomcat&lt;br /&gt;
    Environment=&amp;quot;JAVA_HOME=/usr/lib/jvm/jre&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;JAVA_OPTS=-Djava.security.egd=file:///dev/urandom&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_BASE=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_HOME=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_OPTS=-Xms32G -Xmx32G -server -XX:+UseParallelGC&amp;quot;&lt;br /&gt;
    ExecStart=/opt/tomcat/latest/bin/startup.sh&lt;br /&gt;
    ExecStop=/opt/tomcat/latest/bin/shutdown.sh&lt;br /&gt;
    [Install]&lt;br /&gt;
    WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Change the Xms and Xmx according to how much memory you want to provide to Tomcat.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;br /&gt;
Refresh system&lt;br /&gt;
    systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
Set the tomcat service to start on boot&lt;br /&gt;
    systemctl enable tomcat&lt;br /&gt;
&lt;br /&gt;
==Adjust the firewall==&lt;br /&gt;
    firewall-cmd --zone=public --permanent --add-port=8080/tcp&lt;br /&gt;
&lt;br /&gt;
    firewall-cmd –reload&lt;br /&gt;
&lt;br /&gt;
=Setup Web Management Interface=&lt;br /&gt;
==Change the Admin Username and Password==&lt;br /&gt;
    vim /opt/tomcat/latest/conf/tomcat-users.xml&lt;br /&gt;
&lt;br /&gt;
Inside the &amp;lt;tomcat-users&amp;gt; &amp;lt;/tomcat-users&amp;gt; block add the following:&lt;br /&gt;
&amp;lt;role rolename=&amp;quot;admin-gui&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;role rolename=&amp;quot;manager-gui&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;user username=&amp;quot;TomcatAdmin&amp;quot; password=&amp;quot;&amp;lt;put-a-good-password-here&amp;gt;&amp;quot; roles=&amp;quot;admin-gui,manager-gui&amp;quot;/&amp;gt; . Password for Tomcat on n-1-136 and others is the usual password&lt;br /&gt;
&lt;br /&gt;
==Modify context.xml to access the Tomcat manager in the browser==&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
In this file you will see the following line:&lt;br /&gt;
    &amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
             allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important! Comment out that line like below:&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now do the same for the corresponding context.xml in the host-manager directory:&lt;br /&gt;
    vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml&lt;br /&gt;
&lt;br /&gt;
Comment out the valve statement again&lt;br /&gt;
    &amp;lt;!--&amp;lt;Valve className=&amp;quot;org.apache.catalina.valves.RemoteAddrValve&amp;quot;&lt;br /&gt;
         allow=&amp;quot;127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Finally, start tomcat==&lt;br /&gt;
    systemctl start tomcat&lt;br /&gt;
&lt;br /&gt;
==Now go to the IP address of your machine and port 8080 in the browser==&lt;br /&gt;
For n-1-136 the link is below.  This link will NOT work unless you are at UCSF or are using an ssh tunnel with Switchy Omega&lt;br /&gt;
    http://10.20.10.136:8080/&lt;br /&gt;
The Tomcat manager should appear in the browser&lt;br /&gt;
&lt;br /&gt;
==Go to the Manager App section==&lt;br /&gt;
There is a button in the upper right corner that says Manager app.  Go there and scroll down to the Deploy section.  Under Deploy, it says &amp;quot;select which .war file to load&amp;quot;&lt;br /&gt;
Add the arthor-server.war file or any other .war file you wish to deploy&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12233</id>
		<title>Tomcat Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tomcat_Installation&amp;diff=12233"/>
		<updated>2020-01-17T20:51:25Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: Created page with &amp;quot;Written by Jennifer Young on January 17, 2020 (still in progress)  This guide is for CentOS 7  =Step 0: Make sure Tomcat is not already installed= Run as root     systemctl st...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 17, 2020 (still in progress)&lt;br /&gt;
&lt;br /&gt;
This guide is for CentOS 7&lt;br /&gt;
&lt;br /&gt;
=Step 0: Make sure Tomcat is not already installed=&lt;br /&gt;
Run as root&lt;br /&gt;
    systemctl status tomcat&lt;br /&gt;
&lt;br /&gt;
If you get an error saying there was no tomcat.service file found, then Tomcat has not yet been installed on this machine.&lt;br /&gt;
&lt;br /&gt;
=Step 1: Make sure Java is running on your machine=&lt;br /&gt;
&lt;br /&gt;
Check if java is already installed on your machine with&lt;br /&gt;
    java -version&lt;br /&gt;
&lt;br /&gt;
You should get something that looks similar to this:&lt;br /&gt;
openjdk version &amp;quot;1.8.0_232&amp;quot;&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0_232-b09)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)&lt;br /&gt;
&lt;br /&gt;
If java is not installed run the following (as root):&lt;br /&gt;
    yum install java-1.8.0-openjdk-devel&lt;br /&gt;
&lt;br /&gt;
=Step 2: Download the latest version of Tomcat from the website=&lt;br /&gt;
https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
==Copy the .tar.gz file into /tmp on your machine==&lt;br /&gt;
&lt;br /&gt;
==Create tomcat user and directory==&lt;br /&gt;
Tomcat should not be run as root.  Create a tomcat user with fewer privileges. This will also create the /opt/tomcat directory on the machine where all tomcat files will be stored&lt;br /&gt;
    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat&lt;br /&gt;
&lt;br /&gt;
==Extract the contents of the tar.gz file==&lt;br /&gt;
As of the writing of this page, the latest version of Tomcat 9 is 9.0.30&lt;br /&gt;
    tar -xvzf apache-tomcat-9.0.30.tar.gz&lt;br /&gt;
&lt;br /&gt;
Move the extracted files to /opt/tomcat&lt;br /&gt;
     sudo mv apache-tomcat-9.0.30 /opt/tomcat/&lt;br /&gt;
&lt;br /&gt;
Optional: Create symbolic link for updates&lt;br /&gt;
    ln –s /opt/tomcat/apache-tomcat-9.0.30 /opt/tomcat/latest&lt;br /&gt;
&lt;br /&gt;
==Modify Tomcat User Permissions==&lt;br /&gt;
    chown –R tomcat:tomcat /opt/tomcat&lt;br /&gt;
    sh -c &#039;chmod +x /opt/tomcat/latest/bin/*.sh&#039;&lt;br /&gt;
&lt;br /&gt;
==Create a System Unit File==&lt;br /&gt;
Create the tomcat.service file&lt;br /&gt;
    vim /etc/systemd/system/tomcat.service&lt;br /&gt;
&lt;br /&gt;
Paste the below into the file&lt;br /&gt;
    [Unit]&lt;br /&gt;
    Description=Tomcat 9 servlet container&lt;br /&gt;
    After=network.target&lt;br /&gt;
    [Service]&lt;br /&gt;
    Type=forking&lt;br /&gt;
    User=tomcat&lt;br /&gt;
    Group=tomcat&lt;br /&gt;
    Environment=&amp;quot;JAVA_HOME=/usr/lib/jvm/jre&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;JAVA_OPTS=-Djava.security.egd=file:///dev/urandom&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_BASE=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_HOME=/opt/tomcat/latest&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid&amp;quot;&lt;br /&gt;
    Environment=&amp;quot;CATALINA_OPTS=-Xms32G -Xmx32G -server -XX:+UseParallelGC&amp;quot;&lt;br /&gt;
    ExecStart=/opt/tomcat/latest/bin/startup.sh&lt;br /&gt;
    ExecStop=/opt/tomcat/latest/bin/shutdown.sh&lt;br /&gt;
    [Install]&lt;br /&gt;
    WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
Change the Xms and Xmx according to how much memory you want to provide to Tomcat.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;br /&gt;
Refresh system&lt;br /&gt;
    systemctl daemon-reload&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12228</id>
		<title>How to Install SmartsEditor on CentOS6</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12228"/>
		<updated>2020-01-10T21:51:37Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 10, 2020&lt;br /&gt;
&lt;br /&gt;
==Step 1: Register==&lt;br /&gt;
See link here https://www.zbh.uni-hamburg.de/forschung/amd/software/smartseditor.html which says&lt;br /&gt;
&lt;br /&gt;
SMARTSeditor is part of the AMD tools software bundle. To download SMARTSeditor, register at https://software.zbh.uni-hamburg.de with your UCSF email&lt;br /&gt;
&lt;br /&gt;
==Step 2: Download RedHat 64 Bit Zip and extract==&lt;br /&gt;
They will email you with a link to log in and download Smarts Editor. Download the RedHat 64 Bit Zip from the website.  Important! Don&#039;t download the linux64 which is for Ubuntu.&lt;br /&gt;
&lt;br /&gt;
    tar xvzf SmartsEditor_2.2.0_CentOS-6.10-64bit.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Step 3: Run and enter license key==&lt;br /&gt;
Go into the directory after extracting and run SmartsEditor&lt;br /&gt;
    cd SmartsEditor_2.2.0&lt;br /&gt;
&lt;br /&gt;
    ./SmartsEditor&lt;br /&gt;
&lt;br /&gt;
In your browser where you downloaded the file, also download the license key.  Copy and paste the license key into the box.  The SmartsEditor GUI should appear on your desktop after that.&lt;br /&gt;
&lt;br /&gt;
[[Category: SmartsEditor]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12227</id>
		<title>How to Install SmartsEditor on CentOS6</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12227"/>
		<updated>2020-01-10T21:51:25Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on January 10, 2020&lt;br /&gt;
&lt;br /&gt;
==Step 1: Register==&lt;br /&gt;
See link here https://www.zbh.uni-hamburg.de/forschung/amd/software/smartseditor.html which says&lt;br /&gt;
&lt;br /&gt;
SMARTSeditor is part of the AMD tools software bundle. To download SMARTSeditor, register at https://software.zbh.uni-hamburg.de with your UCSF email&lt;br /&gt;
&lt;br /&gt;
==Step 2: Download RedHat 64 Bit Zip and extract==&lt;br /&gt;
They will email you with a link to log in and download Smarts Editor. Download the RedHat 64 Bit Zip from the website.  Important! Don&#039;t download the linux64 which is for Ubuntu.&lt;br /&gt;
&lt;br /&gt;
    tar xvzf SmartsEditor_2.2.0_CentOS-6.10-64bit.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Step 3: Run and enter license key==&lt;br /&gt;
Go into the directory after extracting and run SmartsEditor&lt;br /&gt;
    cd SmartsEditor_2.2.0&lt;br /&gt;
&lt;br /&gt;
    ./SmartsEditor&lt;br /&gt;
&lt;br /&gt;
In your browser where you downloaded the file, also download the license key.  Copy and paste the license key into the box.  The SmartsEditor GUI should appear on your desktop after that.&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12226</id>
		<title>How to Install SmartsEditor on CentOS6</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12226"/>
		<updated>2020-01-10T21:50:56Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Step 1: Register==&lt;br /&gt;
See link here https://www.zbh.uni-hamburg.de/forschung/amd/software/smartseditor.html which says&lt;br /&gt;
&lt;br /&gt;
SMARTSeditor is part of the AMD tools software bundle. To download SMARTSeditor, register at https://software.zbh.uni-hamburg.de with your UCSF email&lt;br /&gt;
&lt;br /&gt;
==Step 2: Download RedHat 64 Bit Zip and extract==&lt;br /&gt;
They will email you with a link to log in and download Smarts Editor. Download the RedHat 64 Bit Zip from the website.  Important! Don&#039;t download the linux64 which is for Ubuntu.&lt;br /&gt;
&lt;br /&gt;
    tar xvzf SmartsEditor_2.2.0_CentOS-6.10-64bit.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Step 3: Run and enter license key==&lt;br /&gt;
Go into the directory after extracting and run SmartsEditor&lt;br /&gt;
    cd SmartsEditor_2.2.0&lt;br /&gt;
&lt;br /&gt;
    ./SmartsEditor&lt;br /&gt;
&lt;br /&gt;
In your browser where you downloaded the file, also download the license key.  Copy and paste the license key into the box.  The SmartsEditor GUI should appear on your desktop after that.&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12225</id>
		<title>How to Install SmartsEditor on CentOS6</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12225"/>
		<updated>2020-01-10T21:49:24Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See link here https://www.zbh.uni-hamburg.de/forschung/amd/software/smartseditor.html which says&lt;br /&gt;
&lt;br /&gt;
SMARTSeditor is part of the AMD tools software bundle. To download SMARTSeditor, register at https://software.zbh.uni-hamburg.de with your UCSF email&lt;br /&gt;
&lt;br /&gt;
They will email you with a link to log in and download Smarts Editor. Download the RedHat 64 Bit Zip from the website.&lt;br /&gt;
&lt;br /&gt;
    tar xvzf SmartsEditor_2.2.0_CentOS-6.10-64bit.tar.gz&lt;br /&gt;
&lt;br /&gt;
Go into the directory after extracting and run SmartsEditor&lt;br /&gt;
    cd SmartsEditor_2.2.0&lt;br /&gt;
&lt;br /&gt;
    ./SmartsEditor&lt;br /&gt;
&lt;br /&gt;
In your browser where you downloaded the file, also download the license key.  Copy and paste the license key into the box.  The SmartsEditor GUI should appear on your desktop after that.&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12224</id>
		<title>How to Install SmartsEditor on CentOS6</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_Install_SmartsEditor_on_CentOS6&amp;diff=12224"/>
		<updated>2020-01-10T21:47:31Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: Created page with &amp;quot;Register at https://software.zbh.uni-hamburg.de with your UCSF email  They will email you with a link to log in and download Smarts Editor. Download the RedHat 64 Bit Zip from...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Register at https://software.zbh.uni-hamburg.de with your UCSF email&lt;br /&gt;
&lt;br /&gt;
They will email you with a link to log in and download Smarts Editor. Download the RedHat 64 Bit Zip from the website.&lt;br /&gt;
&lt;br /&gt;
    tar xvzf SmartsEditor_2.2.0_CentOS-6.10-64bit.tar.gz&lt;br /&gt;
&lt;br /&gt;
Go into the directory after extracting and run SmartsEditor&lt;br /&gt;
    cd SmartsEditor_2.2.0&lt;br /&gt;
&lt;br /&gt;
    ./SmartsEditor&lt;br /&gt;
&lt;br /&gt;
In your browser where you downloaded the file, also download the license key.  Copy and paste the license key into the box.  The SmartsEditor GUI should appear on your desktop after that.&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Creating_Maps_on_SmallWorld&amp;diff=12223</id>
		<title>Creating Maps on SmallWorld</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Creating_Maps_on_SmallWorld&amp;diff=12223"/>
		<updated>2020-01-09T00:11:27Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 10, 2019. Last modified on July 12, 2019&lt;br /&gt;
&lt;br /&gt;
==Install: The developer need only do this once.  For the user, skip to the Run section==&lt;br /&gt;
&lt;br /&gt;
===Step 1: Create the /sw directory===&lt;br /&gt;
SmallWorld requires a /sw directory which contains /anon and /maps&lt;br /&gt;
The /sw directory is located on n-9-22 in &lt;br /&gt;
    /srv/db4&lt;br /&gt;
&lt;br /&gt;
This directory contains:&lt;br /&gt;
&lt;br /&gt;
The /anon directory contains 12 TB of pre-computed subgraphs &lt;br /&gt;
&lt;br /&gt;
The /maps directory contains text files computed by SmallWorld that map your molecules of choice to the corresponding nodes in the anonymous graph index&lt;br /&gt;
&lt;br /&gt;
===Step 2: Find a location for the sw.jar file===&lt;br /&gt;
&lt;br /&gt;
Copy the sw.jar file to a reasonable location such as &lt;br /&gt;
    /opt/nextmove/sw.jar&lt;br /&gt;
&lt;br /&gt;
==Run==&lt;br /&gt;
===Important! Currently, we only run SmallWorld map generation on n-9-22===&lt;br /&gt;
Whenever running operations that are rough on the disk, only one one major operation at a time.  Also, use nice/renice and ionice to decrease the disruption to other lab members.&lt;br /&gt;
&lt;br /&gt;
You can adjust the priority of a running process using the process ID.  Look for the process ID like this&lt;br /&gt;
    ps aux | grep &amp;lt;something to help you find your process&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then use renice to change the priority&lt;br /&gt;
    renice -n +19 -p &amp;lt;PID&amp;gt;&lt;br /&gt;
Note that +19 is the lowest priority possible.  Consult the man page for more information.&lt;br /&gt;
&lt;br /&gt;
You can also use ionice to limit the io usage&lt;br /&gt;
   ionice -c 3 -p &amp;lt;PID&amp;gt;&lt;br /&gt;
Here the 3 represents idle.  Consult the man page for other options such as -c 2 which has different priority levels for best-effort scheduling&lt;br /&gt;
&lt;br /&gt;
==Step 1: Set SWDIR environment variable==&lt;br /&gt;
Determine where the /sw directory with the /anon and /maps directory and if using csh, set the SWDIR variable using &lt;br /&gt;
    setenv SWDIR /srv/db4&lt;br /&gt;
&lt;br /&gt;
If using bash, set the SWDIR variable using&lt;br /&gt;
    export SWDIR=/srv/db4&lt;br /&gt;
&lt;br /&gt;
==Step 2: Generate the map files for SMILES files LESS THAN 1 Billion==&lt;br /&gt;
For files larger than 1 Billion smiles, see the section for Processing Large Smiles Files in SmallWorld&lt;br /&gt;
&lt;br /&gt;
Run sw.jar to convert your smiles file into a map file. &lt;br /&gt;
&lt;br /&gt;
(Optional: use the time command to see how long this takes)&lt;br /&gt;
&lt;br /&gt;
(Optional: tee your results into a log file to check progress)&lt;br /&gt;
&lt;br /&gt;
Here is an example where wait-ok.smi is your .smi file to map:&lt;br /&gt;
    (time java -jar /opt/nextmove/sw.jar map /mnt/nfs/ex9/work/smallworld/wait-ok.smi &lt;br /&gt;
    -T /mnt/nfs/ex9/work/smallworld/scratch_sw &lt;br /&gt;
    -o /mnt/nfs/ex9/work/smallworld/wait-ok.anon.map &lt;br /&gt;
    -u /mnt/nfs/ex9/work/smallworld/wait-ok.anon.unmapped)&lt;br /&gt;
     |&amp;amp; tee /mnt/nfs/ex9/work/smallworld/wait-ok_log&lt;br /&gt;
&lt;br /&gt;
This is a long command, so we can break down the different parts.&lt;br /&gt;
&lt;br /&gt;
map   The SMILES file you want to map follows the word &amp;quot;map&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-T       This is the temp directory you want to write temp files to, rather than writing to /tmp&lt;br /&gt;
&lt;br /&gt;
-o       The final name of your output map file&lt;br /&gt;
&lt;br /&gt;
-u       Argument to keep track of the unmapped compounds.&lt;br /&gt;
&lt;br /&gt;
Important: The unmapped compounds file may be used to generate extensions and is the same as the .anon.ext.map file mentioned in the SmallWorld documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For now, generate the map files in the &lt;br /&gt;
    /mnt/nfs/ex9/work/smallworld &lt;br /&gt;
&lt;br /&gt;
directory so they can be easily moved to the maps directory when the server is restarted&lt;br /&gt;
&lt;br /&gt;
The sorting is done automatically when you generate the SmallWorld maps in a single step like this.&lt;br /&gt;
&lt;br /&gt;
==Step 2: Processing large SMILES files in SmallWorld GREATER THAN 1 Billion==&lt;br /&gt;
If your SMILES file contains more than 1 billion molecules, I think it is better to split the input in to chunks of 1 billion to avoid waiting too long to get intermediate results in case the job fails for some reason.&lt;br /&gt;
&lt;br /&gt;
===Step 1: Split the input file into chunks of 1 billion smiles===&lt;br /&gt;
    split -l 1000000000 &amp;lt;your-smiles-file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Step 2: Process the chunks in SmallWorld using the command above ===&lt;br /&gt;
Write a helper script to process these using a loop, usually one or two at a time to be mindful of disk overload.  An example is shown below.  Just modify the path and pattern to match your files.&lt;br /&gt;
    #!/bin/csh&lt;br /&gt;
    foreach j(/mnt/nfs/ex9/work/smallworld/REAL_SPACE_400_to_500/x??)&lt;br /&gt;
        echo $j&lt;br /&gt;
        echo &#039;(time java -jar /opt/nextmove/sw.jar map&#039; $j &#039;-T /mnt/nfs/ex9/work/smallworld/scratch_sw -o &#039;${j}&#039;.anon.map -u &#039;${j}&#039;.anon.unmapped) |&amp;amp; tee &#039;${j}&#039;_log&#039;&lt;br /&gt;
        (time java -jar /opt/nextmove/sw.jar map $j -T /mnt/nfs/ex9/work/smallworld/scratch_sw -o ${j}.anon.map -u ${j}.anon.unmapped) |&amp;amp; tee ${j}_log&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
Important: Make sure that the file you want to process only contains two columns.  The first column contains the SMILES and the second column contains the ID.&lt;br /&gt;
If this is not the case, you need to use &lt;br /&gt;
    awk &#039;{print $1&amp;quot;\t&amp;quot;$2}&#039;  &amp;lt;your file&amp;gt; &amp;gt; &amp;lt;your_file_smi_ID&amp;gt;&lt;br /&gt;
to get only these columns before processing with SmallWorld.&lt;br /&gt;
&lt;br /&gt;
===Step 3-4 Combined: Rather than concatenating and sorting, merge the map file chunks (assuming they are already sorted)===&lt;br /&gt;
Use the -T option on sort to set the temp directory of your choice.  If your file is large enough, the sort command needs scratch space to write temporary files to later merge.&lt;br /&gt;
&lt;br /&gt;
Adjust the matching in the loop rather than just using *.anon.map if you want to be more specific about the files you are combining&lt;br /&gt;
&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    for j in *anon.map&lt;br /&gt;
    do&lt;br /&gt;
        ls $j&lt;br /&gt;
        LC_ALL=C sort -T /nfs/db5/jyoung -m -u $j &amp;lt;combined_map_name&amp;gt; -o &amp;lt;combined_map_name&amp;gt;&lt;br /&gt;
    done&lt;br /&gt;
&lt;br /&gt;
As suggested in the SmallWorld documentation, you can check if the resulting file is sorted using the sort -c option&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    for j in &amp;lt;combined_map_name&amp;gt;&lt;br /&gt;
    do&lt;br /&gt;
        ls $j&lt;br /&gt;
        LC_ALL=C sort -T /nfs/db5/jyoung -c -u $j&lt;br /&gt;
    done&lt;br /&gt;
&lt;br /&gt;
===Step 3: Copy to SSD and Concatenate===&lt;br /&gt;
It is much faster and avoids overloading the disk if you concatenate the results on an SSD rather than a regular hard drive.  I have been using /nfs/db5/jyoung as a place to concatenate the files.  You can use another helper script to perform that concatenation one file at a time.&lt;br /&gt;
&lt;br /&gt;
    #!/bin/csh&lt;br /&gt;
    foreach j(*.anon.map)&lt;br /&gt;
        ls $j&lt;br /&gt;
        cat $j &amp;gt;&amp;gt; enamine_private_400_to_500_all&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
===Step 4: Sort the resulting map file using bash with locale LC_ALL=C ===&lt;br /&gt;
It is very important to sort using bash using the locale LC_ALL=C!&lt;br /&gt;
&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    for j in enamine_private_400_to_500_all.anon.map&lt;br /&gt;
    do&lt;br /&gt;
        ls $j&lt;br /&gt;
        (time LC_ALL=C sort -T /nfs/db5/jyoung $j -o sorted_${j}) |&amp;amp; tee sort_time_${j}&lt;br /&gt;
    done&lt;br /&gt;
&lt;br /&gt;
===Step 5: Copy the completed file back to /ex9 ===&lt;br /&gt;
    cp &amp;lt;your map file&amp;gt; /nfs/ex9/work/smallworld&lt;br /&gt;
&lt;br /&gt;
===Step 6: Move the file to the final location===&lt;br /&gt;
Move the map file into either the maps/ directory or the private_small_world_maps directory depending on whether file should be public or private&lt;br /&gt;
    mv &amp;lt;your map file&amp;gt; maps/&lt;br /&gt;
    mv &amp;lt;your map file&amp;gt; private_smallworld_maps/&lt;br /&gt;
&lt;br /&gt;
==Step 2.5 Incremental Updates==&lt;br /&gt;
&lt;br /&gt;
There are several ways to perform incremental updates for SmallWorld maps which are equivalent.&lt;br /&gt;
&lt;br /&gt;
If you just have a new SMILES file input.smi you wish to add to an already existing map named &amp;lt;already_existing&amp;gt;.anon.map, then you can use the sw map command with the --append option provided in the SmallWorld Java Command Line Interface (CLI)&lt;br /&gt;
&lt;br /&gt;
First, if you have not already done so, set an alias &amp;quot;sw&amp;quot; to the SmallWorld Java file as shown below:&lt;br /&gt;
Make sure the SWDIR environment variable is also set &lt;br /&gt;
&lt;br /&gt;
    setenv SWDIR /srv/db4&lt;br /&gt;
&lt;br /&gt;
    alias sw &#039;java -jar /opt/nextmove/sw.jar&#039;&lt;br /&gt;
&lt;br /&gt;
Now you can run the sw map command using --append &lt;br /&gt;
&lt;br /&gt;
    sw map input.smi --append --o &amp;lt;already_existing&amp;gt;.anon.map&lt;br /&gt;
&lt;br /&gt;
Another method for performing incremental updates is discussed below.&lt;br /&gt;
A worked example is located in the SmallWorld version 4 documentation on pages 17-18 in the Incremental Updates Section&lt;br /&gt;
&lt;br /&gt;
===What if you already created a .anon.map file from your new smiles, and simply want to combine the two separate .anon.map files into a single .anon.map file?===&lt;br /&gt;
&lt;br /&gt;
Make a copy and modify the bash script below with the name of your new map file&lt;br /&gt;
&lt;br /&gt;
    /nfs/ex9/work/smallworld/bash_merge_maps&lt;br /&gt;
This script simply combines two map files that have already been created&lt;br /&gt;
&lt;br /&gt;
Replace the OLD_MAPFILE environment variable with the old map&lt;br /&gt;
&lt;br /&gt;
Replace the ADD_MAPFILE environment variable with the map you wish to incrementally add&lt;br /&gt;
&lt;br /&gt;
Replace the NEW_MAPFILE environment variable with the name you want for the new combined map&lt;br /&gt;
&lt;br /&gt;
Updating a new map file in this way does not automatically update the .anon.map.cfg file with the new total number of molecules mapped and other statistics.&lt;br /&gt;
The create_cfg.py program will automatically generate a new .anon.map.cfg file for the combined map&lt;br /&gt;
&lt;br /&gt;
The create_cfg.py program is located in &lt;br /&gt;
&lt;br /&gt;
    /mnt/nfs/ex9/work/smallworld/create_cfg.py&lt;br /&gt;
&lt;br /&gt;
The create_cfg.py script will automatically generate a cfg file for a map that is composed of two existing SmallWorld Maps.  Run as follows:&lt;br /&gt;
    python create_cfg.py first second combined&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
first is first.anon.map&lt;br /&gt;
second is second.anon.map&lt;br /&gt;
combined is combined.anon.map&lt;br /&gt;
&lt;br /&gt;
The program will look for the .anon.map files and the .anon.map.cfg for the first and second before proceeding&lt;br /&gt;
&lt;br /&gt;
The new_cfg.py program is located in &lt;br /&gt;
&lt;br /&gt;
    python /mnt/nfs/ex9/work/smallworld/new_cfg.py &amp;lt;combined cfg file name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Python program will find all the cfg folders in a directory and combine them into a single combined cfg file&lt;br /&gt;
&lt;br /&gt;
==Step 3: How to Make the New Database Available. Stop the server first!==&lt;br /&gt;
&lt;br /&gt;
First, stop the server. You do not need to restart Tomcat every time you want to restart SmallWorld. The TomCat GUI is available at&lt;br /&gt;
    http://10.20.9.22:8080/&lt;br /&gt;
You need the tunnel to access the private network or this link will not work! Also, the admin username and password is required.&lt;br /&gt;
&lt;br /&gt;
In the Manager App, in the Applications section, use the Stop and Start buttons for the sw-ws app to restart the SmallWorld server&lt;br /&gt;
&lt;br /&gt;
==Step 4: Move the Map File into the /maps directory==&lt;br /&gt;
&lt;br /&gt;
If you followed the example above, your .anon.map file should be located in &lt;br /&gt;
    /mnt/nfs/ex9/work/smallworld&lt;br /&gt;
&lt;br /&gt;
Now, simply move the map file into the &amp;quot;/sw/maps&amp;quot; directory so it can be recognized by SmallWorld.&lt;br /&gt;
&lt;br /&gt;
    mv &amp;lt;your-file-name&amp;gt;.anon.map /mnt/nfs/ex9/work/smallworld/maps&lt;br /&gt;
&lt;br /&gt;
Or, simply &lt;br /&gt;
    mv &amp;lt;your-file-name&amp;gt;.anon.map maps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Step 5: Restart the Server==&lt;br /&gt;
Again, go to the TomCat manager under applications and click Start once you are finished moving around the map files.&lt;br /&gt;
&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Creating_Maps_on_SmallWorld&amp;diff=12222</id>
		<title>Creating Maps on SmallWorld</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Creating_Maps_on_SmallWorld&amp;diff=12222"/>
		<updated>2020-01-09T00:11:05Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Jennifer Young on April 10, 2019. Last modified on July 12, 2019&lt;br /&gt;
&lt;br /&gt;
==Install: The developer need only do this once.  For the user, skip to the Run section==&lt;br /&gt;
&lt;br /&gt;
===Step 1: Create the /sw directory===&lt;br /&gt;
SmallWorld requires a /sw directory which contains /anon and /maps&lt;br /&gt;
The /sw directory is located on n-9-22 in &lt;br /&gt;
    /srv/db4&lt;br /&gt;
&lt;br /&gt;
This directory contains:&lt;br /&gt;
&lt;br /&gt;
The /anon directory contains 12 TB of pre-computed subgraphs &lt;br /&gt;
&lt;br /&gt;
The /maps directory contains text files computed by SmallWorld that map your molecules of choice to the corresponding nodes in the anonymous graph index&lt;br /&gt;
&lt;br /&gt;
===Step 2: Find a location for the sw.jar file===&lt;br /&gt;
&lt;br /&gt;
Copy the sw.jar file to a reasonable location such as &lt;br /&gt;
    /opt/nextmove/sw.jar&lt;br /&gt;
&lt;br /&gt;
==Run==&lt;br /&gt;
===Important! Currently, we only run SmallWorld map generation on n-9-22===&lt;br /&gt;
Whenever running operations that are rough on the disk, only one one major operation at a time.  Also, use nice/renice and ionice to decrease the disruption to other lab members.&lt;br /&gt;
&lt;br /&gt;
You can adjust the priority of a running process using the process ID.  Look for the process ID like this&lt;br /&gt;
    ps aux | grep &amp;lt;something to help you find your process&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then use renice to change the priority&lt;br /&gt;
    renice -n +19 -p &amp;lt;PID&amp;gt;&lt;br /&gt;
Note that +19 is the lowest priority possible.  Consult the man page for more information.&lt;br /&gt;
&lt;br /&gt;
You can also use ionice to limit the io usage&lt;br /&gt;
   ionice -c 3 -p &amp;lt;PID&amp;gt;&lt;br /&gt;
Here the 3 represents idle.  Consult the man page for other options such as -c 2 which has different priority levels for best-effort scheduling&lt;br /&gt;
&lt;br /&gt;
==Step 1: Set SWDIR environment variable==&lt;br /&gt;
Determine where the /sw directory with the /anon and /maps directory and if using csh, set the SWDIR variable using &lt;br /&gt;
    setenv SWDIR /srv/db4&lt;br /&gt;
&lt;br /&gt;
If using bash, set the SWDIR variable using&lt;br /&gt;
    export SWDIR=/srv/db4&lt;br /&gt;
&lt;br /&gt;
==Step 2: Generate the map files for SMILES files LESS THAN 1 Billion==&lt;br /&gt;
For files larger than 1 Billion smiles, see the section for Processing Large Smiles Files in SmallWorld&lt;br /&gt;
&lt;br /&gt;
Run sw.jar to convert your smiles file into a map file. &lt;br /&gt;
&lt;br /&gt;
(Optional: use the time command to see how long this takes)&lt;br /&gt;
&lt;br /&gt;
(Optional: tee your results into a log file to check progress)&lt;br /&gt;
&lt;br /&gt;
Here is an example where wait-ok.smi is your .smi file to map:&lt;br /&gt;
    (time java -jar /opt/nextmove/sw.jar map /mnt/nfs/ex9/work/smallworld/wait-ok.smi &lt;br /&gt;
    -T /mnt/nfs/ex9/work/smallworld/scratch_sw &lt;br /&gt;
    -o /mnt/nfs/ex9/work/smallworld/wait-ok.anon.map &lt;br /&gt;
    -u /mnt/nfs/ex9/work/smallworld/wait-ok.anon.unmapped)&lt;br /&gt;
     |&amp;amp; tee /mnt/nfs/ex9/work/smallworld/wait-ok_log&lt;br /&gt;
&lt;br /&gt;
This is a long command, so we can break down the different parts.&lt;br /&gt;
&lt;br /&gt;
map   The SMILES file you want to map follows the word &amp;quot;map&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-T       This is the temp directory you want to write temp files to, rather than writing to /tmp&lt;br /&gt;
&lt;br /&gt;
-o       The final name of your output map file&lt;br /&gt;
&lt;br /&gt;
-u       Argument to keep track of the unmapped compounds.&lt;br /&gt;
&lt;br /&gt;
Important: The unmapped compounds file may be used to generate extensions and is the same as the .anon.ext.map file mentioned in the SmallWorld documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For now, generate the map files in the &lt;br /&gt;
    /mnt/nfs/ex9/work/smallworld &lt;br /&gt;
&lt;br /&gt;
directory so they can be easily moved to the maps directory when the server is restarted&lt;br /&gt;
&lt;br /&gt;
The sorting is done automatically when you generate the SmallWorld maps in a single step like this.&lt;br /&gt;
&lt;br /&gt;
==Step 2: Processing large SMILES files in SmallWorld GREATER THAN 1 Billion==&lt;br /&gt;
If your SMILES file contains more than 1 billion molecules, I think it is better to split the input in to chunks of 1 billion to avoid waiting too long to get intermediate results in case the job fails for some reason.&lt;br /&gt;
&lt;br /&gt;
===Step 1: Split the input file into chunks of 1 billion smiles===&lt;br /&gt;
    split -l 1000000000 &amp;lt;your-smiles-file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Step 2: Process the chunks in SmallWorld using the command above ===&lt;br /&gt;
Write a helper script to process these using a loop, usually one or two at a time to be mindful of disk overload.  An example is shown below.  Just modify the path and pattern to match your files.&lt;br /&gt;
    #!/bin/csh&lt;br /&gt;
    foreach j(/mnt/nfs/ex9/work/smallworld/REAL_SPACE_400_to_500/x??)&lt;br /&gt;
        echo $j&lt;br /&gt;
        echo &#039;(time java -jar /opt/nextmove/sw.jar map&#039; $j &#039;-T /mnt/nfs/ex9/work/smallworld/scratch_sw -o &#039;${j}&#039;.anon.map -u &#039;${j}&#039;.anon.unmapped) |&amp;amp; tee &#039;${j}&#039;_log&#039;&lt;br /&gt;
        (time java -jar /opt/nextmove/sw.jar map $j -T /mnt/nfs/ex9/work/smallworld/scratch_sw -o ${j}.anon.map -u ${j}.anon.unmapped) |&amp;amp; tee ${j}_log&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
Important: Make sure that the file you want to process only contains two columns.  The first column contains the SMILES and the second column contains the ID.&lt;br /&gt;
If this is not the case, you need to use &lt;br /&gt;
    awk &#039;{print $1&amp;quot;\t&amp;quot;$2}&#039;  &amp;lt;your file&amp;gt; &amp;gt; &amp;lt;your_file_smi_ID&amp;gt;&lt;br /&gt;
to get only these columns before processing with SmallWorld.&lt;br /&gt;
&lt;br /&gt;
===Step 3-4 Combined: Rather than concatenating and sorting, merge the map file chunks (assuming they are already sorted)===&lt;br /&gt;
Use the -T option on sort to set the temp directory of your choice.  If your file is large enough, the sort command needs scratch space to write temporary files to later merge.&lt;br /&gt;
&lt;br /&gt;
Adjust the matching in the loop rather than just using *.anon.map if you want to be more specific about the files you are combining&lt;br /&gt;
&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    for j in *anon.map&lt;br /&gt;
    do&lt;br /&gt;
        ls $j&lt;br /&gt;
        LC_ALL=C sort -T /nfs/db5/jyoung -m -u $j &amp;lt;combined_map_name&amp;gt; -o &amp;lt;combined_map_name&amp;gt;&lt;br /&gt;
    done&lt;br /&gt;
&lt;br /&gt;
As suggested in the SmallWorld documentation, you can check if the resulting file is sorted using the sort -c option&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    for j in &amp;lt;combined_map_name&amp;gt;&lt;br /&gt;
    do&lt;br /&gt;
        ls $j&lt;br /&gt;
        LC_ALL=C sort -T /nfs/db5/jyoung -c -u $j&lt;br /&gt;
    done&lt;br /&gt;
&lt;br /&gt;
===Step 3: Copy to SSD and Concatenate===&lt;br /&gt;
It is much faster and avoids overloading the disk if you concatenate the results on an SSD rather than a regular hard drive.  I have been using /nfs/db5/jyoung as a place to concatenate the files.  You can use another helper script to perform that concatenation one file at a time.&lt;br /&gt;
&lt;br /&gt;
    #!/bin/csh&lt;br /&gt;
    foreach j(*.anon.map)&lt;br /&gt;
        ls $j&lt;br /&gt;
        cat $j &amp;gt;&amp;gt; enamine_private_400_to_500_all&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
===Step 4: Sort the resulting map file using bash with locale LC_ALL=C ===&lt;br /&gt;
It is very important to sort using bash using the locale LC_ALL=C!&lt;br /&gt;
&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    for j in enamine_private_400_to_500_all.anon.map&lt;br /&gt;
    do&lt;br /&gt;
        ls $j&lt;br /&gt;
        (time LC_ALL=C sort -T /nfs/db5/jyoung $j -o sorted_${j}) |&amp;amp; tee sort_time_${j}&lt;br /&gt;
    done&lt;br /&gt;
&lt;br /&gt;
===Step 5: Copy the completed file back to /ex9 ===&lt;br /&gt;
    cp &amp;lt;your map file&amp;gt; /nfs/ex9/work/smallworld&lt;br /&gt;
&lt;br /&gt;
===Step 6: Move the file to the final location===&lt;br /&gt;
Move the map file into either the maps/ directory or the private_small_world_maps directory depending on whether file should be public or private&lt;br /&gt;
    mv &amp;lt;your map file&amp;gt; maps/&lt;br /&gt;
    mv &amp;lt;your map file&amp;gt; private_smallworld_maps/&lt;br /&gt;
&lt;br /&gt;
==Step 2.5 Incremental Updates==&lt;br /&gt;
&lt;br /&gt;
There are several ways to perform incremental updates for SmallWorld maps which are equivalent.&lt;br /&gt;
&lt;br /&gt;
If you just have a new SMILES file input.smi you wish to add to an already existing map named &amp;lt;already_existing&amp;gt;.anon.map, then you can use the sw map command with the --append option provided in the SmallWorld Java Command Line Interface (CLI)&lt;br /&gt;
&lt;br /&gt;
First, if you have not already done so, set an alias &amp;quot;sw&amp;quot; to the SmallWorld Java file as shown below:&lt;br /&gt;
Make sure the SWDIR environment variable is also set &lt;br /&gt;
&lt;br /&gt;
    setenv SWDIR /srv/db4&lt;br /&gt;
&lt;br /&gt;
    alias sw &#039;java -jar /opt/nextmove/sw.jar&#039;&lt;br /&gt;
&lt;br /&gt;
Now you can run the sw map command using --append &lt;br /&gt;
&lt;br /&gt;
    sw map input.smi --append --o &amp;lt;already_existing&amp;gt;.anon.map&lt;br /&gt;
&lt;br /&gt;
Another method for performing incremental updates is discussed below.&lt;br /&gt;
A worked example is located in the SmallWorld version 4 documentation on pages 17-18 in the Incremental Updates Section&lt;br /&gt;
&lt;br /&gt;
===What if you already created a .anon.map file from your new smiles, and simply want to combine the two separate .anon.map files into a single .anon.map file?===&lt;br /&gt;
&lt;br /&gt;
Make a copy and modify the bash script below with the name of your new map file&lt;br /&gt;
&lt;br /&gt;
    /nfs/ex9/work/smallworld/bash_merge_maps&lt;br /&gt;
This script simply combines two map files that have already been created&lt;br /&gt;
&lt;br /&gt;
Replace the OLD_MAPFILE environment variable with the old map&lt;br /&gt;
&lt;br /&gt;
Replace the ADD_MAPFILE environment variable with the map you wish to incrementally add&lt;br /&gt;
&lt;br /&gt;
Replace the NEW_MAPFILE environment variable with the name you want for the new combined map&lt;br /&gt;
&lt;br /&gt;
Updating a new map file in this way does not automatically update the .anon.map.cfg file with the new total number of molecules mapped and other statistics.&lt;br /&gt;
The create_cfg.py program will automatically generate a new .anon.map.cfg file for the combined map&lt;br /&gt;
&lt;br /&gt;
The create_cfg.py program is located in &lt;br /&gt;
&lt;br /&gt;
    /mnt/nfs/ex9/work/smallworld/create_cfg.py&lt;br /&gt;
&lt;br /&gt;
The create_cfg.py script will automatically generate a cfg file for a map that is composed of two existing SmallWorld Maps.  Run as follows:&lt;br /&gt;
    python create_cfg.py first second combined&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
first is first.anon.map&lt;br /&gt;
second is second.anon.map&lt;br /&gt;
combined is combined.anon.map&lt;br /&gt;
&lt;br /&gt;
The program will look for the .anon.map files and the .anon.map.cfg for the first and second before proceeding&lt;br /&gt;
&lt;br /&gt;
The new_cfg.py program is located in &lt;br /&gt;
&lt;br /&gt;
    python /mnt/nfs/ex9/work/smallworld/new_cfg.py &amp;lt;combined cfg file name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Python program will find all the cfg folders in a directory and combine them into a single combined cfg file&lt;br /&gt;
&lt;br /&gt;
==Step 3: How to Make the New Database Available. Stop the server first!==&lt;br /&gt;
&lt;br /&gt;
First, stop the server. You do not need to restart Tomcat every time you want to restart SmallWorld. The TomCat GUI is available at&lt;br /&gt;
    http://10.20.9.22:8080/&lt;br /&gt;
You need the tunnel to access the private network or this link will not work! Also, the admin username and password is required.&lt;br /&gt;
&lt;br /&gt;
In the Manager App, in the Applications section, use the Stop and Start buttons for the sw-ws app to restart the SmallWorld server&lt;br /&gt;
&lt;br /&gt;
==Step 4: Move the Map File into the /maps directory==&lt;br /&gt;
&lt;br /&gt;
If you followed the example above, your .anon.map file should be located in &lt;br /&gt;
    /mnt/nfs/ex9/work/smallworld&lt;br /&gt;
&lt;br /&gt;
Now, simply move the map file into the &amp;quot;/sw/maps&amp;quot; directory so it can be recognized by SmallWorld.&lt;br /&gt;
&lt;br /&gt;
    mv &amp;lt;your-file-name&amp;gt;.anon.map /mnt/nfs/ex9/work/smallworld/maps&lt;br /&gt;
&lt;br /&gt;
Or, simply &lt;br /&gt;
    mv &amp;lt;your-file-name&amp;gt;.anon.map maps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Step 5: Restart the Server==&lt;br /&gt;
Again, go to the TomCat manager under applications and click Start once you are finished moving around the map files.&lt;br /&gt;
&lt;br /&gt;
[[Category: SmallWorld]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_Arthor_API&amp;diff=12221</id>
		<title>How to use Arthor API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_Arthor_API&amp;diff=12221"/>
		<updated>2020-01-08T23:42:32Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
This information was taken from the Arthor version 2.1.2 documentation.  RESTful API: The current server implementation utilizes the Data Tables JS library to display hits. The current API therefore reflects some requirements of this library and all URLs are organised under the /dt/ (for data tables) path, in future there may be new URLs introduced to match other clients (e.g. /jchem/).&lt;br /&gt;
&lt;br /&gt;
==Data Tables==&lt;br /&gt;
&lt;br /&gt;
===/dt/data===&lt;br /&gt;
List all available databases and the types of search available, note a “SUB” in idxTypes means both “SUB” and “SMA” search can be performed:&lt;br /&gt;
&lt;br /&gt;
Example command:&lt;br /&gt;
    curl &#039;http://arthor.docking.org/dt/data&#039;&lt;br /&gt;
&lt;br /&gt;
Produces the following JSON:&lt;br /&gt;
    [&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;wait-ok.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/wait-ok.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;for-sale.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/for-sale.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;now_bb.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/now_bb.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;wait-ok_bb.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/wait-ok_bb.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;for-sale_bb.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/for-sale_bb.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;in-stock.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/in-stock.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;bb-all.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/bb-all.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;bb-now.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/bb-now.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;: [&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]}, &lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;interesting.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/interesting.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;on-demand.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/on-demand.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]},&lt;br /&gt;
     {&amp;quot;displayName&amp;quot;:&amp;quot;wuxi.smi&amp;quot;,&amp;quot;location&amp;quot;:&amp;quot;/usr/local/tomcat/arthor_data/wuxi.smi&amp;quot;,&amp;quot;urlFormatStr&amp;quot;:null,&amp;quot;idxTypes&amp;quot;:[&amp;quot;SIM&amp;quot;,&amp;quot;SUB&amp;quot;]}&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
===/dt/${db_name}/data===&lt;br /&gt;
Access information on a single database, the virtual memory status is also reported for Similarity and Substructure indexes:&lt;br /&gt;
&lt;br /&gt;
===/dt/${db_name}/search/===&lt;br /&gt;
 Search a database with a query SMILES/SMARTS.&lt;br /&gt;
&lt;br /&gt;
${db_name} Required path variable, the database name is specified in the URL path as ${db_name}. For one of the databases above, ‘ChEMBL 23’ would be searched as /dt/ ChEMBL%2023/search.&lt;br /&gt;
query=&amp;lt;string&amp;gt; The query to run either a valid SMILES or SMARTS, depending on search type.&lt;br /&gt;
type=SUB|SIM|SMA The search type to perform (SUB=Substructure, SMA=SMARTS, SIM=Similarity), these primarily differ by what input is expected in the query= string. Both “SUB” and “SIM” expect a valid SMILES to be provided, “SMA” expects a SMARTS.&lt;br /&gt;
The SMILES provided to “SUB” is aromatized to be consistent with the database (if flag provided) and converted to a query with any flags specified.&lt;br /&gt;
This parameter is optional, the default is “SIM”.&lt;br /&gt;
&lt;br /&gt;
start=&amp;lt;num&amp;gt; Optional start offset for the result set to allow paging. The default value is 0 mean- ing the result start at the first hit.&lt;br /&gt;
length=&amp;lt;num&amp;gt; Optional length of the result set to allow paging. The default is 10.&lt;br /&gt;
draw=&amp;lt;num&amp;gt; Echoed value to maintain consistent ordering of asynchronous events. A number is provided to this parameter that is returned with the result set.&lt;br /&gt;
If when the response is received by the client the draw value doesn’t match the current draw value the result can be considered “out of date” and should be ignored.&lt;br /&gt;
This value is client specific and optional.&lt;br /&gt;
qopts=&amp;lt;opts&amp;gt; Specify the query options to run the Substructure or SMARTS search with. For example “qopts=RC” would lock the rings and chains of the query. See Arthor::ParseQuery for more info.&lt;br /&gt;
If your query is an MDL file then you must specify “Mdl” in the qopts.&lt;br /&gt;
&lt;br /&gt;
    //matches server side constants&lt;br /&gt;
    let QueryFlags = {&lt;br /&gt;
        AROMATISE:    0x0100,&lt;br /&gt;
        LOCK_RINGS:    0x0200,&lt;br /&gt;
        LOCK_CHAINS:  0x0400,&lt;br /&gt;
        LOCK_CHARGES:    0x0800&lt;br /&gt;
        LOCK_ISOTOPES:    0x1000,&lt;br /&gt;
        LOCK_CONNECTIVITY  0x2000&lt;br /&gt;
     };&lt;br /&gt;
&lt;br /&gt;
    //matches UI&lt;br /&gt;
    let DEFAULT_FLAGS = QueryFlags.AROMATISE |&lt;br /&gt;
                                         QueryFlags.LOCK_CHARGES |&lt;br /&gt;
                                          QueryFlags.LOCK_ISOTOPES |&lt;br /&gt;
                                          QueryFlags.LOCK_CONNECTIVITY;&lt;br /&gt;
&lt;br /&gt;
To &amp;quot;lock&amp;quot; means don&#039;t allow it to change&lt;br /&gt;
&lt;br /&gt;
Response: The search returns a JSON object containing the result set as a data property&lt;br /&gt;
&lt;br /&gt;
==Similarity Search==&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://arthor.docking.org/dt/In-Stock-19Q4-13.8M/search?query=c1ccccc1&amp;amp;type=SIM&amp;amp;start=0&amp;amp;length=5&#039;&lt;br /&gt;
&lt;br /&gt;
    {&amp;quot;query&amp;quot;:&amp;quot;c1ccccc1&amp;quot;,&amp;quot;&lt;br /&gt;
        data&amp;quot;:[&lt;br /&gt;
            [1,&amp;quot;c1ccccc1\tZINC000000967532&amp;quot;,&amp;quot;1.000&amp;quot;],&lt;br /&gt;
            [2,&amp;quot;c1ccccccccccccccccc1\tZINC000100074375&amp;quot;,&amp;quot;1.000&amp;quot;],&lt;br /&gt;
            [3,&amp;quot;c1ncncn1\tZINC000001718513&amp;quot;,&amp;quot;0.498&amp;quot;],&lt;br /&gt;
            [4,&amp;quot;c1cncnc1\tZINC000000895216&amp;quot;,&amp;quot;0.427&amp;quot;],&lt;br /&gt;
            [5,&amp;quot;Ic1cc(I)cc(I)c1\tZINC000057266212&amp;quot;,&amp;quot;0.373&amp;quot;]],&lt;br /&gt;
            &amp;quot;draw&amp;quot;:0,&amp;quot;recordsFiltered&amp;quot;:1649789,&amp;quot;recordsTotal&amp;quot;:1649789,&amp;quot;time&amp;quot;:79,&amp;quot;hasMore&amp;quot;:false,&amp;quot;error&amp;quot;:null&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Substructure or SMARTS Search==&lt;br /&gt;
A substructure or SMARTS search has some additional complexity. A parameter hasMore indicates whether there are more results. When the first page for a query is requested a background counter is spun up to count the total number of hits. The idea is the server can be pooled until the count is finished.&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://arthor.docking.org/dt/In-Stock-19Q4-13.8M/search?query=c1ccccc1&amp;amp;type=SUB&amp;amp;start=0&amp;amp;length=5&#039;&lt;br /&gt;
&lt;br /&gt;
    {&amp;quot;query&amp;quot;:&amp;quot;c1:c:c:c:c:c:1&amp;quot;,&amp;quot;data&amp;quot;:[&lt;br /&gt;
          [1,&amp;quot;C[C@@]1(c2ccccc2)OC(C(=O)O)=CC1=O\tZINC000000000010&amp;quot;,&amp;quot;&amp;quot;],&lt;br /&gt;
          [2,&amp;quot;COc1cc(Cc2cnc(N)nc2N)cc(OC)c1N(C)C\tZINC000000000011&amp;quot;,&amp;quot;&amp;quot;],&lt;br /&gt;
          [3,&amp;quot;O=C(C[S@@](=O)C(c1ccccc1)c1ccccc1)NO\tZINC000000000012&amp;quot;,&amp;quot;&amp;quot;],&lt;br /&gt;
          [4,&amp;quot;CCC[S@](=O)c1ccc2[nH]/c(=N\\C(=O)OC)[nH]c2c1\tZINC000000000017&amp;quot;,&amp;quot;&amp;quot;],&lt;br /&gt;
          [5,&amp;quot;C=C(C)CNc1ccc([C@H](C)C(=O)O)cc1\tZINC000000000022&amp;quot;,&amp;quot;&amp;quot;]],&lt;br /&gt;
         &amp;quot;draw&amp;quot;:0,&amp;quot;recordsFiltered&amp;quot;:1162074,&amp;quot;recordsTotal&amp;quot;:1162074,&amp;quot;time&amp;quot;:1090,&amp;quot;hasMore&amp;quot;:false,&amp;quot;error&amp;quot;:null&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
After some time the background count will have completed and the hasMore will now be false meaning the hit count is correct. The time taken to do the count is set on the time field.&lt;br /&gt;
&lt;br /&gt;
[[Category:Arthor]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12220</id>
		<title>How to use SmallWorld API</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=How_to_use_SmallWorld_API&amp;diff=12220"/>
		<updated>2020-01-08T23:42:09Z</updated>

		<summary type="html">&lt;p&gt;Jyoung: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
The Web Services API for SmallWorld Documentation is found in Section 8.3 of the SmallWorld version 4.0 manual starting from page 30 to 36.  &lt;br /&gt;
Copyright ©2012-2017 NextMove Software Limited.&lt;br /&gt;
I copied the section here, and provided a list of publicly available databases for searching on sw.docking.org and some simple examples.&lt;br /&gt;
&lt;br /&gt;
==8.3 Web Services API Important Entry Points==&lt;br /&gt;
Unless stated otherwise all API entry points operate on HTTP GET/POST requests. A search on the server is first submitted (/search/submit), this returns a stream of events that report the hit list id (hlid). You can then use this hlid to fetch results either as JSON (/search/view) or TSV (/ search/export). An example Java client, SwHttpClient.java, shows how this works. &lt;br /&gt;
&lt;br /&gt;
===/search/submit===&lt;br /&gt;
&lt;br /&gt;
Start a new SmallWorld search with topological distance bounded by the provided upper bounds.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| smi&lt;br /&gt;
| text&lt;br /&gt;
| Query SMILES&lt;br /&gt;
|-&lt;br /&gt;
| db&lt;br /&gt;
| text&lt;br /&gt;
| Reference database (see List of available maps)&lt;br /&gt;
|-&lt;br /&gt;
| dist&lt;br /&gt;
| int&lt;br /&gt;
| Topological distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| tdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| tup&lt;br /&gt;
| int&lt;br /&gt;
| Topological terminal up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| rdn&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring down distance upper bound (default: 10)&lt;br /&gt;
|- &lt;br /&gt;
| rup&lt;br /&gt;
| int&lt;br /&gt;
| Topological ring up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| ldn&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker down distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| lup&lt;br /&gt;
| int&lt;br /&gt;
| Topological linker up distance upper bound (default: 10)&lt;br /&gt;
|-&lt;br /&gt;
| scores&lt;br /&gt;
| text&lt;br /&gt;
| List of scoring functions (default : none) - see /search/config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Example Request===&lt;br /&gt;
Suppose you want to search for c1ccccc1 in the ZINC-Interesting-297K Database:   There are two steps.  The first step which involves /search/submit returns a stream of events that report the hit list id or hlid.  This hlid is required to fetch results using the other options such as /search/view &lt;br /&gt;
&lt;br /&gt;
*Change the smi to the SMILES for the molecule you want to query&lt;br /&gt;
*Change the db name to the database name from the List of Publicly Available Maps below&lt;br /&gt;
Everything else can stay the same&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/submit?smi=c1ccccc1&amp;amp;db=ZINC-Interesting-297K&amp;amp;dist=4&amp;amp;tdn=4&amp;amp;tup=4&amp;amp;rdn=4&amp;amp;rup=4&amp;amp;ldn=4&amp;amp;lup=4&amp;amp;maj=4&amp;amp;min=4&amp;amp;sub=4&amp;amp;scores=Atom%20Alignment,ECFP4,Daylight&#039; &lt;br /&gt;
&lt;br /&gt;
The API streams back JSON chunks. Possible status messages are FIRST, MORE, END, and ‘Ground Control to Major Tom’ (hangup ping). Each status contains the hit list id (hlid) which can be used with the export and view API entry points.&lt;br /&gt;
&lt;br /&gt;
From this example:&lt;br /&gt;
&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;FIRST&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:1,&amp;quot;numEdgesPerSec&amp;quot;:&amp;quot;NaN&amp;quot;}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:0,&amp;quot;numNodes&amp;quot;:0,&amp;quot;numWaveFront&amp;quot;:0,&amp;quot;numEdgesPerSec&amp;quot;:0.0}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:1,&amp;quot;numNodes&amp;quot;:2,&amp;quot;numWaveFront&amp;quot;:3,&amp;quot;numEdgesPerSec&amp;quot;:47.783445425332395}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;0.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:7,&amp;quot;numNodes&amp;quot;:8,&amp;quot;numWaveFront&amp;quot;:14,&amp;quot;numEdgesPerSec&amp;quot;:237.99311152737997}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;0.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:47,&amp;quot;numNodes&amp;quot;:42,&amp;quot;numWaveFront&amp;quot;:51,&amp;quot;numEdgesPerSec&amp;quot;:583.5923096639136}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;MORE&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;0.4 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:884.1124840482239}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;0.5 s&amp;quot;,&amp;quot;numEdges&amp;quot;:363,&amp;quot;numNodes&amp;quot;:216,&amp;quot;numWaveFront&amp;quot;:221,&amp;quot;numEdgesPerSec&amp;quot;:700.4466134439543}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;1.0 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:426.04845162109694}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;1.6 s&amp;quot;,&amp;quot;numEdges&amp;quot;:441,&amp;quot;numNodes&amp;quot;:253,&amp;quot;numWaveFront&amp;quot;:224,&amp;quot;numEdgesPerSec&amp;quot;:284.05782226150757}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;Ground Control to Major Tom&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;2.1 s&amp;quot;,&amp;quot;numEdges&amp;quot;:458,&amp;quot;numNodes&amp;quot;:263,&amp;quot;numWaveFront&amp;quot;:278,&amp;quot;numEdgesPerSec&amp;quot;:223.1371219908375}&lt;br /&gt;
  data:{&amp;quot;status&amp;quot;:&amp;quot;END&amp;quot;,&amp;quot;hlid&amp;quot;:5908,&amp;quot;elap&amp;quot;:&amp;quot;2.2 s&amp;quot;,&amp;quot;numEdges&amp;quot;:2417,&amp;quot;numNodes&amp;quot;:981,&amp;quot;numWaveFront&amp;quot;:885,&amp;quot;numEdgesPerSec&amp;quot;:1104.50351038177}&lt;br /&gt;
&lt;br /&gt;
Here the hlid for my request was 5908.&lt;br /&gt;
&lt;br /&gt;
===/search/export===&lt;br /&gt;
Export a hit list (given by the id) to a tab-separated value table. The other parameters describe what columns, order, and filters are applied to the hit list. Like /search/view it uses the JQuery DataTables server-side processing parameters - https://www.datatables.net/manual/server-side.&lt;br /&gt;
&lt;br /&gt;
Useful information about column names and values:&lt;br /&gt;
&#039;hlid&#039;: hlid,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[0][data]&#039;: 0,&lt;br /&gt;
&#039;columns[0][name]&#039;: &#039;alignment&#039;,&lt;br /&gt;
&#039;columns[0][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[0][orderable]&#039;: &#039;false&#039;,&lt;br /&gt;
&#039;columns[0][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[0][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[1][data]&#039;: 1,&lt;br /&gt;
&#039;columns[1][name]&#039;: &#039;dist&#039;,&lt;br /&gt;
&#039;columns[1][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[1][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[1][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[2][data]&#039;: 2,&lt;br /&gt;
&#039;columns[2][name]&#039;: &#039;ecfp4&#039;,&lt;br /&gt;
&#039;columns[2][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[2][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[2][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[3][data]&#039;: 3,&lt;br /&gt;
&#039;columns[3][name]&#039;: &#039;daylight&#039;,&lt;br /&gt;
&#039;columns[3][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[3][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[3][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[4][data]&#039;: 4,&lt;br /&gt;
&#039;columns[4][name]&#039;: &#039;topodist&#039;,&lt;br /&gt;
&#039;columns[4][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[4][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[4][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[5][data]&#039;: 5,&lt;br /&gt;
&#039;columns[5][name]&#039;: &#039;mces&#039;,&lt;br /&gt;
&#039;columns[5][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[5][search][value]&#039;: &#039;&#039;,&lt;br /&gt;
&#039;columns[5][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[6][data]&#039;: 6,&lt;br /&gt;
&#039;columns[6][name]&#039;: &#039;tdn&#039;,&lt;br /&gt;
&#039;columns[6][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[6][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[6][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[7][data]&#039;: 7,&lt;br /&gt;
&#039;columns[7][name]&#039;: &#039;tup&#039;,&lt;br /&gt;
&#039;columns[7][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[7][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[7][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[8][data]&#039;: 8,&lt;br /&gt;
&#039;columns[8][name]&#039;: &#039;rdn&#039;,&lt;br /&gt;
&#039;columns[8][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[8][search][value]&#039;: &#039;0 - 0&#039;,&lt;br /&gt;
&#039;columns[8][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[9][data]&#039;: 9,&lt;br /&gt;
&#039;columns[9][name]&#039;: &#039;rup&#039;,&lt;br /&gt;
&#039;columns[9][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][orderable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[9][search][value]&#039;: &#039;0 - 10&#039;,&lt;br /&gt;
&#039;columns[9][search][regex]&#039;: &#039;false&#039;,&lt;br /&gt;
&lt;br /&gt;
&#039;columns[10][data]&#039;: 10,&lt;br /&gt;
&#039;columns[10][name]&#039;: &#039;ldn&#039;,&lt;br /&gt;
&#039;columns[10][searchable]&#039;: &#039;true&#039;,&lt;br /&gt;
&#039;columns[10][orderable]&#039;:&lt;br /&gt;
&lt;br /&gt;
=Important! Once you run the /search/submit the most important value is the hlid=&lt;br /&gt;
&lt;br /&gt;
The columns in the resulting tab separated file are  alignment	dist	ecfp4 daylight topodist	mces tdn	tup	rdn	rup	ldn	lup	mut	maj	min	hyb	sub&lt;br /&gt;
The results are sorted in starting with the highest ECFP4&lt;br /&gt;
===Example Request===&lt;br /&gt;
*Here you only need to change the hlid!&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/export/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
==List of Publicly Available Maps==&lt;br /&gt;
* ZINC-Interesting-297K&lt;br /&gt;
* BB-Stock-1.5M&lt;br /&gt;
* In-Stock-13.9M&lt;br /&gt;
* ZINC-All-For-Sale-1.2B&lt;br /&gt;
*ZINC-All-1.2B&lt;br /&gt;
*BB-all-for-sale-18M&lt;br /&gt;
*ZINC-On-Demand-1B&lt;br /&gt;
*GDB13-977M&lt;br /&gt;
*Wait-OK-1B&lt;br /&gt;
*WuXi-58.6M&lt;br /&gt;
&lt;br /&gt;
==The SmallWorld API provides the following additional entry points:==&lt;br /&gt;
&lt;br /&gt;
===/search/view===&lt;br /&gt;
Provides data in JSON format.&lt;br /&gt;
&lt;br /&gt;
*Here again you only need to change the hlid&lt;br /&gt;
&lt;br /&gt;
    curl &#039;http://sw.docking.org//search/view/?hlid=5908&amp;amp;draw=8&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=18&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1561063193443&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/maps===&lt;br /&gt;
Lists all available dataset mapfiles. The response is a JSON detailing the map name, id prefix, resolve url&lt;br /&gt;
&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/maps&#039;&lt;br /&gt;
&lt;br /&gt;
===/search/config===&lt;br /&gt;
Retrieves the public server configuration as JSON including the list of available score functions. The names of the scoring functions can be provided as a parameter to the /search/submit endpoint.&lt;br /&gt;
Example Request:&lt;br /&gt;
    curl &#039;http://sw.docking.org/search/config&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: SmallWorld]]&lt;br /&gt;
[[Category: NextMove]]&lt;/div&gt;</summary>
		<author><name>Jyoung</name></author>
	</entry>
</feed>