Repository 'hmdb_ms_search'
hg clone https://toolshed.g2.bx.psu.edu/repos/fgiacomoni/hmdb_ms_search

Changeset 1:6d0a0f8f672a (2016-11-23)
Previous changeset 0:9583f9772198 (2016-01-28) Next changeset 2:a3744fb3605c (2016-11-25)
Commit message:
planemo upload commit f67323ae4fa7fdbd9f4518ede105a7d7cd44b471
added:
README.md
README.txt
conf_hmdb.cfg
hmdb.tmpl
lib/conf.pm
lib/csv.pm
lib/hmdb.pm
static/images/hmdb.png
t/hmdb_managerTest.pl
t/lib/hmdbTest.pm
test-data/input_test01_fake-mzrt-input-with-id.tabular
test-data/input_test02_mzrt-input-with-id.tabular
test-data/out_test01.html
test-data/out_test01.tabular
test-data/out_test01.xlsx
test-data/out_test02.html
test-data/out_test02.tabular
test-data/out_test02.xlsx
test-data/out_test03.html
test-data/out_test03.tabular
test-data/out_test03.xlsx
wsdl_hmdb.pl
wsdl_hmdb.xml
removed:
hmdb/README.txt
hmdb/conf_hmdb.cfg
hmdb/hmdb.tmpl
hmdb/lib/conf.pm
hmdb/lib/csv.pm
hmdb/lib/hmdb.pm
hmdb/static/images/hmdb.png
hmdb/t/hmdb_managerTest.pl
hmdb/t/lib/hmdbTest.pm
hmdb/test_data/._.DS_Store
hmdb/test_data/input_test01_fake-mzrt-input-with-id.tsv
hmdb/test_data/input_test02_mzrt-input-with-id.tsv
hmdb/test_data/out_test01.csv
hmdb/test_data/out_test01.html
hmdb/test_data/out_test01.tsv
hmdb/test_data/out_test02.csv
hmdb/test_data/out_test02.html
hmdb/test_data/out_test02.tsv
hmdb/test_data/out_test03.csv
hmdb/test_data/out_test03.html
hmdb/test_data/out_test03.tsv
hmdb/wsdl_hmdb.pl
hmdb/wsdl_hmdb.xml
b
diff -r 9583f9772198 -r 6d0a0f8f672a README.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,52 @@
+HMDB MS search - search by masses on HMDB online bank
+=====================================================
+
+[![bioconda-badge](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)](http://bioconda.github.io) [![Build Status](https://travis-ci.org/workflow4metabolomics/tool-bank-golm-lib_search.svg?branch=master)](https://travis-ci.org/workflow4metabolomics/tool-bank-golm-lib_search)
+
+Our project
+-----------
+The [Workflow4Metabolomics](http://workflow4metabolomics.org), W4M in short, is a French infrastructure offering software tool processing, analyzing and annotating metabolomics data. It is based on the Galaxy platform.
+
+
+HMDB MS search - search by masses on HMDB online bank
+-----------------------------------------------------
+
+Tool using the HMDB Library Search.
+
+
+Galaxy
+------
+Galaxy is an open, web-based platform for data intensive biomedical research. Whether on the free public server or your own instance, you can perform, reproduce, and share complete analyses. 
+
+Homepage: [https://galaxyproject.org/](https://galaxyproject.org/)
+
+
+Dependencies using Conda
+------------------------
+[![bioconda-badge](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)](http://bioconda.github.io)
+
+
+[Conda](http://conda.pydata.org/) is package manager that among many other things can be used to manage Python packages.
+
+```
+#To install miniconda2
+#http://conda.pydata.org/miniconda.html
+#To install the tool dependencies using conda:
+conda install perl-lwp-simple perl-lwp-useragent perl-uri-url perl-soap-lite perl-list-moreutils perl-text-csv perl perl-html-template
+#To set an environment:
+conda create -n tool-bank-hmdb perl-soap-lite perl-list-moreutils perl-json perl-html-template`
+#To activate the environment:
+. activate tool-bank-hmdb
+```
+
+
+Travis
+------
+[![Build Status](https://travis-ci.org/workflow4metabolomics/tool-bank-golm-lib_search.svg?branch=master)](https://travis-ci.org/workflow4metabolomics/tool-bank-golm-lib_search)
+
+Test and Deploy with Confidence. Easily sync your GitHub projects with Travis CI and you'll be testing your code in minutes!
+
+Historic contributors
+---------------------
+- Franck Giacomoni @fgiacomoni - [French Metabolomics and Fluxomics Infrastructure (MetaboHUB)](http://www.metabohub.fr/en) - [La plateforme "Exploration du Métabolisme" (PFEM, Clermont-Ferrand)](http://www6.clermont.inra.fr/plateforme_exploration_metabolisme)
+- Marion Landi - [LIFEGRID grant](http://www.lifegrid.fr/fr/home/le-pra-lifegrid.html) - [La plateforme "Exploration du Métabolisme" (PFEM, Clermont-Ferrand)](http://www6.clermont.inra.fr/plateforme_exploration_metabolisme)
b
diff -r 9583f9772198 -r 6d0a0f8f672a README.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.txt Wed Nov 23 09:31:50 2016 -0500
b
@@ -0,0 +1,68 @@
+## ****** HMDB environnemnt : ****** ##
+# version Nov 2016 M Landi / F Giacomoni - INRA - METABOHUB - workflow4metabolomics.org core team
+
+## --- PERL compilator / libraries : --- ##
+$ perl -v
+This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
+
+# libs CORE PERL : 
+use strict ;
+use warnings ;
+use Carp qw (cluck croak carp) ;
+use Exporter ;
+use Data::Dumper ;
+use Getopt::Long ;
+use FindBin ;
+use Encode;
+
+# libs CPAN PERL : 
+$ perl -e 'use Text::CSV'  - OK
+use LWP::Simple; - OK
+use LWP::UserAgent; - OK
+use URI::URL; - OK
+use SOAP::Lite; - OK
+use HTML::Template ; - OK
+use XML::Twig ;  - OK
+
+$ sudo perl -MCPAN -e shell
+cpan> install Text::CSV
+
+# libs pfem PERL : this lib were included in lib dir.
+use conf::conf  qw( :ALL ) ;
+use formats::csv  qw( :ALL ) ;
+--
+
+## --- Conda compliant --- ##
+This tool and its PERL dependencies are "Conda compliant".
+The requirements section in the Xml file is still commented, waiting for "Conda" deployment improvement in Galaxy project.
+
+## --- R bin and Packages : --- ##
+No interaction with R
+-- 
+
+## --- Binary dependencies --- ##
+No interaction with binary - use only HMDB post method (http://www.hmdb.ca/spectra/ms/search?)
+--
+
+## --- Config : --- ##
+JS and CSS (used in HTML output format) are now hosted on cdn.rawgit.com server - no local config needed
+
+
+PS :If Galaxy can't find the file "hmdb.tmpl", perform this command line : perl -pi -e 's/\r//g' conf_hmdb.cfg
+--
+
+## --- XML HELP PART --- ##
+one image : 
+hmdb.png
+--
+
+## --- DATASETS OR TUTORIAL --- ##
+Please find help on W4M: http://workflow4metabolomics.org/howto 
+--
+
+## --- ??? COMMENTS ??? --- ##
+If Galaxy can't find the file "hmdb.tmpl", perform this command line : " perl -pi -e 's/\r//g' " on the conf file "conf_hmdb.cfg".
+
+To use fully functionalities of HTML output format file : 
+  - check that sanitize_all_html option in universe_wsgi.ini file is uncomment and set to FALSE.
+--
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a conf_hmdb.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/conf_hmdb.cfg Wed Nov 23 09:31:50 2016 -0500
b
@@ -0,0 +1,17 @@
+## Conf file for wsdl_hmdb.pl script
+#
+## Version -- edited by F.Giacomoni 
+VERSION=2016-11-28 
+#
+## ARGVT
+# Hmdb limits per job (max is 149)
+HMDB_LIMITS=50
+## Maximum query filtered (default is 20 - min : 1 / max 50)
+HMDB_MAX_QUERY=20
+## Galaxy url for HTML JS and CSS path 
+JS_GALAXY_PATH=https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/scripts
+CSS_GALAXY_PATH=https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/style
+#
+## HTML OUTPUT : 
+HTML_ENTRIES_PER_PAGE=4
+HMDB_METABOCARD_URL=http://www.hmdb.ca/metabolites/
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb.tmpl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hmdb.tmpl Wed Nov 23 09:31:50 2016 -0500
b
@@ -0,0 +1,1 @@
+<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content="INRA de Clermont-Ferrand"><title>Galaxy HMDB queries - All results</title><link rel="stylesheet" type="text/css" href="css.php" media="all"><link rel="stylesheet" type="text/css" href="<TMPL_VAR NAME=CSS_GALAXY_PATH>/simplePagination.css"/><!-- JavaScript --><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script src="<TMPL_VAR NAME=JS_GALAXY_PATH>/jquery.simplePagination.js"></script><style type="text/css">body {padding-top: 70px}div.lm-table-warning {  font-size: 1.4em;  font-weight: bold;  padding-right: 25px;  color: #21536a;  margin-left: 3px;}tr.green td  {background-color: #eaf2d3; color: black;}tr.blank td {background-color: #9999CC; color: black;}table {font-family:'Trebuchet MS',Arial,Helvetica,sans-serif;width:100%;border-collapse:collapse;}table.detail, table.detail tr.parent, table.detail td, table.detail th, table.detail tr.category {border-collapse:collapse;border:1px solid #98bf21;}table.detail th {font-size: 1.2em;text-align: center;padding-top: 5px;padding-bottom: 10px;background-color: #a7c942;color: #ffffff;}td.ca {text-align:center;}footer {  margin: 50px 0;}</style><script>function test(pageNumber){  var page="#page-id-"+pageNumber;  $('.select').hide() ; $(page).show()}</script></head><body><div class="container"><div class="lm-table-warning">Results of HMDB queries - <TMPL_VAR NAME=CONDITIONS></div><div id="detail_table_source" style="display:none"></div><p><div id="choose"></div><p><div id="ms_search_0" class="ms-search-table"></div><!-- HeadRows--><table id="detail_table" class="detail"><col style="width:30px;"><!-- Ids (m/z)--><col style="width:30px;"><!-- Mass (m/z)--><col style="width:120px;"><!-- Met name--><col style="width:50px;"><!-- Cpd ID--><col style="width:40px;"><!-- formula--><col style="width:60px;"><!-- cpd mw--><col style="width:50px;"><!-- adduct --><col style="width:20px;"><!-- adduct type--><col style="width:60px;"><!-- adduct mw--><col style="width:50px;"><!-- delta--><col style="width:120px;"><!-- INCHI--><col style="width:20;"><!-- logP--><thead><th>ID from input</th><th>Mass (m/z)</th><th>Metabolite_Name</th><th>Compound_ID</th><th>Formula</th><th>Compound MW (Da)</th><th>Adduct</th><th>Adduct_Type</th><th>Adduct MW (Da)</th><th>Delta</th><th>InChI Identifier</th><th>Predicted LogP (ALOGPS)</th></thead><TMPL_LOOP NAME=PAGES><tbody class="select" id="page-id-<TMPL_VAR NAME=PAGE_NB>"><TMPL_LOOP NAME=MASSES><tr class="<TMPL_VAR NAME=MZ_COLOR>"><td class="ca" ><TMPL_VAR NAME=MASSES_ID_QUERY></td><td id="<TMPL_VAR NAME=MASSES_NB>" class="ca" ><TMPL_VAR NAME=MASSES_MZ_QUERY></td><td class="ca" colspan="10"></td></tr><TMPL_LOOP NAME=ENTRIES><tr class="<TMPL_VAR NAME=ENTRY_COLOR>"><td class="ca" colspan="2"></td><td class="ca"><TMPL_VAR NAME=ENTRY_ENTRY_NAME></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/<TMPL_VAR NAME=ENTRY_ENTRY_ID2>" target="_blank" class="btn"><TMPL_VAR NAME=ENTRY_ENTRY_ID></a></td><td class="ca"><TMPL_VAR NAME=ENTRY_FORMULA></td><td class="ca"><TMPL_VAR NAME=ENTRY_CPD_MZ></td><td class="ca"><TMPL_VAR NAME=ENTRY_ADDUCT></td><td class="ca"><TMPL_VAR NAME=ENTRY_ADDUCT_TYPE></td><td class="ca"><TMPL_VAR NAME=ENTRY_ADDUCT_MZ></td><td class="ca"><TMPL_VAR NAME=ENTRY_DELTA></td><td class="ca"><TMPL_VAR NAME=ENTRY_ENTRY_INCHI></td><td class="ca"><TMPL_VAR NAME=ENTRY_ENTRY_LOGP></td></tr></TMPL_LOOP></TMPL_LOOP></tbody></TMPL_LOOP></table></div><div class="container"><hr><footer><div class="row">  <div class="col-lg-12"><p>Copyright &copy; INRA, N Paulhe, F Giacomoni 2014 </p>  </div> </div> </footer></div><script language="javascript">$(function() {$('#choose').pagination({items: <TMPL_VAR NAME=PAGES_NB>,itemsOnPage: 1,currentPage: 1,onInit: function () { test(1); },cssStyle: 'light-theme',onPageClick: function(pageNumber){test(pageNumber)}}).pagination('redraw');});</script></body></html>
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/README.txt
--- a/hmdb/README.txt Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,65 +0,0 @@
-## ****** HMDB environnemnt : ****** ##
-# version January 2016 M Landi / F Giacomoni - INRA - METABOHUB - workflow4metabolomics.org core team
-
-## --- PERL compilator / libraries : --- ##
-$ perl -v
-This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
-
-# libs CORE PERL : 
-use strict ;
-use warnings ;
-use Carp qw (cluck croak carp) ;
-use Exporter ;
-use Data::Dumper ;
-use Getopt::Long ;
-use FindBin ;
-use Encode;
-
-# libs CPAN PERL : 
-$ perl -e 'use Text::CSV'
-$ perl -e 'use LWP::Simple'
-$ perl -e 'use URI::URL'
-$ perl -e 'use SOAP::Lite'
-$ perl -e 'use HTML::Template'
-$ sudo perl -MCPAN -e shell
-cpan> install Text::CSV
-cpan> install LWP::Simple
-cpan> install URI::URL
-cpan> install SOAP::Lite
-cpan>  install HTML::Template
-
-# libs pfem PERL : this lib were included in lib dir.
-use conf::conf  qw( :ALL ) ;
-use formats::csv  qw( :ALL ) ;
---
-
-## --- R bin and Packages : --- ##
-No interaction with R
--- 
-
-## --- Binary dependencies --- ##
-No interaction with binary - use only HMDB post method (http://www.hmdb.ca/spectra/ms/search?)
---
-
-## --- Config : --- ##
-JS and CSS (used in HTML output format) are now hosted on cdn.rawgit.com server - no local config needed
-
-
-PS :If Galaxy can't find the file "hmdb.tmpl", perform this command line : perl -pi -e 's/\r//g' conf_hmdb.cfg
---
-
-## --- XML HELP PART --- ##
-one image : 
-hmdb.png
---
-
-## --- DATASETS OR TUTORIAL --- ##
-Please find help on W4M : 
---
-
-## --- ??? COMMENTS ??? --- ##
-If Galaxy can't find the file "hmdb.tmpl", perform this command line : " perl -pi -e 's/\r//g' " on the conf file "conf_hmdb.cfg".
-
-To use fully functionalities of HTML output format file : 
-  - check that sanitize_all_html option in universe_wsgi.ini file is uncomment and set to FALSE.
---
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/conf_hmdb.cfg
--- a/hmdb/conf_hmdb.cfg Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,14 +0,0 @@
-## Conf file for wsdl_hmdb.pl script
-#
-## Version -- edited by F.Giacomoni 
-VERSION=2015-06-08 
-#
-## ARGVT
-# Hmdb limits per job (max is 149)
-HMDB_LIMITS=50
-## Galaxy url for HTML JS and CSS path 
-JS_GALAXY_PATH=https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/scripts
-CSS_GALAXY_PATH=https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/style
-#
-## HTML OUTPUT : 
-HTML_ENTRIES_PER_PAGE=4
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/hmdb.tmpl
--- a/hmdb/hmdb.tmpl Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content="INRA de Clermont-Ferrand"><title>Galaxy HMDB queries - All results</title><link rel="stylesheet" type="text/css" href="css.php" media="all"><link rel="stylesheet" type="text/css" href="<TMPL_VAR NAME=CSS_GALAXY_PATH>/simplePagination.css"/><!-- JavaScript --><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script src="<TMPL_VAR NAME=JS_GALAXY_PATH>/jquery.simplePagination.js"></script><style type="text/css">body {padding-top: 70px}div.lm-table-warning {  font-size: 1.4em;  font-weight: bold;  padding-right: 25px;  color: #21536a;  margin-left: 3px;}tr.green td  {background-color: #eaf2d3; color: black;}tr.blank td {background-color: #9999CC; color: black;}table {font-family:'Trebuchet MS',Arial,Helvetica,sans-serif;width:100%;border-collapse:collapse;}table.detail, table.detail tr.parent, table.detail td, table.detail th, table.detail tr.category {border-collapse:collapse;border:1px solid #98bf21;}table.detail th {font-size: 1.2em;text-align: center;padding-top: 5px;padding-bottom: 10px;background-color: #a7c942;color: #ffffff;}td.ca {text-align:center;}footer {  margin: 50px 0;}</style><script>function test(pageNumber){  var page="#page-id-"+pageNumber;  $('.select').hide() ; $(page).show()}</script></head><body><div class="container"><div class="lm-table-warning">Results of HMDB queries - <TMPL_VAR NAME=CONDITIONS></div><div id="detail_table_source" style="display:none"></div><p><div id="choose"></div><p><div id="ms_search_0" class="ms-search-table"></div><!-- HeadRows--><table id="detail_table" class="detail"><col style="width:30px;"><!-- Ids (m/z)--><col style="width:30px;"><!-- Mass (m/z)--><col style="width:30px;"><!-- Compound--><col style="width:120px;"><!-- name--><col style="width:40px;"><!-- adduct--><col style="width:50px;"><!-- adduct type--><col style="width:60px;"><!-- adduct mw--><col style="width:60px;"><!-- cpd mw--><col style="width:50px;"><!-- delta--><thead><th>ID from input</th><th>Mass (m/z)</th><th>Compound_ID</th><th>Formula</th><th>Compound MW (Da)</th><th>Adduct</th><th>Adduct_Type</th><th>Adduct MW (Da)</th><th>Delta</th></thead><TMPL_LOOP NAME=PAGES><tbody class="select" id="page-id-<TMPL_VAR NAME=PAGE_NB>"><TMPL_LOOP NAME=MASSES><tr class="<TMPL_VAR NAME=MZ_COLOR>"><td class="ca" ><TMPL_VAR NAME=MASSES_ID_QUERY></td><td id="<TMPL_VAR NAME=MASSES_NB>" class="ca" ><TMPL_VAR NAME=MASSES_MZ_QUERY></td><td class="ca" colspan="7"></td></tr><TMPL_LOOP NAME=ENTRIES><tr class="<TMPL_VAR NAME=ENTRY_COLOR>"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/<TMPL_VAR NAME=ENTRY_ENTRY_ID2>" target="_blank" class="btn"><TMPL_VAR NAME=ENTRY_ENTRY_ID></a></td><td class="ca"><TMPL_VAR NAME=ENTRY_FORMULA></td><td class="ca"><TMPL_VAR NAME=ENTRY_CPD_MZ></td><td class="ca"><TMPL_VAR NAME=ENTRY_ADDUCT></td><td class="ca"><TMPL_VAR NAME=ENTRY_ADDUCT_TYPE></td><td class="ca"><TMPL_VAR NAME=ENTRY_ADDUCT_MZ></td><td class="ca"><TMPL_VAR NAME=ENTRY_DELTA></td></tr></TMPL_LOOP></TMPL_LOOP></tbody></TMPL_LOOP></table></div><div class="container"><hr><footer><div class="row">  <div class="col-lg-12"><p>Copyright &copy; INRA, N Paulhe, F Giacomoni 2014 </p>  </div> </div> </footer></div><script language="javascript">$(function() {$('#choose').pagination({items: <TMPL_VAR NAME=PAGES_NB>,itemsOnPage: 1,currentPage: 1,onInit: function () { test(1); },cssStyle: 'light-theme',onPageClick: function(pageNumber){test(pageNumber)}}).pagination('redraw');});</script></body></html>
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/lib/conf.pm
--- a/hmdb/lib/conf.pm Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,259 +0,0 @@
-package lib::conf ;
-
-use strict;
-use warnings ;
-use Exporter ;
-use Carp ;
-use Data::Dumper ;
-
-use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);
-
-our $VERSION = "1.0" ;
-our @ISA = qw(Exporter) ;
-our @EXPORT = qw( as_conf get_value_from_conf check_path_and_file ) ;
-our %EXPORT_TAGS = ( ALL => [qw( as_conf get_value_from_conf )] ) ;
-
-=head1 NAME
-
-conf - A module for manage pfem conf file
-
-=head1 SYNOPSIS
-
-    use conf ;
-    my $object = conf->new() ;
-
-=head1 DESCRIPTION
-
-This module does manage conf file (extract all or selected fields)
-
-=head1 METHODS
-
-Methods are :
-
-=head2 METHOD new
-
- ## Description : new
- ## Input : $self
- ## Ouput : bless $self ;
- ## Usage : new() ;
-
-=cut
-## START of SUB
-sub new {
-    ## Variables
-    my $self={};
-    bless($self) ;
-    return $self ;
-}
-### END of SUB
-
-=head2 METHOD as_conf
-
- ## Description : permet de cr�er l'object conf � partir d'un fichier de conf de type KEY=VALUE
- ## Input : $file
- ## Ouput : $oConf (a hash)
- ## Usage : my ( $oConf ) = as_conf( $file ) ;
-
-=cut
-## START of SUB
-sub as_conf {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $file, $separator ) = @_ ;
-    
-#    if (!defined $separator) { $separator = ';' } ## set separator to ;
-    
-    if ( !defined $file )  {  croak "Can't create object with an none defined file\n" ; }
-    
-    my %Conf = () ; ## Hash devant contenir l'ensemble des parametres locaux
-
- if (-e $file) {
- open (CFG, "<$file") or die "Can't open $file\n" ;
- while (<CFG>) {
- chomp $_ ;
- if ( $_ =~ /^#(.*)/)  { next ; }
- elsif ($_ =~/^(\w+?)=(.*)/) { ## ALPHANUMERIC OR UNDERSCORE ONLY FOR THE KEY AND ANYTHING ELSE FOR VALUE
-
- my ($key, $value) = ($1, $2) ;
-
- if (defined $separator) {
- if ( $value=~/$separator/ ) { ## is a list to split
- my @tmp = split(/$separator/ , $value) ;
- $Conf{$key} = \@tmp ;
- }
- }
- else {
- $Conf{$key} = $value ;
- }
- }
- }
- close(CFG) ;
- }
- else { 
- croak "Can't create object with an none existing file\n" ;
- }
-
-    return ( \%Conf ) ;
-}
-## END of SUB
-
-=head2 METHOD as_conf_list
-
- ## Description : permet de charger une liste txt en array
- ## Input : $file
- ## Output : elements
- ## Usage : my ( elements ) = as_conf_list( $conf_file ) ;
-
-=cut
-## START of SUB
-sub as_conf_list {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $file ) = @_ ;
-    
-    my @elements = () ;
-    if ( !defined $file )  {  croak "Can't create object with an none defined file\n" ; }
-    
-    if (-e $file) {
- open (CFG, "<$file") or die "Can't open $file\n" ;
- while (<CFG>) {
- chomp $_ ;
- if ( $_ =~ /^#(.*)/)  { next ; }
- elsif ($_ =~/^(.*)/) { if (defined $1) { push (@elements, $1) ; }  }
- }
-    }
-    else {
- croak "Can't create object with an none existing file\n" ;
- }
-    return(\@elements) ;
-}
-## END of SUB
-
-=head2 METHOD get_value_from_conf
-
- ## Description : permet de retourner une valeur du hash de conf � partir d'une key
- ## Input : $oConf, $Key
- ## Ouput : $Value
- ## Usage : my ( $Value ) = get_value_from_conf( $oConf, $Key ) ;
-
-=cut
-## START of SUB
-sub get_value_from_conf {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $oConf, $Key ) = @_ ;
-    
-    my $Value = undef ;
-    
-    if ( defined $oConf ) {
-     if ( defined $oConf->{$Key} ) {
-     $Value = $oConf->{$Key} ;
-     }
-    }
-    else {
-     croak "Can't manage value with undefined object\n" ;
-    }
-    return($Value) ;
-}
-## END of SUB
-
-=head2 METHOD get_value_from_conf
-
- ## Description : permet de retourner une valeur du hash de conf � partir d'une key
- ## Input : $oConf, $Key
- ## Ouput : $Value
- ## Usage : my ( $Value ) = get_value_from_conf( $oConf, $Key ) ;
-
-=cut
-## START of SUB
-sub split_value_from_conf {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $oConf, $Key, $sep ) = @_ ;
-    
-    my $value = undef ;
-    my @values = () ;
-    
-    if ( defined $oConf ) {
-     if ( defined $oConf->{$Key} ) {
-     $value = $oConf->{$Key} ;
-     @values = split ( /$sep/, $value) ;
-     }
-    }
-    else {
-     croak "Can't manage value with undefined object\n" ;
-    }
-    return(\@values) ;
-}
-## END of SUB
-
-
-=head2 METHOD check_path_and_file
-
- ## Description : permet de v�rifier les path et la pr�sence des exe d�crits dans le file conf. Bloque le script en cas de probleme
- ## Input : $oConfs
- ## Ouput : NA
- ## Usage : &get_value_from_conf( $oConf ) ;
-
-=cut
-## START of SUB
-sub check_path_and_file {
-
- my $self = shift ;
- my ( $oConfs ) = @_ ;
-
- foreach my $conf ( keys %{ $oConfs } ) {
- if ( $conf =~ /^FILE/ ) {
- if ( -e $oConfs->{$conf} ) {
- if ( -s $oConfs->{$conf} ) { next ; }
- else { carp "[Warning] : The size of file $oConfs->{$conf} is null\n" ; }
- }
- else {
- carp "[Warning] : The file $oConfs->{$conf} doesn't exist\n" ;
- }
- }
- elsif ( $conf =~ /^PATH/ ) {
- if ( -d $oConfs->{$conf} ) { next ; }
- else { carp "[Warning] :  The dir $oConfs->{$conf} doesn't exist\n" ; }
- }
- else {  next ;  }
- }
- return ;
-}
-## END of SUB
-
-1 ;
-
-
-__END__
-
-=head1 SUPPORT
-
-You can find documentation for this module with the perldoc command.
-
- perldoc conf.pm
-
-
-=head1 Exports
-
-=over 4
-
-=item :ALL is as_conf get_value_from_conf
-
-=back
-
-=head1 AUTHOR
-
-Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
-
-=head1 VERSION
-
-version 1 : 10 / 02 / 2013
-
-version 2 : ??
-
-=cut
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/lib/csv.pm
--- a/hmdb/lib/csv.pm Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,239 +0,0 @@
-package lib::csv ;
-
-use strict;
-use warnings ;
-use Exporter ;
-use Carp ;
-
-use Text::CSV ;
-
-use Data::Dumper ;
-
-use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);
-
-our $VERSION = "1.0";
-our @ISA = qw(Exporter);
-our @EXPORT = qw( get_csv_object get_value_from_csv_multi_header );
-our %EXPORT_TAGS = ( ALL => [qw( get_csv_object get_value_from_csv_multi_header )] );
-
-=head1 NAME
-
-My::Module - An example module
-
-=head1 SYNOPSIS
-
-    use My::Module;
-    my $object = My::Module->new();
-    print $object->as_string;
-
-=head1 DESCRIPTION
-
-This module does not really exist, it
-was made for the sole purpose of
-demonstrating how POD works.
-
-=head1 METHODS
-
-Methods are :
-
-=head2 METHOD new
-
- ## Description : new
- ## Input : $self
- ## Ouput : bless $self ;
- ## Usage : new() ;
-
-=cut
-
-sub new {
-    ## Variables
-    my $self={};
-    bless($self) ;
-    return $self ;
-}
-### END of SUB
-
-=head2 METHOD get_csv_object
-
- ## Description : builds a csv object and etablishes format
- ## Input : $separator
- ## Output : $csv
- ## Usage : my ( $csv ) = get_csv_object( $separator ) ;
-
-=cut
-## START of SUB
-sub get_csv_object {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $separator ) = @_ ;
-    
-#    my $csv = Text::CSV->new({'sep_char' => "$separator"});
-    my $csv = Text::CSV->new ( {'sep_char' => "$separator", binary => 1 } )  # should set binary attribute.
-     or die "Cannot use CSV: ".Text::CSV->error_diag ();
-    
-    return($csv) ;
-}
-## END of SUB
-
-=head2 METHOD get_value_from_csv_multi_header
-
- ## Description : extract a targeted column in a csv file 
- ## Input : $csv, $file, $column, $is_header, $nb_header
- ## Output : $value
- ## Usage : my ( $value ) = get_value_from_csv_multi_header( $csv, $file, $column, $is_header, $nb_header ) ;
-
-=cut
-## START of SUB
-sub get_value_from_csv_multi_header {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $csv, $file, $column, $is_header, $nb_header ) = @_ ;
-    
-    my @value = () ;
-    
-    ## Adapte the number of the colunm : (nb of column to position in array)
- $column = $column - 1 ;
-    
-    open (CSV, "<", $file) or die $! ;
-
- my $line = 0 ;
-
- while (<CSV>) {
- $line++ ;
-     chomp $_ ;
- # file has a header
- if ( defined $is_header and $is_header eq 'yes') { if ($line <= $nb_header) { next ; } }
- # parsing the targeted column
-     if ( $csv->parse($_) ) {
-         my @columns = $csv->fields();
-         push ( @value, $columns[$column] ) ;
-     }
-     else {
-         my $err = $csv->error_input;
-         die "Failed to parse line: $err";
-     }
- }
- close CSV;
-    return(\@value) ;
-}
-## END of SUB
-
-=head2 METHOD parse_csv_object
-
- ## Description : parse_all csv object and return a array of rows
- ## Input : $csv, $file
- ## Output : $csv_matrix
- ## Usage : my ( $csv_matrix ) = parse_csv_object( $csv, $file ) ;
-
-=cut
-## START of SUB
-sub parse_csv_object {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $csv, $file ) = @_ ;
-    
-    my @csv_matrix = () ;
-    
- open my $fh, "<:encoding(utf8)", $$file or die "Can't open csv file $$file: $!";
-
- while ( my $row = $csv->getline( $fh ) ) {
-     push @csv_matrix, $row;
- }
- $csv->eof or $csv->error_diag();
- close $fh;
-    
-    return(\@csv_matrix) ;
-}
-## END of SUB
-
-=head2 METHOD parse_allcsv_object
-
- ## Description : parse_all csv object and return a array of rows with or without header
- ## Input : $csv, $file, $keep_header
- ## Output : $csv_matrix
- ## Usage : my ( $csv_matrix ) = parse_csv_object( $csv, $file, $keep_header ) ;
-
-=cut
-## START of SUB
-sub parse_allcsv_object {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $csv, $file, $keep_header ) = @_ ;
-    
-    my @csv_matrix = () ;
-    my $line = 1 ;
-    
- open my $fh, "<:encoding(utf8)", $$file or die "Can't open csv file $$file: $!";
-
- while ( my $row = $csv->getline( $fh ) ) {
- if ( ( $keep_header eq 'n' )  and ($line == 1) ) {  }
- else { push @csv_matrix, $row; }
-     $line ++ ;
- }
- my $status = $csv->eof or $csv->error_diag();
- close $fh;
-    
-    return(\@csv_matrix, $status) ;
-}
-## END of SUB
-
-
-=head2 METHOD write_csv_from_arrays
-
- ## Description : write a csv file from list of rows
- ## Input : $csv, $file_name, $rows
- ## Output : $csv_file
- ## Usage : my ( $csv_file ) = write_csv_from_arrays( $csv, $file_name, $rows ) ;
-
-=cut
-## START of SUB
-sub write_csv_from_arrays {
- ## Retrieve Values
-    my $self = shift ;
-    my ( $csv, $file_name, $rows ) = @_ ;
-    
-    my $fh = undef ;
-    $csv->eol ("\n"); ##  end-of-line string to add to rows
-    open $fh, ">:encoding(utf8)", "$file_name" or die "$file_name: $!";
-    
- my $status = $csv->print ($fh, $_) for @{$rows};
- close $fh or die "$file_name: $!";
-    
-    return(\$file_name) ;
-}
-## END of SUB
-
-1 ;
-
-
-__END__
-
-=head1 SUPPORT
-
-You can find documentation for this module with the perldoc command.
-
- perldoc csv.pm
-
-=head1 Exports
-
-=over 4
-
-=item :ALL is get_csv_object, get_value_from_csv_multi_header
-
-=back
-
-=head1 AUTHOR
-
-Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
-
-=head1 VERSION
-
-version 1 : 23 / 10 / 2013
-
-version 2 : ??
-
-=cut
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/lib/hmdb.pm
--- a/hmdb/lib/hmdb.pm Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,889 +0,0 @@\n-package lib::hmdb ;\r\n-\r\n-use strict;\r\n-use warnings ;\r\n-use Exporter ;\r\n-use Carp ;\r\n-\r\n-use LWP::Simple;\r\n-use LWP::UserAgent;\r\n-use URI::URL;\r\n-use SOAP::Lite;\r\n-use Encode;\r\n-use HTML::Template ;\r\n-\r\n-use Data::Dumper ;\r\n-\r\n-use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);\r\n-\r\n-our $VERSION = "1.0";\r\n-our @ISA = qw(Exporter);\r\n-our @EXPORT = qw( extract_sub_mz_lists test_matches_from_hmdb_ua prepare_multi_masses_query get_matches_from_hmdb_ua parse_hmdb_csv_results set_html_tbody_object add_mz_to_tbody_object add_entries_to_tbody_object write_html_skel set_lm_matrix_object set_hmdb_matrix_object_with_ids add_lm_matrix_to_input_matrix write_csv_skel write_csv_one_mass );\r\n-our %EXPORT_TAGS = ( ALL => [qw( extract_sub_mz_lists test_matches_from_hmdb_ua prepare_multi_masses_query get_matches_from_hmdb_ua parse_hmdb_csv_results set_html_tbody_object add_mz_to_tbody_object add_entries_to_tbody_object write_html_skel set_lm_matrix_object set_hmdb_matrix_object_with_ids add_lm_matrix_to_input_matrix write_csv_skel write_csv_one_mass )] );\r\n-\r\n-=head1 NAME\r\n-\r\n-My::Module - An example module\r\n-\r\n-=head1 SYNOPSIS\r\n-\r\n-    use My::Module;\r\n-    my $object = My::Module->new();\r\n-    print $object->as_string;\r\n-\r\n-=head1 DESCRIPTION\r\n-\r\n-This module does not really exist, it\r\n-was made for the sole purpose of\r\n-demonstrating how POD works.\r\n-\r\n-=head1 METHODS\r\n-\r\n-Methods are :\r\n-\r\n-=head2 METHOD new\r\n-\r\n-\t## Description : new\r\n-\t## Input : $self\r\n-\t## Ouput : bless $self ;\r\n-\t## Usage : new() ;\r\n-\r\n-=cut\r\n-\r\n-sub new {\r\n-    ## Variables\r\n-    my $self={};\r\n-    bless($self) ;\r\n-    return $self ;\r\n-}\r\n-### END of SUB\r\n-     \r\n-\r\n-=head2 METHOD extract_sub_mz_lists\r\n-\r\n-\t## Description : extract a couples of sublist from a long mz list (more than $HMDB_LIMITS)\r\n-\t## Input : $HMDB_LIMITS, $masses\r\n-\t## Output : $sublists\r\n-\t## Usage : my ( $sublists ) = extract_sub_mz_lists( $HMDB_LIMITS, $masses ) ;\r\n-\t\r\n-=cut\r\n-## START of SUB\r\n-sub extract_sub_mz_lists {\r\n-\t## Retrieve Values\r\n-    my $self = shift ;\r\n-    my ( $masses, $HMDB_LIMITS ) = @_ ;\r\n-    \r\n-    my ( @sublists, @sublist ) = ( (), () ) ;\r\n-    my $nb_mz = 0 ;\r\n-    my $nb_total_mzs = scalar(@{$masses}) ;\r\n-    \r\n-    if ($nb_total_mzs == 0) {\r\n-    \tdie "The provided mzs list is empty" ;\r\n-    }\r\n-    \r\n-    for ( my $current_pos = 0 ; $current_pos < $nb_total_mzs ; $current_pos++ ) {\r\n-    \t\r\n-    \tif ( $nb_mz < $HMDB_LIMITS ) {\r\n-    \t\tif ( $masses->[$current_pos] ) { \tpush (@sublist, $masses->[$current_pos]) ; $nb_mz++ ;\t} # build sub list\r\n-    \t} \r\n-    \telsif ( $nb_mz == $HMDB_LIMITS ) {\r\n-    \t\tmy @tmp = @sublist ; push (@sublists, \\@tmp) ; @sublist = () ;\t$nb_mz = 0 ;\r\n-    \t\t$current_pos-- ;\r\n-    \t}\r\n-    \tif ($current_pos == $nb_total_mzs-1) { \tmy @tmp = @sublist ; push (@sublists, \\@tmp) ; }\r\n-\t}\r\n-    return(\\@sublists) ;\r\n-}\r\n-## END of SUB\r\n-\r\n-=head2 METHOD prepare_multi_masses_query\r\n-\r\n-\t## Description : Generate the adapted format of the mz list for HMDB\r\n-\t## Input : $masses\r\n-\t## Output : $hmdb_masses\r\n-\t## Usage : my ( $hmdb_masses ) = prepare_multi_masses_query( $masses ) ;\r\n-\t\r\n-=cut\r\n-## START of SUB\r\n-sub prepare_multi_masses_query {\r\n-\t## Retrieve Values\r\n-    my $self = shift ;\r\n-    my ( $masses ) = @_ ;\r\n-    \r\n-    my $hmdb_masses = undef ;\r\n-    my $sep = \'%0D%0A\' ; ## retour chariot encode\r\n-    my ($nb_masses, $i) = (0, 0) ;\r\n-    \r\n-    if ( defined $masses ) {\r\n-    \tmy @masses = @{$masses} ;\r\n-    \tmy $nb_masses = scalar ( @masses ) ;\r\n-    \tif ( $nb_masses == 0 ) { croak "The input method parameter mass list is empty" ; }\r\n-    \telsif ( $nb_masses >= 150 ) { croak "Your mass list is too long : HMDB allows maximum 150 query masses per request \\n" ; } ## Del it --- temporary patch\r\n-\t    \r\n-\t    foreach my $mass (@masses) {\r\n-\t    \t\r\n-\t    \tif ($i < $nb_masses) {\r\n-\t    \t\t$hmdb_masses .= $mass.$sep ;\r\n-\t    \t}\r\n-\t    \telsif ( $i == $nb_masses ) {\r\n-\t    \t\t$hmdb_masses .= $mass ;\r\n-\t    \t}\r\n-\t    \telse {\r\n-\t    \t\tlast ;\r'..b'   \t\tpush (@output_matrix_object, \\@init_row) ;\r\n-    \t\tnext ;\r\n-    \t}\r\n-    \t\r\n-    \tif ( $lm_matrix_object->[$index_row] ) {\r\n-    \t\tmy $dim = scalar(@{$lm_matrix_object->[$index_row]}) ;\r\n-    \t\t\r\n-    \t\tif ($dim > 1) { warn "the add method can\'t manage more than one column\\n" ;}\r\n-    \t\tmy $lm_col =  $lm_matrix_object->[$index_row][$dim-1] ;\r\n-\r\n-   \t\t \tpush (@init_row, $lm_col) ;\r\n-\t    \t$index_row++ ;\r\n-    \t}\r\n-    \tpush (@output_matrix_object, \\@init_row) ;\r\n-    }\r\n-    return(\\@output_matrix_object) ;\r\n-}\r\n-## END of SUB\r\n-\r\n-=head2 METHOD write_csv_skel\r\n-\r\n-\t## Description : prepare and write csv output file\r\n-\t## Input : $csv_file, $rows\r\n-\t## Output : $csv_file\r\n-\t## Usage : my ( $csv_file ) = write_csv_skel( $csv_file, $rows ) ;\r\n-\t\r\n-=cut\r\n-## START of SUB\r\n-sub write_csv_skel {\r\n-\t## Retrieve Values\r\n-    my $self = shift ;\r\n-    my ( $csv_file, $rows ) = @_ ;\r\n-    \r\n-    my $ocsv = lib::csv::new() ;\r\n-\tmy $csv = $ocsv->get_csv_object("\\t") ;\r\n-\t$ocsv->write_csv_from_arrays($csv, $$csv_file, $rows) ;\r\n-    \r\n-    return($csv_file) ;\r\n-}\r\n-## END of SUB\r\n-\r\n-=head2 METHOD write_csv_one_mass\r\n-\r\n-\t## Description : print a cvs file\r\n-\t## Input : $masses, $ids, $results, $file\r\n-\t## Output : N/A\r\n-\t## Usage : write_csv_one_mass( $ids, $results, $file ) ;\r\n-\t\r\n-=cut\r\n-## START of SUB\r\n-sub write_csv_one_mass {\r\n-\t## Retrieve Values\r\n-    my $self = shift ;\r\n-    my ( $masses, $ids, $results, $file,  ) = @_ ;\r\n-\r\n-    open(CSV, \'>:utf8\', "$file") or die "Cant\' create the file $file\\n" ;\r\n-    print CSV "ID\\tMASS_SUBMIT\\tHMDB_ID\\tCPD_FORMULA\\tCPD_MW\\tDELTA\\n" ;\r\n-    \t\r\n-    my $i = 0 ;\r\n-    \t\r\n-    foreach my $id (@{$ids}) {\r\n-    \tmy $mass = undef ;\r\n-    \tif ( $masses->[$i] ) { \t$mass = $masses->[$i] ; \t}\r\n-    \telse {\t\t\t\t\t\tlast ; \t\t\t\t\t \t}\r\n-    \t\r\n-    \tif ( $results->[$i] ) { ## an requested id has a result in the list of hashes $results.\r\n-\r\n-    \t\tmy @anti_redondant = (\'N/A\') ;\r\n-    \t\tmy $check_rebond = 0 ;\r\n-    \t\tmy $check_noentry = 0 ;\r\n-    \t\t\r\n-    \t\tforeach my $entry (@{$results->[$i]}) {\r\n-    \t\t\t$check_noentry ++ ;\r\n-    \t\t\t## dispo anti doublons des entries\r\n-\t    \t\tforeach my $rebond (@anti_redondant) {\r\n-\t    \t\t\tif ( $rebond eq $entry->{ENTRY_ENTRY_ID} ) { $check_rebond = 1 ; last ; }\r\n-\t    \t\t}\r\n-#\t    \t\tprint "\\n-----------------------" ;\r\n-#\t    \t\tprint Dumper $entry->{ENTRY_ENTRY_ID} ;\r\n-#\t    \t\tprint "-------------------------$check_rebond\\n" ;\r\n-#\t\t    \tprint Dumper @anti_redondant ;\r\n-\t\t    \tif ( $check_rebond == 0 ) {\r\n-\t    \t\t\t\r\n-\t\t    \t\tpush ( @anti_redondant, $entry->{ENTRY_ENTRY_ID} ) ;\r\n-\r\n-\t    \t\t\tprint CSV "$id\\t$mass\\t$entry->{ENTRY_ENTRY_ID}\\t" ;\r\n-\t    \t\t\t## print cpd name\r\n-\t    \t\t\tif ( $entry->{ENTRY_FORMULA} ) { print CSV "$entry->{ENTRY_FORMULA}\\t" ; }\r\n-\t    \t\t\telse { \t\t\t\t\t\t\t print CSV "N/A\\t" ; }\r\n-\t    \t\t\t## print cpd mw\r\n-\t    \t\t\tif ( $entry->{ENTRY_CPD_MZ} ) { print CSV "$entry->{ENTRY_CPD_MZ}\\t" ; }\r\n-\t    \t\t\telse { \t\t\t\t\t\t\tprint CSV "N/A\\t" ; }\r\n-\t    \t\t\t## print delta\r\n-\t    \t\t\tif ( $entry->{ENTRY_DELTA} ) {  print CSV "$entry->{ENTRY_DELTA}\\n" ; }\r\n-\t    \t\t\telse { \t\t\t\t\t\t\tprint CSV "N/A\\n" ; }\r\n-\t\t    \t}\r\n-\t\t    \t$check_rebond = 0 ; ## reinit double control\r\n-    \t\t} ## end foreach\r\n-    \t\tif ($check_noentry == 0 ) {\r\n-    \t\t\tprint CSV "$id\\t$mass\\t".\'No_result_found_on_HMDB\'."\\tn/a\\tn/a\\t0\\n" ;\r\n-    \t\t}\r\n-    \t}\r\n-    \t$i++ ;\r\n-    }\r\n-   \tclose(CSV) ;\r\n-    return() ;\r\n-}\r\n-## END of SUB\r\n-\r\n-1 ;\r\n-\r\n-\r\n-__END__\r\n-\r\n-=head1 SUPPORT\r\n-\r\n-You can find documentation for this module with the perldoc command.\r\n-\r\n- perldoc hmdb.pm\r\n-\r\n-=head1 Exports\r\n-\r\n-=over 4\r\n-\r\n-=item :ALL is ...\r\n-\r\n-=back\r\n-\r\n-=head1 AUTHOR\r\n-\r\n-Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>\r\n-\r\n-=head1 LICENSE\r\n-\r\n-This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.\r\n-\r\n-=head1 VERSION\r\n-\r\n-version 1 : 06 / 06 / 2013\r\n-\r\n-version 2 : 27 / 01 / 2014\r\n-\r\n-version 3 : 19 / 11 / 2014\r\n-\r\n-version 4 : 28 / 01 / 2016\r\n-\r\n-=cut\r\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/static/images/hmdb.png
b
Binary file hmdb/static/images/hmdb.png has changed
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/t/hmdb_managerTest.pl
--- a/hmdb/t/hmdb_managerTest.pl Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,134 +0,0 @@
-#! perl
-use diagnostics;
-use warnings;
-no warnings qw/void/;
-use strict;
-no strict "refs" ;
-use Test::More qw( no_plan );
-use Test::Exception;
-use FindBin ;
-use Carp ;
-
-## Specific Modules
-use lib $FindBin::Bin ;
-my $binPath = $FindBin::Bin ;
-use lib::hmdbTest qw( :ALL ) ;
-
-
-## To launch the right sequence : API, MAPPER, THREADER, ...
-#my $sequence = 'MAPPER' ; 
-my $sequence = 'MAIN' ; 
-my $current_test = 1 ;
-
-if ($sequence eq "MAIN") {
- print "\n\t\t\t\t  * * * * * * \n" ;
- print "\t  * * * - - - Test HMDB Main script - - - * * * \n\n" ;
-
-
- print "\n** Test $current_test extract_sub_mz_lists with an empty list of mzs **\n" ; $current_test++;
-
- throws_ok{ extract_sub_mz_listsTest([], 3)} '/The provided mzs list is empty/', 'Method \'extract_sub_mz_lists\' detects empty argument and died correctly' ;
-
- print "\n** Test $current_test extract_sub_mz_lists with a list of mzs and a limit of 3 **\n" ; $current_test++;
- is_deeply( extract_sub_mz_listsTest(
- ['175.01', '238.19', '420.16', '780.32', '956.25', '1100.45' ], 3), 
- [ [ '175.01', '238.19', '420.16' ], [ '780.32', '956.25', '1100.45' ] ], 
- 'Method \'extract_sub_mz_lists\' works with a list and return a well formated list of sublist of mzs');
-
- print "\n** Test $current_test prepare_multi_masses_query with an empty list of mzs **\n" ; $current_test++;
- throws_ok{ prepare_multi_masses_queryTest([])} '/The input method parameter mass list is empty/', 'Method \'prepare_multi_masses_query\' detects empty argument and died correctly' ;
-
- print "\n** Test $current_test prepare_multi_masses_query with a list of mzs **\n" ; $current_test++;
- is_deeply( prepare_multi_masses_queryTest(
- ['175.01', '238.19', '420.16', '780.32', '956.25', '1100.45' ] ), 
- '175.01%0D%0A238.19%0D%0A420.16%0D%0A780.32%0D%0A956.25%0D%0A1100.45%0D%0A', 
- 'Method \'prepare_multi_masses_query\' works with a list of and return a well formated string for hmdb querying');
-
- print "\n** Test $current_test get_matches_from_hmdb_ua with a well-formated string of mzs **\n" ; $current_test++;
- is_deeply( get_matches_from_hmdb_uaTest(
- '175.01%0D%0A420.16%0D%0A780.32%0D%0A956.25%0D%0A1100.45%0D%0A', 0.001, 'positive'),
- [
-          'query_mass,compound_id,formula,compound_mass,adduct,adduct_type,adduct_mass,delta',
-          '175.01,HMDB60293,H2O3S2,113.94453531,M+IsoProp+H,+,175.009875,0.000125',
-          '175.01,HMDB03745,C2H6O3S2,141.975835438,M+CH3OH+H,+,175.009324,0.000676',
-          '175.01,HMDB31436,H4O4Si,95.987885149,M+DMSO+H,+,175.009105,0.000895',
-          '175.01,HMDB33657,C17H10O6,310.047738052,M+H+K,+,175.009086,0.000914',
-          '175.01,HMDB35230,C17H10O6,310.047738052,M+H+K,+,175.009086,0.000914',
-          '420.16,HMDB60838,C17H17N3O4S,359.093976737,M+IsoProp+H,+,420.159317,0.000683',
-          '420.16,HMDB60836,C17H17N3O4S,359.093976737,M+IsoProp+H,+,420.159317,0.000683'
-        ],
- 'Method \'get_matches_from_hmdb_ua\' works with a well-formated string of mzs and return a complete csv from hmdb');
-
- print "\n** Test $current_test test_matches_from_hmdb_ua to get hmdb status **\n" ; $current_test++;
- is_deeply (test_matches_from_hmdb_uaTest (), 
- \'200', 
- 'The HMDB server is available: returns successful HTTP requests' ) ;
-
- print "\n** Test $current_test check_state_from_hmdb_ua to manage script execution with the hmdb server status **\n" ; $current_test++;
- is_deeply (check_state_from_hmdb_uaTest (\'200'),
- 1,
- 'The status 200 returns no error/warn' ) ;
-
- print "\n** Test $current_test prepare_multi_masses_query with an empty list of mzs **\n" ; $current_test++;
- throws_ok{ check_state_from_hmdb_uaTest(\'504')} 
- '/Gateway Timeout: The HMDB server was acting as a gateway or proxy and did not receive a timely response from the upstream server/', 
- 'Method \'check_state_from_hmdb_ua\' detects HTTP error code returned by HMDB and died correctly' ;
-
- print "\n** Test $current_test parse_hmdb_csv_results with the correct inputs for hmdb outputs parsing (csv format) **\n" ; $current_test++;
- is_deeply ( parse_hmdb_csv_resultsTest (
- [
-          'query_mass,compound_id,formula,compound_mass,adduct,adduct_type,adduct_mass,delta',
-          '175.01,HMDB60293,H2O3S2,113.94453531,M+IsoProp+H,+,175.009875,0.000125',
-          '175.01,HMDB03745,C2H6O3S2,141.975835438,M+CH3OH+H,+,175.009324,0.000676',
-          '175.01,HMDB31436,H4O4Si,95.987885149,M+DMSO+H,+,175.009105,0.000895',
-          '175.01,HMDB33657,C17H10O6,310.047738052,M+H+K,+,175.009086,0.000914',
-          '175.01,HMDB35230,C17H10O6,310.047738052,M+H+K,+,175.009086,0.000914',
-          '420.16,HMDB60838,C17H17N3O4S,359.093976737,M+IsoProp+H,+,420.159317,0.000683',
-          '420.16,HMDB60836,C17H17N3O4S,359.093976737,M+IsoProp+H,+,420.159317,0.000683'
-        ],
-        ['175.01', '238.19', '420.16']
- ),
- [
-          [
- { 'ENTRY_ADDUCT' => 'M+IsoProp+H', 'ENTRY_DELTA' => '0.000125', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_FORMULA' => 'H2O3S2', 'ENTRY_ENTRY_ID' => 'HMDB60293', 'ENTRY_ADDUCT_MZ' => '175.009875', 'ENTRY_CPD_MZ' => '113.94453531' },
- { 'ENTRY_ADDUCT' => 'M+CH3OH+H', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_DELTA' => '0.000676', 'ENTRY_FORMULA' => 'C2H6O3S2', 'ENTRY_ENTRY_ID' => 'HMDB03745', 'ENTRY_ADDUCT_MZ' => '175.009324', 'ENTRY_CPD_MZ' => '141.975835438' },
- { 'ENTRY_CPD_MZ' => '95.987885149', 'ENTRY_FORMULA' => 'H4O4Si', 'ENTRY_ENTRY_ID' => 'HMDB31436', 'ENTRY_ADDUCT_MZ' => '175.009105', 'ENTRY_DELTA' => '0.000895', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_ADDUCT' => 'M+DMSO+H' },
- { 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_DELTA' => '0.000914', 'ENTRY_ADDUCT' => 'M+H+K', 'ENTRY_CPD_MZ' => '310.047738052', 'ENTRY_ENTRY_ID' => 'HMDB33657', 'ENTRY_ADDUCT_MZ' => '175.009086', 'ENTRY_FORMULA' => 'C17H10O6' },
- { 'ENTRY_ADDUCT' => 'M+H+K', 'ENTRY_DELTA' => '0.000914', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_FORMULA' => 'C17H10O6', 'ENTRY_ADDUCT_MZ' => '175.009086', 'ENTRY_ENTRY_ID' => 'HMDB35230', 'ENTRY_CPD_MZ' => '310.047738052' }
-          ],
-          [],
-          [
-            { 'ENTRY_ADDUCT' => 'M+IsoProp+H', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_DELTA' => '0.000683', 'ENTRY_ENTRY_ID' => 'HMDB60838', 'ENTRY_ADDUCT_MZ' => '420.159317', 'ENTRY_FORMULA' => 'C17H17N3O4S', 'ENTRY_CPD_MZ' => '359.093976737' }, 
-            { 'ENTRY_CPD_MZ' => '359.093976737', 'ENTRY_FORMULA' => 'C17H17N3O4S', 'ENTRY_ENTRY_ID' => 'HMDB60836', 'ENTRY_ADDUCT_MZ' => '420.159317', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_DELTA' => '0.000683', 'ENTRY_ADDUCT' => 'M+IsoProp+H' }
-          ]
-        ],
- 'Method \'parse_hmdb_csv_results\' works with a well-formated csv output and returns a a well formated array' ) ;
-
- print "\n** Test $current_test parse_hmdb_csv_results with a void hmdb output and a list of mzs **\n" ; $current_test++;
- is_deeply ( parse_hmdb_csv_resultsTest ( [], ['175.01', '238.19', '420.16'] ),
- [ [], [], [] ],
- 'Method \'parse_hmdb_csv_results\' works with a empty csv output and returns an empty but well formatted array' ) ;
-
- print "\n** Test $current_test parse_hmdb_csv_results with a void hmdb output and a void mz list  **\n" ; $current_test++;
- is_deeply ( parse_hmdb_csv_resultsTest ( [], [] ),
- [],
- 'Method \'parse_hmdb_csv_results\' works with a empty csv output/mz list and returns an empty but well formatted array' ) ;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-## END of the script
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/t/lib/hmdbTest.pm
--- a/hmdb/t/lib/hmdbTest.pm Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,83 +0,0 @@
-package lib::hmdbTest ;
-
-use diagnostics; # this gives you more debugging information
-use warnings;    # this warns you of bad practices
-use strict;      # this prevents silly errors
-use Exporter ;
-use Carp ;
-
-our $VERSION = "1.0";
-our @ISA = qw(Exporter);
-our @EXPORT = qw( parse_hmdb_csv_resultsTest check_state_from_hmdb_uaTest test_matches_from_hmdb_uaTest extract_sub_mz_listsTest prepare_multi_masses_queryTest get_matches_from_hmdb_uaTest);
-our %EXPORT_TAGS = ( ALL => [qw( parse_hmdb_csv_resultsTest check_state_from_hmdb_uaTest test_matches_from_hmdb_uaTest extract_sub_mz_listsTest prepare_multi_masses_queryTest get_matches_from_hmdb_uaTest)] );
-
-use lib '/Users/fgiacomoni/Inra/labs/perl/galaxy_tools/hmdb' ;
-use lib::hmdb qw( :ALL ) ;
-
-use Data::Dumper ;
-
-## sub
-sub extract_sub_mz_listsTest {
-
- my ($masses, $hmdb_limits, ) = @_ ;
-
- my $oHmdb = lib::hmdb->new() ;
- my $submasses = $oHmdb->extract_sub_mz_lists($masses, $hmdb_limits ) ;
-
- return ($submasses) ;
-}
-
-## sub
-sub prepare_multi_masses_queryTest {
-
- my ($mzs ) = @_ ;
-
- my $oHmdb = lib::hmdb->new() ;
- my ( $hmdb_masses, $nb_masses_to_submit ) = $oHmdb->prepare_multi_masses_query($mzs) ;
-
- return ($hmdb_masses) ;
-}
-
-## sub
-sub get_matches_from_hmdb_uaTest {
-
- my ( $hmdb_masses, $delta, $molecular_species ) = @_ ;
-
- my $oHmdb = lib::hmdb->new() ;
- my $hmdb_pages = $oHmdb->get_matches_from_hmdb_ua($hmdb_masses, $delta, $molecular_species) ;
- return ($hmdb_pages) ;
-}
-
-
-## sub
-sub test_matches_from_hmdb_uaTest {
-
- my $oHmdb = lib::hmdb->new() ;
- my $status = $oHmdb->test_matches_from_hmdb_ua() ;
- return ($status) ;
-}
-
-
-## sub
-sub check_state_from_hmdb_uaTest {
- my ($status ) = @_ ;
-
- my $oHmdb = lib::hmdb->new() ;
- my $res = $oHmdb->check_state_from_hmdb_ua($status) ;
- return($res) ;
-}
-
-
-
-## sub
-sub parse_hmdb_csv_resultsTest {
- my ($hmdb_pages, $mzs ) = @_ ;
-
- my $oHmdb = lib::hmdb->new() ;
- my $result = $oHmdb->parse_hmdb_csv_results($hmdb_pages, $mzs) ; ## hash format result
-
- return($result) ;
-}
-
-
-1 ;
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/._.DS_Store
b
Binary file hmdb/test_data/._.DS_Store has changed
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/input_test01_fake-mzrt-input-with-id.tsv
--- a/hmdb/test_data/input_test01_fake-mzrt-input-with-id.tsv Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-id mz rt
-1 7.02080998 49.38210915
-2 75.05547146 0.658528069
-3 75.08059797 1743.94267
-4 76.03942694 51.23158899
-5 76.07584477 50.51249853
-6 76.07593168 0.149308136
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/input_test02_mzrt-input-with-id.tsv
--- a/hmdb/test_data/input_test02_mzrt-input-with-id.tsv Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-id mz rt
-1 7.02080998 49.38210915
-2 75.05547146 0.658528069
-3 75.08059797 1743.94267
-4 76.03942694 51.23158899
-5 76.07584477 50.51249853
-6 76.07593168 0.149308136
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test01.csv
--- a/hmdb/test_data/out_test01.csv Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-ID MASS_SUBMIT HMDB_ID CPD_FORMULA CPD_MW DELTA
-mz_00001 7.02080998 No_result_found_on_HMDB n/a n/a 0
-mz_00002 75.05547146 No_result_found_on_HMDB n/a n/a 0
-mz_00003 75.08059797 No_result_found_on_HMDB n/a n/a 0
-mz_00004 76.03942694 No_result_found_on_HMDB n/a n/a 0
-mz_00005 76.07584477 No_result_found_on_HMDB n/a n/a 0
-mz_00006 76.07593168 No_result_found_on_HMDB n/a n/a 0
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test01.html
--- a/hmdb/test_data/out_test01.html Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content="INRA de Clermont-Ferrand"><title>Galaxy HMDB queries - All results</title><link rel="stylesheet" type="text/css" href="css.php" media="all"><link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/style/simplePagination.css"/><!-- JavaScript --><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script src="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/scripts/jquery.simplePagination.js"></script><style type="text/css">body {padding-top: 70px}div.lm-table-warning {  font-size: 1.4em;  font-weight: bold;  padding-right: 25px;  color: #21536a;  margin-left: 3px;}tr.green td  {background-color: #eaf2d3; color: black;}tr.blank td {background-color: #9999CC; color: black;}table {font-family:'Trebuchet MS',Arial,Helvetica,sans-serif;width:100%;border-collapse:collapse;}table.detail, table.detail tr.parent, table.detail td, table.detail th, table.detail tr.category {border-collapse:collapse;border:1px solid #98bf21;}table.detail th {font-size: 1.2em;text-align: center;padding-top: 5px;padding-bottom: 10px;background-color: #a7c942;color: #ffffff;}td.ca {text-align:center;}footer {  margin: 50px 0;}</style><script>function test(pageNumber){  var page="#page-id-"+pageNumber;  $('.select').hide() ; $(page).show()}</script></head><body><div class="container"><div class="lm-table-warning">Results of HMDB queries - Search params : Molecular specie = neutral / delta (mass-to-charge ratio) = 0.001</div><div id="detail_table_source" style="display:none"></div><p><div id="choose"></div><p><div id="ms_search_0" class="ms-search-table"></div><!-- HeadRows--><table id="detail_table" class="detail"><col style="width:30px;"><!-- Ids (m/z)--><col style="width:30px;"><!-- Mass (m/z)--><col style="width:30px;"><!-- Compound--><col style="width:120px;"><!-- name--><col style="width:40px;"><!-- adduct--><col style="width:50px;"><!-- adduct type--><col style="width:60px;"><!-- adduct mw--><col style="width:60px;"><!-- cpd mw--><col style="width:50px;"><!-- delta--><thead><th>ID from input</th><th>Mass (m/z)</th><th>Compound_ID</th><th>Formula</th><th>Compound MW (Da)</th><th>Adduct</th><th>Adduct_Type</th><th>Adduct MW (Da)</th><th>Delta</th></thead><tbody class="select" id="page-id-1"><tr class="white"><td class="ca" >mz_00001</td><td id="1" class="ca" >7.02080998</td><td class="ca" colspan="7"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">No_result_found_on_HMDB</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td></tr><tr class="green"><td class="ca" >mz_00002</td><td id="2" class="ca" >75.05547146</td><td class="ca" colspan="7"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">No_result_found_on_HMDB</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td></tr><tr class="white"><td class="ca" >mz_00003</td><td id="3" class="ca" >75.08059797</td><td class="ca" colspan="7"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">No_result_found_on_HMDB</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td></tr><tr class="green"><td class="ca" >mz_00004</td><td id="4" class="ca" >76.03942694</td><td class="ca" colspan="7"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">No_result_found_on_HMDB</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td></tr></tbody><tbody class="select" id="page-id-2"><tr class="white"><td class="ca" >mz_00005</td><td id="5" class="ca" >76.07584477</td><td class="ca" colspan="7"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">No_result_found_on_HMDB</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td></tr><tr class="green"><td class="ca" >mz_00006</td><td id="6" class="ca" >76.07593168</td><td class="ca" colspan="7"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">No_result_found_on_HMDB</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td></tr></tbody></table></div><div class="container"><hr><footer><div class="row">  <div class="col-lg-12"><p>Copyright &copy; INRA, N Paulhe, F Giacomoni 2014 </p>  </div> </div> </footer></div><script language="javascript">$(function() {$('#choose').pagination({items: 2,itemsOnPage: 1,currentPage: 1,onInit: function () { test(1); },cssStyle: 'light-theme',onPageClick: function(pageNumber){test(pageNumber)}}).pagination('redraw');});</script></body></html>
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test01.tsv
--- a/hmdb/test_data/out_test01.tsv Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-id mz rt hmdb
-1 7.02080998 49.38210915 No_result_found_on_HMDB
-2 75.05547146 0.658528069 No_result_found_on_HMDB
-3 75.08059797 1743.94267 No_result_found_on_HMDB
-4 76.03942694 51.23158899 No_result_found_on_HMDB
-5 76.07584477 50.51249853 No_result_found_on_HMDB
-6 76.07593168 0.149308136 No_result_found_on_HMDB
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test02.csv
--- a/hmdb/test_data/out_test02.csv Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,75 +0,0 @@
-ID MASS_SUBMIT HMDB_ID CPD_FORMULA CPD_MW DELTA
-mz_00001 7.02080998 No_result_found_on_HMDB n/a n/a 0
-mz_00002 75.05547146 HMDB31419 C2H6N2O 74.048012824 0.00018246
-mz_00002 75.05547146 HMDB60428 C2H6N2O 74.048012824 0.00018246
-mz_00002 75.05547146 HMDB00064 C4H9N3O2 131.069476547 0.00018346
-mz_00002 75.05547146 HMDB13222 C4H9N3O2 131.069476547 0.00018346
-mz_00002 75.05547146 HMDB32439 H3NO 33.021463723 0.00018446
-mz_00002 75.05547146 HMDB03338 H3NO 33.021463723 0.00018446
-mz_00002 75.05547146 HMDB13162 C11H22NO2 200.165053953 0.00080354
-mz_00003 75.08059797 HMDB04327 C4H10O 74.073164942 0.00015697
-mz_00003 75.08059797 HMDB62103 C4H10O 74.073164942 0.00015697
-mz_00003 75.08059797 HMDB11469 C4H10O 74.073164942 0.00015697
-mz_00003 75.08059797 HMDB06006 C4H10O 74.073164942 0.00015697
-mz_00003 75.08059797 HMDB31456 C4H10O 74.073164942 0.00015697
-mz_00004 76.03942694 HMDB00191 C4H7NO4 133.037507717 0.00012294
-mz_00004 76.03942694 HMDB31239 C2H5NO2 75.032028409 0.00012294
-mz_00004 76.03942694 HMDB00123 C2H5NO2 75.032028409 0.00012294
-mz_00004 76.03942694 HMDB14691 C2H5NO2 75.032028409 0.00012294
-mz_00004 76.03942694 HMDB11753 C4H7NO4 133.037507717 0.00012294
-mz_00004 76.03942694 HMDB06483 C4H7NO4 133.037507717 0.00012294
-mz_00004 76.03942694 HMDB03125 H2O2 34.005479308 0.00012494
-mz_00004 76.03942694 HMDB01039 HO 17.002739654 0.00012494
-mz_00004 76.03942694 HMDB00201 C9H17NO4 203.115758037 0.00041606
-mz_00004 76.03942694 HMDB31603 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB40214 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31681 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31174 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB38271 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31342 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31504 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB33793 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31593 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB39819 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB30330 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB29165 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31351 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB40591 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB32460 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB38962 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB32391 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31476 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31477 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB29314 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31500 C7H12O2 128.083729628 0.00068506
-mz_00004 76.03942694 HMDB31484 C7H12O2 128.083729628 0.00068506
-mz_00005 76.07584477 HMDB12136 C3H9NO 75.068413915 0.00015477
-mz_00005 76.07584477 HMDB00925 C3H9NO 75.068413915 0.00015477
-mz_00005 76.07584477 HMDB31652 C3H6O 58.041864814 0.00015677
-mz_00005 76.07584477 HMDB62143 C3H6O 58.041864813 0.00015677
-mz_00005 76.07584477 HMDB31558 C3H6O 58.041864814 0.00015677
-mz_00005 76.07584477 HMDB03366 C3H6O 58.041864814 0.00015677
-mz_00005 76.07584477 HMDB01659 C3H6O 58.041864814 0.00015677
-mz_00005 76.07584477 HMDB62061 C9H20 128.156500644 0.00065223
-mz_00005 76.07584477 HMDB31416 C9H20 128.15650064 0.00065223
-mz_00005 76.07584477 HMDB31556 C9H20 128.15650064 0.00065223
-mz_00005 76.07584477 HMDB30301 C9H20 128.15650064 0.00065223
-mz_00005 76.07584477 HMDB29595 C9H20 128.15650064 0.00065223
-mz_00005 76.07584477 HMDB30302 C9H20 128.15650064 0.00065223
-mz_00005 76.07584477 HMDB62013 C9H20 128.156500644 0.00065223
-mz_00005 76.07584477 HMDB62017 C9H20 128.156500644 0.00065223
-mz_00006 76.07593168 HMDB12136 C3H9NO 75.068413915 0.00024168
-mz_00006 76.07593168 HMDB00925 C3H9NO 75.068413915 0.00024168
-mz_00006 76.07593168 HMDB31652 C3H6O 58.041864814 0.00024368
-mz_00006 76.07593168 HMDB62143 C3H6O 58.041864813 0.00024368
-mz_00006 76.07593168 HMDB31558 C3H6O 58.041864814 0.00024368
-mz_00006 76.07593168 HMDB03366 C3H6O 58.041864814 0.00024368
-mz_00006 76.07593168 HMDB01659 C3H6O 58.041864814 0.00024368
-mz_00006 76.07593168 HMDB62061 C9H20 128.156500644 0.00056532
-mz_00006 76.07593168 HMDB31416 C9H20 128.15650064 0.00056532
-mz_00006 76.07593168 HMDB31556 C9H20 128.15650064 0.00056532
-mz_00006 76.07593168 HMDB30301 C9H20 128.15650064 0.00056532
-mz_00006 76.07593168 HMDB29595 C9H20 128.15650064 0.00056532
-mz_00006 76.07593168 HMDB30302 C9H20 128.15650064 0.00056532
-mz_00006 76.07593168 HMDB62013 C9H20 128.156500644 0.00056532
-mz_00006 76.07593168 HMDB62017 C9H20 128.156500644 0.00056532
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test02.html
--- a/hmdb/test_data/out_test02.html Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,1 +0,0 @@\n-<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content="INRA de Clermont-Ferrand"><title>Galaxy HMDB queries - All results</title><link rel="stylesheet" type="text/css" href="css.php" media="all"><link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/style/simplePagination.css"/><!-- JavaScript --><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script src="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/scripts/jquery.simplePagination.js"></script><style type="text/css">body {padding-top: 70px}div.lm-table-warning {  font-size: 1.4em;  font-weight: bold;  padding-right: 25px;  color: #21536a;  margin-left: 3px;}tr.green td  {background-color: #eaf2d3; color: black;}tr.blank td {background-color: #9999CC; color: black;}table {font-family:\'Trebuchet MS\',Arial,Helvetica,sans-serif;width:100%;border-collapse:collapse;}table.detail, table.detail tr.parent, table.detail td, table.detail th, table.detail tr.category {border-collapse:collapse;border:1px solid #98bf21;}table.detail th {font-size: 1.2em;text-align: center;padding-top: 5px;padding-bottom: 10px;background-color: #a7c942;color: #ffffff;}td.ca {text-align:center;}footer {  margin: 50px 0;}</style><script>function test(pageNumber){  var page="#page-id-"+pageNumber;  $(\'.select\').hide() ; $(page).show()}</script></head><body><div class="container"><div class="lm-table-warning">Results of HMDB queries - Search params : Molecular specie = positive / delta (mass-to-charge ratio) = 0.001</div><div id="detail_table_source" style="display:none"></div><p><div id="choose"></div><p><div id="ms_search_0" class="ms-search-table"></div><!-- HeadRows--><table id="detail_table" class="detail"><col style="width:30px;"><!-- Ids (m/z)--><col style="width:30px;"><!-- Mass (m/z)--><col style="width:30px;"><!-- Compound--><col style="width:120px;"><!-- name--><col style="width:40px;"><!-- adduct--><col style="width:50px;"><!-- adduct type--><col style="width:60px;"><!-- adduct mw--><col style="width:60px;"><!-- cpd mw--><col style="width:50px;"><!-- delta--><thead><th>ID from input</th><th>Mass (m/z)</th><th>Compound_ID</th><th>Formula</th><th>Compound MW (Da)</th><th>Adduct</th><th>Adduct_Type</th><th>Adduct MW (Da)</th><th>Delta</th></thead><tbody class="select" id="page-id-1"><tr class="white"><td class="ca" >mz_00001</td><td id="1" class="ca" >7.02080998</td><td class="ca" colspan="7"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">No_result_found_on_HMDB</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td></tr><tr class="green"><td class="ca" >mz_00002</td><td id="2" class="ca" >75.05547146</td><td class="ca" colspan="7"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31419" target="_blank" class="btn">HMDB31419</a></td><td class="ca">C2H6N2O</td><td class="ca">74.048012824</td><td class="ca">M+H</td><td class="ca">+</td><td class="ca">75.055289</td><td class="ca">0.00018246</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB60428" target="_blank" class="btn">HMDB60428</a></td><td class="ca">C2H6N2O</td><td class="ca">74.048012824</td><td class="ca">M+H</td><td class="ca">+</td><td class="ca">75.055289</td><td class="ca">0.00018246</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB00064" target="_blank" class="btn">HMDB00064</a></td><td class="ca">C4H9N3O2</td><td class="ca">131.069476547</td><td class="ca">M+H+NH4</td><td'..b'8" target="_blank" class="btn">HMDB31558</a></td><td class="ca">C3H6O</td><td class="ca">58.041864814</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00024368</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB03366" target="_blank" class="btn">HMDB03366</a></td><td class="ca">C3H6O</td><td class="ca">58.041864814</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00024368</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB01659" target="_blank" class="btn">HMDB01659</a></td><td class="ca">C3H6O</td><td class="ca">58.041864814</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00024368</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB62061" target="_blank" class="btn">HMDB62061</a></td><td class="ca">C9H20</td><td class="ca">128.156500644</td><td class="ca">M+H+Na</td><td class="ca">+</td><td class="ca">76.076497</td><td class="ca">0.00056532</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31416" target="_blank" class="btn">HMDB31416</a></td><td class="ca">C9H20</td><td class="ca">128.15650064</td><td class="ca">M+H+Na</td><td class="ca">+</td><td class="ca">76.076497</td><td class="ca">0.00056532</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31556" target="_blank" class="btn">HMDB31556</a></td><td class="ca">C9H20</td><td class="ca">128.15650064</td><td class="ca">M+H+Na</td><td class="ca">+</td><td class="ca">76.076497</td><td class="ca">0.00056532</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB30301" target="_blank" class="btn">HMDB30301</a></td><td class="ca">C9H20</td><td class="ca">128.15650064</td><td class="ca">M+H+Na</td><td class="ca">+</td><td class="ca">76.076497</td><td class="ca">0.00056532</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB29595" target="_blank" class="btn">HMDB29595</a></td><td class="ca">C9H20</td><td class="ca">128.15650064</td><td class="ca">M+H+Na</td><td class="ca">+</td><td class="ca">76.076497</td><td class="ca">0.00056532</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB30302" target="_blank" class="btn">HMDB30302</a></td><td class="ca">C9H20</td><td class="ca">128.15650064</td><td class="ca">M+H+Na</td><td class="ca">+</td><td class="ca">76.076497</td><td class="ca">0.00056532</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB62013" target="_blank" class="btn">HMDB62013</a></td><td class="ca">C9H20</td><td class="ca">128.156500644</td><td class="ca">M+H+Na</td><td class="ca">+</td><td class="ca">76.076497</td><td class="ca">0.00056532</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB62017" target="_blank" class="btn">HMDB62017</a></td><td class="ca">C9H20</td><td class="ca">128.156500644</td><td class="ca">M+H+Na</td><td class="ca">+</td><td class="ca">76.076497</td><td class="ca">0.00056532</td></tr></tbody></table></div><div class="container"><hr><footer><div class="row">  <div class="col-lg-12"><p>Copyright &copy; INRA, N Paulhe, F Giacomoni 2014 </p>  </div> </div> </footer></div><script language="javascript">$(function() {$(\'#choose\').pagination({items: 2,itemsOnPage: 1,currentPage: 1,onInit: function () { test(1); },cssStyle: \'light-theme\',onPageClick: function(pageNumber){test(pageNumber)}}).pagination(\'redraw\');});</script></body></html>\n\\ No newline at end of file\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test02.tsv
--- a/hmdb/test_data/out_test02.tsv Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-id mz rt hmdb
-1 7.02080998 49.38210915 No_result_found_on_HMDB
-2 75.05547146 0.658528069 HMDB31419|HMDB60428|HMDB00064|HMDB13222|HMDB32439|HMDB03338|HMDB13162
-3 75.08059797 1743.94267 HMDB04327|HMDB62103|HMDB11469|HMDB06006|HMDB31456
-4 76.03942694 51.23158899 HMDB00191|HMDB31239|HMDB00123|HMDB14691|HMDB11753|HMDB06483|HMDB03125|HMDB01039|HMDB00201|HMDB31603|HMDB40214|HMDB31681|HMDB31174|HMDB38271|HMDB31342|HMDB31504|HMDB33793|HMDB31593|HMDB39819|HMDB30330|HMDB29165|HMDB31351|HMDB40591|HMDB32460|HMDB38962|HMDB32391|HMDB31476|HMDB31477|HMDB29314|HMDB31500|HMDB31484
-5 76.07584477 50.51249853 HMDB12136|HMDB00925|HMDB31652|HMDB62143|HMDB31558|HMDB03366|HMDB01659|HMDB62061|HMDB31416|HMDB31556|HMDB30301|HMDB29595|HMDB30302|HMDB62013|HMDB62017
-6 76.07593168 0.149308136 HMDB12136|HMDB00925|HMDB31652|HMDB62143|HMDB31558|HMDB03366|HMDB01659|HMDB62061|HMDB31416|HMDB31556|HMDB30301|HMDB29595|HMDB30302|HMDB62013|HMDB62017
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test03.csv
--- a/hmdb/test_data/out_test03.csv Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,1116 +0,0 @@\n-ID\tMASS_SUBMIT\tHMDB_ID\tCPD_FORMULA\tCPD_MW\tDELTA\n-mz_00001\t175.01\tHMDB60293\tH2O3S2\t113.94453531\t0.000125\n-mz_00001\t175.01\tHMDB03745\tC2H6O3S2\t141.975835438\t0.000676\n-mz_00001\t175.01\tHMDB31436\tH4O4Si\t95.987885149\t0.000895\n-mz_00001\t175.01\tHMDB33657\tC17H10O6\t310.047738052\t0.000914\n-mz_00001\t175.01\tHMDB35230\tC17H10O6\t310.047738052\t0.000914\n-mz_00001\t175.01\tHMDB34155\tCH4N2S\t76.009518828\t0.001744\n-mz_00001\t175.01\tHMDB01570\tC10H13N2O7P\t304.046037292\t0.002237\n-mz_00001\t175.01\tHMDB01270\tC3H8O10P2\t265.9592695\t0.003458\n-mz_00001\t175.01\tHMDB01294\tC3H8O10P2\t265.9592695\t0.003458\n-mz_00001\t175.01\tHMDB60394\tC9H12FN2O8P\t326.031530087\t0.004012\n-mz_00001\t175.01\tHMDB60015\tC6H6O4S\t173.99867937\t0.004045\n-mz_00001\t175.01\tHMDB00021\tC9H10INO3\t306.970536611\t0.004182\n-mz_00001\t175.01\tHMDB15167\tC5H4N4S\t152.015666838\t0.005115\n-mz_00001\t175.01\tHMDB40364\tC3H7MnO6P\t224.936074104\t0.005134\n-mz_00001\t175.01\tHMDB62056\tC6H7O4P\t174.008195703\t0.005472\n-mz_00001\t175.01\tHMDB41485\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB00209\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB06853\tC4H4O\t68.02621475\t0.005588\n-mz_00001\t175.01\tHMDB03767\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB40733\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB38176\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB33968\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB29635\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB33128\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB33766\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB40638\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB32568\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB29686\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB32603\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB32400\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB31459\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB13785\tC4H4O\t68.02621475\t0.005588\n-mz_00001\t175.01\tHMDB02340\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB14912\tC8H8F3N3O4S2\t330.990831754\t0.005966\n-mz_00001\t175.01\tHMDB60764\tC16H11ClN4O\t310.062138701\t0.006286\n-mz_00001\t175.01\tHMDB40238\tC6H10OS\t130.045235632\t0.006396\n-mz_00001\t175.01\tHMDB31370\tC6H10OS\t130.045235632\t0.006396\n-mz_00001\t175.01\tHMDB37493\tC6H10OS\t130.045235632\t0.006396\n-mz_00001\t175.01\tHMDB37787\tC5H10N2\t98.08439833\t0.006562\n-mz_00001\t175.01\tHMDB61807\tC10H9Cl3O2\t265.966812653\t0.007229\n-mz_00001\t175.01\tHMDB59985\tC11H12O8S\t304.02528805\t0.008138\n-mz_00001\t175.01\tHMDB59987\tC11H12O8S\t304.02528805\t0.008138\n-mz_00001\t175.01\tHMDB60020\tC11H12O8S\t304.02528805\t0.008138\n-mz_00001\t175.01\tHMDB14581\tC5H4N4O\t136.03851077\t0.008331\n-mz_00001\t175.01\tHMDB00157\tC5H4N4O\t136.03851077\t0.008331\n-mz_00001\t175.01\tHMDB40631\tC15H12O7\t304.058302738\t0.008369\n-mz_00001\t175.01\tHMDB31778\tC14H9ClF2N2O2\t310.032061659\t0.008752\n-mz_00001\t175.01\tHMDB31160\tC5H12S2\t136.038041764\t0.0088\n-mz_00001\t175.01\tHMDB33053\tC5H12S2\t136.038041764\t0.0088\n-mz_00001\t175.01\tHMDB33054\tC5H12S2\t136.038041764\t0.0088\n-mz_00001\t175.01\tHMDB29694\tC8H8OS\t152.029585568\t0.008804\n-mz_00001\t175.01\tHMDB29783\tC14H14O8\t310.068867424\t0.009651\n-mz_00001\t175.01\tHMDB00613\tC4H8O5\t136.037173366\t0.009669\n-mz_00001\t175.01\tHMDB00943\tC4H8O5\t136.037173366\t0.009669\n-mz_00001\t175.01\tHMDB00115\tC2H4O3\t76.016043994\t0.011306\n-mz_00001\t175.01\tHMDB31608\tC2H4O3\t76.016043994\t0.011306\n-mz_00001\t175.01\tHMDB41797\tC8H6Cl2O3\t219.969399472\t0.011761\n-mz_00001\t175.01\tHMDB15413\tC12H14N4O4S\t310.073575646\t0.012005\n-mz_00001\t175.01\tHMDB15621\tC12H14N4O4S\t310.073575646\t0.012005\n-mz_00001\t175.01\tHMDB31825\tC8H8S\t136.034670946\t0.012171\n-mz_00001\t175.01\tHMDB31781\tC14H15O2PS2\t310.025107616\t0.012229\n-mz_00001\t175.01\tHMDB00634\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB00620\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB61185\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB00749\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB02092\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB33809\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB13233\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB59743\tC5H6'..b'17\t696.226549854\t0.03834\n-mz_00004\t780.32\tHMDB61254\tC38H41N3O11S\t747.246179859\t0.040331\n-mz_00004\t780.32\tHMDB61256\tC38H41N3O11S\t747.246179859\t0.040331\n-mz_00004\t780.32\tHMDB33965\tC15H27NO10\t381.163496089\t0.040815\n-mz_00004\t780.32\tHMDB12364\tC36H66NO10P\t703.442433849\t0.041474\n-mz_00004\t780.32\tHMDB12344\tC36H66NO10P\t703.442433849\t0.041474\n-mz_00004\t780.32\tHMDB06606\tC29H49NO23\t779.269536879\t0.043187\n-mz_00004\t780.32\tHMDB13001\tC54H92O46\t1476.485975556\t0.043189\n-mz_00004\t780.32\tHMDB12201\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB41369\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB12202\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB12203\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB32000\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB29401\tC20H19NO6\t369.121237345\t0.043702\n-mz_00004\t780.32\tHMDB33522\tC21H19NO6\t381.121237345\t0.043702\n-mz_00004\t780.32\tHMDB29360\tC20H19NO6\t369.121237345\t0.043702\n-mz_00005\t956.25\tHMDB35451\tC43H49O23\t933.266462874\t0.005681\n-mz_00005\t956.25\tHMDB38095\tC43H49O23\t933.266462874\t0.005681\n-mz_00005\t956.25\tHMDB40803\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB02219\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB38821\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB40511\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB34149\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB33990\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB35931\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB29617\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB36630\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB41455\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB60157\tC30H52N7O18P3S\t923.230238121\t0.013727\n-mz_00005\t956.25\tHMDB33021\tC43H49O22\t917.271548252\t0.015294\n-mz_00005\t956.25\tHMDB41153\tC40H41O22\t873.208947996\t0.019318\n-mz_00005\t956.25\tHMDB60375\tC35H54N7O19P3S\t1001.240802807\t0.019643\n-mz_00005\t956.25\tHMDB35163\tC40H42O26\t938.196431516\t0.019745\n-mz_00005\t956.25\tHMDB29794\tC40H42O26\t938.196431516\t0.019745\n-mz_00005\t956.25\tHMDB04047\tC27H44N7O19P3S\t895.162552487\t0.022108\n-mz_00005\t956.25\tHMDB40378\tC45H38O21\t914.190558278\t0.025619\n-mz_00005\t956.25\tHMDB14756\tC21H21ClN2O8\t464.098643365\t0.029593\n-mz_00005\t956.25\tHMDB12207\tC28H42N7O17P3S\t873.157073179\t0.032557\n-mz_00005\t956.25\tHMDB35883\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB37932\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB34725\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB33132\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB40478\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB34360\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB37362\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB30775\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB30747\tC22H24O11\t464.13186161\t0.036843\n-mz_00005\t956.25\tHMDB37535\tC22H24O11\t464.13186161\t0.036843\n-mz_00005\t956.25\tHMDB14927\tC28H54GdN5O20\t938.260314726\t0.044138\n-mz_00006\t1100.45\tHMDB60499\tC28H30N4O6\t518.216534712\t0.001166\n-mz_00006\t1100.45\tHMDB32198\tC30H34Cl2N4O\t536.210967144\t0.004946\n-mz_00006\t1100.45\tHMDB06568\tC20H35NO15\t529.200669455\t0.014838\n-mz_00006\t1100.45\tHMDB02060\tC20H35NO15\t529.200669455\t0.014838\n-mz_00006\t1100.45\tHMDB06582\tC20H35NO15\t529.200669455\t0.014838\n-mz_00006\t1100.45\tHMDB10345\tC27H36O11\t536.225761994\t0.024644\n-mz_00006\t1100.45\tHMDB36888\tC27H36O11\t536.225761994\t0.024644\n-mz_00006\t1100.45\tHMDB39422\tC48H64N11O18\t1082.443079299\t0.026902\n-mz_00006\t1100.45\tHMDB35520\tC24H38O12\t518.23632668\t0.038418\n-mz_00006\t1100.45\tHMDB38923\tC24H38O12\t518.23632668\t0.038418\n-mz_00006\t1100.45\tHMDB29773\tC24H38O12\t518.23632668\t0.038418\n-mz_00006\t1100.45\tHMDB15455\tC53H67N9O10S\t1021.473160099\t0.04438\n-mz_00006\t1100.45\tHMDB40723\tC30H30O8\t518.194067936\t0.046099\n-mz_00006\t1100.45\tHMDB01980\tC46H65N13O12S2\t1055.431705989\t0.047134\n-mz_00006\t1100.45\tHMDB33282\tC26H32O12\t536.189376488\t0.048127\n-mz_00006\t1100.45\tHMDB33281\tC26H32O12\t536.189376488\t0.048127\n-mz_00006\t1100.45\tHMDB15595\tC28H22F3N7O\t529.183792976\t0.048591\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test03.html
--- a/hmdb/test_data/out_test03.html Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,1 +0,0 @@\n-<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content="INRA de Clermont-Ferrand"><title>Galaxy HMDB queries - All results</title><link rel="stylesheet" type="text/css" href="css.php" media="all"><link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/style/simplePagination.css"/><!-- JavaScript --><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script src="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/scripts/jquery.simplePagination.js"></script><style type="text/css">body {padding-top: 70px}div.lm-table-warning {  font-size: 1.4em;  font-weight: bold;  padding-right: 25px;  color: #21536a;  margin-left: 3px;}tr.green td  {background-color: #eaf2d3; color: black;}tr.blank td {background-color: #9999CC; color: black;}table {font-family:\'Trebuchet MS\',Arial,Helvetica,sans-serif;width:100%;border-collapse:collapse;}table.detail, table.detail tr.parent, table.detail td, table.detail th, table.detail tr.category {border-collapse:collapse;border:1px solid #98bf21;}table.detail th {font-size: 1.2em;text-align: center;padding-top: 5px;padding-bottom: 10px;background-color: #a7c942;color: #ffffff;}td.ca {text-align:center;}footer {  margin: 50px 0;}</style><script>function test(pageNumber){  var page="#page-id-"+pageNumber;  $(\'.select\').hide() ; $(page).show()}</script></head><body><div class="container"><div class="lm-table-warning">Results of HMDB queries - Search params : Molecular specie = positive / delta (mass-to-charge ratio) = 0.05</div><div id="detail_table_source" style="display:none"></div><p><div id="choose"></div><p><div id="ms_search_0" class="ms-search-table"></div><!-- HeadRows--><table id="detail_table" class="detail"><col style="width:30px;"><!-- Ids (m/z)--><col style="width:30px;"><!-- Mass (m/z)--><col style="width:30px;"><!-- Compound--><col style="width:120px;"><!-- name--><col style="width:40px;"><!-- adduct--><col style="width:50px;"><!-- adduct type--><col style="width:60px;"><!-- adduct mw--><col style="width:60px;"><!-- cpd mw--><col style="width:50px;"><!-- delta--><thead><th>ID from input</th><th>Mass (m/z)</th><th>Compound_ID</th><th>Formula</th><th>Compound MW (Da)</th><th>Adduct</th><th>Adduct_Type</th><th>Adduct MW (Da)</th><th>Delta</th></thead><tbody class="select" id="page-id-1"><tr class="white"><td class="ca" >mz_00001</td><td id="1" class="ca" >175.01</td><td class="ca" colspan="7"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB60293" target="_blank" class="btn">HMDB60293</a></td><td class="ca">H2O3S2</td><td class="ca">113.94453531</td><td class="ca">M+IsoProp+H</td><td class="ca">+</td><td class="ca">175.009875</td><td class="ca">0.000125</td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB03745" target="_blank" class="btn">HMDB03745</a></td><td class="ca">C2H6O3S2</td><td class="ca">141.975835438</td><td class="ca">M+CH3OH+H</td><td class="ca">+</td><td class="ca">175.009324</td><td class="ca">0.000676</td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31436" target="_blank" class="btn">HMDB31436</a></td><td class="ca">H4O4Si</td><td class="ca">95.987885149</td><td class="ca">M+DMSO+H</td><td class="ca">+</td><td class="ca">175.009105</td><td class="ca">0.000895</td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB33657" target="_blank" class="btn">HMDB33657</a></td><td class="ca">C17H10O6</td><td class="ca">310.047738052</td><td class="ca">M+H+K</td><td class="ca">+</td><td class="ca">175.009086</td><td class="ca">0.000914</td></tr><tr class="w'..b'536.225761994</td><td class="ca">2M+3H2O+2H</td><td class="ca">+</td><td class="ca">1100.474644</td><td class="ca">0.024644</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB39422" target="_blank" class="btn">HMDB39422</a></td><td class="ca">C48H64N11O18</td><td class="ca">1082.443079299</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">1100.476902</td><td class="ca">0.026902</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB35520" target="_blank" class="btn">HMDB35520</a></td><td class="ca">C24H38O12</td><td class="ca">518.23632668</td><td class="ca">2M+ACN+Na</td><td class="ca">+</td><td class="ca">1100.488418</td><td class="ca">0.038418</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB38923" target="_blank" class="btn">HMDB38923</a></td><td class="ca">C24H38O12</td><td class="ca">518.23632668</td><td class="ca">2M+ACN+Na</td><td class="ca">+</td><td class="ca">1100.488418</td><td class="ca">0.038418</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB29773" target="_blank" class="btn">HMDB29773</a></td><td class="ca">C24H38O12</td><td class="ca">518.23632668</td><td class="ca">2M+ACN+Na</td><td class="ca">+</td><td class="ca">1100.488418</td><td class="ca">0.038418</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB15455" target="_blank" class="btn">HMDB15455</a></td><td class="ca">C53H67N9O10S</td><td class="ca">1021.473160099</td><td class="ca">M+DMSO+H</td><td class="ca">+</td><td class="ca">1100.49438</td><td class="ca">0.04438</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB40723" target="_blank" class="btn">HMDB40723</a></td><td class="ca">C30H30O8</td><td class="ca">518.194067936</td><td class="ca">2M+ACN+Na</td><td class="ca">+</td><td class="ca">1100.403901</td><td class="ca">0.046099</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB01980" target="_blank" class="btn">HMDB01980</a></td><td class="ca">C46H65N13O12S2</td><td class="ca">1055.431705989</td><td class="ca">M+2Na-H</td><td class="ca">+</td><td class="ca">1100.402866</td><td class="ca">0.047134</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB33282" target="_blank" class="btn">HMDB33282</a></td><td class="ca">C26H32O12</td><td class="ca">536.189376488</td><td class="ca">2M+3H2O+2H</td><td class="ca">+</td><td class="ca">1100.401873</td><td class="ca">0.048127</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB33281" target="_blank" class="btn">HMDB33281</a></td><td class="ca">C26H32O12</td><td class="ca">536.189376488</td><td class="ca">2M+3H2O+2H</td><td class="ca">+</td><td class="ca">1100.401873</td><td class="ca">0.048127</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB15595" target="_blank" class="btn">HMDB15595</a></td><td class="ca">C28H22F3N7O</td><td class="ca">529.183792976</td><td class="ca">2M+ACN+H</td><td class="ca">+</td><td class="ca">1100.401409</td><td class="ca">0.048591</td></tr></tbody></table></div><div class="container"><hr><footer><div class="row">  <div class="col-lg-12"><p>Copyright &copy; INRA, N Paulhe, F Giacomoni 2014 </p>  </div> </div> </footer></div><script language="javascript">$(function() {$(\'#choose\').pagination({items: 2,itemsOnPage: 1,currentPage: 1,onInit: function () { test(1); },cssStyle: \'light-theme\',onPageClick: function(pageNumber){test(pageNumber)}}).pagination(\'redraw\');});</script></body></html>\n\\ No newline at end of file\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/test_data/out_test03.tsv
--- a/hmdb/test_data/out_test03.tsv Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,1116 +0,0 @@\n-ID\tMASS_SUBMIT\tHMDB_ID\tCPD_FORMULA\tCPD_MW\tDELTA\n-mz_00001\t175.01\tHMDB60293\tH2O3S2\t113.94453531\t0.000125\n-mz_00001\t175.01\tHMDB03745\tC2H6O3S2\t141.975835438\t0.000676\n-mz_00001\t175.01\tHMDB31436\tH4O4Si\t95.987885149\t0.000895\n-mz_00001\t175.01\tHMDB33657\tC17H10O6\t310.047738052\t0.000914\n-mz_00001\t175.01\tHMDB35230\tC17H10O6\t310.047738052\t0.000914\n-mz_00001\t175.01\tHMDB34155\tCH4N2S\t76.009518828\t0.001744\n-mz_00001\t175.01\tHMDB01570\tC10H13N2O7P\t304.046037292\t0.002237\n-mz_00001\t175.01\tHMDB01270\tC3H8O10P2\t265.9592695\t0.003458\n-mz_00001\t175.01\tHMDB01294\tC3H8O10P2\t265.9592695\t0.003458\n-mz_00001\t175.01\tHMDB60394\tC9H12FN2O8P\t326.031530087\t0.004012\n-mz_00001\t175.01\tHMDB60015\tC6H6O4S\t173.99867937\t0.004045\n-mz_00001\t175.01\tHMDB00021\tC9H10INO3\t306.970536611\t0.004182\n-mz_00001\t175.01\tHMDB15167\tC5H4N4S\t152.015666838\t0.005115\n-mz_00001\t175.01\tHMDB40364\tC3H7MnO6P\t224.936074104\t0.005134\n-mz_00001\t175.01\tHMDB62056\tC6H7O4P\t174.008195703\t0.005472\n-mz_00001\t175.01\tHMDB41485\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB00209\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB06853\tC4H4O\t68.02621475\t0.005588\n-mz_00001\t175.01\tHMDB03767\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB40733\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB38176\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB33968\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB29635\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB33128\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB33766\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB40638\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB32568\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB29686\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB32603\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB32400\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB31459\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB13785\tC4H4O\t68.02621475\t0.005588\n-mz_00001\t175.01\tHMDB02340\tC8H8O2\t136.0524295\t0.005588\n-mz_00001\t175.01\tHMDB14912\tC8H8F3N3O4S2\t330.990831754\t0.005966\n-mz_00001\t175.01\tHMDB60764\tC16H11ClN4O\t310.062138701\t0.006286\n-mz_00001\t175.01\tHMDB40238\tC6H10OS\t130.045235632\t0.006396\n-mz_00001\t175.01\tHMDB31370\tC6H10OS\t130.045235632\t0.006396\n-mz_00001\t175.01\tHMDB37493\tC6H10OS\t130.045235632\t0.006396\n-mz_00001\t175.01\tHMDB37787\tC5H10N2\t98.08439833\t0.006562\n-mz_00001\t175.01\tHMDB61807\tC10H9Cl3O2\t265.966812653\t0.007229\n-mz_00001\t175.01\tHMDB59985\tC11H12O8S\t304.02528805\t0.008138\n-mz_00001\t175.01\tHMDB59987\tC11H12O8S\t304.02528805\t0.008138\n-mz_00001\t175.01\tHMDB60020\tC11H12O8S\t304.02528805\t0.008138\n-mz_00001\t175.01\tHMDB14581\tC5H4N4O\t136.03851077\t0.008331\n-mz_00001\t175.01\tHMDB00157\tC5H4N4O\t136.03851077\t0.008331\n-mz_00001\t175.01\tHMDB40631\tC15H12O7\t304.058302738\t0.008369\n-mz_00001\t175.01\tHMDB31778\tC14H9ClF2N2O2\t310.032061659\t0.008752\n-mz_00001\t175.01\tHMDB31160\tC5H12S2\t136.038041764\t0.0088\n-mz_00001\t175.01\tHMDB33053\tC5H12S2\t136.038041764\t0.0088\n-mz_00001\t175.01\tHMDB33054\tC5H12S2\t136.038041764\t0.0088\n-mz_00001\t175.01\tHMDB29694\tC8H8OS\t152.029585568\t0.008804\n-mz_00001\t175.01\tHMDB29783\tC14H14O8\t310.068867424\t0.009651\n-mz_00001\t175.01\tHMDB00613\tC4H8O5\t136.037173366\t0.009669\n-mz_00001\t175.01\tHMDB00943\tC4H8O5\t136.037173366\t0.009669\n-mz_00001\t175.01\tHMDB00115\tC2H4O3\t76.016043994\t0.011306\n-mz_00001\t175.01\tHMDB31608\tC2H4O3\t76.016043994\t0.011306\n-mz_00001\t175.01\tHMDB41797\tC8H6Cl2O3\t219.969399472\t0.011761\n-mz_00001\t175.01\tHMDB15413\tC12H14N4O4S\t310.073575646\t0.012005\n-mz_00001\t175.01\tHMDB15621\tC12H14N4O4S\t310.073575646\t0.012005\n-mz_00001\t175.01\tHMDB31825\tC8H8S\t136.034670946\t0.012171\n-mz_00001\t175.01\tHMDB31781\tC14H15O2PS2\t310.025107616\t0.012229\n-mz_00001\t175.01\tHMDB00634\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB00620\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB61185\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB00749\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB02092\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB33809\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB13233\tC5H6O4\t130.02660868\t0.012231\n-mz_00001\t175.01\tHMDB59743\tC5H6'..b'17\t696.226549854\t0.03834\n-mz_00004\t780.32\tHMDB61254\tC38H41N3O11S\t747.246179859\t0.040331\n-mz_00004\t780.32\tHMDB61256\tC38H41N3O11S\t747.246179859\t0.040331\n-mz_00004\t780.32\tHMDB33965\tC15H27NO10\t381.163496089\t0.040815\n-mz_00004\t780.32\tHMDB12364\tC36H66NO10P\t703.442433849\t0.041474\n-mz_00004\t780.32\tHMDB12344\tC36H66NO10P\t703.442433849\t0.041474\n-mz_00004\t780.32\tHMDB06606\tC29H49NO23\t779.269536879\t0.043187\n-mz_00004\t780.32\tHMDB13001\tC54H92O46\t1476.485975556\t0.043189\n-mz_00004\t780.32\tHMDB12201\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB41369\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB12202\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB12203\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB32000\tC16H23N5O6\t381.164833493\t0.04349\n-mz_00004\t780.32\tHMDB29401\tC20H19NO6\t369.121237345\t0.043702\n-mz_00004\t780.32\tHMDB33522\tC21H19NO6\t381.121237345\t0.043702\n-mz_00004\t780.32\tHMDB29360\tC20H19NO6\t369.121237345\t0.043702\n-mz_00005\t956.25\tHMDB35451\tC43H49O23\t933.266462874\t0.005681\n-mz_00005\t956.25\tHMDB38095\tC43H49O23\t933.266462874\t0.005681\n-mz_00005\t956.25\tHMDB40803\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB02219\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB38821\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB40511\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB34149\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB33990\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB35931\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB29617\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB36630\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB41455\tC22H22O10\t446.121296924\t0.008359\n-mz_00005\t956.25\tHMDB60157\tC30H52N7O18P3S\t923.230238121\t0.013727\n-mz_00005\t956.25\tHMDB33021\tC43H49O22\t917.271548252\t0.015294\n-mz_00005\t956.25\tHMDB41153\tC40H41O22\t873.208947996\t0.019318\n-mz_00005\t956.25\tHMDB60375\tC35H54N7O19P3S\t1001.240802807\t0.019643\n-mz_00005\t956.25\tHMDB35163\tC40H42O26\t938.196431516\t0.019745\n-mz_00005\t956.25\tHMDB29794\tC40H42O26\t938.196431516\t0.019745\n-mz_00005\t956.25\tHMDB04047\tC27H44N7O19P3S\t895.162552487\t0.022108\n-mz_00005\t956.25\tHMDB40378\tC45H38O21\t914.190558278\t0.025619\n-mz_00005\t956.25\tHMDB14756\tC21H21ClN2O8\t464.098643365\t0.029593\n-mz_00005\t956.25\tHMDB12207\tC28H42N7O17P3S\t873.157073179\t0.032557\n-mz_00005\t956.25\tHMDB35883\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB37932\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB34725\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB33132\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB40478\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB34360\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB37362\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB30775\tC21H20O12\t464.095476104\t0.035928\n-mz_00005\t956.25\tHMDB30747\tC22H24O11\t464.13186161\t0.036843\n-mz_00005\t956.25\tHMDB37535\tC22H24O11\t464.13186161\t0.036843\n-mz_00005\t956.25\tHMDB14927\tC28H54GdN5O20\t938.260314726\t0.044138\n-mz_00006\t1100.45\tHMDB60499\tC28H30N4O6\t518.216534712\t0.001166\n-mz_00006\t1100.45\tHMDB32198\tC30H34Cl2N4O\t536.210967144\t0.004946\n-mz_00006\t1100.45\tHMDB06568\tC20H35NO15\t529.200669455\t0.014838\n-mz_00006\t1100.45\tHMDB02060\tC20H35NO15\t529.200669455\t0.014838\n-mz_00006\t1100.45\tHMDB06582\tC20H35NO15\t529.200669455\t0.014838\n-mz_00006\t1100.45\tHMDB10345\tC27H36O11\t536.225761994\t0.024644\n-mz_00006\t1100.45\tHMDB36888\tC27H36O11\t536.225761994\t0.024644\n-mz_00006\t1100.45\tHMDB39422\tC48H64N11O18\t1082.443079299\t0.026902\n-mz_00006\t1100.45\tHMDB35520\tC24H38O12\t518.23632668\t0.038418\n-mz_00006\t1100.45\tHMDB38923\tC24H38O12\t518.23632668\t0.038418\n-mz_00006\t1100.45\tHMDB29773\tC24H38O12\t518.23632668\t0.038418\n-mz_00006\t1100.45\tHMDB15455\tC53H67N9O10S\t1021.473160099\t0.04438\n-mz_00006\t1100.45\tHMDB40723\tC30H30O8\t518.194067936\t0.046099\n-mz_00006\t1100.45\tHMDB01980\tC46H65N13O12S2\t1055.431705989\t0.047134\n-mz_00006\t1100.45\tHMDB33282\tC26H32O12\t536.189376488\t0.048127\n-mz_00006\t1100.45\tHMDB33281\tC26H32O12\t536.189376488\t0.048127\n-mz_00006\t1100.45\tHMDB15595\tC28H22F3N7O\t529.183792976\t0.048591\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/wsdl_hmdb.pl
--- a/hmdb/wsdl_hmdb.pl Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,265 +0,0 @@\n-#!perl\r\n-\r\n-## script  : wsdl_hmdb.pl\r\n-#=============================================================================\r\n-#                              Included modules and versions\r\n-#=============================================================================\r\n-## Perl modules\r\n-use strict ;\r\n-use warnings ;\r\n-use Carp qw (cluck croak carp) ;\r\n-\r\n-use Data::Dumper ;\r\n-use Getopt::Long ;\r\n-use Text::CSV ;\r\n-use POSIX ;\r\n-use FindBin ; ## Permet de localisez le repertoire du script perl d\'origine\r\n-\r\n-## Specific Modules (Home made...)\r\n-use lib $FindBin::Bin ;\r\n-my $binPath = $FindBin::Bin ;\r\n-use lib::hmdb qw( :ALL ) ;\r\n-## PFEM Perl Modules\r\n-use lib::conf  qw( :ALL ) ;\r\n-use lib::csv  qw( :ALL ) ;\r\n-\r\n-## Initialized values\r\n-my ( $help ) = undef ;\r\n-my ( $mass ) = undef ;\r\n-my ( $masses_file, $col_id, $col_mass, $header_choice, $nbline_header ) = ( undef, undef, undef, undef, undef ) ;\r\n-my ( $delta, $molecular_species, $out_tab, $out_html, $out_xls ) = ( undef, undef, undef, undef, undef ) ;\r\n-\r\n-\r\n-#=============================================================================\r\n-#                                Manage EXCEPTIONS\r\n-#=============================================================================\r\n-\r\n-&GetOptions ( \t"h"\t\t\t\t\t=> \\$help,\t\t\t\t# HELP\r\n-\t\t\t\t"mass:s"\t\t\t=> \\$mass,\t\t\t\t## option : one masse\r\n-\t\t\t\t"masses:s"\t\t\t=> \\$masses_file,\t\t## option : path to the input\r\n-\t\t\t\t"header_choice:s"\t=> \\$header_choice,\t\t## Presence or not of header in tabular file\r\n-\t\t\t\t"nblineheader:i"\t=> \\$nbline_header,\t\t## numbre of header line present in file\r\n-\t\t\t\t"colfactor:i"\t\t=> \\$col_mass,\t\t\t## Column id for retrieve formula list in tabular file\r\n-\t\t\t\t"delta:f"\t\t\t=> \\$delta,\r\n-\t\t\t\t"mode:s"\t\t\t=> \\$molecular_species,\t## Molecular species (positive/negative/neutral) \r\n-\t\t\t\t"output|o:s"\t\t=> \\$out_tab,\t\t\t## option : path to the ouput (tabular : input+results )\r\n-\t\t\t\t"view|v:s"\t\t\t=> \\$out_html,\t\t\t## option : path to the results view (output2)\r\n-\t\t\t\t"outputxls:s"\t\t=> \\$out_xls,\t\t\t## option : path to the xls-like format output\r\n-            ) ;\r\n-\r\n-#=============================================================================\r\n-#                                EXCEPTIONS\r\n-#=============================================================================\r\n-$help and &help ;\r\n-\r\n-#=============================================================================\r\n-#                                MAIN SCRIPT\r\n-#=============================================================================\r\n-\r\n-\r\n-## -------------- Conf file ------------------------ :\r\n-my ( $CONF ) = ( undef ) ;\r\n-foreach my $conf ( <$binPath/*.cfg> ) {\r\n-\tmy $oConf = lib::conf::new() ;\r\n-\t$CONF = $oConf->as_conf($conf) ;\r\n-}\r\n-\r\n-## -------------- HTML template file ------------------------ :\r\n-foreach my $html_template ( <$binPath/*.tmpl> ) { $CONF->{\'HTML_TEMPLATE\'} = $html_template ; }\r\n-\r\n-\r\n-## --------------- Global parameters ---------------- :\r\n-my ( $ids, $masses, $results ) = ( undef, undef, undef ) ;\r\n-my ( $complete_rows, $nb_pages_for_html_out ) = ( undef, 1 ) ;\r\n-my $search_condition = "Search params : Molecular specie = $molecular_species / delta (mass-to-charge ratio) = $delta" ;\r\n-\r\n-## --------------- retrieve input data -------------- :\r\n-\r\n-## manage only one mass\r\n-if ( ( defined $mass ) and ( $mass ne \'\' ) ) {\r\n-\tmy @masses = split(" ", $mass);\r\n-\t$masses = \\@masses ;\r\n-\tfor (my $i=1 ; $i<=$#masses+1 ; $i++){ push (@$ids,"mz_0".sprintf("%04s", $i ) ); }\r\n-} ## END IF\r\n-## manage csv file containing list of masses\r\n-elsif ( ( defined $masses_file ) and ( $masses_file ne "" ) and ( -e $masses_file ) ) {\r\n-\t## parse all csv for later : output csv build\r\n-\tmy $ocsv_input  = lib::csv->new() ;\r\n-\tmy $complete_csv = $ocsv_input->get_csv_object( "\\t" ) ;\r\n-\t$complete_rows = $ocsv_input->parse_csv_object($complete_csv, \\$masses_file) ;\r\n-\t\r\n-\t## parse masses and set ids\r\n-\tmy $ocsv = lib::csv->new() ;\r\n-\tmy $csv = $ocsv->get_csv_object( "\\t" ) ;'..b' {\r\n-\t# produce a csv based on METLIN format\r\n-\tmy $ocsv = lib::hmdb::new() ;\r\n-\tif (defined $masses_file) {\r\n-\t\tmy $lm_matrix = undef ;\r\n-\t\tif ( ( defined $nbline_header ) and ( $header_choice eq \'yes\' ) ) {\r\n-#\t\t\t$lm_matrix = $ocsv->set_lm_matrix_object(\'hmdb\', $masses, $results ) ;\r\n-\t\t\t$lm_matrix = $ocsv->set_hmdb_matrix_object_with_ids(\'hmdb\', $masses, $results ) ;\r\n-\t\t\t$lm_matrix = $ocsv->add_lm_matrix_to_input_matrix($complete_rows, $lm_matrix, $nbline_header-1) ;\r\n-\t\t}\r\n-\t\telsif ( ( $header_choice eq \'no\' ) ) {\r\n-#\t\t\t$lm_matrix = $ocsv->set_lm_matrix_object(undef, $masses, $results ) ;\r\n-\t\t\t$lm_matrix = $ocsv->set_hmdb_matrix_object_with_ids(undef, $masses, $results ) ;\r\n-\t\t\t$lm_matrix = $ocsv->add_lm_matrix_to_input_matrix($complete_rows, $lm_matrix, 0) ;\r\n-\t\t}\r\n-\t\t$ocsv->write_csv_skel(\\$out_tab, $lm_matrix) ;\r\n-\t}\r\n-\telsif (defined $mass) {\r\n-\t\t$ocsv->write_csv_one_mass($masses, $ids, $results, $out_tab) ;\r\n-\t}\r\n-} ## END IF\r\n-else {\r\n-\twarn "Can\'t create a tabular output for HMDB : no result found or your output file is not defined\\n" ;\r\n-}\r\n-\r\n-## Write XLS like format\r\n-if ( ( defined $out_xls ) and ( defined $results ) ) {\r\n-\tmy $ocsv = lib::hmdb::new() ;\r\n-\t$ocsv->write_csv_one_mass($masses, $ids, $results, $out_xls) ;\r\n-}\r\n-\r\n-\r\n-#====================================================================================\r\n-# Help subroutine called with -h option\r\n-# number of arguments : 0\r\n-# Argument(s)        :\r\n-# Return           : 1\r\n-#====================================================================================\r\n-sub help {\r\n-\tprint STDERR "\r\n-help of wsdl_hmdb\r\n-\r\n-# wsdl_hmdb is a script to query HMDB website using mz and return a list of candidates sent by HMDB based on the ms search tool.\r\n-# Input : formula or list of formula\r\n-# Author : Franck Giacomoni and Marion Landi\r\n-# Email : fgiacomoni\\@clermont.inra.fr\r\n-# Version : 1.4\r\n-# Created : 08/07/2012\r\n-# Updated : 21/01/2016\r\n-USAGE :\t\t \r\n-\t\twsdl_hmdb.pl \t-mass [one mass or a string list of exact masses] -delta [mz delta] -mode [molecular species: positive|negative|neutral] -output [output tabular file] -view [output html file] \r\n-\t\t\r\n-\t\tor \r\n-\t\twsdl_hmdb.pl \t-masses [an input file of mzs] -colfactor [col of mz] -header_choice [yes|no] -nblineheader [nb of lines containing file header : 0-n]\r\n-\t\t\t\t\t\t-delta [mz delta] -mode [molecular species: positive|negative|neutral] -output [output tabular file] -view [output html file] \r\n-\t\t\t\t\t\t\r\n-\t\tor \r\n-\t\twsdl_hmdb.pl \t-h for help\r\n-\t\t\r\n-\t\t";\r\n-\texit(1);\r\n-}\r\n-\r\n-## END of script - F Giacomoni \r\n-\r\n-__END__\r\n-\r\n-=head1 NAME\r\n-\r\n- wsdl_hmdb.pl -- script to query HMDB website using mz and return a list of candidates sent by HMDB based on the ms search tool.\r\n-\r\n-=head1 USAGE\r\n-\r\n-\twsdl_hmdb.pl \t-mass [one mass or a string list of exact masses] -delta [mz delta] -mode [molecular species: positive|negative|neutral] -output [output tabular file] -view [output html file] \r\n-\t\t\r\n-\tor \r\n-\twsdl_hmdb.pl \t-masses [an input file of mzs] -colfactor [col of mz] -header_choice [yes|no] -nblineheader [nb of lines containing file header : 0-n]\r\n-\t\t\t\t\t-delta [mz delta] -mode [molecular species: positive|negative|neutral] -output [output tabular file] -view [output html file] \r\n-\r\n-=head1 SYNOPSIS\r\n-\r\n-This script manages batch queries on HMDB server. \r\n-\r\n-=head1 DESCRIPTION\r\n-\r\n-This main program is a script to query HMDB website using mz and return a list of candidates sent by HMDB based on the ms search tool.\r\n-\r\n-=over 4\r\n-\r\n-=item B<function01>\r\n-\r\n-=item B<function02>\r\n-\r\n-=back\r\n-\r\n-=head1 AUTHOR\r\n-\r\n-Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>\r\n-\r\n-=head1 LICENSE\r\n-\r\n-This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.\r\n-\r\n-=head1 VERSION\r\n-\r\n-version 1.0 : 06 / 06 / 2013\r\n-\r\n-version 1.2 : 27 / 01 / 2014\r\n-\r\n-version 1.3 : 19 / 11 / 2014\r\n-\r\n-version 1.4 : 21 / 01 / 2016 - a clean version for community\r\n-\r\n-=cut\n\\ No newline at end of file\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a hmdb/wsdl_hmdb.xml
--- a/hmdb/wsdl_hmdb.xml Thu Jan 28 10:52:26 2016 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,239 +0,0 @@\n-<tool id="wsdl_hmdb" name="HMDB MS search" version="2016-01-28">\r\n-  <description>\r\n-        search by masses on HMDB online bank\r\n-  </description>\r\n-  <command interpreter="perl">\r\n-        wsdl_hmdb.pl\r\n-        #if str($input_type.choice) == "YES":\r\n-            -masses "${input_type.masses}"\r\n-            -header_choice "${input_type.header.header_choice}"\r\n-            #if str($input_type.header.header_choice) == "yes":\r\n-                -nblineheader "${$input_type.header.nbHeader}"\r\n-            #end if\r\n-            -colfactor "${input_type.colfactor}"\r\n-        #else:\r\n-            -mass "${input_type.mass}"\r\n-        #end if\r\n-        -delta "$delta" -mode "$mode"\r\n-        -output "$variableMetadata" -view "$HmdbResView" -outputxls "$HmdbResXls"\r\n-  </command>\r\n-  <inputs>\r\n-    <conditional name="input_type">\r\n-      <param name="choice" type="select" label="Would you use a file " help="if \'NO\' is selected then one or more mass(es) must be entered manually">\r\n-        <option value="YES">YES</option>\r\n-        <option value="NO">NO</option>\r\n-      </param>\r\n-      <when value="YES">\r\n-        <param name="masses" label="File of masses (Variable Metadata) " format="tabular" type="data" help="Generally variable metadata file. Please note : HMDB allows maximum 150 query masses per request" />\r\n-        <conditional name="header">\r\n-          <param name="header_choice" type="select" label="Do you have a header " help="if \'YES\' is selected then enter your number of header lines">\r\n-            <option value="no">NO</option>\r\n-            <option value="yes" selected="true">YES</option>\r\n-          </param>\r\n-          <when value="yes">\r\n-            <param name="nbHeader" label="Number of header lines " type="integer" value="1" min="1" size="10" help="number of lines not containing masses"/>\r\n-          </when>\r\n-        </conditional>\r\n-\t    <param name="colfactor" label="Column of masses " type="data_column" data_ref="masses" accept_default="true" />\r\n-      </when>\r\n-      <when value="NO">\r\n-        <param name="mass" label="Mass to submit " type="text" size="20" help="For a masses list, writes : m1 m2 m3. Your values \xe2\x80\x8b\xe2\x80\x8bmust be separated by spaces. You should use dot (.) like decimal separator" />\r\n-      </when>\r\n-    </conditional>\r\n-    \r\n-    <param name="delta" label="Mass-to-charge ratio " type="float" value="0.05" min="0" max="10" size="10" help="Default value is 0.05 for HMDB (mass-to-charge ratio)"/>\r\n-    <param name="mode" label="Molecular Species " type="select" display="radio" help="">\r\n-      <option value="positive">Positif Mode</option>\r\n-      <option value="negative">Negatif Mode</option>\r\n-      <option value="neutral" selected="True">Neutral Mass</option>\r\n-    </param>\r\n-  </inputs>\r\n-  \r\n-  <outputs>\r\n-    <data name="variableMetadata" format="tabular" label="${tool.name}_TSV"/>\r\n-    <data name="HmdbResView" format="html" label="${tool.name}_VIEW"/>\r\n-    <data name="HmdbResXls" label="${tool.name}_XLS" format="tabular" />\r\n-  </outputs>\r\n-  \r\n-  <tests>\r\n-  \t<test>\r\n-  \t\t<!--test 01 no result - fake-mzrt-input-with-id -->\r\n-  \t\t<param name="choice" value="YES"/>\r\n-  \t\t<param name="masses" value="input_test01_fake-mzrt-input-with-id.tsv"/>\r\n-  \t\t<param name="header_choice" value="yes"/>\r\n-  \t\t<param name="nblineheader" value="1"/>\r\n-  \t\t<param name="colfactor" value="2"/>\r\n-  \t\t<param name="delta" value="0.001"/>\r\n-  \t\t<param name="mode" value="neutral"/>\r\n-  \t\t<output name="variableMetadata" file="out_test01.tsv"/>\r\n-  \t\t<output name="HmdbResView" file="out_test01.html"/>\r\n-  \t\t<output name="HmdbResXls" file="out_test01.csv"/>\r\n-  \t</test>\r\n-  \t<test>\r\n-  \t\t<!--test 02 : some results - with-mzrt-input-with-id file-->\r\n-  \t\t<param name="choice" value="YES"/>\r\n-  \t\t<param name="masses" value="input_test02_mzrt-input-with-id.tsv"/>\r\n-  \t\t<param name="header_choice" value="yes"/>\r\n-  \t\t<param name="nblineheader" value="1"/>\r\n-  \t\t<param name="colfactor" value="2"/>\r\n- '..b'le="out_test02.csv"/>\r\n-  \t</test>\r\n-  \t<test>\r\n-  \t\t<!--test 03 : some results - with-mz list in manual mass mode-->\r\n-  \t\t<param name="choice" value="NO"/>\r\n-  \t\t<param name="mass" value="175.01 238.19 420.16 780.32 956.25 1100.45"/>\r\n-  \t\t<param name="delta" value="0.05"/>\r\n-  \t\t<param name="mode" value="positive"/>\r\n-  \t\t<output name="variableMetadata" file="out_test03.tsv"/>\r\n-  \t\t<output name="HmdbResView" file="out_test03.html"/>\r\n-  \t\t<output name="HmdbResXls" file="out_test03.csv"/>\r\n-  \t</test>\r\n-  </tests>\r\n-\r\n-  <help>\r\n-\r\n-.. class:: infomark\r\n-\r\n-**Authors** Marion Landi and Franck Giacomoni\r\n-\r\n----------------------------------------------------\r\n-\r\n-.. class:: infomark\r\n-\r\n-**Please cite** If you use this tool, please cite \r\n-  | `Wishart DS, Jewison T, Guo AC, Wilson M, Knox C, et al., HMDB 3.0\xe2\x80\x94The Human Metabolome Database in 2013. Nucleic Acids Res. 2013. &lt;http://www.ncbi.nlm.nih.gov/pubmed/23161693&gt;`_\r\n-\r\n-\r\n----------------------------------------------------\r\n-\r\n-==============\r\n-HMDB MS search\r\n-==============\r\n-\r\n------------\r\n-Description\r\n------------\r\n-\r\n- | Search informations (like : HMDB id,  Name, Adduct, delta mass) on HMDB online bank\r\n- | with one or more mass(es) in a file or entered manually\r\n-\r\n-\r\n------------------\r\n-Workflow position\r\n------------------\r\n-\r\n-\r\n-.. image:: ./static/images/metabolomics/hmdb.png\r\n-        :width: 800\r\n-\r\n-\r\n------------\r\n-Input files\r\n------------\r\n-\r\n-\r\n-+-------------------------+-----------+\r\n-| Parameter : num + label |  Format   |\r\n-+=========================+===========+\r\n-| 1 : File of masses      |  tabular  |\r\n-+-------------------------+-----------+\r\n-\r\n-File of masses (Generally variable metadata file) must have at least the following column : \r\n-\t* Masses : column with all the masses in the tsv input file\r\n-\r\n-----------\r\n-Parameters\r\n-----------\r\n-\r\n-Would you use a file\r\n-\t| Choose whether the masses are in a file or entered manually\r\n-\t| YES (default) : parameters **File of masses ; Do you have a header ; Column of masses** are visible\r\n-\t| NO : parameter **Mass to submit** is visible\r\n-\t|\r\n-\r\n-\r\n-If \'use file\'=\'YES\'\r\n-\r\n-File of masses\r\n-\t| see "Input files" section above\r\n-\t| Tabular file format, Generally variable metadata file\r\n-\t| \r\n-\r\n-Do you have a header\r\n-\t| YES (default) : parameter **Number of header lines** is visible\r\n-\t| NO : all lines are considered to contain masses\r\n-\t|\r\n-\r\n-If \'have a header\'=\'YES\'\r\n-\r\n-Number of header lines\r\n-\t| Number of lines not containing masses values, these lines will be ignored\r\n-\t|\r\n-\r\n-In all header cases :\r\n-\r\n-Column of masses\r\n-\t| Specify the column number for the mass in the tsv input file\r\n-\t|\r\n-\r\n-\r\n-If \'use file\'=\'NO\'\r\n-\r\n-Mass to submit\r\n-\t| Specify a list of mass to request\r\n-\t| one or more mass(es) entered manually\r\n-\t| For a masses list, writes : m1 m2 m3\r\n-\t| You must separate yours values with space\r\n-\t| dot (.) is for float number\r\n-\t|\r\n-\r\n-In all cases :\r\n-\r\n-Mass-to-charge ratio\r\n-\t| Specify a delta (mass-to-charge ratio) to apply on mass - This value is a float, between 0.0000000000000001 and 10.\r\n-\t|\r\n-\r\n-Molecular Species\r\n-\t| Type of ionization of the molecule : *positif, negatif, neutral*\r\n-\t|\r\n-\r\n-\r\n-------------\r\n-Output files\r\n-------------\r\n-\r\n-Two types of files\r\n-\t| wsdl_hmdb_VIEW.HTML : for viewing result via HTML.\r\n-\t| \r\n-\t| wsdl_hmdb_TSV.tabular : for linking with others modules.\r\n-\t| \r\n-\t| an excel-like output will be available. \r\n-\t| \r\n-\t\r\n----------------------------------------------------\r\n-\r\n-\r\n----------------\r\n-Working example\r\n----------------\r\n-\r\n-\r\n-.. class:: warningmark\r\n-\r\n-Refer to the corresponding `"W4M HowTo" &lt;http://workflow4metabolomics.org/howto&gt;`_ page:\r\n- | Format Data For Postprocessing\r\n- | Perform LCMS Annotations\r\n-\r\n-.. class:: warningmark\r\n-\r\n-And their "W4M courses 2015":\r\n- | Using Galaxy4Metabolomics - W4M table format for Galaxy\r\n- | Annotation Banks - Annotation  \r\n-\t\r\n-\r\n-\t</help>\r\n-</tool>\n\\ No newline at end of file\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a lib/conf.pm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/conf.pm Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,259 @@
+package lib::conf ;
+
+use strict;
+use warnings ;
+use Exporter ;
+use Carp ;
+use Data::Dumper ;
+
+use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);
+
+our $VERSION = "1.0" ;
+our @ISA = qw(Exporter) ;
+our @EXPORT = qw( as_conf get_value_from_conf check_path_and_file ) ;
+our %EXPORT_TAGS = ( ALL => [qw( as_conf get_value_from_conf )] ) ;
+
+=head1 NAME
+
+conf - A module for manage pfem conf file
+
+=head1 SYNOPSIS
+
+    use conf ;
+    my $object = conf->new() ;
+
+=head1 DESCRIPTION
+
+This module does manage conf file (extract all or selected fields)
+
+=head1 METHODS
+
+Methods are :
+
+=head2 METHOD new
+
+ ## Description : new
+ ## Input : $self
+ ## Ouput : bless $self ;
+ ## Usage : new() ;
+
+=cut
+## START of SUB
+sub new {
+    ## Variables
+    my $self={};
+    bless($self) ;
+    return $self ;
+}
+### END of SUB
+
+=head2 METHOD as_conf
+
+ ## Description : permet de creer l'object conf a partir d'un fichier de conf de type KEY=VALUE
+ ## Input : $file
+ ## Ouput : $oConf (a hash)
+ ## Usage : my ( $oConf ) = as_conf( $file ) ;
+
+=cut
+## START of SUB
+sub as_conf {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $file, $separator ) = @_ ;
+    
+#    if (!defined $separator) { $separator = ';' } ## set separator to ;
+    
+    if ( !defined $file )  {  croak "Can't create object with an none defined file\n" ; }
+    
+    my %Conf = () ; ## Hash devant contenir l'ensemble des parametres locaux
+
+ if (-e $file) {
+ open (CFG, "<$file") or die "Can't open $file\n" ;
+ while (<CFG>) {
+ chomp $_ ;
+ if ( $_ =~ /^#(.*)/)  { next ; }
+ elsif ($_ =~/^(\w+?)=(.*)/) { ## ALPHANUMERIC OR UNDERSCORE ONLY FOR THE KEY AND ANYTHING ELSE FOR VALUE
+
+ my ($key, $value) = ($1, $2) ;
+
+ if (defined $separator) {
+ if ( $value=~/$separator/ ) { ## is a list to split
+ my @tmp = split(/$separator/ , $value) ;
+ $Conf{$key} = \@tmp ;
+ }
+ }
+ else {
+ $Conf{$key} = $value ;
+ }
+ }
+ }
+ close(CFG) ;
+ }
+ else { 
+ croak "Can't create object with an none existing file\n" ;
+ }
+
+    return ( \%Conf ) ;
+}
+## END of SUB
+
+=head2 METHOD as_conf_list
+
+ ## Description : permet de charger une liste txt en array
+ ## Input : $file
+ ## Output : elements
+ ## Usage : my ( elements ) = as_conf_list( $conf_file ) ;
+
+=cut
+## START of SUB
+sub as_conf_list {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $file ) = @_ ;
+    
+    my @elements = () ;
+    if ( !defined $file )  {  croak "Can't create object with an none defined file\n" ; }
+    
+    if (-e $file) {
+ open (CFG, "<$file") or die "Can't open $file\n" ;
+ while (<CFG>) {
+ chomp $_ ;
+ if ( $_ =~ /^#(.*)/)  { next ; }
+ elsif ($_ =~/^(.*)/) { if (defined $1) { push (@elements, $1) ; }  }
+ }
+    }
+    else {
+ croak "Can't create object with an none existing file\n" ;
+ }
+    return(\@elements) ;
+}
+## END of SUB
+
+=head2 METHOD get_value_from_conf
+
+ ## Description : permet de retourner une valeur du hash de conf a partir d'une key
+ ## Input : $oConf, $Key
+ ## Ouput : $Value
+ ## Usage : my ( $Value ) = get_value_from_conf( $oConf, $Key ) ;
+
+=cut
+## START of SUB
+sub get_value_from_conf {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $oConf, $Key ) = @_ ;
+    
+    my $Value = undef ;
+    
+    if ( defined $oConf ) {
+     if ( defined $oConf->{$Key} ) {
+     $Value = $oConf->{$Key} ;
+     }
+    }
+    else {
+     croak "Can't manage value with undefined object\n" ;
+    }
+    return($Value) ;
+}
+## END of SUB
+
+=head2 METHOD get_value_from_conf
+
+ ## Description : permet de retourner une valeur du hash de conf a partir d'une key
+ ## Input : $oConf, $Key
+ ## Ouput : $Value
+ ## Usage : my ( $Value ) = get_value_from_conf( $oConf, $Key ) ;
+
+=cut
+## START of SUB
+sub split_value_from_conf {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $oConf, $Key, $sep ) = @_ ;
+    
+    my $value = undef ;
+    my @values = () ;
+    
+    if ( defined $oConf ) {
+     if ( defined $oConf->{$Key} ) {
+     $value = $oConf->{$Key} ;
+     @values = split ( /$sep/, $value) ;
+     }
+    }
+    else {
+     croak "Can't manage value with undefined object\n" ;
+    }
+    return(\@values) ;
+}
+## END of SUB
+
+
+=head2 METHOD check_path_and_file
+
+ ## Description : permet de verifier les path et la presence des exe decrits dans le file conf. Bloque le script en cas de probleme
+ ## Input : $oConfs
+ ## Ouput : NA
+ ## Usage : &get_value_from_conf( $oConf ) ;
+
+=cut
+## START of SUB
+sub check_path_and_file {
+
+ my $self = shift ;
+ my ( $oConfs ) = @_ ;
+
+ foreach my $conf ( keys %{ $oConfs } ) {
+ if ( $conf =~ /^FILE/ ) {
+ if ( -e $oConfs->{$conf} ) {
+ if ( -s $oConfs->{$conf} ) { next ; }
+ else { carp "[Warning] : The size of file $oConfs->{$conf} is null\n" ; }
+ }
+ else {
+ carp "[Warning] : The file $oConfs->{$conf} doesn't exist\n" ;
+ }
+ }
+ elsif ( $conf =~ /^PATH/ ) {
+ if ( -d $oConfs->{$conf} ) { next ; }
+ else { carp "[Warning] :  The dir $oConfs->{$conf} doesn't exist\n" ; }
+ }
+ else {  next ;  }
+ }
+ return ;
+}
+## END of SUB
+
+1 ;
+
+
+__END__
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc conf.pm
+
+
+=head1 Exports
+
+=over 4
+
+=item :ALL is as_conf get_value_from_conf
+
+=back
+
+=head1 AUTHOR
+
+Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>
+
+=head1 LICENSE
+
+This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
+
+=head1 VERSION
+
+version 1 : 10 / 02 / 2013
+
+version 2 : ??
+
+=cut
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a lib/csv.pm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/csv.pm Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,240 @@
+package lib::csv ;
+
+use strict;
+use warnings ;
+use Exporter ;
+use Carp ;
+
+use Text::CSV ;
+
+use Data::Dumper ;
+
+use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);
+
+our $VERSION = "1.0";
+our @ISA = qw(Exporter);
+our @EXPORT = qw( get_csv_object get_value_from_csv_multi_header );
+our %EXPORT_TAGS = ( ALL => [qw( get_csv_object get_value_from_csv_multi_header )] );
+
+=head1 NAME
+
+My::Module - An example module
+
+=head1 SYNOPSIS
+
+    use My::Module;
+    my $object = My::Module->new();
+    print $object->as_string;
+
+=head1 DESCRIPTION
+
+This module does not really exist, it
+was made for the sole purpose of
+demonstrating how POD works.
+
+=head1 METHODS
+
+Methods are :
+
+=head2 METHOD new
+
+ ## Description : new
+ ## Input : $self
+ ## Ouput : bless $self ;
+ ## Usage : new() ;
+
+=cut
+
+sub new {
+    ## Variables
+    my $self={};
+    bless($self) ;
+    return $self ;
+}
+### END of SUB
+
+=head2 METHOD get_csv_object
+
+ ## Description : builds a csv object and etablishes format
+ ## Input : $separator
+ ## Output : $csv
+ ## Usage : my ( $csv ) = get_csv_object( $separator ) ;
+
+=cut
+## START of SUB
+sub get_csv_object {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $separator ) = @_ ;
+    
+#    my $csv = Text::CSV->new({'sep_char' => "$separator"});
+    my $csv = Text::CSV->new ( {'sep_char' => "$separator", binary => 1 } )  # should set binary attribute.
+     or die "Cannot use CSV: ".Text::CSV->error_diag ();
+    
+    return($csv) ;
+}
+## END of SUB
+
+=head2 METHOD get_value_from_csv_multi_header
+
+ ## Description : extract a targeted column in a csv file 
+ ## Input : $csv, $file, $column, $is_header, $nb_header
+ ## Output : $value
+ ## Usage : my ( $value ) = get_value_from_csv_multi_header( $csv, $file, $column, $is_header, $nb_header ) ;
+
+=cut
+## START of SUB
+sub get_value_from_csv_multi_header {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $csv, $file, $column, $is_header, $nb_header ) = @_ ;
+    
+    my @value = () ;
+    
+    ## Adapte the number of the colunm : (nb of column to position in array)
+ $column = $column - 1 ;
+    
+    open (CSV, "<", $file) or die $! ;
+
+ my $line = 0 ;
+
+ while (<CSV>) {
+ $line++ ;
+     chomp $_ ;
+ # file has a header
+ if ( defined $is_header and $is_header eq 'yes') { if ($line <= $nb_header) { next ; } }
+ # parsing the targeted column
+     if ( $csv->parse($_) ) {
+         my @columns = $csv->fields();
+         push ( @value, $columns[$column] ) ;
+     }
+     else {
+         my $err = $csv->error_input;
+         die "Failed to parse line: $err";
+     }
+ }
+ close CSV;
+    return(\@value) ;
+}
+## END of SUB
+
+=head2 METHOD parse_csv_object
+
+ ## Description : parse_all csv object and return a array of rows
+ ## Input : $csv, $file
+ ## Output : $csv_matrix
+ ## Usage : my ( $csv_matrix ) = parse_csv_object( $csv, $file ) ;
+
+=cut
+## START of SUB
+sub parse_csv_object {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $csv, $file ) = @_ ;
+    
+    my @csv_matrix = () ;
+    
+ open my $fh, "<:encoding(utf8)", $$file or die "Can't open csv file $$file: $!";
+
+ while ( my $row = $csv->getline( $fh ) ) {
+     push @csv_matrix, $row;
+ }
+ $csv->eof or $csv->error_diag();
+ close $fh;
+    
+    return(\@csv_matrix) ;
+}
+## END of SUB
+
+=head2 METHOD parse_allcsv_object
+
+ ## Description : parse_all csv object and return a array of rows with or without header
+ ## Input : $csv, $file, $keep_header
+ ## Output : $csv_matrix
+ ## Usage : my ( $csv_matrix ) = parse_csv_object( $csv, $file, $keep_header ) ;
+
+=cut
+## START of SUB
+sub parse_allcsv_object {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $csv, $file, $keep_header ) = @_ ;
+    
+    my @csv_matrix = () ;
+    my $line = 1 ;
+    
+ open my $fh, "<:encoding(utf8)", $$file or die "Can't open csv file $$file: $!";
+
+ while ( my $row = $csv->getline( $fh ) ) {
+ if ( ( $keep_header eq 'n' )  and ($line == 1) ) {  }
+ else { push @csv_matrix, $row; }
+     $line ++ ;
+ }
+ my $status = $csv->eof or $csv->error_diag();
+ close $fh;
+    
+    return(\@csv_matrix, $status) ;
+}
+## END of SUB
+
+
+=head2 METHOD write_csv_from_arrays
+
+ ## Description : write a csv file from list of rows
+ ## Input : $csv, $file_name, $rows
+ ## Output : $csv_file
+ ## Usage : my ( $csv_file ) = write_csv_from_arrays( $csv, $file_name, $rows ) ;
+
+=cut
+## START of SUB
+sub write_csv_from_arrays {
+ ## Retrieve Values
+    my $self = shift ;
+    my ( $csv, $file_name, $rows ) = @_ ;
+    
+    my $fh = undef ;
+    $csv->eol ("\n"); ##  end-of-line string to add to rows
+ $csv->quote_char(undef) ;
+    open $fh, ">:encoding(utf8)", "$file_name" or die "$file_name: $!";
+    
+ my $status = $csv->print ($fh, $_) for @{$rows};
+ close $fh or die "$file_name: $!";
+    
+    return(\$file_name) ;
+}
+## END of SUB
+
+1 ;
+
+
+__END__
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc csv.pm
+
+=head1 Exports
+
+=over 4
+
+=item :ALL is get_csv_object, get_value_from_csv_multi_header
+
+=back
+
+=head1 AUTHOR
+
+Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>
+
+=head1 LICENSE
+
+This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
+
+=head1 VERSION
+
+version 1 : 23 / 10 / 2013
+
+version 2 : ??
+
+=cut
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a lib/hmdb.pm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/hmdb.pm Wed Nov 23 09:31:50 2016 -0500
[
b'@@ -0,0 +1,1144 @@\n+package lib::hmdb ;\r\n+\r\n+use strict;\r\n+use warnings ;\r\n+use Exporter ;\r\n+use Carp ;\r\n+\r\n+use LWP::Simple;\r\n+use LWP::UserAgent;\r\n+use URI::URL;\r\n+use SOAP::Lite;\r\n+use Encode;\r\n+use HTML::Template ;\r\n+use XML::Twig ;\r\n+use Text::CSV ;\r\n+\r\n+use Data::Dumper ;\r\n+\r\n+use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);\r\n+\r\n+our $VERSION = "1.0";\r\n+our @ISA = qw(Exporter);\r\n+our @EXPORT = qw( map_suppl_data_on_hmdb_results get_unik_ids_from_results get_hmdb_metabocard_from_id extract_sub_mz_lists test_matches_from_hmdb_ua prepare_multi_masses_query get_matches_from_hmdb_ua parse_hmdb_csv_results set_html_tbody_object add_mz_to_tbody_object add_entries_to_tbody_object write_html_skel set_lm_matrix_object set_hmdb_matrix_object_with_ids add_lm_matrix_to_input_matrix write_csv_skel write_csv_one_mass );\r\n+our %EXPORT_TAGS = ( ALL => [qw( map_suppl_data_on_hmdb_results get_unik_ids_from_results get_hmdb_metabocard_from_id extract_sub_mz_lists test_matches_from_hmdb_ua prepare_multi_masses_query get_matches_from_hmdb_ua parse_hmdb_csv_results set_html_tbody_object add_mz_to_tbody_object add_entries_to_tbody_object write_html_skel set_lm_matrix_object set_hmdb_matrix_object_with_ids add_lm_matrix_to_input_matrix write_csv_skel write_csv_one_mass )] );\r\n+\r\n+=head1 NAME\r\n+\r\n+My::Module - An example module\r\n+\r\n+=head1 SYNOPSIS\r\n+\r\n+    use My::Module;\r\n+    my $object = My::Module->new();\r\n+    print $object->as_string;\r\n+\r\n+=head1 DESCRIPTION\r\n+\r\n+This module does not really exist, it\r\n+was made for the sole purpose of\r\n+demonstrating how POD works.\r\n+\r\n+=head1 METHODS\r\n+\r\n+Methods are :\r\n+\r\n+=head2 METHOD new\r\n+\r\n+\t## Description : new\r\n+\t## Input : $self\r\n+\t## Ouput : bless $self ;\r\n+\t## Usage : new() ;\r\n+\r\n+=cut\r\n+\r\n+sub new {\r\n+    ## Variables\r\n+    my $self={};\r\n+    bless($self) ;\r\n+    return $self ;\r\n+}\r\n+### END of SUB\r\n+     \r\n+\r\n+=head2 METHOD extract_sub_mz_lists\r\n+\r\n+\t## Description : extract a couples of sublist from a long mz list (more than $HMDB_LIMITS)\r\n+\t## Input : $HMDB_LIMITS, $masses\r\n+\t## Output : $sublists\r\n+\t## Usage : my ( $sublists ) = extract_sub_mz_lists( $HMDB_LIMITS, $masses ) ;\r\n+\t\r\n+=cut\r\n+## START of SUB\r\n+sub extract_sub_mz_lists {\r\n+\t## Retrieve Values\r\n+    my $self = shift ;\r\n+    my ( $masses, $HMDB_LIMITS ) = @_ ;\r\n+    \r\n+    my ( @sublists, @sublist ) = ( (), () ) ;\r\n+    my $nb_mz = 0 ;\r\n+    my $nb_total_mzs = scalar(@{$masses}) ;\r\n+    \r\n+    if ($nb_total_mzs == 0) {\r\n+    \tdie "The provided mzs list is empty" ;\r\n+    }\r\n+    \r\n+    for ( my $current_pos = 0 ; $current_pos < $nb_total_mzs ; $current_pos++ ) {\r\n+    \t\r\n+    \tif ( $nb_mz < $HMDB_LIMITS ) {\r\n+    \t\tif ( $masses->[$current_pos] ) { \tpush (@sublist, $masses->[$current_pos]) ; $nb_mz++ ;\t} # build sub list\r\n+    \t} \r\n+    \telsif ( $nb_mz == $HMDB_LIMITS ) {\r\n+    \t\tmy @tmp = @sublist ; push (@sublists, \\@tmp) ; @sublist = () ;\t$nb_mz = 0 ;\r\n+    \t\t$current_pos-- ;\r\n+    \t}\r\n+    \tif ($current_pos == $nb_total_mzs-1) { \tmy @tmp = @sublist ; push (@sublists, \\@tmp) ; }\r\n+\t}\r\n+    return(\\@sublists) ;\r\n+}\r\n+## END of SUB\r\n+\r\n+=head2 METHOD prepare_multi_masses_query\r\n+\r\n+\t## Description : Generate the adapted format of the mz list for HMDB\r\n+\t## Input : $masses\r\n+\t## Output : $hmdb_masses\r\n+\t## Usage : my ( $hmdb_masses ) = prepare_multi_masses_query( $masses ) ;\r\n+\t\r\n+=cut\r\n+## START of SUB\r\n+sub prepare_multi_masses_query {\r\n+\t## Retrieve Values\r\n+    my $self = shift ;\r\n+    my ( $masses ) = @_ ;\r\n+    \r\n+    my $hmdb_masses = undef ;\r\n+    my $sep = \'%0D%0A\' ; ## retour chariot encode\r\n+    my ($nb_masses, $i) = (0, 0) ;\r\n+    \r\n+    if ( defined $masses ) {\r\n+    \tmy @masses = @{$masses} ;\r\n+    \tmy $nb_masses = scalar ( @masses ) ;\r\n+    \tif ( $nb_masses == 0 ) { croak "The input method parameter mass list is empty" ; }\r\n+    \telsif ( $nb_masses >= 150 ) { croak "Your mass list is too long : HMDB allows maximum 150 query masses per request \\n" ; } ## Del it --- temporary patch\r\n+\t    \r\n+\t    foreach my $mass (@ma'..b'lues\r\n+    my $self = shift ;\r\n+    my ( $csv_file, $rows ) = @_ ;\r\n+\r\n+    my $ocsv = lib::csv::new( {is_binary => 1 , quote_binary => 0, quote_char => undef }) ;\r\n+\tmy $csv = $ocsv->get_csv_object("\\t") ;\r\n+\t$ocsv->write_csv_from_arrays($csv, $$csv_file, $rows) ;\r\n+    \r\n+    return($csv_file) ;\r\n+}\r\n+## END of SUB\r\n+\r\n+=head2 METHOD write_csv_one_mass\r\n+\r\n+\t## Description : print a cvs file\r\n+\t## Input : $masses, $ids, $results, $file\r\n+\t## Output : N/A\r\n+\t## Usage : write_csv_one_mass( $ids, $results, $file ) ;\r\n+\t\r\n+=cut\r\n+## START of SUB\r\n+sub write_csv_one_mass {\r\n+\t## Retrieve Values\r\n+    my $self = shift ;\r\n+    my ( $masses, $ids, $results, $file,  ) = @_ ;\r\n+\r\n+    open(CSV, \'>:utf8\', "$file") or die "Cant\' create the file $file\\n" ;\r\n+    print CSV "ID\\tQuery(Da)\\tDelta\\tMetabolite_Name\\tCpd_MW(Da)\\tFormula\\tAdduct\\tAdduct_MW(Da)\\tHMDB_ID\\n" ;\r\n+    \t\r\n+    my $i = 0 ;\r\n+    \t\r\n+    foreach my $id (@{$ids}) {\r\n+    \tmy $mass = undef ;\r\n+    \tif ( $masses->[$i] ) { \t$mass = $masses->[$i] ; \t}\r\n+    \telse {\t\t\t\t\t\tlast ; \t\t\t\t\t \t}\r\n+    \t\r\n+    \tif ( $results->[$i] ) { ## an requested id has a result in the list of hashes $results.\r\n+\r\n+    \t\tmy @anti_redondant = (\'N/A\') ;\r\n+    \t\tmy $check_rebond = 0 ;\r\n+    \t\tmy $check_noentry = 0 ;\r\n+    \t\t\r\n+    \t\tforeach my $entry (@{$results->[$i]}) {\r\n+    \t\t\t$check_noentry ++ ;\r\n+    \t\t\t## dispo anti doublons des entries\r\n+\t    \t\tforeach my $rebond (@anti_redondant) {\r\n+\t    \t\t\tif ( $rebond eq $entry->{ENTRY_ENTRY_ID} ) { $check_rebond = 1 ; last ; }\r\n+\t    \t\t}\r\n+#\t    \t\tprint "\\n-----------------------" ;\r\n+#\t    \t\tprint Dumper $entry->{ENTRY_ENTRY_ID} ;\r\n+#\t    \t\tprint "-------------------------$check_rebond\\n" ;\r\n+#\t\t    \tprint Dumper @anti_redondant ;\r\n+\t\t    \tif ( $check_rebond == 0 ) {\r\n+\t    \t\t\t\r\n+\t\t    \t\tpush ( @anti_redondant, $entry->{ENTRY_ENTRY_ID} ) ;\r\n+\r\n+\t    \t\t\tprint CSV "$id\\t$mass\\t" ;\r\n+\t    \t\t\t\r\n+\t    \t\t\t## print delta\r\n+\t    \t\t\tif ( $entry->{ENTRY_DELTA} ) { print CSV "$entry->{ENTRY_DELTA}\\t" ; }\r\n+\t    \t\t\telse { \t\t\t\t\t\t\t print CSV "0\\t" ; }\r\n+\t    \t\t\t\r\n+\t    \t\t\t## print cpd name\r\n+\t    \t\t\tif ( $entry->{ENTRY_ENTRY_NAME} ) { print CSV "[$entry->{ENTRY_ENTRY_NAME}]\\t" ; }\r\n+\t    \t\t\telse { \t\t\t\t\t\t\t print CSV "UNKNOWN\\t" ; }\r\n+\t    \t\t\t\r\n+\t    \t\t\t## print cpd mz\r\n+\t    \t\t\tif ( $entry->{ENTRY_CPD_MZ} ) { print CSV "$entry->{ENTRY_CPD_MZ}\\t" ; }\r\n+\t    \t\t\telse { \t\t\t\t\t\t\t print CSV "N/A\\t" ; }\r\n+\t    \t\t\t\r\n+\t    \t\t\t## print cpd formula\r\n+\t    \t\t\tif ( $entry->{ENTRY_FORMULA} ) { print CSV "$entry->{ENTRY_FORMULA}\\t" ; }\r\n+\t    \t\t\telse { \t\t\t\t\t\t\t print CSV "N/A\\t" ; }\r\n+\t    \t\t\t\r\n+\t    \t\t\t## print adduct\r\n+\t    \t\t\tif ( $entry->{ENTRY_ADDUCT} ) { print CSV "[$entry->{ENTRY_ADDUCT}]\\t" ; }\r\n+\t    \t\t\telse { \t\t\t\t\t\t\t print CSV "N/A\\t" ; }\r\n+\t    \t\t\t\r\n+\t    \t\t\t## print adduct mz\r\n+\t    \t\t\tif ( $entry->{ENTRY_ADDUCT_MZ} ) { print CSV "$entry->{ENTRY_ADDUCT_MZ}\\t" ; }\r\n+\t    \t\t\telse { \t\t\t\t\t\t\t print CSV "N/A\\t" ; }\r\n+\t    \t\t\t\r\n+\t    \t\t\t## print cpd id\r\n+\t    \t\t\tif ( $entry->{ENTRY_ENTRY_ID} ) { print CSV "$entry->{ENTRY_ENTRY_ID}\\n" ; }\r\n+\t    \t\t\telse { \t\t\t\t\t\t\tprint CSV "N/A\\n" ; }\r\n+\t\t    \t}\r\n+\t\t    \t$check_rebond = 0 ; ## reinit double control\r\n+    \t\t} ## end foreach\r\n+    \t\tif ($check_noentry == 0 ) {\r\n+    \t\t\tprint CSV "$id\\t$mass\\t0\\tUNKNOWN\\tN/A\\tN/A\\tN/A\\tN/A\\tN/A\\n" ;\r\n+    \t\t}\r\n+    \t}\r\n+    \t$i++ ;\r\n+    }\r\n+   \tclose(CSV) ;\r\n+    return() ;\r\n+}\r\n+## END of SUB\r\n+\r\n+1 ;\r\n+\r\n+\r\n+__END__\r\n+\r\n+=head1 SUPPORT\r\n+\r\n+You can find documentation for this module with the perldoc command.\r\n+\r\n+ perldoc hmdb.pm\r\n+\r\n+=head1 Exports\r\n+\r\n+=over 4\r\n+\r\n+=item :ALL is ...\r\n+\r\n+=back\r\n+\r\n+=head1 AUTHOR\r\n+\r\n+Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>\r\n+\r\n+=head1 LICENSE\r\n+\r\n+This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.\r\n+\r\n+=head1 VERSION\r\n+\r\n+version 1 : 06 / 06 / 2013\r\n+\r\n+version 2 : 27 / 01 / 2014\r\n+\r\n+version 3 : 19 / 11 / 2014\r\n+\r\n+version 4 : 28 / 01 / 2016\r\n+\r\n+version 5 : 02 / 11 /2016\r\n+\r\n+=cut\r\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a static/images/hmdb.png
b
Binary file static/images/hmdb.png has changed
b
diff -r 9583f9772198 -r 6d0a0f8f672a t/hmdb_managerTest.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/t/hmdb_managerTest.pl Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,134 @@
+#! perl
+use diagnostics;
+use warnings;
+no warnings qw/void/;
+use strict;
+no strict "refs" ;
+use Test::More qw( no_plan );
+use Test::Exception;
+use FindBin ;
+use Carp ;
+
+## Specific Modules
+use lib $FindBin::Bin ;
+my $binPath = $FindBin::Bin ;
+use lib::hmdbTest qw( :ALL ) ;
+
+
+## To launch the right sequence : API, MAPPER, THREADER, ...
+#my $sequence = 'MAPPER' ; 
+my $sequence = 'MAIN' ; 
+my $current_test = 1 ;
+
+if ($sequence eq "MAIN") {
+ print "\n\t\t\t\t  * * * * * * \n" ;
+ print "\t  * * * - - - Test HMDB Main script - - - * * * \n\n" ;
+
+
+ print "\n** Test $current_test extract_sub_mz_lists with an empty list of mzs **\n" ; $current_test++;
+
+ throws_ok{ extract_sub_mz_listsTest([], 3)} '/The provided mzs list is empty/', 'Method \'extract_sub_mz_lists\' detects empty argument and died correctly' ;
+
+ print "\n** Test $current_test extract_sub_mz_lists with a list of mzs and a limit of 3 **\n" ; $current_test++;
+ is_deeply( extract_sub_mz_listsTest(
+ ['175.01', '238.19', '420.16', '780.32', '956.25', '1100.45' ], 3), 
+ [ [ '175.01', '238.19', '420.16' ], [ '780.32', '956.25', '1100.45' ] ], 
+ 'Method \'extract_sub_mz_lists\' works with a list and return a well formated list of sublist of mzs');
+
+ print "\n** Test $current_test prepare_multi_masses_query with an empty list of mzs **\n" ; $current_test++;
+ throws_ok{ prepare_multi_masses_queryTest([])} '/The input method parameter mass list is empty/', 'Method \'prepare_multi_masses_query\' detects empty argument and died correctly' ;
+
+ print "\n** Test $current_test prepare_multi_masses_query with a list of mzs **\n" ; $current_test++;
+ is_deeply( prepare_multi_masses_queryTest(
+ ['175.01', '238.19', '420.16', '780.32', '956.25', '1100.45' ] ), 
+ '175.01%0D%0A238.19%0D%0A420.16%0D%0A780.32%0D%0A956.25%0D%0A1100.45%0D%0A', 
+ 'Method \'prepare_multi_masses_query\' works with a list of and return a well formated string for hmdb querying');
+
+ print "\n** Test $current_test get_matches_from_hmdb_ua with a well-formated string of mzs **\n" ; $current_test++;
+ is_deeply( get_matches_from_hmdb_uaTest(
+ '175.01%0D%0A420.16%0D%0A780.32%0D%0A956.25%0D%0A1100.45%0D%0A', 0.001, 'positive'),
+ [
+          'query_mass,compound_id,formula,compound_mass,adduct,adduct_type,adduct_mass,delta',
+          '175.01,HMDB60293,H2O3S2,113.94453531,M+IsoProp+H,+,175.009875,0.000125',
+          '175.01,HMDB03745,C2H6O3S2,141.975835438,M+CH3OH+H,+,175.009324,0.000676',
+          '175.01,HMDB31436,H4O4Si,95.987885149,M+DMSO+H,+,175.009105,0.000895',
+          '175.01,HMDB33657,C17H10O6,310.047738052,M+H+K,+,175.009086,0.000914',
+          '175.01,HMDB35230,C17H10O6,310.047738052,M+H+K,+,175.009086,0.000914',
+          '420.16,HMDB60838,C17H17N3O4S,359.093976737,M+IsoProp+H,+,420.159317,0.000683',
+          '420.16,HMDB60836,C17H17N3O4S,359.093976737,M+IsoProp+H,+,420.159317,0.000683'
+        ],
+ 'Method \'get_matches_from_hmdb_ua\' works with a well-formated string of mzs and return a complete csv from hmdb');
+
+ print "\n** Test $current_test test_matches_from_hmdb_ua to get hmdb status **\n" ; $current_test++;
+ is_deeply (test_matches_from_hmdb_uaTest (), 
+ \'200', 
+ 'The HMDB server is available: returns successful HTTP requests' ) ;
+
+ print "\n** Test $current_test check_state_from_hmdb_ua to manage script execution with the hmdb server status **\n" ; $current_test++;
+ is_deeply (check_state_from_hmdb_uaTest (\'200'),
+ 1,
+ 'The status 200 returns no error/warn' ) ;
+
+ print "\n** Test $current_test prepare_multi_masses_query with an empty list of mzs **\n" ; $current_test++;
+ throws_ok{ check_state_from_hmdb_uaTest(\'504')} 
+ '/Gateway Timeout: The HMDB server was acting as a gateway or proxy and did not receive a timely response from the upstream server/', 
+ 'Method \'check_state_from_hmdb_ua\' detects HTTP error code returned by HMDB and died correctly' ;
+
+ print "\n** Test $current_test parse_hmdb_csv_results with the correct inputs for hmdb outputs parsing (csv format) **\n" ; $current_test++;
+ is_deeply ( parse_hmdb_csv_resultsTest (
+ [
+          'query_mass,compound_id,formula,compound_mass,adduct,adduct_type,adduct_mass,delta',
+          '175.01,HMDB60293,H2O3S2,113.94453531,M+IsoProp+H,+,175.009875,0.000125',
+          '175.01,HMDB03745,C2H6O3S2,141.975835438,M+CH3OH+H,+,175.009324,0.000676',
+          '175.01,HMDB31436,H4O4Si,95.987885149,M+DMSO+H,+,175.009105,0.000895',
+          '175.01,HMDB33657,C17H10O6,310.047738052,M+H+K,+,175.009086,0.000914',
+          '175.01,HMDB35230,C17H10O6,310.047738052,M+H+K,+,175.009086,0.000914',
+          '420.16,HMDB60838,C17H17N3O4S,359.093976737,M+IsoProp+H,+,420.159317,0.000683',
+          '420.16,HMDB60836,C17H17N3O4S,359.093976737,M+IsoProp+H,+,420.159317,0.000683'
+        ],
+        ['175.01', '238.19', '420.16']
+ ),
+ [
+          [
+ { 'ENTRY_ADDUCT' => 'M+IsoProp+H', 'ENTRY_DELTA' => '0.000125', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_FORMULA' => 'H2O3S2', 'ENTRY_ENTRY_ID' => 'HMDB60293', 'ENTRY_ADDUCT_MZ' => '175.009875', 'ENTRY_CPD_MZ' => '113.94453531' },
+ { 'ENTRY_ADDUCT' => 'M+CH3OH+H', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_DELTA' => '0.000676', 'ENTRY_FORMULA' => 'C2H6O3S2', 'ENTRY_ENTRY_ID' => 'HMDB03745', 'ENTRY_ADDUCT_MZ' => '175.009324', 'ENTRY_CPD_MZ' => '141.975835438' },
+ { 'ENTRY_CPD_MZ' => '95.987885149', 'ENTRY_FORMULA' => 'H4O4Si', 'ENTRY_ENTRY_ID' => 'HMDB31436', 'ENTRY_ADDUCT_MZ' => '175.009105', 'ENTRY_DELTA' => '0.000895', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_ADDUCT' => 'M+DMSO+H' },
+ { 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_DELTA' => '0.000914', 'ENTRY_ADDUCT' => 'M+H+K', 'ENTRY_CPD_MZ' => '310.047738052', 'ENTRY_ENTRY_ID' => 'HMDB33657', 'ENTRY_ADDUCT_MZ' => '175.009086', 'ENTRY_FORMULA' => 'C17H10O6' },
+ { 'ENTRY_ADDUCT' => 'M+H+K', 'ENTRY_DELTA' => '0.000914', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_FORMULA' => 'C17H10O6', 'ENTRY_ADDUCT_MZ' => '175.009086', 'ENTRY_ENTRY_ID' => 'HMDB35230', 'ENTRY_CPD_MZ' => '310.047738052' }
+          ],
+          [],
+          [
+            { 'ENTRY_ADDUCT' => 'M+IsoProp+H', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_DELTA' => '0.000683', 'ENTRY_ENTRY_ID' => 'HMDB60838', 'ENTRY_ADDUCT_MZ' => '420.159317', 'ENTRY_FORMULA' => 'C17H17N3O4S', 'ENTRY_CPD_MZ' => '359.093976737' }, 
+            { 'ENTRY_CPD_MZ' => '359.093976737', 'ENTRY_FORMULA' => 'C17H17N3O4S', 'ENTRY_ENTRY_ID' => 'HMDB60836', 'ENTRY_ADDUCT_MZ' => '420.159317', 'ENTRY_ADDUCT_TYPE' => '+', 'ENTRY_DELTA' => '0.000683', 'ENTRY_ADDUCT' => 'M+IsoProp+H' }
+          ]
+        ],
+ 'Method \'parse_hmdb_csv_results\' works with a well-formated csv output and returns a a well formated array' ) ;
+
+ print "\n** Test $current_test parse_hmdb_csv_results with a void hmdb output and a list of mzs **\n" ; $current_test++;
+ is_deeply ( parse_hmdb_csv_resultsTest ( [], ['175.01', '238.19', '420.16'] ),
+ [ [], [], [] ],
+ 'Method \'parse_hmdb_csv_results\' works with a empty csv output and returns an empty but well formatted array' ) ;
+
+ print "\n** Test $current_test parse_hmdb_csv_results with a void hmdb output and a void mz list  **\n" ; $current_test++;
+ is_deeply ( parse_hmdb_csv_resultsTest ( [], [] ),
+ [],
+ 'Method \'parse_hmdb_csv_results\' works with a empty csv output/mz list and returns an empty but well formatted array' ) ;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## END of the script
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a t/lib/hmdbTest.pm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/t/lib/hmdbTest.pm Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,83 @@
+package lib::hmdbTest ;
+
+use diagnostics; # this gives you more debugging information
+use warnings;    # this warns you of bad practices
+use strict;      # this prevents silly errors
+use Exporter ;
+use Carp ;
+
+our $VERSION = "1.0";
+our @ISA = qw(Exporter);
+our @EXPORT = qw( parse_hmdb_csv_resultsTest check_state_from_hmdb_uaTest test_matches_from_hmdb_uaTest extract_sub_mz_listsTest prepare_multi_masses_queryTest get_matches_from_hmdb_uaTest);
+our %EXPORT_TAGS = ( ALL => [qw( parse_hmdb_csv_resultsTest check_state_from_hmdb_uaTest test_matches_from_hmdb_uaTest extract_sub_mz_listsTest prepare_multi_masses_queryTest get_matches_from_hmdb_uaTest)] );
+
+use lib '/Users/fgiacomoni/Inra/labs/perl/galaxy_tools/hmdb' ;
+use lib::hmdb qw( :ALL ) ;
+
+use Data::Dumper ;
+
+## sub
+sub extract_sub_mz_listsTest {
+
+ my ($masses, $hmdb_limits, ) = @_ ;
+
+ my $oHmdb = lib::hmdb->new() ;
+ my $submasses = $oHmdb->extract_sub_mz_lists($masses, $hmdb_limits ) ;
+
+ return ($submasses) ;
+}
+
+## sub
+sub prepare_multi_masses_queryTest {
+
+ my ($mzs ) = @_ ;
+
+ my $oHmdb = lib::hmdb->new() ;
+ my ( $hmdb_masses, $nb_masses_to_submit ) = $oHmdb->prepare_multi_masses_query($mzs) ;
+
+ return ($hmdb_masses) ;
+}
+
+## sub
+sub get_matches_from_hmdb_uaTest {
+
+ my ( $hmdb_masses, $delta, $molecular_species ) = @_ ;
+
+ my $oHmdb = lib::hmdb->new() ;
+ my $hmdb_pages = $oHmdb->get_matches_from_hmdb_ua($hmdb_masses, $delta, $molecular_species) ;
+ return ($hmdb_pages) ;
+}
+
+
+## sub
+sub test_matches_from_hmdb_uaTest {
+
+ my $oHmdb = lib::hmdb->new() ;
+ my $status = $oHmdb->test_matches_from_hmdb_ua() ;
+ return ($status) ;
+}
+
+
+## sub
+sub check_state_from_hmdb_uaTest {
+ my ($status ) = @_ ;
+
+ my $oHmdb = lib::hmdb->new() ;
+ my $res = $oHmdb->check_state_from_hmdb_ua($status) ;
+ return($res) ;
+}
+
+
+
+## sub
+sub parse_hmdb_csv_resultsTest {
+ my ($hmdb_pages, $mzs ) = @_ ;
+
+ my $oHmdb = lib::hmdb->new() ;
+ my $result = $oHmdb->parse_hmdb_csv_results($hmdb_pages, $mzs) ; ## hash format result
+
+ return($result) ;
+}
+
+
+1 ;
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/input_test01_fake-mzrt-input-with-id.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input_test01_fake-mzrt-input-with-id.tabular Wed Nov 23 09:31:50 2016 -0500
b
@@ -0,0 +1,7 @@
+id mz rt
+1 7.02080998 49.38210915
+2 75.05547146 0.658528069
+3 75.08059797 1743.94267
+4 76.03942694 51.23158899
+5 76.07584477 50.51249853
+6 76.07593168 0.149308136
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/input_test02_mzrt-input-with-id.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input_test02_mzrt-input-with-id.tabular Wed Nov 23 09:31:50 2016 -0500
b
@@ -0,0 +1,7 @@
+id mz rt
+1 7.02080998 49.38210915
+2 75.05547146 0.658528069
+3 75.08059797 1743.94267
+4 76.03942694 51.23158899
+5 76.07584477 50.51249853
+6 76.07593168 0.149308136
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test01.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test01.html Wed Nov 23 09:31:50 2016 -0500
b
@@ -0,0 +1,1 @@
+<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content="INRA de Clermont-Ferrand"><title>Galaxy HMDB queries - All results</title><link rel="stylesheet" type="text/css" href="css.php" media="all"><link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/style/simplePagination.css"/><!-- JavaScript --><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script src="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/scripts/jquery.simplePagination.js"></script><style type="text/css">body {padding-top: 70px}div.lm-table-warning {  font-size: 1.4em;  font-weight: bold;  padding-right: 25px;  color: #21536a;  margin-left: 3px;}tr.green td  {background-color: #eaf2d3; color: black;}tr.blank td {background-color: #9999CC; color: black;}table {font-family:'Trebuchet MS',Arial,Helvetica,sans-serif;width:100%;border-collapse:collapse;}table.detail, table.detail tr.parent, table.detail td, table.detail th, table.detail tr.category {border-collapse:collapse;border:1px solid #98bf21;}table.detail th {font-size: 1.2em;text-align: center;padding-top: 5px;padding-bottom: 10px;background-color: #a7c942;color: #ffffff;}td.ca {text-align:center;}footer {  margin: 50px 0;}</style><script>function test(pageNumber){  var page="#page-id-"+pageNumber;  $('.select').hide() ; $(page).show()}</script></head><body><div class="container"><div class="lm-table-warning">Results of HMDB queries - Search params : Molecular specie = neutral / delta (mass-to-charge ratio) = 0.001</div><div id="detail_table_source" style="display:none"></div><p><div id="choose"></div><p><div id="ms_search_0" class="ms-search-table"></div><!-- HeadRows--><table id="detail_table" class="detail"><col style="width:30px;"><!-- Ids (m/z)--><col style="width:30px;"><!-- Mass (m/z)--><col style="width:120px;"><!-- Met name--><col style="width:50px;"><!-- Cpd ID--><col style="width:40px;"><!-- formula--><col style="width:60px;"><!-- cpd mw--><col style="width:50px;"><!-- adduct --><col style="width:20px;"><!-- adduct type--><col style="width:60px;"><!-- adduct mw--><col style="width:50px;"><!-- delta--><col style="width:120px;"><!-- INCHI--><col style="width:20;"><!-- logP--><thead><th>ID from input</th><th>Mass (m/z)</th><th>Metabolite_Name</th><th>Compound_ID</th><th>Formula</th><th>Compound MW (Da)</th><th>Adduct</th><th>Adduct_Type</th><th>Adduct MW (Da)</th><th>Delta</th><th>InChI Identifier</th><th>Predicted LogP (ALOGPS)</th></thead><tbody class="select" id="page-id-1"><tr class="white"><td class="ca" >mz_00001</td><td id="1" class="ca" >7.02080998</td><td class="ca" colspan="10"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">NONE</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td><td class="ca">n/a</td><td class="ca">n/a</td></tr><tr class="green"><td class="ca" >mz_00002</td><td id="2" class="ca" >75.05547146</td><td class="ca" colspan="10"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">NONE</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td><td class="ca">n/a</td><td class="ca">n/a</td></tr><tr class="white"><td class="ca" >mz_00003</td><td id="3" class="ca" >75.08059797</td><td class="ca" colspan="10"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">NONE</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td><td class="ca">n/a</td><td class="ca">n/a</td></tr><tr class="green"><td class="ca" >mz_00004</td><td id="4" class="ca" >76.03942694</td><td class="ca" colspan="10"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">NONE</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td><td class="ca">n/a</td><td class="ca">n/a</td></tr></tbody><tbody class="select" id="page-id-2"><tr class="white"><td class="ca" >mz_00005</td><td id="5" class="ca" >76.07584477</td><td class="ca" colspan="10"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">NONE</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td><td class="ca">n/a</td><td class="ca">n/a</td></tr><tr class="green"><td class="ca" >mz_00006</td><td id="6" class="ca" >76.07593168</td><td class="ca" colspan="10"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">NONE</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td><td class="ca">n/a</td><td class="ca">n/a</td></tr></tbody></table></div><div class="container"><hr><footer><div class="row">  <div class="col-lg-12"><p>Copyright &copy; INRA, N Paulhe, F Giacomoni 2014 </p>  </div> </div> </footer></div><script language="javascript">$(function() {$('#choose').pagination({items: 2,itemsOnPage: 1,currentPage: 1,onInit: function () { test(1); },cssStyle: 'light-theme',onPageClick: function(pageNumber){test(pageNumber)}}).pagination('redraw');});</script></body></html>
\ No newline at end of file
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test01.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test01.tabular Wed Nov 23 09:31:50 2016 -0500
b
@@ -0,0 +1,7 @@
+id mz rt hmdb(delta::name::mz::formula::adduct::id)
+1 7.02080998 49.38210915 NONE
+2 75.05547146 0.658528069 NONE
+3 75.08059797 1743.94267 NONE
+4 76.03942694 51.23158899 NONE
+5 76.07584477 50.51249853 NONE
+6 76.07593168 0.149308136 NONE
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test01.xlsx
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test01.xlsx Wed Nov 23 09:31:50 2016 -0500
b
@@ -0,0 +1,7 @@
+ID Query(Da) Delta Metabolite_Name Cpd_MW(Da) Formula Adduct Adduct_MW(Da) HMDB_ID
+mz_00001 7.02080998 0 UNKNOWN N/A N/A N/A N/A N/A
+mz_00002 75.05547146 0 UNKNOWN N/A N/A N/A N/A N/A
+mz_00003 75.08059797 0 UNKNOWN N/A N/A N/A N/A N/A
+mz_00004 76.03942694 0 UNKNOWN N/A N/A N/A N/A N/A
+mz_00005 76.07584477 0 UNKNOWN N/A N/A N/A N/A N/A
+mz_00006 76.07593168 0 UNKNOWN N/A N/A N/A N/A N/A
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test02.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test02.html Wed Nov 23 09:31:50 2016 -0500
b
b'@@ -0,0 +1,1 @@\n+<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content="INRA de Clermont-Ferrand"><title>Galaxy HMDB queries - All results</title><link rel="stylesheet" type="text/css" href="css.php" media="all"><link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/style/simplePagination.css"/><!-- JavaScript --><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script src="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/scripts/jquery.simplePagination.js"></script><style type="text/css">body {padding-top: 70px}div.lm-table-warning {  font-size: 1.4em;  font-weight: bold;  padding-right: 25px;  color: #21536a;  margin-left: 3px;}tr.green td  {background-color: #eaf2d3; color: black;}tr.blank td {background-color: #9999CC; color: black;}table {font-family:\'Trebuchet MS\',Arial,Helvetica,sans-serif;width:100%;border-collapse:collapse;}table.detail, table.detail tr.parent, table.detail td, table.detail th, table.detail tr.category {border-collapse:collapse;border:1px solid #98bf21;}table.detail th {font-size: 1.2em;text-align: center;padding-top: 5px;padding-bottom: 10px;background-color: #a7c942;color: #ffffff;}td.ca {text-align:center;}footer {  margin: 50px 0;}</style><script>function test(pageNumber){  var page="#page-id-"+pageNumber;  $(\'.select\').hide() ; $(page).show()}</script></head><body><div class="container"><div class="lm-table-warning">Results of HMDB queries - Search params : Molecular specie = positive / delta (mass-to-charge ratio) = 0.001</div><div id="detail_table_source" style="display:none"></div><p><div id="choose"></div><p><div id="ms_search_0" class="ms-search-table"></div><!-- HeadRows--><table id="detail_table" class="detail"><col style="width:30px;"><!-- Ids (m/z)--><col style="width:30px;"><!-- Mass (m/z)--><col style="width:120px;"><!-- Met name--><col style="width:50px;"><!-- Cpd ID--><col style="width:40px;"><!-- formula--><col style="width:60px;"><!-- cpd mw--><col style="width:50px;"><!-- adduct --><col style="width:20px;"><!-- adduct type--><col style="width:60px;"><!-- adduct mw--><col style="width:50px;"><!-- delta--><col style="width:120px;"><!-- INCHI--><col style="width:20;"><!-- logP--><thead><th>ID from input</th><th>Mass (m/z)</th><th>Metabolite_Name</th><th>Compound_ID</th><th>Formula</th><th>Compound MW (Da)</th><th>Adduct</th><th>Adduct_Type</th><th>Adduct MW (Da)</th><th>Delta</th><th>InChI Identifier</th><th>Predicted LogP (ALOGPS)</th></thead><tbody class="select" id="page-id-1"><tr class="white"><td class="ca" >mz_00001</td><td id="1" class="ca" >7.02080998</td><td class="ca" colspan="10"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/" target="_blank" class="btn">NONE</a></td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">n/a</td><td class="ca">0</td><td class="ca">n/a</td><td class="ca">n/a</td></tr><tr class="green"><td class="ca" >mz_00002</td><td id="2" class="ca" >75.05547146</td><td class="ca" colspan="10"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">N-Nitrosodimethylamine</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31419" target="_blank" class="btn">HMDB31419</a></td><td class="ca">C2H6N2O</td><td class="ca">74.048012824</td><td class="ca">M+H</td><td class="ca">+</td><td class="ca">75.055289</td><td class="ca">0.00018246</td><td class="ca">InChI=1S/C2H6N2O/c1-4(2)3-5/h1-2H3</td><td class="ca">-0.53</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">Acetylhydrazine</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB60428" target="_blank" class="btn">HMDB60428</a></td><td class='..b'hol</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31652" target="_blank" class="btn">HMDB31652</a></td><td class="ca">C3H6O</td><td class="ca">58.041864814</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00015677</td><td class="ca">InChI=1S/C3H6O/c1-2-3-4/h2,4H,1,3H2</td><td class="ca">-0.03</td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB62143" target="_blank" class="btn">HMDB62143</a></td><td class="ca">C3H6O</td><td class="ca">58.041864813</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00015677</td><td class="ca">NA</td><td class="ca">NA</td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">Methyloxirane</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31558" target="_blank" class="btn">HMDB31558</a></td><td class="ca">C3H6O</td><td class="ca">58.041864814</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00015677</td><td class="ca">InChI=1/C3H6O/c1-3-2-4-3/h3H,2H2,1H3</td><td class="ca">0.04</td></tr><tr class="green"><td class="ca" >mz_00006</td><td id="6" class="ca" >76.07593168</td><td class="ca" colspan="10"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">1-Amino-propan-2-ol</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB12136" target="_blank" class="btn">HMDB12136</a></td><td class="ca">C3H9NO</td><td class="ca">75.068413915</td><td class="ca">M+H</td><td class="ca">+</td><td class="ca">76.07569</td><td class="ca">0.00024168</td><td class="ca">InChI=1S/C3H9NO/c1-3(5)2-4/h3,5H,2,4H2,1H3</td><td class="ca">-1.03</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">Trimethylamine N-oxide</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB00925" target="_blank" class="btn">HMDB00925</a></td><td class="ca">C3H9NO</td><td class="ca">75.068413915</td><td class="ca">M+H</td><td class="ca">+</td><td class="ca">76.07569</td><td class="ca">0.00024168</td><td class="ca">InChI=1S/C3H9NO/c1-4(2,3)5/h1-3H3</td><td class="ca">-2.01</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">Allyl alcohol</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31652" target="_blank" class="btn">HMDB31652</a></td><td class="ca">C3H6O</td><td class="ca">58.041864814</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00024368</td><td class="ca">InChI=1S/C3H6O/c1-2-3-4/h2,4H,1,3H2</td><td class="ca">-0.03</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">UNKNOWN</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB62143" target="_blank" class="btn">HMDB62143</a></td><td class="ca">C3H6O</td><td class="ca">58.041864813</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00024368</td><td class="ca">NA</td><td class="ca">NA</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">Methyloxirane</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31558" target="_blank" class="btn">HMDB31558</a></td><td class="ca">C3H6O</td><td class="ca">58.041864814</td><td class="ca">M+NH4</td><td class="ca">+</td><td class="ca">76.075688</td><td class="ca">0.00024368</td><td class="ca">InChI=1/C3H6O/c1-3-2-4-3/h3H,2H2,1H3</td><td class="ca">0.04</td></tr></tbody></table></div><div class="container"><hr><footer><div class="row">  <div class="col-lg-12"><p>Copyright &copy; INRA, N Paulhe, F Giacomoni 2014 </p>  </div> </div> </footer></div><script language="javascript">$(function() {$(\'#choose\').pagination({items: 2,itemsOnPage: 1,currentPage: 1,onInit: function () { test(1); },cssStyle: \'light-theme\',onPageClick: function(pageNumber){test(pageNumber)}}).pagination(\'redraw\');});</script></body></html>\n\\ No newline at end of file\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test02.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test02.tabular Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,7 @@
+id mz rt hmdb(delta::name::mz::formula::adduct::id)
+1 7.02080998 49.38210915 NONE
+2 75.05547146 0.658528069 0.00018246::[N-Nitrosodimethylamine]::74.048012824::C2H6N2O::[M+H]::HMDB31419 | 0.00018246::[Acetylhydrazine]::74.048012824::C2H6N2O::[M+H]::HMDB60428 | 0.00018346::[Creatine]::131.069476547::C4H9N3O2::[M+H+NH4]::HMDB00064 | 0.00018346::[Beta-Guanidinopropionic acid]::131.069476547::C4H9N3O2::[M+H+NH4]::HMDB13222 | 0.00018446::[Nitrogen oxides]::33.021463723::H3NO::[M+ACN+H]::HMDB32439
+3 75.08059797 1743.94267 0.00015697::[1-Butanol]::74.073164942::C4H10O::[M+H]::HMDB04327 | 0.00015697::[UNKNOWN]::74.073164942::C4H10O::[M+H]::HMDB62103 | 0.00015697::[2-Butanol]::74.073164942::C4H10O::[M+H]::HMDB11469 | 0.00015697::[Isobutanol]::74.073164942::C4H10O::[M+H]::HMDB06006 | 0.00015697::[2-Methylpropan-2-ol]::74.073164942::C4H10O::[M+H]::HMDB31456
+4 76.03942694 51.23158899 0.00012294::[L-Aspartic acid]::133.037507717::C4H7NO4::[M+H+NH4]::HMDB00191 | 0.00012294::[Ethyl nitrite]::75.032028409::C2H5NO2::[M+H]::HMDB31239 | 0.00012294::[Glycine]::75.032028409::C2H5NO2::[M+H]::HMDB00123 | 0.00012294::[Acetohydroxamic Acid]::75.032028409::C2H5NO2::[M+H]::HMDB14691 | 0.00012294::[Iminodiacetic acid]::133.037507717::C4H7NO4::[M+H+NH4]::HMDB11753
+5 76.07584477 50.51249853 0.00015477::[1-Amino-propan-2-ol]::75.068413915::C3H9NO::[M+H]::HMDB12136 | 0.00015477::[Trimethylamine N-oxide]::75.068413915::C3H9NO::[M+H]::HMDB00925 | 0.00015677::[Allyl alcohol]::58.041864814::C3H6O::[M+NH4]::HMDB31652 | 0.00015677::[UNKNOWN]::58.041864813::C3H6O::[M+NH4]::HMDB62143 | 0.00015677::[Methyloxirane]::58.041864814::C3H6O::[M+NH4]::HMDB31558
+6 76.07593168 0.149308136 0.00024168::[1-Amino-propan-2-ol]::75.068413915::C3H9NO::[M+H]::HMDB12136 | 0.00024168::[Trimethylamine N-oxide]::75.068413915::C3H9NO::[M+H]::HMDB00925 | 0.00024368::[Allyl alcohol]::58.041864814::C3H6O::[M+NH4]::HMDB31652 | 0.00024368::[UNKNOWN]::58.041864813::C3H6O::[M+NH4]::HMDB62143 | 0.00024368::[Methyloxirane]::58.041864814::C3H6O::[M+NH4]::HMDB31558
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test02.xlsx
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test02.xlsx Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,27 @@
+ID Query(Da) Delta Metabolite_Name Cpd_MW(Da) Formula Adduct Adduct_MW(Da) HMDB_ID
+mz_00001 7.02080998 0 UNKNOWN N/A N/A N/A N/A N/A
+mz_00002 75.05547146 0.00018246 [N-Nitrosodimethylamine] 74.048012824 C2H6N2O [M+H] 75.055289 HMDB31419
+mz_00002 75.05547146 0.00018246 [Acetylhydrazine] 74.048012824 C2H6N2O [M+H] 75.055289 HMDB60428
+mz_00002 75.05547146 0.00018346 [Creatine] 131.069476547 C4H9N3O2 [M+H+NH4] 75.055288 HMDB00064
+mz_00002 75.05547146 0.00018346 [Beta-Guanidinopropionic acid] 131.069476547 C4H9N3O2 [M+H+NH4] 75.055288 HMDB13222
+mz_00002 75.05547146 0.00018446 [Nitrogen oxides] 33.021463723 H3NO [M+ACN+H] 75.055287 HMDB32439
+mz_00003 75.08059797 0.00015697 [1-Butanol] 74.073164942 C4H10O [M+H] 75.080441 HMDB04327
+mz_00003 75.08059797 0.00015697 [UNKNOWN] 74.073164942 C4H10O [M+H] 75.080441 HMDB62103
+mz_00003 75.08059797 0.00015697 [2-Butanol] 74.073164942 C4H10O [M+H] 75.080441 HMDB11469
+mz_00003 75.08059797 0.00015697 [Isobutanol] 74.073164942 C4H10O [M+H] 75.080441 HMDB06006
+mz_00003 75.08059797 0.00015697 [2-Methylpropan-2-ol] 74.073164942 C4H10O [M+H] 75.080441 HMDB31456
+mz_00004 76.03942694 0.00012294 [L-Aspartic acid] 133.037507717 C4H7NO4 [M+H+NH4] 76.039304 HMDB00191
+mz_00004 76.03942694 0.00012294 [Ethyl nitrite] 75.032028409 C2H5NO2 [M+H] 76.039304 HMDB31239
+mz_00004 76.03942694 0.00012294 [Glycine] 75.032028409 C2H5NO2 [M+H] 76.039304 HMDB00123
+mz_00004 76.03942694 0.00012294 [Acetohydroxamic Acid] 75.032028409 C2H5NO2 [M+H] 76.039304 HMDB14691
+mz_00004 76.03942694 0.00012294 [Iminodiacetic acid] 133.037507717 C4H7NO4 [M+H+NH4] 76.039304 HMDB11753
+mz_00005 76.07584477 0.00015477 [1-Amino-propan-2-ol] 75.068413915 C3H9NO [M+H] 76.07569 HMDB12136
+mz_00005 76.07584477 0.00015477 [Trimethylamine N-oxide] 75.068413915 C3H9NO [M+H] 76.07569 HMDB00925
+mz_00005 76.07584477 0.00015677 [Allyl alcohol] 58.041864814 C3H6O [M+NH4] 76.075688 HMDB31652
+mz_00005 76.07584477 0.00015677 [UNKNOWN] 58.041864813 C3H6O [M+NH4] 76.075688 HMDB62143
+mz_00005 76.07584477 0.00015677 [Methyloxirane] 58.041864814 C3H6O [M+NH4] 76.075688 HMDB31558
+mz_00006 76.07593168 0.00024168 [1-Amino-propan-2-ol] 75.068413915 C3H9NO [M+H] 76.07569 HMDB12136
+mz_00006 76.07593168 0.00024168 [Trimethylamine N-oxide] 75.068413915 C3H9NO [M+H] 76.07569 HMDB00925
+mz_00006 76.07593168 0.00024368 [Allyl alcohol] 58.041864814 C3H6O [M+NH4] 76.075688 HMDB31652
+mz_00006 76.07593168 0.00024368 [UNKNOWN] 58.041864813 C3H6O [M+NH4] 76.075688 HMDB62143
+mz_00006 76.07593168 0.00024368 [Methyloxirane] 58.041864814 C3H6O [M+NH4] 76.075688 HMDB31558
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test03.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test03.html Wed Nov 23 09:31:50 2016 -0500
b
b'@@ -0,0 +1,1 @@\n+<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content="INRA de Clermont-Ferrand"><title>Galaxy HMDB queries - All results</title><link rel="stylesheet" type="text/css" href="css.php" media="all"><link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/style/simplePagination.css"/><!-- JavaScript --><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><script src="https://cdn.rawgit.com/fgiacomoni/galaxy_utils/master/scripts/jquery.simplePagination.js"></script><style type="text/css">body {padding-top: 70px}div.lm-table-warning {  font-size: 1.4em;  font-weight: bold;  padding-right: 25px;  color: #21536a;  margin-left: 3px;}tr.green td  {background-color: #eaf2d3; color: black;}tr.blank td {background-color: #9999CC; color: black;}table {font-family:\'Trebuchet MS\',Arial,Helvetica,sans-serif;width:100%;border-collapse:collapse;}table.detail, table.detail tr.parent, table.detail td, table.detail th, table.detail tr.category {border-collapse:collapse;border:1px solid #98bf21;}table.detail th {font-size: 1.2em;text-align: center;padding-top: 5px;padding-bottom: 10px;background-color: #a7c942;color: #ffffff;}td.ca {text-align:center;}footer {  margin: 50px 0;}</style><script>function test(pageNumber){  var page="#page-id-"+pageNumber;  $(\'.select\').hide() ; $(page).show()}</script></head><body><div class="container"><div class="lm-table-warning">Results of HMDB queries - Search params : Molecular specie = positive / delta (mass-to-charge ratio) = 0.05</div><div id="detail_table_source" style="display:none"></div><p><div id="choose"></div><p><div id="ms_search_0" class="ms-search-table"></div><!-- HeadRows--><table id="detail_table" class="detail"><col style="width:30px;"><!-- Ids (m/z)--><col style="width:30px;"><!-- Mass (m/z)--><col style="width:120px;"><!-- Met name--><col style="width:50px;"><!-- Cpd ID--><col style="width:40px;"><!-- formula--><col style="width:60px;"><!-- cpd mw--><col style="width:50px;"><!-- adduct --><col style="width:20px;"><!-- adduct type--><col style="width:60px;"><!-- adduct mw--><col style="width:50px;"><!-- delta--><col style="width:120px;"><!-- INCHI--><col style="width:20;"><!-- logP--><thead><th>ID from input</th><th>Mass (m/z)</th><th>Metabolite_Name</th><th>Compound_ID</th><th>Formula</th><th>Compound MW (Da)</th><th>Adduct</th><th>Adduct_Type</th><th>Adduct MW (Da)</th><th>Delta</th><th>InChI Identifier</th><th>Predicted LogP (ALOGPS)</th></thead><tbody class="select" id="page-id-1"><tr class="white"><td class="ca" >mz_00001</td><td id="1" class="ca" >175.01</td><td class="ca" colspan="10"></td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">Hydroxidodioxidosulfidosulfate</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB60293" target="_blank" class="btn">HMDB60293</a></td><td class="ca">H2O3S2</td><td class="ca">113.94453531</td><td class="ca">M+IsoProp+H</td><td class="ca">+</td><td class="ca">175.009875</td><td class="ca">0.000125</td><td class="ca">InChI=1S/H2O3S2/c1-5(2,3)4/h(H2,1,2,3,4)</td><td class="ca">NA</td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">Mesna</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB03745" target="_blank" class="btn">HMDB03745</a></td><td class="ca">C2H6O3S2</td><td class="ca">141.975835438</td><td class="ca">M+CH3OH+H</td><td class="ca">+</td><td class="ca">175.009324</td><td class="ca">0.000676</td><td class="ca">InChI=1S/C2H6O3S2/c3-7(4,5)2-1-6/h6H,1-2H2,(H,3,4,5)</td><td class="ca">-1.53</td></tr><tr class="white"><td class="ca" colspan="2"></td><td class="ca">Silicic acid</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB31436" target="_blank" class="btn">HMDB31436</a></td><td class="ca">H4O4Si</td><td'..b'0-16-7-11(3-4-12(16)18(13)25)31-22-21(28)20(27)19(26)17(8-23)32-22/h2-7,9,17,19-24,26-28H,8H2,1H3</td><td class="ca">0.80</td></tr><tr class="green"><td class="ca" >mz_00006</td><td id="6" class="ca" >1100.45</td><td class="ca" colspan="10"></td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">NPC</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB60499" target="_blank" class="btn">HMDB60499</a></td><td class="ca">C28H30N4O6</td><td class="ca">518.216534712</td><td class="ca">2M+ACN+Na</td><td class="ca">+</td><td class="ca">1100.448834</td><td class="ca">0.001166</td><td class="ca">InChI=1/C28H30N4O6/c1-3-17-18-11-16(38-27(35)31-9-7-15(29)8-10-31)5-6-22(18)30-24-19(17)13-32-23(24)12-21-20(25(32)33)14-37-26(34)28(21,36)4-2/h5-6,11-12,15,36H,3-4,7-10,13-14,29H2,1-2H3/t28-/s2</td><td class="ca">2.40</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">Cellulose triacetate</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB32198" target="_blank" class="btn">HMDB32198</a></td><td class="ca">C30H34Cl2N4O</td><td class="ca">536.210967144</td><td class="ca">2M+3H2O+2H</td><td class="ca">+</td><td class="ca">1100.445054</td><td class="ca">0.004946</td><td class="ca">InChI=1S/C30H34Cl2N4O/c31-21-17-24(32)29-27(18-21)36-26-12-7-5-10-23(26)30(29)34-15-8-2-1-3-13-28(37)33-16-14-20-19-35-25-11-6-4-9-22(20)25/h4,6,9,11,17-19,35H,1-3,5,7-8,10,12-16H2,(H,33,37)(H,34,36)</td><td class="ca">7.37</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">Lewis X trisaccharide</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB06568" target="_blank" class="btn">HMDB06568</a></td><td class="ca">C20H35NO15</td><td class="ca">529.200669455</td><td class="ca">2M+ACN+H</td><td class="ca">+</td><td class="ca">1100.435162</td><td class="ca">0.014838</td><td class="ca">InChI=1S/C20H35NO15/c1-6-11(27)13(29)15(31)19(33-6)35-17(8(3-22)21-7(2)25)18(9(26)4-23)36-20-16(32)14(30)12(28)10(5-24)34-20/h3,6,8-20,23-24,26-32H,4-5H2,1-2H3,(H,21,25)/t6-,8-,9+,10+,11+,12-,13+,14-,15-,16+,17+,18+,19-,20-/m0/s1</td><td class="ca">-2.26</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">O-6-deoxy-a-L-galactopyranosyl-(1->2)-O-b-D-galactopyranosyl-(1->3)-2-(acetylamino)-2-deoxy-D-Galactose</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB02060" target="_blank" class="btn">HMDB02060</a></td><td class="ca">C20H35NO15</td><td class="ca">529.200669455</td><td class="ca">2M+ACN+H</td><td class="ca">+</td><td class="ca">1100.435162</td><td class="ca">0.014838</td><td class="ca">InChI=1S/C20H35NO15/c1-6-11(27)14(30)16(32)19(33-6)36-18-15(31)13(29)10(5-24)34-20(18)35-17(12(28)9(26)4-23)8(3-22)21-7(2)25/h3,6,8-20,23-24,26-32H,4-5H2,1-2H3,(H,21,25)/t6-,8-,9+,10+,11+,12-,13-,14+,15-,16-,17+,18+,19-,20-/m0/s1</td><td class="ca">-2.25</td></tr><tr class="green"><td class="ca" colspan="2"></td><td class="ca">Lewis a trisaccharide</td><td class="ca"><a href="http://www.hmdb.ca/metabolites/HMDB06582" target="_blank" class="btn">HMDB06582</a></td><td class="ca">C20H35NO15</td><td class="ca">529.200669455</td><td class="ca">2M+ACN+H</td><td class="ca">+</td><td class="ca">1100.435162</td><td class="ca">0.014838</td><td class="ca">InChI=1S/C20H35NO15/c1-6-11(27)13(29)15(31)19(33-6)36-18(9(26)4-23)17(8(3-22)21-7(2)25)35-20-16(32)14(30)12(28)10(5-24)34-20/h3,6,8-20,23-24,26-32H,4-5H2,1-2H3,(H,21,25)/t6-,8-,9+,10+,11+,12-,13+,14-,15-,16+,17+,18+,19-,20-/m0/s1</td><td class="ca">-2.27</td></tr></tbody></table></div><div class="container"><hr><footer><div class="row">  <div class="col-lg-12"><p>Copyright &copy; INRA, N Paulhe, F Giacomoni 2014 </p>  </div> </div> </footer></div><script language="javascript">$(function() {$(\'#choose\').pagination({items: 2,itemsOnPage: 1,currentPage: 1,onInit: function () { test(1); },cssStyle: \'light-theme\',onPageClick: function(pageNumber){test(pageNumber)}}).pagination(\'redraw\');});</script></body></html>\n\\ No newline at end of file\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test03.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test03.tabular Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,31 @@
+ID Query(Da) Delta Metabolite_Name Cpd_MW(Da) Formula Adduct Adduct_MW(Da) HMDB_ID
+mz_00001 175.01 0.000125 [Hydroxidodioxidosulfidosulfate] 113.94453531 H2O3S2 [M+IsoProp+H] 175.009875 HMDB60293
+mz_00001 175.01 0.000676 [Mesna] 141.975835438 C2H6O3S2 [M+CH3OH+H] 175.009324 HMDB03745
+mz_00001 175.01 0.000895 [Silicic acid] 95.987885149 H4O4Si [M+DMSO+H] 175.009105 HMDB31436
+mz_00001 175.01 0.000914 [De-O-methylsterigmatocystin] 310.047738052 C17H10O6 [M+H+K] 175.009086 HMDB33657
+mz_00001 175.01 0.000914 [Aurantricholide B] 310.047738052 C17H10O6 [M+H+K] 175.009086 HMDB35230
+mz_00002 238.19 0.000875 [Alpha-Terpineol] 154.135765198 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB04043
+mz_00002 238.19 0.000875 [(S)-alpha-Terpineol] 154.135765198 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB36086
+mz_00002 238.19 0.000875 [Eucalyptol] 154.1357652 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB04472
+mz_00002 238.19 0.000875 [Geraniol] 154.1357652 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB05812
+mz_00002 238.19 0.000875 [trans-(-)-p-Menth-1-en-3-ol] 154.135765198 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB35861
+mz_00003 420.16 0.000683 [N-Desmethyl-O-hydroxy rosiglitazone] 359.093976737 C17H17N3O4S [M+IsoProp+H] 420.159317 HMDB60836
+mz_00003 420.16 0.000683 [N-Desmethyl-p-hydroxyrosiglitazone] 359.093976737 C17H17N3O4S [M+IsoProp+H] 420.159317 HMDB60838
+mz_00003 420.16 0.001237 [Benzyl glycinate 4-methylbenzenesulfonate salt] 337.098393413 C16H19NO5S [M+2ACN+H] 420.158763 HMDB33374
+mz_00003 420.16 0.001268 [Glutarylglycine] 189.063722467 C7H11NO5 [2M+ACN+H] 420.161268 HMDB00590
+mz_00003 420.16 0.001268 [N-Acetylglutamic acid] 189.063722467 C7H11NO5 [2M+ACN+H] 420.161268 HMDB01138
+mz_00004 780.32 0.001444 [Niazicinin A] 369.142366717 C17H23NO8 [2M+ACN+H] 780.318556 HMDB31947
+mz_00004 780.32 0.005702 [Mulberrofuran T] 716.298533006 C44H44O9 [M+ACN+Na] 780.314298 HMDB35940
+mz_00004 780.32 0.007526 [2'-Hydroxy-3',4',5',7,8-pentamethoxyflavan] 376.152203122 C20H24O7 [2M+3H2O+2H] 780.327526 HMDB33906
+mz_00004 780.32 0.007526 [trans-Grandmarin isovalerate] 376.152203122 C20H24O7 [2M+3H2O+2H] 780.327526 HMDB39032
+mz_00004 780.32 0.007526 [(1E,4Z,6a,8b,10a)-8-Angeloyloxy-10,15-dihydroxy-3-oxo-1,4,11(13)-germacratrien-12,6-olide] 376.152203122 C20H24O7 [2M+3H2O+2H] 780.327526 HMDB32731
+mz_00005 956.25 0.005681 [Pelargonidin 3-O-[b-D-Glucopyranosyl-(1->2)-[4-hydroxy-3-methoxy-(E)-cinnamoyl-(->6)]-b-D-glucopyranoside] 5-O-b-D-glucopyranoside] 933.266462874 C43H49O23 [M+Na] 956.255681 HMDB35451
+mz_00005 956.25 0.005681 [Petanin] 933.266462874 C43H49O23 [M+Na] 956.255681 HMDB38095
+mz_00005 956.25 0.008359 [Kaempferide 3-rhamnoside] 446.121296924 C22H22O10 [2M+ACN+Na] 956.258359 HMDB40803
+mz_00005 956.25 0.008359 [Glycitin] 446.121296924 C22H22O10 [2M+ACN+Na] 956.258359 HMDB02219
+mz_00005 956.25 0.008359 [Calycosin 7-galactoside] 446.121296924 C22H22O10 [2M+ACN+Na] 956.258359 HMDB38821
+mz_00006 1100.45 0.001166 [NPC] 518.216534712 C28H30N4O6 [2M+ACN+Na] 1100.448834 HMDB60499
+mz_00006 1100.45 0.004946 [Cellulose triacetate] 536.210967144 C30H34Cl2N4O [2M+3H2O+2H] 1100.445054 HMDB32198
+mz_00006 1100.45 0.014838 [Lewis X trisaccharide] 529.200669455 C20H35NO15 [2M+ACN+H] 1100.435162 HMDB06568
+mz_00006 1100.45 0.014838 [O-6-deoxy-a-L-galactopyranosyl-(1->2)-O-b-D-galactopyranosyl-(1->3)-2-(acetylamino)-2-deoxy-D-Galactose] 529.200669455 C20H35NO15 [2M+ACN+H] 1100.435162 HMDB02060
+mz_00006 1100.45 0.014838 [Lewis a trisaccharide] 529.200669455 C20H35NO15 [2M+ACN+H] 1100.435162 HMDB06582
b
diff -r 9583f9772198 -r 6d0a0f8f672a test-data/out_test03.xlsx
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_test03.xlsx Wed Nov 23 09:31:50 2016 -0500
[
@@ -0,0 +1,31 @@
+ID Query(Da) Delta Metabolite_Name Cpd_MW(Da) Formula Adduct Adduct_MW(Da) HMDB_ID
+mz_00001 175.01 0.000125 [Hydroxidodioxidosulfidosulfate] 113.94453531 H2O3S2 [M+IsoProp+H] 175.009875 HMDB60293
+mz_00001 175.01 0.000676 [Mesna] 141.975835438 C2H6O3S2 [M+CH3OH+H] 175.009324 HMDB03745
+mz_00001 175.01 0.000895 [Silicic acid] 95.987885149 H4O4Si [M+DMSO+H] 175.009105 HMDB31436
+mz_00001 175.01 0.000914 [De-O-methylsterigmatocystin] 310.047738052 C17H10O6 [M+H+K] 175.009086 HMDB33657
+mz_00001 175.01 0.000914 [Aurantricholide B] 310.047738052 C17H10O6 [M+H+K] 175.009086 HMDB35230
+mz_00002 238.19 0.000875 [Alpha-Terpineol] 154.135765198 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB04043
+mz_00002 238.19 0.000875 [(S)-alpha-Terpineol] 154.135765198 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB36086
+mz_00002 238.19 0.000875 [Eucalyptol] 154.1357652 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB04472
+mz_00002 238.19 0.000875 [Geraniol] 154.1357652 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB05812
+mz_00002 238.19 0.000875 [trans-(-)-p-Menth-1-en-3-ol] 154.135765198 C10H18O [M+IsoProp+Na+H] 238.190875 HMDB35861
+mz_00003 420.16 0.000683 [N-Desmethyl-O-hydroxy rosiglitazone] 359.093976737 C17H17N3O4S [M+IsoProp+H] 420.159317 HMDB60836
+mz_00003 420.16 0.000683 [N-Desmethyl-p-hydroxyrosiglitazone] 359.093976737 C17H17N3O4S [M+IsoProp+H] 420.159317 HMDB60838
+mz_00003 420.16 0.001237 [Benzyl glycinate 4-methylbenzenesulfonate salt] 337.098393413 C16H19NO5S [M+2ACN+H] 420.158763 HMDB33374
+mz_00003 420.16 0.001268 [Glutarylglycine] 189.063722467 C7H11NO5 [2M+ACN+H] 420.161268 HMDB00590
+mz_00003 420.16 0.001268 [N-Acetylglutamic acid] 189.063722467 C7H11NO5 [2M+ACN+H] 420.161268 HMDB01138
+mz_00004 780.32 0.001444 [Niazicinin A] 369.142366717 C17H23NO8 [2M+ACN+H] 780.318556 HMDB31947
+mz_00004 780.32 0.005702 [Mulberrofuran T] 716.298533006 C44H44O9 [M+ACN+Na] 780.314298 HMDB35940
+mz_00004 780.32 0.007526 [2'-Hydroxy-3',4',5',7,8-pentamethoxyflavan] 376.152203122 C20H24O7 [2M+3H2O+2H] 780.327526 HMDB33906
+mz_00004 780.32 0.007526 [trans-Grandmarin isovalerate] 376.152203122 C20H24O7 [2M+3H2O+2H] 780.327526 HMDB39032
+mz_00004 780.32 0.007526 [(1E,4Z,6a,8b,10a)-8-Angeloyloxy-10,15-dihydroxy-3-oxo-1,4,11(13)-germacratrien-12,6-olide] 376.152203122 C20H24O7 [2M+3H2O+2H] 780.327526 HMDB32731
+mz_00005 956.25 0.005681 [Pelargonidin 3-O-[b-D-Glucopyranosyl-(1->2)-[4-hydroxy-3-methoxy-(E)-cinnamoyl-(->6)]-b-D-glucopyranoside] 5-O-b-D-glucopyranoside] 933.266462874 C43H49O23 [M+Na] 956.255681 HMDB35451
+mz_00005 956.25 0.005681 [Petanin] 933.266462874 C43H49O23 [M+Na] 956.255681 HMDB38095
+mz_00005 956.25 0.008359 [Kaempferide 3-rhamnoside] 446.121296924 C22H22O10 [2M+ACN+Na] 956.258359 HMDB40803
+mz_00005 956.25 0.008359 [Glycitin] 446.121296924 C22H22O10 [2M+ACN+Na] 956.258359 HMDB02219
+mz_00005 956.25 0.008359 [Calycosin 7-galactoside] 446.121296924 C22H22O10 [2M+ACN+Na] 956.258359 HMDB38821
+mz_00006 1100.45 0.001166 [NPC] 518.216534712 C28H30N4O6 [2M+ACN+Na] 1100.448834 HMDB60499
+mz_00006 1100.45 0.004946 [Cellulose triacetate] 536.210967144 C30H34Cl2N4O [2M+3H2O+2H] 1100.445054 HMDB32198
+mz_00006 1100.45 0.014838 [Lewis X trisaccharide] 529.200669455 C20H35NO15 [2M+ACN+H] 1100.435162 HMDB06568
+mz_00006 1100.45 0.014838 [O-6-deoxy-a-L-galactopyranosyl-(1->2)-O-b-D-galactopyranosyl-(1->3)-2-(acetylamino)-2-deoxy-D-Galactose] 529.200669455 C20H35NO15 [2M+ACN+H] 1100.435162 HMDB02060
+mz_00006 1100.45 0.014838 [Lewis a trisaccharide] 529.200669455 C20H35NO15 [2M+ACN+H] 1100.435162 HMDB06582
b
diff -r 9583f9772198 -r 6d0a0f8f672a wsdl_hmdb.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wsdl_hmdb.pl Wed Nov 23 09:31:50 2016 -0500
[
b'@@ -0,0 +1,287 @@\n+#!perl\r\n+\r\n+## script  : wsdl_hmdb.pl\r\n+#=============================================================================\r\n+#                              Included modules and versions\r\n+#=============================================================================\r\n+## Perl modules\r\n+use strict ;\r\n+use warnings ;\r\n+use Carp qw (cluck croak carp) ;\r\n+\r\n+use Data::Dumper ;\r\n+use Getopt::Long ;\r\n+use POSIX ;\r\n+use FindBin ; ## Permet de localisez le repertoire du script perl d\'origine\r\n+\r\n+## Specific Modules (Home made...)\r\n+use lib $FindBin::Bin ;\r\n+my $binPath = $FindBin::Bin ;\r\n+use lib::hmdb qw( :ALL ) ;\r\n+## PFEM Perl Modules\r\n+use lib::conf  qw( :ALL ) ;\r\n+use lib::csv  qw( :ALL ) ;\r\n+\r\n+## Initialized values\r\n+my ( $help ) = undef ;\r\n+my ( $mass ) = undef ;\r\n+my ( $masses_file, $col_id, $col_mass, $header_choice, $nbline_header ) = ( undef, undef, undef, undef, undef ) ;\r\n+my $max_query = undef ;\r\n+my ( $delta, $molecular_species, $out_tab, $out_html, $out_xls ) = ( undef, undef, undef, undef, undef ) ;\r\n+\r\n+\r\n+#=============================================================================\r\n+#                                Manage EXCEPTIONS\r\n+#=============================================================================\r\n+\r\n+&GetOptions ( \t"h"\t\t\t\t\t=> \\$help,\t\t\t\t# HELP\r\n+\t\t\t\t"mass:s"\t\t\t=> \\$mass,\t\t\t\t## option : one masse\r\n+\t\t\t\t"masses:s"\t\t\t=> \\$masses_file,\t\t## option : path to the input\r\n+\t\t\t\t"header_choice:s"\t=> \\$header_choice,\t\t## Presence or not of header in tabular file\r\n+\t\t\t\t"nblineheader:i"\t=> \\$nbline_header,\t\t## numbre of header line present in file\r\n+\t\t\t\t"colfactor:i"\t\t=> \\$col_mass,\t\t\t## Column id for retrieve formula list in tabular file\r\n+\t\t\t\t"delta:f"\t\t\t=> \\$delta,\r\n+\t\t\t\t"mode:s"\t\t\t=> \\$molecular_species,\t## Molecular species (positive/negative/neutral)\r\n+\t\t\t\t"maxquery:i"\t\t=> \\$max_query, \t\t## Maximum query return (default is 20 entries by query // min 1 & max 50 )\r\n+\t\t\t\t"output_tabular:s"\t=> \\$out_tab,\t\t\t## option : path to the ouput (tabular : input+results )\r\n+\t\t\t\t"output_html|v:s"\t=> \\$out_html,\t\t\t## option : path to the results view (output2)\r\n+\t\t\t\t"output_xlsx:s"\t\t=> \\$out_xls,\t\t\t## option : path to the xls-like format output\r\n+            ) ;\r\n+\r\n+#=============================================================================\r\n+#                                EXCEPTIONS\r\n+#=============================================================================\r\n+$help and &help ;\r\n+\r\n+#=============================================================================\r\n+#                                MAIN SCRIPT\r\n+#=============================================================================\r\n+\r\n+\r\n+## -------------- Conf file ------------------------ :\r\n+my ( $CONF ) = ( undef ) ;\r\n+foreach my $conf ( <$binPath/*.cfg> ) {\r\n+\tmy $oConf = lib::conf::new() ;\r\n+\t$CONF = $oConf->as_conf($conf) ;\r\n+}\r\n+\r\n+## -------------- HTML template file ------------------------ :\r\n+foreach my $html_template ( <$binPath/*.tmpl> ) { $CONF->{\'HTML_TEMPLATE\'} = $html_template ; }\r\n+\r\n+if (!defined $max_query) {\r\n+\t$max_query = $CONF->{\'HMDB_MAX_QUERY\'} ;\r\n+}\r\n+\r\n+\r\n+## --------------- Global parameters ---------------- :\r\n+my ( $ids, $masses, $results ) = ( undef, undef, undef ) ;\r\n+my ( $complete_rows, $nb_pages_for_html_out ) = ( undef, 1 ) ;\r\n+my $metabocard_features = undef ;\r\n+my $search_condition = "Search params : Molecular specie = $molecular_species / delta (mass-to-charge ratio) = $delta" ;\r\n+\r\n+## --------------- retrieve input data -------------- :\r\n+\r\n+## manage only one mass\r\n+if ( ( defined $mass ) and ( $mass ne \'\' ) ) {\r\n+\tmy @masses = split(" ", $mass);\r\n+\t$masses = \\@masses ;\r\n+\tfor (my $i=1 ; $i<=$#masses+1 ; $i++){ push (@$ids,"mz_0".sprintf("%04s", $i ) ); }\r\n+} ## END IF\r\n+## manage csv file containing list of masses\r\n+elsif ( ( defined $masses_file ) and ( $masses_file ne "" ) and ( -e $masses_file ) ) {\r\n+\t## parse all csv for later : output csv build\r\n+\tmy $ocsv_input  = lib::csv->new() ;\r\n+\tm'..b' {\r\n+\t# produce a csv based on METLIN format\r\n+\tmy $ocsv = lib::hmdb::new() ;\r\n+\tif (defined $masses_file) {\r\n+\t\tmy $lm_matrix = undef ;\r\n+\t\tif ( ( defined $nbline_header ) and ( $header_choice eq \'yes\' ) ) {\r\n+#\t\t\t$lm_matrix = $ocsv->set_lm_matrix_object(\'hmdb\', $masses, $results ) ;\r\n+\t\t\t$lm_matrix = $ocsv->set_hmdb_matrix_object_with_ids(\'hmdb\', $masses, $results ) ;\r\n+\t\t\t$lm_matrix = $ocsv->add_lm_matrix_to_input_matrix($complete_rows, $lm_matrix, $nbline_header-1) ;\r\n+\t\t}\r\n+\t\telsif ( ( $header_choice eq \'no\' ) ) {\r\n+#\t\t\t$lm_matrix = $ocsv->set_lm_matrix_object(undef, $masses, $results ) ;\r\n+\t\t\t$lm_matrix = $ocsv->set_hmdb_matrix_object_with_ids(undef, $masses, $results ) ;\r\n+\t\t\t$lm_matrix = $ocsv->add_lm_matrix_to_input_matrix($complete_rows, $lm_matrix, 0) ;\r\n+\t\t}\r\n+\t\t$ocsv->write_csv_skel(\\$out_tab, $lm_matrix) ;\r\n+\t}\r\n+\telsif (defined $mass) {\r\n+\t\t$ocsv->write_csv_one_mass($masses, $ids, $results, $out_tab) ;\r\n+\t}\r\n+} ## END IF\r\n+else {\r\n+\twarn "Can\'t create a tabular output for HMDB : no result found or your output file is not defined\\n" ;\r\n+}\r\n+\r\n+## Write XLS like format\r\n+if ( ( defined $out_xls ) and ( defined $results ) ) {\r\n+\tmy $ocsv = lib::hmdb::new() ;\r\n+\t$ocsv->write_csv_one_mass($masses, $ids, $results, $out_xls) ;\r\n+}\r\n+\r\n+\r\n+#====================================================================================\r\n+# Help subroutine called with -h option\r\n+# number of arguments : 0\r\n+# Argument(s)        :\r\n+# Return           : 1\r\n+#====================================================================================\r\n+sub help {\r\n+\tprint STDERR "\r\n+help of wsdl_hmdb\r\n+\r\n+# wsdl_hmdb is a script to query HMDB website using mz and return a list of candidates sent by HMDB based on the ms search tool.\r\n+# Input : formula or list of formula\r\n+# Author : Franck Giacomoni and Marion Landi\r\n+# Email : fgiacomoni\\@clermont.inra.fr\r\n+# Version : 1.4\r\n+# Created : 08/07/2012\r\n+# Updated : 21/01/2016\r\n+USAGE :\t\t \r\n+\t\twsdl_hmdb.pl \t-mass [one mass or a string list of exact masses] -delta [mz delta] -mode [molecular species: positive|negative|neutral] -output [output tabular file] -view [output html file] \r\n+\t\t\r\n+\t\tor \r\n+\t\twsdl_hmdb.pl \t-masses [an input file of mzs] -colfactor [col of mz] -header_choice [yes|no] -nblineheader [nb of lines containing file header : 0-n]\r\n+\t\t\t\t\t\t-delta [mz delta] -mode [molecular species: positive|negative|neutral] -output [output tabular file] -view [output html file] \r\n+\t\t\t\t\t\t\r\n+\t\tor \r\n+\t\twsdl_hmdb.pl \t-h for help\r\n+\t\t\r\n+\t\t";\r\n+\texit(1);\r\n+}\r\n+\r\n+## END of script - F Giacomoni \r\n+\r\n+__END__\r\n+\r\n+=head1 NAME\r\n+\r\n+ wsdl_hmdb.pl -- script to query HMDB website using mz and return a list of candidates sent by HMDB based on the ms search tool.\r\n+\r\n+=head1 USAGE\r\n+\r\n+\twsdl_hmdb.pl \t-mass [one mass or a string list of exact masses] -delta [mz delta] -mode [molecular species: positive|negative|neutral] -output [output tabular file] -view [output html file] \r\n+\t\t\r\n+\tor \r\n+\twsdl_hmdb.pl \t-masses [an input file of mzs] -colfactor [col of mz] -header_choice [yes|no] -nblineheader [nb of lines containing file header : 0-n]\r\n+\t\t\t\t\t-delta [mz delta] -mode [molecular species: positive|negative|neutral] -output [output tabular file] -view [output html file] \r\n+\r\n+=head1 SYNOPSIS\r\n+\r\n+This script manages batch queries on HMDB server. \r\n+\r\n+=head1 DESCRIPTION\r\n+\r\n+This main program is a script to query HMDB website using mz and return a list of candidates sent by HMDB based on the ms search tool.\r\n+\r\n+=over 4\r\n+\r\n+=item B<function01>\r\n+\r\n+=item B<function02>\r\n+\r\n+=back\r\n+\r\n+=head1 AUTHOR\r\n+\r\n+Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>\r\n+\r\n+=head1 LICENSE\r\n+\r\n+This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.\r\n+\r\n+=head1 VERSION\r\n+\r\n+version 1.0 : 06 / 06 / 2013\r\n+\r\n+version 1.2 : 27 / 01 / 2014\r\n+\r\n+version 1.3 : 19 / 11 / 2014\r\n+\r\n+version 1.4 : 21 / 01 / 2016 - a clean version for community\r\n+\r\n+=cut\n\\ No newline at end of file\n'
b
diff -r 9583f9772198 -r 6d0a0f8f672a wsdl_hmdb.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wsdl_hmdb.xml Wed Nov 23 09:31:50 2016 -0500
[
b'@@ -0,0 +1,279 @@\n+<tool id="wsdl_hmdb" name="HMDB MS search" version="2016-11-28">\r\n+  <description>\r\n+        search by masses on HMDB online bank\r\n+  </description>\r\n+  \r\n+  <requirements>\r\n+  <!-- Waiting for conda improvement in Galaxy\r\n+      <requirement type="package" version="1.19">perl-soap-lite</requirement>\r\n+      <requirement type="package" version="6.15">perl-lwp-simple</requirement>\r\n+\t  <requirement type="package" version="6.15">perl-libwww-perl</requirement>\r\n+      <requirement type="package" version="2.95">perl-html-template</requirement>\r\n+      <requirement type="package" version="1.71">perl-uri</requirement>\r\n+      <requirement type="package" version="1.33">perl-text-csv</requirement>\r\n+      <requirement type="package" version="3.49">perl-xml-twig</requirement>\r\n+  -->\r\n+  </requirements>\r\n+  \r\n+  <stdio>\r\n+      <exit_code range="1" level="fatal" />\r\n+  </stdio>\r\n+  \r\n+  \r\n+  <command><![CDATA[\r\n+        perl $__tool_directory__/wsdl_hmdb.pl\r\n+        #if str($input_type.choice) == "YES":\r\n+            -masses "${input_type.masses}"\r\n+            -header_choice "${input_type.header.header_choice}"\r\n+            #if str($input_type.header.header_choice) == "yes":\r\n+                -nblineheader "${$input_type.header.nbHeader}"\r\n+            #end if\r\n+            -colfactor "${input_type.colfactor}"\r\n+            -output_tabular "$variableMetadata" -output_html "$HmdbOutWeb" -output_xls "$HmdbOutXlsx"\r\n+        #else:\r\n+            -mass "${input_type.mass}"\r\n+            -output_tabular "$variableMetadata2" -output_html "$HmdbOutWeb2" -output_xls "$HmdbOutXlsx2"\r\n+        #end if\r\n+        -delta "$delta" -mode "$mode" -maxquery "$maxquery"\r\n+        \r\n+  ]]></command>\r\n+  <inputs>\r\n+    <conditional name="input_type">\r\n+      <param name="choice" type="select" label="Would you use a file " help="if \'NO\' is selected then one or more mass(es) must be entered manually">\r\n+        <option value="YES">YES</option>\r\n+        <option value="NO">NO</option>\r\n+      </param>\r\n+      <when value="YES">\r\n+        <param name="masses" label="File of masses (Variable Metadata) " format="tabular" type="data" help="Generally variable metadata file. Please note : HMDB allows maximum 150 query masses per request" />\r\n+        <conditional name="header">\r\n+          <param name="header_choice" type="select" label="Do you have a header " help="if \'YES\' is selected then enter your number of header lines">\r\n+            <option value="no">NO</option>\r\n+            <option value="yes" selected="true">YES</option>\r\n+          </param>\r\n+          <when value="yes">\r\n+            <param name="nbHeader" label="Number of header lines " type="integer" value="1" min="1" size="10" help="number of lines not containing masses"/>\r\n+          </when>\r\n+          <when value="no"/>\r\n+        </conditional>\r\n+\t    <param name="colfactor" label="Column of masses " type="data_column" data_ref="masses" accept_default="true" />\r\n+      </when>\r\n+      <when value="NO">\r\n+        <param name="mass" label="Mass to submit " type="text" size="20" help="For a masses list, writes : m1 m2 m3. Your values \xe2\x80\x8b\xe2\x80\x8bmust be separated by spaces. You should use dot (.) like decimal separator" />\r\n+      </when>\r\n+    </conditional>\r\n+    \r\n+    <param name="delta" label="Mass-to-charge ratio " type="float" value="0.05" min="0" max="10" size="10" help="Default value is 0.05 for HMDB (mass-to-charge ratio)"/>\r\n+    <param name="maxquery" label="Number of maximum entries returned by the query " type="integer" value="20" min="1" max="50" size="10" help="Default value is 20 for each queried mz / max is 50"/>\r\n+    <param name="mode" label="Molecular Species " type="select" display="radio" help="">\r\n+      <option value="positive">Positif Mode</option>\r\n+      <option value="negative">Negatif Mode</option>\r\n+      <option value="neutral" selected="True">Neutral Mass</option>\r\n+    </param>\r\n+  </inputs>\r\n+  \r\n+  <outputs>\r\n+    <data name="variableMetadata" f'..b'\n+  \t\t<!--test 03 : some results - with-mz list in manual mass mode-->\r\n+  \t\t<param name="choice" value="NO"/>\r\n+  \t\t<param name="mass" value="175.01 238.19 420.16 780.32 956.25 1100.45"/>\r\n+  \t\t<param name="delta" value="0.05"/>\r\n+  \t\t<param name="mode" value="positive"/>\r\n+  \t\t<param name="maxquery" value="5"/>\r\n+  \t\t<output name="variableMetadata2" file="out_test03.tabular"/>\r\n+  \t\t<output name="HmdbOutWeb2" file="out_test03.html"/>\r\n+  \t\t<output name="HmdbOutXlsx2" file="out_test03.xlsx"/>\r\n+  \t</test>\r\n+  </tests>\r\n+\r\n+  <help><![CDATA[\r\n+\r\n+.. class:: infomark\r\n+\r\n+**Authors** Marion Landi and Franck Giacomoni\r\n+\r\n+---------------------------------------------------\r\n+\r\n+.. class:: infomark\r\n+\r\n+**Please cite** If you use this tool, please add the following reference\r\n+  | Wishart DS, Jewison T, Guo AC, Wilson M, Knox C, et al., HMDB 3.0 \xe2\x80\x94 The Human Metabolome Database in 2013. Nucleic Acids Res. 2013.\r\n+\r\n+\r\n+---------------------------------------------------\r\n+\r\n+==============\r\n+HMDB MS search\r\n+==============\r\n+\r\n+-----------\r\n+Description\r\n+-----------\r\n+\r\n+ | Search informations (like : HMDB id,  Name, Adduct, delta mass) on HMDB online bank\r\n+ | with one or more mass(es) in a file or entered manually\r\n+\r\n+\r\n+-----------------\r\n+Workflow position\r\n+-----------------\r\n+\r\n+\r\n+.. image:: ./static/images/metabolomics/hmdb.png\r\n+        :width: 800\r\n+\r\n+\r\n+-----------\r\n+Input files\r\n+-----------\r\n+\r\n+\r\n++-------------------------+-----------+\r\n+| Parameter : num + label |  Format   |\r\n++=========================+===========+\r\n+| 1 : File of masses      |  tabular  |\r\n++-------------------------+-----------+\r\n+\r\n+File of masses (Generally variable metadata file) must have at least the following column : \r\n+\t* Masses : column with all the masses in the tsv input file\r\n+\r\n+----------\r\n+Parameters\r\n+----------\r\n+\r\n+Would you use a file\r\n+\t| Choose whether the masses are in a file or entered manually\r\n+\t| YES (default) : parameters **File of masses ; Do you have a header ; Column of masses** are visible\r\n+\t| NO : parameter **Mass to submit** is visible\r\n+\t|\r\n+\r\n+\r\n+If \'use file\'=\'YES\'\r\n+\r\n+File of masses\r\n+\t| see "Input files" section above\r\n+\t| Tabular file format, Generally variable metadata file\r\n+\t| \r\n+\r\n+Do you have a header\r\n+\t| YES (default) : parameter **Number of header lines** is visible\r\n+\t| NO : all lines are considered to contain masses\r\n+\t|\r\n+\r\n+If \'have a header\'=\'YES\'\r\n+\r\n+Number of header lines\r\n+\t| Number of lines not containing masses values, these lines will be ignored\r\n+\t|\r\n+\r\n+In all header cases :\r\n+\r\n+Column of masses\r\n+\t| Specify the column number for the mass in the tsv input file\r\n+\t|\r\n+\r\n+\r\n+If \'use file\'=\'NO\'\r\n+\r\n+Mass to submit\r\n+\t| Specify a list of mass to request\r\n+\t| one or more mass(es) entered manually\r\n+\t| For a masses list, writes : m1 m2 m3\r\n+\t| You must separate yours values with space\r\n+\t| dot (.) is for float number\r\n+\t|\r\n+\r\n+In all cases :\r\n+\r\n+Mass-to-charge ratio\r\n+\t| Specify a delta (mass-to-charge ratio) to apply on mass - This value is a float, between 0.0000000000000001 and 10.\r\n+\t|\r\n+\r\n+Molecular Species\r\n+\t| Type of ionization of the molecule : *positif, negatif, neutral*\r\n+\t|\r\n+\r\n+\r\n+------------\r\n+Output files\r\n+------------\r\n+\r\n+Two types of files\r\n+\t| HMDB_WEB.HTML: for viewing result via HTML.\r\n+\t| \r\n+\t| HMDB_TABULAR.tabular: for linking with others modules.\r\n+\t| \r\n+\t| HMDB_XLSX.xlsx: an excel-like output permitting manual annotation cleaning. \r\n+\t| \r\n+\t\r\n+---------------------------------------------------\r\n+\r\n+\r\n+---------------\r\n+Working example\r\n+---------------\r\n+\r\n+\r\n+.. class:: warningmark\r\n+\r\n+Refer to the corresponding W4M HowTo section: http://workflow4metabolomics.org/howto\r\n+ | Format Data For Postprocessing\r\n+ | Perform LCMS Annotations\r\n+\r\n+.. class:: warningmark\r\n+\r\n+And their "W4M courses 2015":\r\n+ | Using Galaxy4Metabolomics - W4M table format for Galaxy\r\n+ | Annotation Banks - Annotation  \r\n+\t\r\n+\r\n+\t]]></help>\r\n+</tool>\n\\ No newline at end of file\n'