changeset 3:f4c48bb81097

Uploaded
author bgruening
date Thu, 23 May 2013 03:07:17 -0400
parents 044100ba512c
children 9c79d74d23ef
files osra.py osra.xml readme repository_dependencies.xml test_data/CID_2244.png test_data/CID_2244.sdf tool_dependencies.xml
diffstat 7 files changed, 316 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/osra.py	Thu May 23 03:07:17 2013 -0400
@@ -0,0 +1,26 @@
+#!usr/bin/env python
+
+import os, sys
+import subprocess
+
+"""
+    OSRA_DATA_FILES is set during the toolshed Installation
+    If it is not set, use the standard configuration of OSRA. 
+    That means we need to delete argument 4-7.
+    That script is a hack, because we do not know the content of OSRA_DATA_FILES at xml evaluation time.
+
+    osra -f $oformat $infile 
+        -l \$OSRA_DATA_FILES/spelling.txt -a \$OSRA_DATA_FILES/superatom.txt
+        > $outfile
+"""
+
+if not os.path.exists(sys.argv[6]):
+    # OSRA_DATA_FILES path is not set or the spelling file is not existent
+    sys.argv.pop(7) # superatom.txt path
+    sys.argv.pop(6) # -a
+    sys.argv.pop(5) # speling.txt path
+    sys.argv.pop(4) # -l
+
+subprocess.call(sys.argv[1:], stdout=sys.stdout)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/osra.xml	Thu May 23 03:07:17 2013 -0400
@@ -0,0 +1,46 @@
+<tool id="osra" name="Molecule recognition" version="0.2">
+    <description>in Images or PDF documents (OSRA)</description>
+    <requirements>
+        <requirement type="package" version="1.4.0">osra</requirement>
+    </requirements>
+    <command interpreter='python'>
+        ## OSRA_DATA_FILES is set during the toolshed Installation
+        ## if it is not set, use the standard configuration and hope the best
+        osra.py -f $oformat $infile 
+        -l \$OSRA_DATA_FILES/spelling.txt -a \$OSRA_DATA_FILES/superatom.txt
+        
+        ## further additions of OSRA parameter should go after -l and -a
+        ## because -l and -a can be removed by the python wrapper
+        
+        > $outfile
+    </command>
+    <inputs>
+        <param name="infile" type="data" format="png,pdf" label="Image or PDF with molecules"/>
+        <param name="oformat" type="select" label="Output molecule format">
+            <option value="can">SMILES</option>
+            <option value="sdf">SDF</option>
+        </param>
+    </inputs>
+    <outputs>
+        <data name="outfile" type="data" format="sdf">
+            <change_format>
+                <when input="oformat" value="can" format="smi"/>
+            </change_format>
+        </data>
+    </outputs>
+    <tests>
+        <test>
+            <param name="infile" ftype="png" value="CID_2244.png"/>
+            <param name="oformat" value="sdf"/>
+            <output name="outfile" ftype="sdf" file="osra_on_CID2244.sdf"/>
+        </test>
+    </tests>
+    <help>
+
+**What it does**
+
+OSRA detects molecules in images and converts them to standard molecule formats. 
+
+
+    </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/readme	Thu May 23 03:07:17 2013 -0400
@@ -0,0 +1,20 @@
+OSRA: Optical Structure Recognition Application
+
+OSRA is a utility designed to convert graphical representations of chemical 
+structures, as they appear in journal articles, patent documents, textbooks, 
+trade magazines etc., into SMILES (Simplified Molecular Input Line Entry 
+Specification - see http://en.wikipedia.org/wiki/SMILES) or 
+SD files - a computer recognizable molecular structure format. 
+OSRA can read a document in any of the over 90 graphical formats parseable by 
+ImageMagick - including GIF, JPEG, PNG, TIFF, PDF, PS etc., and generate 
+the SMILES or SDF representation of the molecular structure images encountered 
+within that document.
+
+Note that any software designed for optical recognition is unlikely to be 
+perfect, and the output produced might, and probably will, contain errors, 
+so curation by a human knowledgeable in chemical structures is highly recommended.
+
+http://cactus.nci.nih.gov/osra/
+
+The wrapper comes with an automatic installation of all dependencies through the
+galaxy toolshed.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/repository_dependencies.xml	Thu May 23 03:07:17 2013 -0400
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<repositories description="This requires the Molecule datatype definitions (e.g. SMILES, InChI, SD-format).">
+    <repository changeset_revision="1b63345907ec" name="molecule_datatypes" owner="bgruening" toolshed="http://testtoolshed.g2.bx.psu.edu" />
+</repositories>
\ No newline at end of file
Binary file test_data/CID_2244.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test_data/CID_2244.sdf	Thu May 23 03:07:17 2013 -0400
@@ -0,0 +1,155 @@
+2244
+  -OEChem-05151212332D
+
+ 21 21  0     0  0  0  0  0  0999 V2000
+    3.7320   -0.0600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -1.5600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641    0.9400    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.0000   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.0611   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.6800    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    2.3100    0.4769    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.4631    0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6900   -0.5969    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    2.0600    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1  5  1  0  0  0  0
+  1 12  1  0  0  0  0
+  2 11  1  0  0  0  0
+  2 21  1  0  0  0  0
+  3 11  2  0  0  0  0
+  4 12  2  0  0  0  0
+  5  6  1  0  0  0  0
+  5  7  2  0  0  0  0
+  6  8  2  0  0  0  0
+  6 11  1  0  0  0  0
+  7  9  1  0  0  0  0
+  7 14  1  0  0  0  0
+  8 10  1  0  0  0  0
+  8 15  1  0  0  0  0
+  9 10  2  0  0  0  0
+  9 16  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 18  1  0  0  0  0
+ 13 19  1  0  0  0  0
+ 13 20  1  0  0  0  0
+M  END
+> <PUBCHEM_COMPOUND_CID>
+2244
+
+> <PUBCHEM_COMPOUND_CANONICALIZED>
+1
+
+> <PUBCHEM_CACTVS_COMPLEXITY>
+212
+
+> <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
+4
+
+> <PUBCHEM_CACTVS_HBOND_DONOR>
+1
+
+> <PUBCHEM_CACTVS_ROTATABLE_BOND>
+3
+
+> <PUBCHEM_CACTVS_SUBSKEYS>
+AAADccBwOAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGgAACAAADASAmAAyDoAABgCIAiDSCAACCAAkIAAIiAEGCMgMJzaENRqCe2Cl4BEIuYeIyCCOAAAAAAAIAAAAAAAAABAAAAAAAAAAAA==
+
+> <PUBCHEM_IUPAC_OPENEYE_NAME>
+2-acetoxybenzoic acid
+
+> <PUBCHEM_IUPAC_CAS_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_TRADITIONAL_NAME>
+2-acetoxybenzoic acid
+
+> <PUBCHEM_IUPAC_INCHI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+> <PUBCHEM_IUPAC_INCHIKEY>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+> <PUBCHEM_XLOGP3>
+1.2
+
+> <PUBCHEM_EXACT_MASS>
+180.042259
+
+> <PUBCHEM_MOLECULAR_FORMULA>
+C9H8O4
+
+> <PUBCHEM_MOLECULAR_WEIGHT>
+180.15742
+
+> <PUBCHEM_OPENEYE_CAN_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+> <PUBCHEM_OPENEYE_ISO_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+> <PUBCHEM_CACTVS_TPSA>
+63.6
+
+> <PUBCHEM_MONOISOTOPIC_WEIGHT>
+180.042259
+
+> <PUBCHEM_TOTAL_CHARGE>
+0
+
+> <PUBCHEM_HEAVY_ATOM_COUNT>
+13
+
+> <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+> <PUBCHEM_COMPONENT_COUNT>
+1
+
+> <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+> <PUBCHEM_COORDINATE_TYPE>
+1
+5
+255
+
+> <PUBCHEM_BONDANNOTATIONS>
+5  6  8
+5  7  8
+6  8  8
+7  9  8
+8  10  8
+9  10  8
+
+$$$$
+
--- a/tool_dependencies.xml	Wed May 22 17:02:11 2013 -0400
+++ b/tool_dependencies.xml	Thu May 23 03:07:17 2013 -0400
@@ -1,38 +1,68 @@
 <?xml version="1.0"?>
 <tool_dependency>
-        <package name="lapack" version="3.4.2">
-            <repository changeset_revision="11df6383f50a" name="package_lapack_3_4" owner="bgruening" prior_installation_required="True" toolshed="http://testtoolshed.g2.bx.psu.edu" />
-        </package>
-        <package name="atlas" version="3.10.1">
-            <repository changeset_revision="65451dfb9974" name="package_atlas_3_10" owner="bgruening" prior_installation_required="True" toolshed="http://testtoolshed.g2.bx.psu.edu" />
-        </package>
-        <package name="numpy" version="1.7.1">
-            <install version="1.0">
-                <actions>
-                    <action type="download_by_url">https://pypi.python.org/packages/source/n/numpy/numpy-1.7.1.tar.gz</action>
-                    <action type="set_environment_for_install">
-                        <repository changeset_revision="65451dfb9974" name="package_atlas_3_10" owner="bgruening" toolshed="http://testtoolshed.g2.bx.psu.edu">
-                            <package name="atlas" version="3.10.1" />
-                        </repository>
-                    </action>
-                    <action type="set_environment_for_install">
-                        <repository changeset_revision="11df6383f50a" name="package_lapack_3_4" owner="bgruening" toolshed="http://testtoolshed.g2.bx.psu.edu">
-                            <package name="lapack" version="3.4.2" />
-                        </repository>
-                    </action>
-                    <action type="make_directory">$INSTALL_DIR/lib/python</action>
-                    <action type="shell_command">export PYTHONPATH=$PYTHONPATH:$INSTALL_DIR/lib/python &amp;&amp; 
-                    export BLAS=$LAPACK_LIB_DIR/libblas.a &amp;&amp; 
-                    export LAPACK=$LAPACK_LIB_DIR/liblapack.a &amp;&amp; 
-                    export ATLAS=$ATLAS_LIB_DIR/libatlas.a &amp;&amp; 
-                    python setup.py install --home $INSTALL_DIR --install-scripts $INSTALL_DIR/bin</action>
-                    <action type="set_environment">
-                        <environment_variable action="append_to" name="PYTHONPATH">$INSTALL_DIR/lib/python</environment_variable>
-                        <environment_variable action="set_to" name="PYTHONPATH_NUMPY">$INSTALL_DIR/lib/python</environment_variable>
-                        <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
-                        </action>
-                </actions>
-            </install>
-            <readme>Compiling numpy requires a C and Fortran compiler (typically gcc and gfortran). The PYTHONPATH for numpy can be accessed through PYTHONPATH_NUMPY.</readme>
-        </package>
+    <package name="openbabel" version="2.3.2">
+        <repository changeset_revision="efffcee80e03" name="package_openbabel_2_3" owner="bgruening" prior_installation_required="True" toolshed="http://testtoolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="graphicsmagick" version="1.3.18">
+        <repository changeset_revision="34f511310435" name="package_graphicsmagick_1_3" owner="bgruening" prior_installation_required="True" toolshed="http://testtoolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="osra" version="1.4.0">
+        <install version="1.0">
+            <actions>
+                
+                <action type="download_by_url">http://downloads.sourceforge.net/project/osra/osra/2.0.0/osra-2.0.0.tgz</action>
+
+                
+                <action type="set_environment_for_install">
+                    <repository changeset_revision="efffcee80e03" name="package_openbabel_2_3" owner="bgruening" toolshed="http://testtoolshed.g2.bx.psu.edu">
+                        <package name="openbabel" version="2.3.2" />
+                    </repository>
+                    <repository changeset_revision="34f511310435" name="package_graphicsmagick_1_3" owner="bgruening" toolshed="http://testtoolshed.g2.bx.psu.edu">
+                        <package name="graphicsmagick" version="1.3.18" />
+                    </repository>
+                </action>
+
+                
+                <action type="shell_command">wget http://potrace.sourceforge.net/download/potrace-1.11.tar.gz</action>
+                <action type="shell_command">tar xfvz potrace-1.11.tar.gz &amp;&amp; cd potrace-1.11 &amp;&amp; ./configure --with-libpotrace --prefix=$INSTALL_DIR/potrace/build &amp;&amp; make &amp;&amp; make install</action>
+
+                
+                <action type="shell_command">wget http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-0.50.tar.gz</action>
+                <action type="shell_command">tar xfvz gocr-0.50.tar.gz &amp;&amp; cd gocr-0.50 &amp;&amp; ./configure --prefix=$INSTALL_DIR/gocr/build &amp;&amp; make libs &amp;&amp; make all install</action>
+
+                
+                <action type="shell_command">wget http://downloads.sourceforge.net/project/tclap/tclap-1.2.1.tar.gz</action>
+                <action type="shell_command">tar xfvz tclap-1.2.1.tar.gz &amp;&amp; cd tclap-1.2.1 &amp;&amp; ./configure --prefix=$INSTALL_DIR/tclap/build &amp;&amp; make &amp;&amp; make install</action>
+
+                
+                <action type="shell_command">wget http://mirror.checkdomain.de/gnu/ocrad/ocrad-0.21.tar.gz</action>
+                <action type="shell_command">tar xfvz ocrad-0.21.tar.gz &amp;&amp; cd ocrad-0.21 &amp;&amp; ./configure --prefix=$INSTALL_DIR/ocrad/build &amp;&amp; make &amp;&amp; make install</action>
+
+                
+                <action type="shell_command">wget https://launchpad.net/cuneiform-linux/1.1/1.1/+download/cuneiform-linux-1.1.0.tar.bz2</action>
+                <action type="shell_command">tar xfvj cuneiform-linux-1.1.0.tar.bz2 &amp;&amp; cd cuneiform-linux-1.1.0 &amp;&amp; mkdir build &amp;&amp; cd build &amp;&amp; cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR/cuneiform/build/ &amp;&amp; make &amp;&amp; make install</action>
+
+                
+                
+                <action type="shell_command">export PATH=$PATH:$GRAPHICSMAGICK_ROOT_DIR/bin/ &amp;&amp; ./configure --with-tclap-include=$INSTALL_DIR/tclap/build/include/ --with-potrace-include=$INSTALL_DIR/potrace/build/include/ --with-potrace-lib=$INSTALL_DIR/potrace/build/lib/ --with-gocr-include=$INSTALL_DIR/gocr/build/include/gocr/ --with-gocr-lib=$INSTALL_DIR/gocr/build/lib/ --with-ocrad-include=$INSTALL_DIR/ocrad/build/include/ --with-ocrad-lib=$INSTALL_DIR/ocrad/build/lib/ --with-cuneiform-include=$INSTALL_DIR/cuneiform/build/install/include/ --with-cuneiform --with-cuneiform-lib=$INSTALL_DIR/cuneiform/build/install/lib/ --with-openbabel-include=$OPENBABEL_INCLUDE_DIR/openbabel-2.0/ --with-openbabel-lib=$OPENBABEL_LIB_DIR --with-graphicsmagick-lib=$GRAPHICSMAGICK_ROOT_DIR/lib/ --with-graphicsmagick-include=$GRAPHICSMAGICK_ROOT_DIR/include/GraphicsMagick/ --prefix=$INSTALL_DIR </action>
+                <action type="shell_command">make</action>
+                <action type="shell_command">make install</action>
+
+                <action type="shell_command">rm $INSTALL_DIR/tclap/ -r</action>
+                
+                <action type="shell_command">rm $INSTALL_DIR/gocr/ -r</action>
+                <action type="shell_command">rm $INSTALL_DIR/ocrad/ -r</action>
+                <action type="shell_command">rm $INSTALL_DIR/cuneiform/ -r</action>
+
+                <action type="set_environment">
+                    <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$GRAPHICSMAGICK_ROOT_DIR/lib/</environment_variable>
+                    <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$INSTALL_DIR/potrace/build/lib/</environment_variable>
+                    <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
+                    
+                    <environment_variable action="set_to" name="OSRA_DATA_FILES">$INSTALL_DIR/share</environment_variable>
+                </action>
+            </actions>
+        </install>
+        <readme>We still have a handfull of requirements</readme>
+    </package>
 </tool_dependency>
\ No newline at end of file