Mercurial > repos > bgruening > osra
changeset 0:34ae5f2ae450 draft
Uploaded
author | bgruening |
---|---|
date | Thu, 15 Aug 2013 03:30:25 -0400 |
parents | |
children | 0916781bc971 |
files | osra.py osra.xml readme repository_dependencies.xml test_data/2008001635_153_chem.png test_data/2008001635_153_chem.smi test_data/CID_2244.png test_data/CID_2244.sdf tool_dependencies.xml |
diffstat | 9 files changed, 355 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/osra.py Thu Aug 15 03:30:25 2013 -0400 @@ -0,0 +1,27 @@ +#!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[7]): + # 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 + +sys.argv[0] = 'osra' +subprocess.call(sys.argv, stdout=sys.stdout) + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/osra.xml Thu Aug 15 03:30:25 2013 -0400 @@ -0,0 +1,74 @@ +<tool id="ctb_osra" name="Molecule recognition" version="0.3"> + <description>in Images or PDF documents (OSRA)</description> + <requirements> + <requirement type="package" version="2.0.0">osra</requirement> + <requirement type="package" version="2.3.2">openbabel</requirement> + <requirement type="package" version="1.3.18">graphicsmagick</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 + + $confidence + $adaptive + $thinning + + > $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> + <param name="confidence" type="boolean" label="Print out confidence estimate (-p)" truevalue="-p" falsevalue="" checked="true" /> + <param name="adaptive" type="boolean" label="Adaptive thresholding pre-processing, useful for low light/low contrast images (-i)" truevalue="-i" falsevalue="" checked="false" /> + <param name="thinning" type="boolean" label="Additional thinning/scaling down of low quality documents (-j)" truevalue="-j" falsevalue="" checked="false" /> + + </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> + <test> + <param name="infile" ftype="png" value="2008001635_153_chem.png"/> + <param name="oformat" value="can"/> + <output name="outfile" ftype="sdf" file="2008001635_153_chem.smi"/> + </test> + + </tests> + <help> + +.. class:: infomark + +**What this tool does** + +OSRA_ (Optical Structure Recognition Application) is a utility designed to convert graphical representations of chemical structures into SMILES or SDF. It generates the SMILES or SDF representation of any molecular structure image within a document which is parseable by GraphicMagick. + +.. _OSRA: http://cactus.nci.nih.gov/osra/ + +----- + +.. class:: infomark + +**Cite** + +Igor V Filippov and Marc C Nicklaus - `Optical Structure Recognition Software To Recover Chemical Information: OSRA, An Open Source Solution`_ + +.. _`Optical Structure Recognition Software To Recover Chemical Information: OSRA, An Open Source Solution`: http://pubs.acs.org/doi/abs/10.1021/ci800067r + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/readme Thu Aug 15 03:30:25 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 Aug 15 03:30:25 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="85eca06eefc6" name="molecule_datatypes" owner="iuc" toolshed="http://toolshed.g2.bx.psu.edu" /> +</repositories>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test_data/2008001635_153_chem.smi Thu Aug 15 03:30:25 2013 -0400 @@ -0,0 +1,1 @@ +CCC(c1ccc(cc1)Br)OCCCO
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test_data/CID_2244.sdf Thu Aug 15 03:30:25 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 + +$$$$ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_dependencies.xml Thu Aug 15 03:30:25 2013 -0400 @@ -0,0 +1,74 @@ +<?xml version="1.0"?> +<tool_dependency> + <package name="openbabel" version="2.3.2"> + <repository changeset_revision="99a10425de93" name="package_openbabel_2_3" owner="iuc" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" /> + </package> + <package name="graphicsmagick" version="1.3.18"> + <repository changeset_revision="4ce7b22bf603" name="package_graphicsmagick_1_3" owner="iuc" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" /> + </package> + <package name="osra" version="2.0.0"> + <install version="1.0"> + <actions> + <!-- first action is always downloading --> + <action type="download_by_url">http://downloads.sourceforge.net/project/osra/osra/2.0.0/osra-2.0.0.tgz</action> + + <!-- populate the environment variables from the dependend repos --> + <action type="set_environment_for_install"> + <repository changeset_revision="99a10425de93" name="package_openbabel_2_3" owner="iuc" toolshed="http://toolshed.g2.bx.psu.edu"> + <package name="openbabel" version="2.3.2" /> + </repository> + <repository changeset_revision="4ce7b22bf603" name="package_graphicsmagick_1_3" owner="iuc" toolshed="http://toolshed.g2.bx.psu.edu"> + <package name="graphicsmagick" version="1.3.18" /> + </repository> + </action> + + <!--compiling potrace-1.11 --> + <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 && cd potrace-1.11 && ./configure --with-libpotrace --prefix=$INSTALL_DIR/potrace/build && make && make install</action> + + <!--compiling gocr 0.50patched --> + <!-- not yet possible + <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 && cd gocr-0.50 && ./configure -|-prefix=$INSTALL_DIR/gocr/build && make libs && make all install</action> + --> + <action type="shell_command">wget http://downloads.sourceforge.net/project/osra/gocr-patched/gocr-0.50pre-patched.tgz</action> + <action type="shell_command">tar xfvz gocr-0.50pre-patched.tgz && cd gocr-0.50pre-patched && ./configure --prefix=$INSTALL_DIR/gocr/build && make libs && make all install</action> + + + <!--compiling tclap 1.2.1 --> + <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 && cd tclap-1.2.1 && ./configure --prefix=$INSTALL_DIR/tclap/build && make && make install</action> + + <!--compiling ocrad 0.21 --> + <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 && cd ocrad-0.21 && ./configure --prefix=$INSTALL_DIR/ocrad/build && make && make install</action> + + <!--compiling cuneiform 1.1.0 --> + <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 && cd cuneiform-linux-1.1.0 && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR/cuneiform/build/ && make && make install</action> + + <!--And finally OSRA 1.4.0--> + <!-- Extending the PATH is needed for OSRA --> + <action type="shell_command">export PATH=$PATH:$GRAPHICSMAGICK_ROOT_DIR/bin/ && + ./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/openbabel/ -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">$ENV[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> + <!-- OSRA_DATA_FILES is only used by the galaxy wrapper and is not part of OSRA --> + <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>