Next changeset 1:52798007c6b2 (2019-01-24) |
Commit message:
Master branch Updating - - Fxx |
added:
README.txt bank_inhouse.pl bank_inhouse.xml bih.tmpl conf_bih.cfg inhouse.tsv lib/bih.pm lib/conf.pm lib/csv.pm lib/json.pm static/images/bank_inhouse.png t/bih_managerTest.t t/lib/bihTest.pm test-data/in_test2.tabular test-data/out_test1.tabular test-data/out_test2a.tabular test-data/out_test2b.tabular test-data/out_test_pf1.tabular test-data/out_test_pf2a.tabular test-data/out_test_pf2b.tabular |
b |
diff -r 000000000000 -r be582bcd6585 README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.txt Thu Oct 04 10:37:14 2018 -0400 |
b |
@@ -0,0 +1,66 @@ +## ****** match_mass environnemnt : ****** ## +# version December 2014 M Landi / M Petera / JF Martin + +## --- 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 Data::Dumper ; +use Getopt::Long ; +use POSIX ; +use List::Util qw( min max ); +use FindBin ; + +# libs CPAN PERL : +use Math::BigFloat; +use LWP::Simple; +use LWP::UserAgent; +use URI::URL; +use SOAP::Lite; +use Encode; +use HTML::Template ; +use Net::SSL ; +use Data::Dumper ; +use REST::Client; +use JSON; + +# libs pfem PERL : libs are now integrated +use lib::conf qw( :ALL ) ; +use lib::csv qw( :ALL ) ; +use lib::json qw( :ALL ) ; + +## --- R bin and Packages : --- ## +NA + +## --- Binary dependencies --- ## +Uses a local database : "inhouse.tsv" in some cases +"create_inhouse_bank.pl" : allows to recreate "inhouse.tsv" +-- + +## --- Config : --- ## +Edit the following lines in the config file : conf_pf.ini +with your personal token used to manage and allow Pforest access / the WS PeakForest url +PF_GLOBAL_TOKEN +PF_WS_URL=https://rest.peakforest.org +PF_REST_QUERY_CLEAN_RANGE=/spectra/lcms/peaks/get-range-clean + +-- + +## --- XML HELP PART --- ## +one image : +bank_inhouse.png +-- + +## --- DATASETS --- ## +No data set ! waiting for galaxy pages +-- + +## --- ??? COMMENTS ??? --- ## +Uses a local database : "inhouse.tsv" in some cases +"create_inhouse_bank.pl" : allows to recreate "inhouse.tsv" +-- \ No newline at end of file |
b |
diff -r 000000000000 -r be582bcd6585 bank_inhouse.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bank_inhouse.pl Thu Oct 04 10:37:14 2018 -0400 |
[ |
b'@@ -0,0 +1,493 @@\n+#!perl\n+\n+## script : bank_inhouse.pl\n+#=============================================================================\n+# Included modules and versions\n+#=============================================================================\n+## Perl modules\n+use strict ;\n+use warnings ;\n+use Carp qw (cluck croak carp) ;\n+\n+use Data::Dumper ;\n+use Getopt::Long ;\n+use POSIX ;\n+use List::Util qw( min max );\n+use FindBin ; ## Allows you to locate the directory of original perl script\n+\n+## Specific Modules\n+use lib $FindBin::Bin ;\n+my $binPath = $FindBin::Bin ;\n+use lib::bih qw( :ALL ) ;\n+\n+## PFEM Perl Modules\n+use lib::conf qw( :ALL ) ;\n+use lib::csv qw( :ALL ) ;\n+\n+## Initialized values\n+my ( $help ) = ( undef ) ;\n+my ( $mass ) = ( undef ) ;\n+my ( $masses_file, $nbline_header, $col_mass ) = ( undef, undef, undef ) ;\n+my ( $col_rt, $manual_rt, $rt_delta, $mz_delta_type, $mz_delta, $rtdb ) = ( undef, undef, undef, undef, undef, undef ) ;\n+my ( $mode, $tissues, $bank_in, $bank_name, $col_mzdb) = ( undef, undef, undef, undef, undef ) ;\n+my ( $out_tab, $out_html, $out_xls, $out_json, $out_full ) = ( undef, undef, undef, undef, undef ) ;\n+my ($rest_mode) = (\'no\') ;\n+\n+my ( $verbose ) = ( 2 ) ; ## verbose level is 3 for debugg\n+\n+#=============================================================================\n+# Manage EXCEPTIONS\n+#=============================================================================\n+\n+&GetOptions ( \t"h"\t\t\t\t\t=> \\$help,\t\t\t\t# HELP\n+\t\t\t\t"masse:s"\t\t\t=> \\$mass,\t\t\t\t## option : one masse\n+\t\t\t\t"input:s"\t\t\t=> \\$masses_file,\t\t## option : path to the input\n+\t\t\t\t"rest:s"\t\t\t=> \\$rest_mode,\t\t\t## option : allow uses of peakforest rest service \n+\t\t\t\t"nbheader:i"\t\t=> \\$nbline_header,\t\t## numbre of header line present in file\n+\t\t\t\t"colrt:i"\t\t\t=> \\$col_rt,\t\t\t## Column retention time for retrieve formula/masses list in tabular file\n+\t\t\t\t"rt:s"\t\t\t\t=> \\$manual_rt,\t\t\t## Retention time for manual masses list\n+\t\t\t\t"rt_delta:f"\t\t=> \\$rt_delta,\t\t\t## Delta for retention time\n+\t\t\t\t"colmass:i"\t\t\t=> \\$col_mass,\t\t\t## Column id for retrieve formula list in tabular file\n+\t\t\t\t"mz_delta:s"\t\t=> \\$mz_delta_type,\t\t## Delta type for masses\n+\t\t\t\t"mass_delta:f"\t\t=> \\$mz_delta,\t\t\t## Delta for masses\n+\t\t\t\t"mode:s"\t\t\t=> \\$mode,\t\t\t\t## Molecular species (positive/negative/neutral) \n+\t\t\t\t"tissues:s"\t\t\t=> \\$tissues,\t\t\t## Restricted to certain characterization and localization (blood/plasma/urine/peptide) \n+\t\t\t\t"bank_in:s"\t\t\t=> \\$bank_in,\t\t\t## option : path to a personal data bank\n+\t\t\t\t"bank_name:s"\t\t=> \\$bank_name,\t\t\t## option : name of the bank\n+\t\t\t\t"mzdb:i"\t\t\t=> \\$col_mzdb,\t\t\t## Column number in which is the masses of the personal data bank\n+\t\t\t\t"rtdb:i"\t\t\t=> \\$rtdb,\t\t\t\t## Column number in which is the retention time of the personal data bank\n+\t\t\t\t"outputJson:s"\t\t=> \\$out_json,\t\t\t## option : path to the ouput (results)\n+\t\t\t\t"outputXls:s"\t\t=> \\$out_xls,\t\t\t## option : path to the ouput (tabular : results )\n+\t\t\t\t"outputTab:s"\t\t=> \\$out_tab,\t\t\t## path to the ouput (tabular : input+results (1 col) )\n+\t\t\t\t"outputView:s"\t\t=> \\$out_html,\t\t\t## option : path to the results view (output2)\n+\t\t\t\t"outputFull:s"\t\t=> \\$out_full,\t\t\t## path to the ouput (tabular : input+results (x col) )\n+\t\t\t) ;\n+\n+#=============================================================================\n+# EXCEPTIONS\n+#=============================================================================\n+## if you put the option -help or -h function help is started\n+if ( defined $help ) { &help() ; }\n+\n+#=============================================================================\n+# MAIN SCRIPT\n+#=============================================================================\n+\n+\n+print "The bank_inhouse program is launched as:\\n";\n+print "./bank_inhouse.pl " ;\n+print "--h " if (defined $help) ;\n+print "--masse $mass " if (defined $mass) ;\n+print "--input $masses_file " if (defi'..b'able\\n" ;\t}\n+\t\t\t$ocsv->write_csv_skel(\\$out_tab, $lm_matrix) ;\n+\t\t}\n+\t\telse {\tcroak "Can\'t create a tabular output for BiH : your output file is not defined\\n" ;\t}\n+\t}\n+\telsif (defined $mass) { } ## no csv output for manual masses\n+\telse {\tcroak "the input format is not identifiable or your output file is not defined\\n" ;\t}\n+} ## END IF\n+else {\tcroak "Can\'t create a tabular output for BiH : no result found\\n" ;\t}\n+\n+## -------------- Produce Full output ------------------ :\n+if (defined $results) {\n+\tif ( defined $masses_file ) {\n+\t\tif ( defined $out_full ) {\n+\t\t\tmy $sep = "\\t";\n+\t\t\tmy $ofull = lib::bih::new() ;\n+\t\t\tif ( ( $header_choice eq \'yes\' ) and ( defined $nbline_header ) and ( $nbline_header > 0 )) {\n+\t\t\t\t$ofull->write_full_excel_like($complete_rows, $sep, $masses, $mz_delta_type, $mz_delta, $col_mzdb, $rt, $rt_delta, $rtdb, $results, $out_full, $nbline_header, $bank_head, "BiH_$bank_name") ;\n+\t\t\t}\n+\t\t\telsif ( ( $header_choice eq \'no\' ) or ( $nbline_header <= 0 )) {\n+\t\t\t\t$ofull->write_full_excel_like($complete_rows, $sep, $masses, $mz_delta_type, $mz_delta, $col_mzdb, $rt, $rt_delta, $rtdb, $results, $out_full, 0, undef, undef) ;\n+\t\t\t}\n+\t\t\telse {\tcroak "The number of header line is not identifiable\\n" ;\t}\n+\t\t}\n+\t}\n+\telsif (defined $mass) { } ## no csv output for manual masses\n+\telse {\tcroak "the input format is not identifiable or your output file is not defined\\n" ;\t}\n+} ## END IF\n+else {\tcroak "Can\'t create a full output for BiH : no result found\\n" ;\t}\n+\n+\n+#====================================================================================\n+# Help subroutine called with -h option\n+# number of arguments : 0\n+# Argument(s) :\n+# Return : 1\n+#====================================================================================\n+sub help {\n+\tprint STDERR "\n+bank_inhouse\n+\n+# bank_inhouse is a script to query a in house bank (file) using chemical mass and return a list of common names.\n+# Input : mass or list of masses\n+# Author : Marion LANDI and Franck Giacomoni (for the Rest part)\n+# Email : franck.giacomoni\\@clermont.inra.fr\n+# Version : 1.1\n+# Created : 15/10/2014\n+# Updated : 15/12/2015\n+USAGE :\t\t \n+\t\tbank_inhouse.pl -masse [mass]\n+\t\t \t\t-tolerance [Delta of mass (Da)] -mode [Ionization type: positive/negative/neutral] \n+\t\t \t\t-tissues [Restricted to certain tissues] -- optionnal\n+\t\t \t\t-bank_in [file for in personal house bank] -- optionnal\n+\t\t \t\t-outputTab [output file tabular format] -outputView [output file html format]\n+\t\t\t\t-verbose\n+\t\tOR\t\t\t\t\n+\t\tbank_inhouse.pl -input [path to list of masses file]\n+\t\t\t-nbHeader [nb of lines of headers : 0-n] -colId [Ids colunm number in input file] -colmass [masses col] -colrt [RT col]\n+ \t\t\t-tolerance [Delta of mass (Da)] -mode [molecular type: positive/negative/neutral]\n+ \t\t\t-bank_in [file for in house bank]\n+ \t\t\t-tissues [Restricted to certain tissues] \n+ \t\t\t-outputTab [output file tabular format] -outputView [output file html format]\n+\t\t \t\t\t\t\n+\t\tOR \n+\t\tbank_inhouse.pl\t-masse [mass]\n+\t\t\t\t-rest [get the PeakForest ref db : yes|no]\n+\t\t\t\t-mz_delta [Delta type for mass (Da or PPM)] -mass_delta [Delta for mass (Da or PPM)] -mode [molecular type: positive/negative/neutral]\n+\t\t \t\t-outputXls [output xls format]\n+\t\t \t\t\n+\t\tOthers output formats: \t\t\n+\t\t \t\t-outputJson [output json format] -outputFull [output format is input+res]\n+\t\t";\n+\texit(1);\n+}\n+\n+## END of script - M Landi \n+\n+__END__\n+\n+=head1 NAME\n+\n+ bank_inhouse.pl -- script for\n+\n+=head1 USAGE\n+\n+ bank_inhouse.pl -precursors -arg1 [-arg2] \n+ or bank_inhouse.pl -help\n+\n+=head1 SYNOPSIS\n+\n+This script manage ... \n+\n+=head1 DESCRIPTION\n+\n+This main program is a ...\n+\n+=over 4\n+\n+=item B<function01>\n+\n+=item B<function02>\n+\n+=back\n+\n+=head1 AUTHOR\n+\n+Marion LANDI E<lt>marion.landi@clermont.inra.frE<gt>\n+\n+=head1 LICENSE\n+\n+This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.\n+\n+=head1 VERSION\n+\n+version 1 : 15 / 10 / 2014\n+\n+version 2 : 21 / 11 / 2014\n+\n+=cut\n' |
b |
diff -r 000000000000 -r be582bcd6585 bank_inhouse.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bank_inhouse.xml Thu Oct 04 10:37:14 2018 -0400 |
[ |
b'@@ -0,0 +1,446 @@\n+<tool id="bank_inhouse" name="bank_inhouse" version="1.1.3">\n+ <description>\n+ search by accurate mass (and by Retention time) on a local bank\n+ </description>\n+ \n+ <requirements>\n+ \t<requirement type="package" version="2.90">perl-json</requirement>\n+ \t<requirement type="package" version="1.97">perl-text-csv</requirement>\n+ \t<requirement type="package" version="6.15">perl-lwp-simple</requirement>\n+ \t<requirement type="package" version="1.74">perl-uri</requirement>\n+ \t<requirement type="package" version="1.19">perl-soap-lite</requirement>\n+ \t<requirement type="package" version="2.97">perl-html-template</requirement>\n+ \t<requirement type="package" version="0.428">perl-list-moreutils</requirement>\n+ \t<requirement type="package" version="6.15">perl-libwww-perl</requirement>\n+ </requirements>\n+ <stdio>\n+ <exit_code range="1" level="fatal" />\n+ </stdio>\n+ \n+ <command><![CDATA[\n+ perl $__tool_directory__/bank_inhouse.pl\n+ \n+ #if str($input_type.choice) == "YES":\n+ -input "${input_type.variableMetadata_in}"\n+ #if str($input_type.header.header_choice) == "YES":\n+ -nbheader "${input_type.header.nbheader}"\n+ #end if\n+ \n+ -colmass "${input_type.colmass}"\n+ #if str($input_type.use_file_rt.rt_file_choice) == "YES":\n+ -colrt "${input_type.use_file_rt.colrt}"\n+ -rt_delta "${input_type.use_file_rt.rt_file_delta}"\n+ #end if\n+ #else:\n+ #if str($input_type.use_rt.rt_choice) == "YES":\n+ -rt "${input_type.use_rt.rt}"\n+ -rt_delta "${input_type.use_rt.rt_delta}"\n+ #end if\n+ -masse "${input_type.masse}"\n+ #end if\n+ \n+ -mz_delta "${mz_delta_type.mz_delta}"\n+ -mass_delta "${mz_delta_type.mass_delta}"\n+\n+ #if str($bank_type.perso_bank) == "YES":\n+ -bank_in "${bank_type.bank_in}" -bank_name "${bank_type.bank_in.name}"\n+ -mzdb "${bank_type.mzdb}"\n+ #if str($bank_type.bank_rt.bank_rt_choice) == "YES":\n+ -rtdb "${bank_type.bank_rt.rtdb}"\n+ #end if\n+ #end if\n+\n+ #if str($input_type.choice) == "YES":\n+ -outputTab "$variableMetadata_out"\n+ -outputXls "$bankInhouseResXls_filein"\n+ #if str($outfiles) == "YES":\n+ -outputFull "$variableMetadata_full_out"\n+ #end if\n+ #else:\n+ -outputXls "$bankInhouseResXls_manualin"\n+ #end if\n+ \n+ #if str($outfiles) == "YES":\n+ -outputJson "$Json"\n+ #end if\n+ ]]></command>\n+ \n+ <inputs>\n+ <conditional name="input_type">\n+ <param name="choice" type="select" display="radio" label="* Would you use a file?" help="if \'NO\' is selected then one or more mass(es) must be entered manually">\n+ <option value="NO">NO</option>\n+ <option value="YES" selected="true">YES</option>\n+ </param>\n+ <when value="YES">\n+ <param name="variableMetadata_in" type="data" label="FILE OF MASSES (format: tabular)" help="Generally variable metadata file" format="tabular" />\n+ \n+ <conditional name="header">\n+ <param name="header_choice" type="boolean" checked="true" truevalue="YES" falsevalue="NO" label="Do you have a header?" help="if \'YES\' is selected then enter your number of header lines" />\n+ <when value="YES">\n+ <param name="nbheader" type="integer" label="Number of header lines" value="1" min="1" max="10" help="number of lines not containing masses"/>\n+ </when>\n+ <when value="NO"/>\n+ </conditional>\n+ \n+ <conditional name="use_file_rt">\n+ <param name="rt_file_choice" type="boolean" checked="true" truevalue="YES" falsevalue="NO" label="Would you use retention time (RT)?" help="Do you have retention times in your bank? In your analyzed file? Would you use it?" />\n+ <when value="YES">\n+ <param name="colrt'..b' \n+\n+Do you have a header\n+ | YES (default) : parameter **Number of header lines** is visible\n+ | NO : all lines are considered to contain masses\n+ |\n+\n+If \'have a header\'=\'YES\'\n+\n+Number of header lines\n+ | Number of lines not containing masses values, these lines will be ignored\n+ |\n+\n+In all header cases :\n+\n+Column of Id\n+ | Specify the column number for the id in the tsv input file\n+ |\n+\n+Would you use retention time (RT)\n+ | YES (default) : parameter **Column of retention time (RT)** and **Delta of retention time (RT) (in minutes)** are visible\n+ | NO : Search will be made solely on the basis of the masses\n+ |\n+\n+If \'Would you use retention time (RT)\'=\'YES\'\n+\n+Column of retention time (RT)\n+ | Specify the column number for the retention time (RT) in the tsv input file\n+ |\n+\n+Delta of retention time (RT) (in minutes)\n+ | Specify a delta to apply on retention time - This value is a float.\n+ |\n+\n+In all RT cases :\n+\n+Column of masses\n+ | Specify the column number for the mass in the tsv input file\n+ |\n+\n+\n+If \'use file\'=\'NO\'\n+\n+Would you use retention time (RT)\n+ | YES (default) : parameter **retention time (RT) to submit** and **Delta of retention time (RT) (in minutes)** are visible\n+ | NO : Search will be made solely on the basis of the masses\n+ |\n+\n+If \'Would you use retention time (RT)\'=\'YES\'\n+\n+retention time (RT) to submit \n+ | Specify a list of retention time to request\n+ | one or more retention time entered manually\n+ | For a RT list, writes : rt1 rt2 rt3\n+ | You must separate yours values with space\n+ | dot (.) is for float number\n+ |\n+Delta of retention time (RT) (in minutes)\n+ | Specify a delta to apply on retention time - This value is a float.\n+ |\n+\n+In all RT cases :\n+\n+Mass to submit\n+ | Specify a list of mass to request\n+ | one or more mass(es) entered manually\n+ | For a masses list, writes : m1 m2 m3\n+ | You must separate yours values with space\n+ | dot (.) is for float number\n+ |\n+\n+In all cases :\n+\n+Delta type \n+ | Specify a delta type : "in Dalton" or "in ppm"\n+ |\n+\n+Delta of mass ("in Dalton" or "in ppm" according to choice)\n+ | Specify a delta to apply on mass - This value is a float.\n+ |\n+\n+Use personal data bank\n+ | YES : parameter **Bank file**, **Column of masses (MZ) in Bank file** and **Column of retention time (RT) in Bank file** (optional) are visible, the search will be made only on the information of the file\n+ | NO : a internal bank will be used\n+ |\n+\n+If \'Use personal data bank\'=\'YES\'\n+\n+Bank file\n+ | see "Input files" section above\n+ | Tabular file format, Generally variable metadata file\n+ | \n+\n+Column of masses\n+ | Specify the column number for the mass in the bank input file\n+ |\n+\n+Have you used the retention time (RT) for your input data \n+ | Answering same as for "Would you use retention time (RT)"\n+ | YES (default) : parameter **Column of retention time (RT) in Bank file** is visible\n+ | NO : Search will be made solely on the basis of the masses\n+ |\n+\n+Column of retention time (RT) in Bank file\n+ | Specify the column number for the rt in the bank input file\n+ |\n+\n+\n+------------\n+Output files\n+------------\n+\n+Two types of files (if you manually enter the masses both files are mingled):\n+ | bank_inhouse_(input.name)_TSV.tabular : for linking with others modules.\n+ | \n+ | bank_inhouse_(input.name)_XLS.tabular : an excel-like output will be available. \n+ | \n+\n+\n+---------------------------------------------------\n+\n+\n+---------------\n+Working example\n+---------------\n+\n+\n+.. class:: warningmark\n+\n+Refer to the corresponding W4M HowTo section: http://workflow4metabolomics.org/howto\n+ | Format Data For Postprocessing\n+ | Perform LCMS Annotations\n+\n+.. class:: warningmark\n+\n+And their "W4M courses 2016":\n+ | Using Galaxy4Metabolomics - W4M table format for Galaxy\n+ | Annotation Banks - Annotation \n+\t\n+\t]]></help>\n+</tool>\n' |
b |
diff -r 000000000000 -r be582bcd6585 bih.tmpl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bih.tmpl Thu Oct 04 10:37:14 2018 -0400 |
b |
@@ -0,0 +1,129 @@ +<?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 bank_inhouse queries - All results</title> + + <link rel="stylesheet" href="css.php" media="all"> + <link rel="stylesheet" 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> + + 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.center-align {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 bank_inhouse 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="center-align" ><TMPL_VAR NAME=MASSES_ID_QUERY></td> + <td id="<TMPL_VAR NAME=MASSES_NB>" class="center-align" ><TMPL_VAR NAME=MASSES_MZ_QUERY></td> + <td class="center-align" colspan="7"></td> + </tr> + <TMPL_LOOP NAME=ENTRIES> + <tr class="<TMPL_VAR NAME=ENTRY_COLOR>"> + <td class="center-align" colspan="2"></td> + <td class="center-align"><a href="http://www.bank_inhouse.ca/metabolites/<TMPL_VAR NAME=ENTRY_ENTRY_ID2>" target="_blank" class="btn"><TMPL_VAR NAME=ENTRY_ENTRY_ID></a></td> + <td class="center-align"><TMPL_VAR NAME=ENTRY_FORMULA></td> + <td class="center-align"><TMPL_VAR NAME=ENTRY_CPD_MZ></td> + <td class="center-align"><TMPL_VAR NAME=ENTRY_ADDUCT></td> + <td class="center-align"><TMPL_VAR NAME=ENTRY_ADDUCT_TYPE></td> + <td class="center-align"><TMPL_VAR NAME=ENTRY_ADDUCT_MZ></td> + <td class="center-align"><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> + <a href="http://jigsaw.w3.org/css-validator/check/referer" target="_blank"> + <img style="border:0;width:88px;height:31px" + src="http://jigsaw.w3.org/css-validator/images/vcss-blue" + alt="Valid CSS!" /> + </a> + </p> + <p>Copyright © INRA, M Landi 2014 - Jquery Pluggin by <a href="http://flaviusmatis.github.com/" target="_blank">Flavius Matis</a></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 000000000000 -r be582bcd6585 conf_bih.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf_bih.cfg Thu Oct 04 10:37:14 2018 -0400 |
b |
@@ -0,0 +1,19 @@ +## Conf file for bank_inhouse.pl script +# +## Version -- edited by M Landi/F Giacomoni +VERSION=2018.10.01 +# +## ARGVT +INHOUSE_BANK=inhouse.tsv +# +## MZ value +PROTON_MZ=1.0078250321 +ELECTRON_MZ=0.0005486 +# +## 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 +HTML_TEMPLATE=bank_inhouse.tmpl |
b |
diff -r 000000000000 -r be582bcd6585 inhouse.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inhouse.tsv Thu Oct 04 10:37:14 2018 -0400 |
[ |
b'@@ -0,0 +1,290095 @@\n+ENTRY\tNAME\tFORMULA\tMASS\tPATHWAYS\tSOURCE\tMODE\tTISSUES\n+HMDB03813\t2-Acyl-sn-glycero-3-phosphocholine\tNot Available\t0\thttp://www.hmdb.ca/metabolites/HMDB03813\tHMDB\tNA\tNA\n+HMDB03813\t2-Acyl-sn-glycero-3-phosphocholine\tNot Available\t0\tHMDB03813\tPFEM_hmdb_metabocards_official\tNA\tNA\n+HMDB06053\tOmega-muricholic acid\tNA\t0\tNA\tHMDB2010\tNA\tNA\n+MetaCyc04471\te- [e;electron;]\tNA\t0.001\tNA\tmetacyc\tNA\tNA\n+C00080\tH+\tH\t1.0078\tNA\tKEGG\tNA\tNA\n+HMDB01362\tHydrogen\tH\t1.00782\thttp://www.hmdb.ca/metabolites/HMDB01362\tHMDB\tNA\tNA\n+HMDB01362\tHydrogen\tH\t1.00782\tHMDB01362\tPFEM_hmdb_metabocards_official\tNA\tNA\n+MetaCyc00001\tH+ [hydrogen ion;proton;H;]\tH1\t1.007825\t12408-02-5\tmetacyc\tNA\tNA\n+MetaCyc00002\tH2 [hydrogen;hydrogen molecule;]\tH2\t2.01565\t1333-74-0\tmetacyc\tNA\tNA\n+HMDB01362\tHydrogen\tH2\t2.01565\tNA\tHMDB2010\tNA\tNA\n+C00282\tHydrogen\tH2\t2.0157\tNA\tKEGG\tNA\tNA\n+HMDB05949\tLithium\tLi\t7.016\thttp://www.hmdb.ca/metabolites/HMDB05949\tBANQUES_PLASMA_Inhousejuill11&PFEMBLOOD\tNA\tblood/plasma\n+HMDB05949\tLithium\tLi\t7.016\thttp://www.hmdb.ca/metabolites/HMDB05949\tHMDB\tNA\tNA\n+C15473\tLithium\tLi\t7.016\tNA\tKEGG\tNA\tNA\n+HMDB05949\tLithium\tLi\t7.016\thttp://www.hmdb.ca/metabolites/HMDB05949\tPFEM_hmdb_metabocards_blood\tNA\tblood\n+HMDB05949\tLithium\tLi\t7.016\tHMDB05949\tPFEM_hmdb_metabocards_official\tNA\tNA\n+HMDB05949\tLithium\t[Li]+\t7.016\tNA\tHMDB2010\tNA\tNA\n+MetaCyc00003\tLi+ [lithium ion;]\tLI1\t7.016004\tNA\tmetacyc\tNA\tNA\n+3988\tHuman urotensin II\tETPDCFWKYCV\t9\tMH2+\tInhouse_peptide\tNA\tpeptide\n+HMDB02387\tBeryllium\tBe\t9.01218\thttp://www.hmdb.ca/metabolites/HMDB02387\tBANQUES_PLASMA_Inhousejuill11&PFEMBLOOD\tNA\tblood/plasma\n+HMDB02387\tBeryllium\tBe\t9.01218\thttp://www.hmdb.ca/metabolites/HMDB02387\tHMDB\tNA\tNA\n+HMDB02387\tBeryllium\tBe\t9.01218\thttp://www.hmdb.ca/metabolites/HMDB02387\tPFEM_hmdb_metabocards_blood\tNA\tblood\n+HMDB02387\tBeryllium\tBe\t9.01218\tHMDB02387\tPFEM_hmdb_metabocards_official\tNA\tNA\n+HMDB02387\tBeryllium\t[Be]2+\t9.01218\tNA\tHMDB2010\tNA\tNA\n+C16460\tBeryllium\tBe\t9.0122\tNA\tKEGG\tNA\tNA\n+HMDB02386\tBoron\t[B]3+\t11.00931\tNA\tHMDB2010\tNA\tNA\n+MJ000001\tNitrogen \tN\t14.003074\tNA\tMeJP\tNA\tNA\n+HMDB02386\tBoron\tBH3\t14.03278\thttp://www.hmdb.ca/metabolites/HMDB02386\tPFEM_hmdb_metabocards_urine\tNA\turine\n+HMDB02386\tBoron\tBH3\t14.03278\thttp://www.hmdb.ca/metabolites/HMDB02386\tBANQUES_PLASMA_Inhousejuill11&PFEMBLOOD\tNA\tblood/plasma\n+HMDB02386\tBoron\tBH3\t14.03278\thttp://www.hmdb.ca/metabolites/HMDB02386\tBanques_urine_inhousejuill11&pfem_hmdburine&junotneg\tnegative\turine\n+HMDB02386\tBoron\tBH3\t14.03278\thttp://www.hmdb.ca/metabolites/HMDB02386\tbanques-urine_inhousejuill11&PFEM_HMDBurine&JunotPOS\tpositive\turine\n+HMDB02386\tBoron\tBH3\t14.03278\thttp://www.hmdb.ca/metabolites/HMDB02386\tHMDB\tNA\tNA\n+HMDB02386\tBoron\tBH3\t14.03278\thttp://www.hmdb.ca/metabolites/HMDB02386\tPFEM_hmdb_metabocards_blood\tNA\tblood\n+HMDB02386\tBoron\tBH3\t14.03278\tHMDB02386\tPFEM_hmdb_metabocards_official\tNA\tNA\n+MetaCyc00004\tmethyl-group [methyl group;CH3;]\tC1H3\t15.023475\tNA\tmetacyc\tNA\tNA\n+HMDB01845\tAmide\tH2N\t16.01872\thttp://www.hmdb.ca/metabolites/HMDB01845\tHMDB\tNA\tNA\n+HMDB01845\tAmide\tH2N\t16.01872\tHMDB01845\tPFEM_hmdb_metabocards_official\tNA\tNA\n+HMDB02714\tMethane\tCH4\t16.0313\thttp://www.hmdb.ca/metabolites/HMDB02714\tHMDB\tNA\tNA\n+C01438\tMethane\tCH4\t16.0313\tNA\tKEGG\tNA\tNA\n+MJ000002\tMethane \tCH4\t16.0313\tNA\tMeJP\tNA\tNA\n+MetaCyc00005\tmethane []\tC1H4\t16.0313\tNA\tmetacyc\tNA\tNA\n+HMDB02714\tMethane\tCH4\t16.0313\tHMDB02714\tPFEM_hmdb_metabocards_official\tNA\tNA\n+HMDB02714\tMethane\tCH4\t16.0313\tNA\tHMDB2010\tNA\tNA\n+C01328\tHO-\tOH\t17.0027\tNA\tKEGG\tNA\tNA\n+C01329\tNucleoside phosphate\tC5H10O7PR\t17.0027\tNA\tKEGG\tNA\tNA\n+C16844\tHydroxyl radical\tOH\t17.0027\tNA\tKEGG\tNA\tNA\n+HMDB01039\tHydroxide\tHO\t17.00274\thttp://www.hmdb.ca/metabolites/HMDB01039\tHMDB\tNA\tNA\n+MetaCyc00006\tOH- [hydroxyl;hydroxyl ion;OH;hydroxide;hydroxide ion;]\tH1O1\t17.00274\t14280-30-9\tmetacyc\tNA\tNA\n+HMDB01039\tHydroxide\tHO\t17.00274\tHMDB01039\tPFEM_hmdb_metabocards_official\tNA\tNA\n+HMDB01039\tHydroxide\t[OH]-\t17.002741\tNA\tHMDB2010\tNA\tNA\n+C00014\tNH3\tNH3\t17.0265\tNA\tKEGG\tNA\tNA\n+MJ000003\tNH3 \tH3N\t17.026549\tNA\tMeJP\tNA\tNA\n+MetaCyc00007\t'..b'peptide\tNA\tpeptide\n+5415\tdermaseptin 5\tGLWSKIKTAGKSVAKAAAKAAVKAVTNAV\t2838.6589\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+7790\tde novo designed peptide from transportan\tGWTLNSAGYLLGKINLKALAALAKKIL\t2839.6868\tantioxidative\tInhouse_peptide\tNA\tpeptide\n+5437\tlycotoxin 1\tIWLTALKFLGKHAAKHLAKQQLSKL\t2842.6851\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+2948\tmellitin from venom of honey bee(Apis mellifera)\tGIGAVLKVLTTGLPALISWIKRKRQQ~\t2844.7339\tceliac toxic\tInhouse_peptide\tNA\tpeptide\n+2949\tmellitin from venom of honey bee(Apis mellifera)\tGIGAVLKVLTTGLPALISWIKRKRQQ~\t2844.7339\tceliac toxic\tInhouse_peptide\tNA\tpeptide\n+C11198\tMelitten\tC131H229N39O31\t2844.7542\tNA\tKEGG\tNA\tNA\n+7785\tpeptide from honey bee venom\tGIGAVLKVLTTGLPALISWIKRKRQQ\t2845.718\tantioxidative\tInhouse_peptide\tNA\tpeptide\n+5485\tceratotoxin B\tSIGSAFKKALPVAKKIGKAALPIAKAALP\t2858.762\topioid\tInhouse_peptide\tNA\tpeptide\n+5400\tbrevinin-2EE\tGIFDKLKNFAKGVAQSLLNKASCKLSGQC\t2861.5928\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+5509\tceratotoxin A\tSIGSALKKALPVAKKIGKIALPIAKAALP\t2866.825\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+3071\thuman defensin HNP-3\tDCYCRIPACIAGERRYGTCIYQGRLWAFCC\t2871.4758\tceliac toxic\tInhouse_peptide\tNA\tpeptide\n+2950\tmellitin from venom of honey bee(Apis mellifera)\tGIGAVLKVLTTGLPALISWIKRKRQQG\t2902.739\tceliac toxic\tInhouse_peptide\tNA\tpeptide\n+8162\tantimicrobial peptide derived from b-casein (184-210)\tQELLLNPTHQYPVTQPLAPVHNPISV\t2904.5278\tantibacterial\tInhouse_peptide\tNA\tpeptide\n+3441\tNA\tKWKKFIKELQKVLAPGGLLSNIVTSL\t2909.7258\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+3438\tNA\tKWKSFIKNLEKVLKPGGLLSNIVTSL\t2911.7058\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+3442\tNA\tKWKEFIKKLTTAVKKVLTTGLPALIS\t2912.76\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+3229\tbovine lactoferricin B (LF-B)\tFKCRRWQWRMKKLGAPSITCVRRAF\t2917.6414\tceliac toxic\tInhouse_peptide\tNA\tpeptide\n+7051\tLactoferricin B, bovine (Bos taurus)\tFKCRRWQWRMKKLGAPSITCVRRAF\t2917.6414\tantioxidative\tInhouse_peptide\tNA\tpeptide\n+3640\tNA\tLGQQQPFPPQQPYPQPQPFPSQQPY\t2921.3889\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+7468\tcoeliac toxic peptide\tLGQQQPFPPQQPYPQPQPFPSQQPY\t2921.389\tantioxidative\tInhouse_peptide\tNA\tpeptide\n+2762\trabbit NP-5 defesin\tVFCTCRGFLCGSGERASGSCTINGVRHTLCCRR\t2930.5508\tNA\tInhouse_peptide\tNA\tpeptide\n+3112\tadrenocorticotropin hormone fr,: 1-24\tSYSMEHFRWGKPVGKKRRPVKVYP\t2931.5583\tceliac toxic\tInhouse_peptide\tNA\tpeptide\n+C06926\tCosyntropin\tC136H210N40O31S\t2931.5806\tNA\tKEGG\tNA\tNA\n+C06927\tTransferred to D00285\tC136H210N40O31S\t2931.5806\tNA\tKEGG\tNA\tNA\n+3900\tmellitin-like peptide\tFIGASALKVLAGVLPSVISWVKLGRILQ~\t2933.7759\tneuropeptide\tInhouse_peptide\tNA\tpeptide\n+5291\tmellitin-like peptide\tFIGASALKVLAGVLPSVISWVKLGRILQG\t2933.7759\tantibacterial\tInhouse_peptide\tNA\tpeptide\n+2701\tsomatostatin 28\tSANSNPAMAPRERKAGCKNFFWKTFTSC\t2942.4412\tantibacterial\tInhouse_peptide\tNA\tpeptide\n+5352\tCysteine-rich antifungal protein 2 [Fragment]\tQKLCERPSGTXSGVCGNNNACKNQCIR\t2960.3026\tmembrane -active peptide\tInhouse_peptide\tNA\tpeptide\n+5372\tdermaseptin B3\tALWKNMLKGIGKLAGQAALGAVKTLVGAEG\t2964.6733\tmembrane -active peptide\tInhouse_peptide\tNA\tpeptide\n+3440\tNA\tKWKSFIKNLEKVLKKGPILANLVSIV\t2964.8047\tACE inhibitor\tInhouse_peptide\tNA\tpeptide\n+HMDB12124\t(Mannosyl)8-(N-acetylglucosaminyl)2-diphosphodolichol\tC144H240N2O57P2\t2971.541748\tNA\tHMDB2010\tNA\tNA\n+MetaCyc04465\t(mannosyl)8-(N-acetylglucosaminyl)2-diphosphodolichol [{α-D-mannosyl-(1->2)-α-D-mannosyl-(1->2)-α-D-mannosyl-(1->3)-[α-D-mannosyl-(1->2)-α-D-mannosyl-(1->3)-[α-D-mannosyl-(1,6)]-α-D-mannosyl-(1,6)]-β-D-mannosyl-(1->4)-N-acetyl-β-D-glucosaminyl-(1->4)-N-acetyl-D-glucosaminyl}diphosphodolichol;]\tC144H240N2O57P2\t2971.541812\tNA\tmetacyc\tNA\tNA\n+5529\tPenaeidin-3C\tQVYKGGYTRPIPRPPFVRPVPGGPIGPYNGCPVSCRGISFSQARSCCSRLGRCCHVGKGYSG\t2981.57545\tMH2+\tInhouse_peptide\tNA\tpeptide\n+2763\trabbit NP-4 defensin\tVSCTCRRFSCGFGERASGSCTVNGVRHTLCCRR\t2989.563\tNA\tInhouse_peptide\tNA\tpeptide\n+3947\tmytilin C from Mytilum edulis\tSCASRCKSRCRARRCRYYVSVRYGGFCYCRC\t2996.6021\tneuropeptide\tInhouse_peptide\tNA\tpeptide\n' |
b |
diff -r 000000000000 -r be582bcd6585 lib/bih.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/bih.pm Thu Oct 04 10:37:14 2018 -0400 |
[ |
b'@@ -0,0 +1,1052 @@\n+package lib::bih ;\n+\n+use strict;\n+use warnings ;\n+use Exporter ;\n+use Carp ;\n+use Math::BigFloat;\n+\n+use LWP::Simple;\n+use LWP::UserAgent;\n+use URI::URL;\n+use SOAP::Lite;\n+use Encode;\n+use HTML::Template ;\n+#use Net::SSL ;\n+use Data::Dumper ;\n+#use REST::Client;\t\n+use JSON;\n+\n+use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);\n+\n+our $VERSION = "1.0";\n+our @ISA = qw(Exporter);\n+our @EXPORT = qw( db_pforest_get_clean_range map_pfjson_bankobject prepare_multi_masses_query );\n+our %EXPORT_TAGS = ( ALL => [qw( db_pforest_get_clean_range map_pfjson_bankobject prepare_multi_masses_query )] );\n+\n+=head1 NAME\n+\n+My::Module - An example module\n+\n+=head1 SYNOPSIS\n+\n+ use My::Module;\n+ my $object = My::Module->new();\n+ print $object->as_string;\n+\n+=head1 DESCRIPTION\n+\n+This module does not really exist, it\n+was made for the sole purpose of\n+demonstrating how POD works.\n+\n+=head1 METHODS\n+\n+Methods are :\n+\n+=head2 METHOD new\n+\n+\t## Description : new\n+\t## Input : $self\n+\t## Ouput : bless $self ;\n+\t## Usage : new() ;\n+\n+=cut\n+\n+sub new {\n+ ## Variables\n+ my $self={};\n+ bless($self) ;\n+ return $self ;\n+}\n+### END of SUB\n+ \n+=head2 METHOD check_interval\n+\n+\t## Description : checks that the value is in the interval\n+\t## Input : $value, $min, $max\n+\t## Output : $message\n+\t## Usage : $message= check_interval($value, $min, $max) ;\n+\t\n+=cut\n+## START of SUB\n+sub check_interval {\n+\t## Retrieve Values\n+ my $self = shift ;\n+ my ( $value, $min, $max ) = @_ ;\n+ \n+ my ( $message ) = undef ;\n+ if ( $min !~ m/^-?\\d+\\.?\\d*$/ ) {\n+ \t$message="the minimum \'".$min."\' isn\'t a valid number!";\n+ }\n+ elsif ( $max !~ m/^-?\\d+\\.?\\d*$/ ) {\n+ \t$message="the maximum \'".$max."\' isn\'t a valid number!";\n+ }\n+ elsif ( $value !~ m/^-?\\d+\\.?\\d*$/ ) {\n+ \t$message="\'".$value."\' isn\'t a valid number!";\n+ }\n+ elsif ( $value < $min ) {\n+ \t$message="\'".$value."\' is below the minimum!";\n+ }\n+ elsif ( $value > $max ) {\n+ \t$message="\'".$value."\' is greater than the maximum!";\n+ }\n+ else {\n+ \t$message="OK" ;\n+ }\n+ return($message) ;\n+}\n+## END of SUB\n+\n+=head2 METHOD format_manual_list_values\n+\n+\t## Description : extract a list of values and built identifiers\n+\t## Input : $value, $sep\n+\t## Output : \\@values, \\@ids\n+\t## Usage : ($masses, $ids)= format_manual_list_values($mass, $sep) ;\n+\t\n+=cut\n+## START of SUB\n+sub format_manual_list_values {\n+\t## Retrieve Values\n+ my $self = shift ;\n+ my ( $value, $sep ) = @_ ;\n+ \n+ my ( @values, @ids ) = ( (), () ) ;\n+ \n+ if ( ( defined $value ) and ( $value ne "" ) and ( defined $sep ) ) {\n+ \t@values = split($sep, $value);\n+\t\tmy $nb = 1+int(log($#values+1)/log(10));\n+\t\tmy $sf = \'%0\'.$nb.\'s\';\n+\t\tfor (my $i=1 ; $i<=$#values+1 ; $i++){\n+\t\t\tmy $id = sprintf($sf, $i) ;\n+\t\t\tpush (@ids,"value_".$id );\n+\t\t}\n+ }\n+ else {\n+ \tcroak "No value list found \\n" ;\n+ }\n+ return(\\@values, \\@ids) ;\n+}\n+## END of SUB\n+\n+=head2 METHOD parse_bank_interest\n+\n+\t## Description : parse csv object and return a two-dimensional array in a hash by grouping information according to the interest value as key.\n+\t## Input : $csv, \\$file, $col_interest\n+\t## Output : \\%bank_interest, \\$head\n+\t## Usage : my ( $bank_interest, $head ) = parse_bank_interest ( $csv, $file, $col_interest ) ;\n+\t\n+=cut\n+## START of SUB\n+sub parse_bank_interest {\n+\t## Retrieve Values\n+ my $self = shift ;\n+ my ( $csv, $file, $col_interest ) = @_ ;\n+ \n+ my $bank_interest = () ;\n+ my $oBih = new() ;\n+\n+\topen my $fh, "<:encoding(utf8)", $$file or die "Can\'t open csv file $$file: $!";\n+\t\n+\tmy $head = $csv->getline( $fh );\n+\tmy $nb_line = 1 ;\t## for error messages\n+\t\n+\twhile ( my $row = $csv->getline( $fh ) ) {\n+\t $nb_line++ ;\n+\t\tif ($#$head != $#$row) {\tcroak "Not the same number of columns over the file of the interest bank! See the line: $nb_line in your input bank file!\\n" ;\t}\n+\t\t## it would be more general to do the following masse check out thi'..b'rray number\n+ if ( ( defined $rts ) and ( $rts ne "" ) ) {\n+\t splice (@bank_head, 2, 0, "RT_Submit");\n+\t $col_rtdb -= 1; ## conversion in array number\n+ }\n+ my $head = join("\\t", @bank_head);\n+ print CSV "MASS_Submit\\t".$head."\\n" ;\n+ \n+ foreach my $mass (@{$masses}) {\n+ \tmy $results4mass = $results->[$index_mz];\n+ \t\n+ \tif ( ref($results4mass) eq \'ARRAY\' and defined $results4mass and $results4mass ne [] and $#$results4mass>=0) { ## an requested id has a result in the list of array $results.\n+ \t\tforeach my $entry (@{$results->[$index_mz]}) {\n+ \t\t\tprint CSV $mass."\\t";\n+ \t\t\tmy $format_float = Math::BigFloat->new($entry->[$col_mzdb]);\t## requires "use Math::BigFloat;"\n+\t\t\t\tmy $delta_mass = abs( $format_float-$mass );\t## management problem on small float\n+\t\t\t\tprint CSV $delta_mass."\\t".$entry->[$col_mzdb];\n+\t\t\t\t\n+\t\t\t\tif ( ( defined $rts ) and ( $rts ne "" ) ) {\n+\t \t\t\tmy $rt = $rts->[$index_mz] ;\n+\t \t\t\tmy $format_float_rt = Math::BigFloat->new($entry->[$col_rtdb]);\t## requires "use Math::BigFloat;"\n+\t\t\t\t\tmy $delta_rt = abs( $format_float_rt-$rt );\t## management problem on small float\n+\t \t\t\tprint CSV "\\t".$rt."\\t".$delta_rt."\\t".$entry->[$col_rtdb];\n+\t\t\t\t}\n+ \t\t\tfor (my $i=0; $i<=$#$entry; $i++){\tprint CSV "\\t".$entry->[$i];\t}\n+ \t\t\tprint CSV "\\n";\n+ \t\t}\n+ \t}\n+ \telse {\n+ \t\tprint CSV $mass."\\tno results found";\n+ \t\tfor (my $i=0; $i<$#bank_head; $i++){\tprint CSV "\\t";\t}\n+ \t\tprint CSV "\\n";\n+ \t}\n+ \t$index_mz++ ;\n+ }\n+ \tclose(CSV) ;\n+ return() ;\n+}\n+## END of SUB\n+\n+\n+=head2 METHOD db_pforest_get_clean_range\n+\n+\t## Description : get a clean range of mass from PeakForest and REST\n+\t## Input : $ws_host, $query, $max\n+\t## Output : $json\n+\t## Usage : $json = db_pforest_get_clean_range( $ws_host, $query, $max ) ;\n+=cut\n+## START of SUB\n+\n+\n+#sub db_pforest_get_clean_range {\r\n+# my $self = shift;\r\n+# my ( $ws_host, $query, $min, $max, $mode) = @_;\n+# my $json = undef ;\r\n+#\t# init\n+##\tmy $ws_url = "https://rest.peakforest.org/search/compounds/monoisotopicmass/59.048/0.02";\n+#\n+#\t$ENV{HTTPS_VERSION} = 3;\n+#\t#$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0 ;\n+#\n+#\tmy $headers = {Accept => \'application/json\', Authorization => \'Basic \'};\n+#\tmy $client = REST::Client->new({\n+# host => $ws_host,\n+## cert => \'/path/to/ssl.crt\',\n+## key => \'/path/to/ssl.key\',\n+## ca => \'/path/to/ca.file\',\n+# timeout => 100,\n+# });\n+# my $complete_query = $query.\'/\'.$min.\'/\'.$max ;\n+# \n+# if (defined $mode) {\n+# \t$complete_query = $complete_query.\'?mode=\'.$mode ; \n+# }\n+# \n+# \n+# print $complete_query."\\n" ;\n+# $client->GET($complete_query , $headers);\n+#\t$json = from_json ($client->responseContent()) ;\n+#\n+#\treturn ($json) ; \r\n+#}\n+\n+=head2 METHOD map_pfjson_bankobject\n+\n+\t## Description : map PForest json with the original BiH Bank object\n+\t## Input : $json\n+\t## Output : $complete_bank, $bank_head\n+\t## Usage : ($complete_bank, $bank_heads) = map_pfjson_bankobject( json ) ;\n+=cut\n+## START of SUB\n+sub map_pfjson_bankobject {\n+\tmy $self = shift;\n+ my ( $json ) = @_;\n+ \n+ my ( %complete_bank ) = () ;\n+ my ( @bank_head ) = (\'id\', \'mz\') ;\n+ \n+ foreach my $cpd (@$json) {\n+ \t$complete_bank{$cpd->{\'mz\'}} = [] ;\n+ \tmy @tmp = @{$cpd->{\'cpds\'}} ;\n+ \t\n+ \tpush ( @tmp, $cpd->{\'mz\'} ) ;\n+ \tpush ( @{ $complete_bank{$cpd->{\'mz\'} } }, \\@tmp ) ;\n+\n+ }\n+ return (\\%complete_bank, \\@bank_head) ;\n+}\n+## END of SUB\n+\n+1 ;\n+\n+\n+__END__\n+\n+=head1 SUPPORT\n+\n+You can find documentation for this module with the perldoc command.\n+\n+ perldoc bih.pm\n+\n+=head1 Exports\n+\n+=over 4\n+\n+=item :ALL is prepare_multi_masses_query\n+\n+=back\n+\n+=head1 AUTHOR\n+\n+Marion Landi E<lt>marion.landi@clermont.inra.frE<gt>\n+\n+=head1 LICENSE\n+\n+This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.\n+\n+=head1 VERSION\n+\n+version 1 : 19 / 11 / 2014\n+\n+=cut\n' |
b |
diff -r 000000000000 -r be582bcd6585 lib/conf.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/conf.pm Thu Oct 04 10:37:14 2018 -0400 |
[ |
@@ -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 : 15 / 12 / 2015 + +=cut \ No newline at end of file |
b |
diff -r 000000000000 -r be582bcd6585 lib/csv.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/csv.pm Thu Oct 04 10:37:14 2018 -0400 |
[ |
@@ -0,0 +1,282 @@ +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 ); +our %EXPORT_TAGS = ( ALL => [qw( get_csv_object get_value_from_csv )] ); + +=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 + + ## Description : extract a targeted column in a csv file + ## Input : $csv, $file, $column, $is_header + ## Output : $value + ## Usage : my ( $value ) = get_value_from_csv( $csv, $file, $column, $is_header ) ; + +=cut +## START of SUB +sub get_value_from_csv { + ## Retrieve Values + my $self = shift ; + my ( $csv, $file, $column, $is_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 ) { if ($line == 1) { 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 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 + +=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 000000000000 -r be582bcd6585 lib/json.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/json.pm Thu Oct 04 10:37:14 2018 -0400 |
[ |
@@ -0,0 +1,152 @@ +package lib::json ; + +use strict; +use warnings ; +use Exporter ; +use Carp ; + +use Data::Dumper ; + +## dedicate lib +use JSON qw( ); + +use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS); + +our $VERSION = "1.0"; +our @ISA = qw(Exporter); +our @EXPORT = qw(decode_json_file); +our %EXPORT_TAGS = ( ALL => [qw(decode_json_file)] ); + +=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 decode_json_file + + ## Description : decode a json file and return a json perl object + ## Input : $ref_file + ## Output : $ojson + ## Usage : my ( $ojson ) = decode_json_file( $file ) ; + +=cut +## START of SUB +sub decode_json_file { + ## Retrieve Values + my $self = shift ; + my ( $ref_file ) = @_ ; + + my $ojson = undef ; + + if ( ( defined $ref_file ) and ( -e $$ref_file ) ) { + my $filename = $$ref_file ; + my $json_text = do { + open( my $json_fh, "<:encoding(UTF-8)", $filename) or die("Can't open \$filename\": $!\n"); + local $/; + <$json_fh> + }; + + my $json = JSON->new; + $ojson = $json->decode($json_text); + } + else { + croak "Can't decode any file : it doesn't exist or defined\n" ; + } + return(\$ojson) ; +} +## END of SUB + +=head2 METHOD decode_json_stdout + + ## Description : decode a perl unicode string and return a json perl object + ## Input : $stdout + ## Output : $perl_scalar + ## Usage : my ( $perl_scalar ) = decode_json_stdout( $stdout ) ; + +=cut +## START of SUB +sub decode_json_stdout { + ## Retrieve Values + my $self = shift ; + my ( $stdout ) = @_ ; + + my $perl_scalar = undef ; + if ( defined $stdout ) { + my $string = $$stdout ; +# $string =~ s/\\/\\\\/g ; ## bug patched : jsons are clean now + + $perl_scalar = JSON->new->decode($string) ; + } + else { + croak "Can't decode any string : it doesn't defined\n" ; + } + return(\$perl_scalar) ; +} +## END of SUB + +1 ; + + +__END__ + +=head1 SUPPORT + +You can find documentation for this module with the perldoc command. + + perldoc XXX.pm + +=head1 Exports + +=over 4 + +=item :ALL is ... + +=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 : xx / xx / 201x + +version 2 : ?? + +=cut \ No newline at end of file |
b |
diff -r 000000000000 -r be582bcd6585 static/images/bank_inhouse.png |
b |
Binary file static/images/bank_inhouse.png has changed |
b |
diff -r 000000000000 -r be582bcd6585 t/bih_managerTest.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/t/bih_managerTest.t Thu Oct 04 10:37:14 2018 -0400 |
[ |
b'@@ -0,0 +1,144 @@\n+#! perl\n+use diagnostics;\n+use warnings;\n+no warnings qw/void/;\n+use strict;\n+no strict "refs" ;\n+use Test::More tests => 36 ;\n+use FindBin ;\n+use Data::Dumper ;\n+\n+## Specific Modules\n+use lib $FindBin::Bin ;\n+my $binPath = $FindBin::Bin ;\n+use lib::bihTest qw( :ALL ) ;\n+\n+## testing check_interval\n+print "\\n-- test whether a value is in the interval defines\\n\\n" ;\n+#01\n+is ( check_interval_Test(\'test\', \'0\', \'1\'), "\'test\' isn\'t a valid number!", \'Works with a value that is not a number\');\n+#02\n+is ( check_interval_Test(\'\', \'0\', \'1\'), "\'\' isn\'t a valid number!", \'Works with a value that is not a number\');\n+#03\n+is ( check_interval_Test(\'-0.5\', \'-1\', \'0\'), "OK", \'Works with a negative float\');\n+#04\n+is ( check_interval_Test(\'-0.5\', \'0\', \'1\'), "\'-0.5\' is below the minimum!", \'Works with a number below the minimum!\');\n+#05\n+is ( check_interval_Test(\'2\', \'0\', \'1\'), "\'2\' is greater than the maximum!", \'Works with a number greater than the maximum!\');\n+print "\\n--\\n" ;\n+\n+## testing format_manual_masses\n+print "\\n-- Test format manual list of values lib for values (ex=> masses)\\n\\n" ;\n+#06\n+isa_ok( format_manual_list_values_Testvalues(\'562.0235\', \' \'), \'ARRAY\' );\n+#07\n+is_deeply(format_manual_list_values_Testvalues(\'562.0235\', \' \'), [562.0235], \'Works with \\\'562.0235\\\' for mass\');\n+#08\n+is_deeply(format_manual_list_values_Testvalues(\'562.0235 987.4568\', \' \'), [562.0235, 987.4568], \'Works with \\\'562.0235 987.4568\\\' for masses\');\n+#09\n+is_deeply(format_manual_list_values_Testvalues(\'562.0235;987.4568\', \';\'), [562.0235, 987.4568], \'Works with \\\'562.0235;987.4568\\\' for masses\');\n+print "\\n--\\n" ;\n+\n+print "\\n-- Test format manual list of values lib for ids\\n\\n" ;\n+#10\n+isa_ok( format_manual_list_values_Testids(\'562.0235\', \' \'), \'ARRAY\' );\n+#11\n+is_deeply(format_manual_list_values_Testids(\'562.0235\', \' \'), [\'value_1\'], \'Works with \\\'562.0235\\\' for ids\');\n+#12\n+is_deeply(format_manual_list_values_Testids(\'562.0235 987.4568\', \' \'), [\'value_1\', \'value_2\'], \'Works with \\\'562.0235 987.4568\\\' for ids\');\n+#13\n+is_deeply(format_manual_list_values_Testids(\'562.0235 987.4568 \', \' \'), [\'value_1\', \'value_2\'], \'Works with \\\'562.0235 987.4568 \\\' for ids\');\n+#14\n+is_deeply(format_manual_list_values_Testids(\'562.0235 987.4568 52.0235 98.48 62.0235 987.68 152.05 8.48 562.0235\', \' \'), [\'value_1\', \'value_2\',\'value_3\', \'value_4\',\'value_5\', \'value_6\',\'value_7\', \'value_8\', \'value_9\'], \'Works with 9 masses for ids\');\n+#15\n+is_deeply(format_manual_list_values_Testids(\'562.0235 987.4568 52.0235 98.48 62.0235 987.68 152.05 8.48 562.0235 987.4568\', \' \'), [\'value_01\', \'value_02\',\'value_03\', \'value_04\',\'value_05\', \'value_06\',\'value_07\', \'value_08\', \'value_09\', \'value_10\'], \'Works with 10 masses for ids\');\n+#16\n+is_deeply(format_manual_list_values_Testids(\'562.0235 987.4568 52.0235 98.48 62.0235 987.68 152.05 8.48 562.0235 987.4568 52.0235 98.48 62.0235 987.68 152.05 8.48\', \' \'), [\'value_01\', \'value_02\',\'value_03\', \'value_04\',\'value_05\', \'value_06\',\'value_07\', \'value_08\', \'value_09\', \'value_10\', \'value_11\', \'value_12\', \'value_13\', \'value_14\', \'value_15\', \'value_16\'], \'Works with 16 masses for ids\');\n+print "\\n--\\n" ;\n+\n+## testing manage_mode\n+#print "\\n-- Test manage_mode lib\\n\\n" ;\n+#09\n+#isa_ok( manage_mode_Testionization(\'positive,negative,neutral\'), \'ARRAY\' );\n+#10\n+#is_deeply(manage_mode_Testionization(\'positive,negative,neutral\'), [\'positive\', \'negative\', \'neutral\'], \'Works with \\\'562.0235\\\' for ids\');\n+#14\n+#isa_ok( format_manual_list_values_Testids(\'562.0235 987.4568\'), \'ARRAY\' );\n+#15\n+#is_deeply(format_manual_list_values_Testids(\'562.0235 987.4568\'), [\'mass_1\', \'mass_2\'], \'Works with \\\'562.0235 987.4568\\\' for ids\');\n+#16\n+#is_deeply(format_manual_list_values_Testids(\'562.0235 987.4568 52.0235 98.48 62.0235 987.68 152.05 8.48 562.0235 987.4568 52.0235 98.48 62.0235 987.68 152.05 8.48\'), [\'mass_01\', \'mass_02\',\'mass_03\', \'mass_04\',\'mass_05\', \'mass_06\',\'mass_07\', \'mass_08\', \'mass_09\', \'mass_10\', \'mass_11\', \'mass_12\', \'mass_13\', \'mass_14\', \''..b'000001, \'Works with \\\'500, ppm, 5\\\' for maximum\');\n+print "\\n--\\n" ;\n+\n+## testing dichotomi_search\n+print "\\n-- Test dichotomi_search lib\\n\\n" ;\n+#25\n+is ( dichotomi_search_Test([\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'], \'0\'), -1, \'Works with \\\'0\\\' smaller than the 1st element\');\n+#26\n+is ( dichotomi_search_Test([\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'], \'1\'), 0, \'Works with \\\'1\\\' equal to the 1st element\');\n+#27\n+is ( dichotomi_search_Test([\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'], \'5\'), 4, \'Works with \\\'5\\\' equal to the 4th element\');\n+#28\n+is ( dichotomi_search_Test([\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'], \'11\'), 10, \'Works with \\\'11\\\' equal to the last (10th) element\');\n+#29\n+is ( dichotomi_search_Test([\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'], \'11.001\'), 11, \'Works with \\\'11.001\\\' greater than the last (10th) element\');\n+#30\n+is ( dichotomi_search_Test([\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'], \'9.5\'), 9, \'Works with \\\'9.5\\\' between the 9th and the 10th element return \\\'9\\\'(the index of the 10th)\');\n+#31\n+is ( dichotomi_search_Test([\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'], \'8.5\'), 8, \'Works with \\\'8.5\\\' between the 8th and the 9th element return \\\'8\\\'(the index of the 9th)\');\n+#32\n+is ( dichotomi_search_Test([\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\', \'11\'], \'10.5\'), 10, \'Works with \\\'10.5\\\' between the 10th and the 11th element return \\\'10\\\'(the index of the 11th)\');\n+print "\\n--\\n" ;\n+\n+## test of input bank parsing\n+print "\\n-- Test bank parsing\\n\\n" ;\n+is_deeply ( parse_bank_interest_Test(\n+\t\'/Users/fgiacomoni/Inra/labs/perl/galaxy_tools/tool-bank_inhouse/test_data/in_test2.tabular\', 1),\n+\t{ \'422.0849114\' => [ [ \'C19H18O11\', \'422.0849114\' ] ], \'98.952389\' => [ [ \'Halothane\', \'98.952389\' ] ], \'209.987659\' => [ [ \'Bismuth\', \'209.987659\' ] ], \'18.0105647\' => [ [ \'H2O\', \'18.0105647\' ] ], \'199.951068\' => [ [ \'Picolinic acid\', \'199.951068\' ] ], \'535.3181236\' => [ [ \'C18H45N7O11\', \'535.3181236\' ] ] }, \n+\t"Parsing a bank method works an return a well organized hash\\n" ) ; \n+\n+print "\\n--\\n" ;\n+\n+\n+## test of rest ws of PeakForest\n+print "\\n-- Test PeakForest WS\\n\\n" ;\n+is_deeply ( db_pforest_get_clean_range_Test(\n+\t\'https://rest.peakforest.org\', \'/spectra/lcms/peaks/get-range-clean\', \'190.0\', \'200.0\', \'negative\'),\n+ \t[{ \'cpds\' => [ 186 ], \'thMass\' => \'195.0877\', \'sp\' => 25, \'ri\' => \'100\', \'deltaPPM\' => \'0.245\', \'composition\' => \'C8H11N4O2\', \'attribution\' => \'[M+H]+\', \'mz\' => \'195.0875\' }, { \'composition\' => \'C9H9O5\', \'attribution\' => \'[M-H]-\', \'ri\' => \'100\', \'deltaPPM\' => \'0.271\', \'cpds\' => [ 360 ], \'thMass\' => \'197.0456\', \'sp\' => 37, \'mz\' => \'197.0452\' }, { \'composition\' => \'C9H12NO4\', \'attribution\' => \'[M+H]+\', \'deltaPPM\' => \'-0.426098891623529\', \'ri\' => \'100\', \'thMass\' => \'198.0760844\', \'sp\' => 77, \'cpds\' => [ 1841 ], \'mz\' => \'198.076\' }, { \'mz\' => \'196.0614\', \'composition\' => \'C9H10NO4\', \'attribution\' => \'[M-H]-\', \'cpds\' => [ 1841 ], \'thMass\' => \'196.0615311\', \'sp\' => 78, \'ri\' => \'100\', \'deltaPPM\' => \'-0.668667633415113\' }, { \'cpds\' => [ 1841 ], \'thMass\' => \'198.0760844\', \'sp\' => 79, \'ri\' => \'100\', \'deltaPPM\' => \'-0.426098891623529\', \'composition\' => \'C9H12NO4\', \'attribution\' => \'[M+H]+\', \'mz\' => \'198.076\' }],\n+\t"PForest WS call works an return a clean range og mz between 190 and 200\\n" ) ; \n+\t\n+print "\\n--\\n" ;\n+\n+## test of rest ws of PeakForest\n+print "\\n-- Test PeakForest JSON Bank parsing\\n\\n" ;\n+\n+my ($bank, $headers) = map_pfjson_bankobject_Test([ { \'cpds\' => [ 186 ], \'mz\' => \'195.0875\' }, {\'mz\' => \'198.076\', \'cpds\' => [ 190 ]} ]) ;\n+is_deeply ( \n+\t$bank, \n+\t{ \'198.076\' => [ [ 190, \'198.076\' ] ], \'195.0875\' => [ [ 186, \'195.0875\' ] ] },\n+\t"Parsing json bank from PeakForest works an return a well organized hash for data\\n" ) ;\n+\t\n+is_deeply ( \n+\t$headers, \n+\t[\'id\', \'mz\'],\n+\t"Parsing json bank from PeakForest works an return a well organized array for headers\\n" ) ;\n\\ No newline at end of file\n' |
b |
diff -r 000000000000 -r be582bcd6585 t/lib/bihTest.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/t/lib/bihTest.pm Thu Oct 04 10:37:14 2018 -0400 |
[ |
@@ -0,0 +1,106 @@ +package lib::bihTest ; + +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 ; +use Data::Dumper ; + +our $VERSION = "1.0"; +our @ISA = qw(Exporter); +our @EXPORT = qw( map_pfjson_bankobject_Test parse_bank_interest_Test db_pforest_get_clean_range_Test check_interval_Test format_manual_list_values_Testvalues format_manual_list_values_Testids manage_mode_TestvalH manage_mode_Testionization mz_delta_conversion_Testmin mz_delta_conversion_Testmax dichotomi_search_Test ); +our %EXPORT_TAGS = ( ALL => [qw( map_pfjson_bankobject_Test parse_bank_interest_Test db_pforest_get_clean_range_Test check_interval_Test format_manual_list_values_Testvalues format_manual_list_values_Testids manage_mode_TestvalH manage_mode_Testionization mz_delta_conversion_Testmin mz_delta_conversion_Testmax dichotomi_search_Test )] ); + +use lib '/Users/fgiacomoni/Inra/labs/perl/galaxy_tools/tool-bank_inhouse' ; +use lib::bih qw( :ALL ) ; +use lib::json qw( :ALL ) ; +use lib::csv qw( :ALL ) ; + +sub check_interval_Test { + my ( $value, $min, $max ) = @_ ; + my $oBih = lib::bih->new() ; + my ($message) = $oBih->check_interval($value, $min, $max) ; + return($message) ; +} + +sub format_manual_list_values_Testvalues { + my ( $value, $sep ) = @_ ; + my $oBih = lib::bih->new() ; + my ($values, $ids) = $oBih->format_manual_list_values($value, $sep) ; + return ($values) ; +} + +sub format_manual_list_values_Testids { + my ( $value, $sep ) = @_ ; + my $oBih = lib::bih->new() ; + my ($values, $ids) = $oBih->format_manual_list_values($value, $sep) ; + return ($ids) ; +} + +sub mz_delta_conversion_Testmin { + my ( $mass, $delta_type, $mz_delta ) = @_ ; + my $oBih = lib::bih->new() ; + my ($min, $max) = $oBih->mz_delta_conversion(\$mass, \$delta_type, \$mz_delta) ; + return($$min) ; +} + +sub mz_delta_conversion_Testmax { + my ( $mass, $delta_type, $mz_delta ) = @_ ; + my $oBih = lib::bih->new() ; + my ($min, $max) = $oBih->mz_delta_conversion(\$mass, \$delta_type, \$mz_delta) ; + return($$max) ; +} + +sub dichotomi_search_Test { + my ( $tab, $search ) = @_ ; + my $oBih = lib::bih->new() ; + my ($position) = $oBih->dichotomi_search($tab, \$search) ; + return($$position) ; +} + +## SUB TEST for +sub db_pforest_get_clean_range_Test { + # get values + my ( $host, $query, $min, $max, $mode ) = @_; + my $json = undef ; + + my $oBih = lib::bih->new() ; + $json = $oBih->db_pforest_get_clean_range($host, $query, $min, $max, $mode ) ; + + return($json) ; +} +## End SUB + +## SUB TEST for +sub parse_bank_interest_Test { + # get values + my ( $file, $col_interest ) = @_; + + my $ocsv_input = lib::csv->new() ; + my $ocsv = $ocsv_input->get_csv_object( "\t" ) ; + + my $oBih = lib::bih->new() ; + my ($bank, $bank_header) = $oBih->parse_bank_interest($ocsv, \$file, $col_interest) ; + +# print Dumper $bank ; + + return($bank) ; +} +## End SUB + + +sub map_pfjson_bankobject_Test { + # get values + my ( $json ) = @_; + + my ($bank, $headers) = (undef, undef) ; + + my $oBih = lib::bih->new() ; + ($bank, $headers) = $oBih->map_pfjson_bankobject($json) ; +# print Dumper $headers ; + return($bank, $headers) ; +} + + +1 ; \ No newline at end of file |
b |
diff -r 000000000000 -r be582bcd6585 test-data/in_test2.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/in_test2.tabular Thu Oct 04 10:37:14 2018 -0400 |
b |
@@ -0,0 +1,7 @@ +id masses +C19H18O11 422.0849114 +H2O 18.0105647 +C18H45N7O11 535.3181236 +Bismuth 209.987659 +Halothane 98.952389 +Picolinic acid 199.951068 |
b |
diff -r 000000000000 -r be582bcd6585 test-data/out_test1.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/out_test1.tabular Thu Oct 04 10:37:14 2018 -0400 |
[ |
@@ -0,0 +1,55 @@ +MASS_Submit DELTA_mass(0.005Da) MASS_Result ENTRY NAME FORMULA MASS PATHWAYS SOURCE MODE TISSUES +422.0849114 0.0024114 422.0825 C00689 alpha,alpha'-Trehalose 6-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C02591 Sucrose 6-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C02995 Maltose 6'-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C04534 6-Phospho-beta-D-glucosyl-(1,4)-D-glucose C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C05396 Lactose 6-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C16688 Sucrose-6-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C16689 poly-cis-Polyprenyl diphosphate longer by one C5 unit C11H22O7P2 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C16690 5-L-Glutamyl-D-glutamyl-peptide C10H16N3O6R 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C16691 DNA 2,6-diamino-5-formamido-3,4-dihydro-4-oxopyrimidine C10H16N5O8P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C18050 beta-D-Fructofuranosyl-alpha-D-mannopyranoside 6F-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0023704 422.082541 MJ059635 1,1'-Di-myo-inosityl phosphate C12H23O14P 422.082541 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MJ059636 alpha,alpha'-Trehalose 6-phosphate C12H23O14P 422.082542 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MJ059637 Lactose 6-phosphate C12H23O14P 422.082542 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MJ059638 Maltose 6'-phosphate C12H23O14P 422.082542 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MJ059639 Sugar 1-phosphate C12H23O14P 422.082542 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MetaCyc03484 6-phospho-β-D-glucosyl-(1,4)-D-glucose [] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03485 maltose 6'-phosphate [] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03486 trehalose 6-phosphate [α,α-trehalose 6-phosphate;] C12H23O14P1 422.082542 4484-88-2 metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03487 sucrose-6-phosphate [sucrose 6F-phosphate;sucrose-6-P;] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03488 lactose 6'-phosphate [] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03489 6-phospho-β-D-glucosyl-(1,4)-D-glucose [] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023614 422.08255 HMDB01124 Trehalose 6-phosphate C12H23O14P 422.08255 http://www.hmdb.ca/metabolites/HMDB01124 HMDB NA NA +422.0849114 0.0023614 422.08255 HMDB06789 Lactose 6-phosphate C12H23O14P 422.08255 http://www.hmdb.ca/metabolites/HMDB06789 HMDB NA NA +422.0849114 0.0023614 422.08255 HMDB01124 Trehalose 6-phosphate C12H23O14P 422.08255 HMDB01124 PFEM_hmdb_metabocards_official NA NA +422.0849114 0.0023614 422.08255 HMDB06789 Lactose 6-phosphate C12H23O14P 422.08255 HMDB06789 PFEM_hmdb_metabocards_official NA NA +422.0849114 0.0023614 422.08255 HMDB01124 Trehalose 6-phosphate C12H23O14P 422.08255 NA HMDB2010 NA NA +422.0849114 0.0023614 422.08255 HMDB06789 Lactose 6-phosphate C12H23O14P 422.08255 NA HMDB2010 NA NA +422.0849114 0.0000114 422.0849 C10077 Mangiferin C19H18O11 422.0849 NA KEGG NA NA +422.0849114 0.0000114 422.0849 C10089 Norswertianolin C19H18O11 422.0849 NA KEGG NA NA +422.0849114 0.0000114 422.0849 C10095 Tripteroside C19H18O11 422.0849 NA KEGG NA NA +422.0849114 0.0000114 422.0849 C16979 Isomangiferin C19H18O11 422.0849 NA KEGG NA NA +422.0849114 0.0000004 422.084911 MJ059640 1,2,6,8-Tetrahydroxyxanthone; 1-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059641 1,2,6,8-Tetrahydroxyxanthone; 8-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059642 1,3,5,6-Tetrahydroxyxanthone; 3-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059643 1,3,5,8-Tetrahydroxyxanthone; 8-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059644 1,3,6,7-Tetrahydroxyxanthone; 6-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059645 2-Glucosyl-1,3,5,6-tetrahydroxyxanthone C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059646 Chrysograyanone C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059647 Dilatatin C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059648 Isomangiferin C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059649 Mangiferin C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059650 Nigricanside C19H18O11 422.084911 NA MeJP NA NA +18.0105647 0.0000057 18.010559 HMDB02111 Water H2O 18.010559 NA HMDB2010 NA NA +18.0105647 0.0000047 18.01056 HMDB02111 Water H2O 18.01056 http://www.hmdb.ca/metabolites/HMDB02111 HMDB NA NA +18.0105647 0.0000047 18.01056 HMDB02111 Water H2O 18.01056 HMDB02111 PFEM_hmdb_metabocards_official NA NA +18.0105647 0.0000007 18.010564 MJ000004 Water H2O 18.010564 NA MeJP NA NA +18.0105647 0.0000007 18.010564 MJ000005 H2O H2O 18.010564 NA MeJP NA NA +18.0105647 0.0000003 18.010565 MetaCyc00008 H2O [H20;hydrogen oxide;water;] H2O1 18.010565 7732-18-5 metacyc NA NA +18.0105647 0.0000353 18.0106 C00001 H2O H2O 18.0106 NA KEGG NA NA +535.3181236 0.0036066 535.314517 MJ078445 Labiatamide A C29H45NO8 535.314517 NA MeJP NA NA +535.3181236 0.0036066 535.314517 MJ078446 Neoline; O8,O14-Di-Ac, O1-Me C29H45NO8 535.314517 NA MeJP NA NA +535.3181236 0.0036066 535.314517 MJ078447 Zygadenine; O3-Ac C29H45NO8 535.314517 NA MeJP NA NA +209.987659 0.000604 209.987055 MJ008190 Zinc(II) propanoate C6H10O4Zn 209.987055 NA MeJP NA NA +98.952389 no results found |
b |
diff -r 000000000000 -r be582bcd6585 test-data/out_test2a.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/out_test2a.tabular Thu Oct 04 10:37:14 2018 -0400 |
[ |
@@ -0,0 +1,7 @@ +id masses BiH_internal_bank_(DELTA_mass(0.005Da)#MASS_Result#ENTRY#NAME#FORMULA#MASS#PATHWAYS#SOURCE#MODE#TISSUES) +C19H18O11 422.0849114 "0.0024114#422.0825#C00689#alpha,alpha'-Trehalose 6-phosphate#C12H23O14P#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C02591#Sucrose 6-phosphate#C12H23O14P#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C02995#Maltose 6'-phosphate#C12H23O14P#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C04534#6-Phospho-beta-D-glucosyl-(1,4)-D-glucose#C12H23O14P#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C05396#Lactose 6-phosphate#C12H23O14P#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C16688#Sucrose-6-phosphate#C12H23O14P#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C16689#poly-cis-Polyprenyl diphosphate longer by one C5 unit#C11H22O7P2#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C16690#5-L-Glutamyl-D-glutamyl-peptide#C10H16N3O6R#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C16691#DNA 2,6-diamino-5-formamido-3,4-dihydro-4-oxopyrimidine#C10H16N5O8P#422.0825#NA#KEGG#NA#NA|0.0024114#422.0825#C18050#beta-D-Fructofuranosyl-alpha-D-mannopyranoside 6F-phosphate#C12H23O14P#422.0825#NA#KEGG#NA#NA|0.0023704#422.082541#MJ059635#1,1'-Di-myo-inosityl phosphate #C12H23O14P#422.082541#NA#MeJP#NA#NA|0.0023694#422.082542#MJ059636#alpha,alpha'-Trehalose 6-phosphate #C12H23O14P#422.082542#NA#MeJP#NA#NA|0.0023694#422.082542#MJ059637#Lactose 6-phosphate #C12H23O14P#422.082542#NA#MeJP#NA#NA|0.0023694#422.082542#MJ059638#Maltose 6'-phosphate #C12H23O14P#422.082542#NA#MeJP#NA#NA|0.0023694#422.082542#MJ059639#Sugar 1-phosphate #C12H23O14P#422.082542#NA#MeJP#NA#NA|0.0023694#422.082542#MetaCyc03484#6-phospho-β-D-glucosyl-(1,4)-D-glucose []#C12H23O14P1#422.082542#NA#metacyc#NA#NA|0.0023694#422.082542#MetaCyc03485#maltose 6'-phosphate []#C12H23O14P1#422.082542#NA#metacyc#NA#NA|0.0023694#422.082542#MetaCyc03486#trehalose 6-phosphate [α,α-trehalose 6-phosphate;]#C12H23O14P1#422.082542#4484-88-2#metacyc#NA#NA|0.0023694#422.082542#MetaCyc03487#sucrose-6-phosphate [sucrose 6F-phosphate;sucrose-6-P;]#C12H23O14P1#422.082542#NA#metacyc#NA#NA|0.0023694#422.082542#MetaCyc03488#lactose 6'-phosphate []#C12H23O14P1#422.082542#NA#metacyc#NA#NA|0.0023694#422.082542#MetaCyc03489#6-phospho-β-D-glucosyl-(1,4)-D-glucose []#C12H23O14P1#422.082542#NA#metacyc#NA#NA|0.0023614#422.08255#HMDB01124#Trehalose 6-phosphate#C12H23O14P#422.08255#http://www.hmdb.ca/metabolites/HMDB01124#HMDB#NA#NA|0.0023614#422.08255#HMDB06789#Lactose 6-phosphate#C12H23O14P#422.08255#http://www.hmdb.ca/metabolites/HMDB06789#HMDB#NA#NA|0.0023614#422.08255#HMDB01124#Trehalose 6-phosphate#C12H23O14P#422.08255#HMDB01124#PFEM_hmdb_metabocards_official#NA#NA|0.0023614#422.08255#HMDB06789#Lactose 6-phosphate#C12H23O14P#422.08255#HMDB06789#PFEM_hmdb_metabocards_official#NA#NA|0.0023614#422.08255#HMDB01124#Trehalose 6-phosphate#C12H23O14P#422.08255#NA#HMDB2010#NA#NA|0.0023614#422.08255#HMDB06789#Lactose 6-phosphate#C12H23O14P#422.08255#NA#HMDB2010#NA#NA|0.0000114#422.0849#C10077#Mangiferin#C19H18O11#422.0849#NA#KEGG#NA#NA|0.0000114#422.0849#C10089#Norswertianolin#C19H18O11#422.0849#NA#KEGG#NA#NA|0.0000114#422.0849#C10095#Tripteroside#C19H18O11#422.0849#NA#KEGG#NA#NA|0.0000114#422.0849#C16979#Isomangiferin#C19H18O11#422.0849#NA#KEGG#NA#NA|0.0000004#422.084911#MJ059640#1,2,6,8-Tetrahydroxyxanthone; 1-O-?-D-Glucopyranoside #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059641#1,2,6,8-Tetrahydroxyxanthone; 8-O-?-D-Glucopyranoside #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059642#1,3,5,6-Tetrahydroxyxanthone; 3-O-?-D-Glucopyranoside #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059643#1,3,5,8-Tetrahydroxyxanthone; 8-O-?-D-Glucopyranoside #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059644#1,3,6,7-Tetrahydroxyxanthone; 6-O-?-D-Glucopyranoside #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059645#2-Glucosyl-1,3,5,6-tetrahydroxyxanthone #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059646#Chrysograyanone #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059647#Dilatatin #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059648#Isomangiferin #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059649#Mangiferin #C19H18O11#422.084911#NA#MeJP#NA#NA|0.0000004#422.084911#MJ059650#Nigricanside #C19H18O11#422.084911#NA#MeJP#NA#NA" +H2O 18.0105647 "0.0000057#18.010559#HMDB02111#Water#H2O#18.010559#NA#HMDB2010#NA#NA|0.0000047#18.01056#HMDB02111#Water#H2O#18.01056#http://www.hmdb.ca/metabolites/HMDB02111#HMDB#NA#NA|0.0000047#18.01056#HMDB02111#Water#H2O#18.01056#HMDB02111#PFEM_hmdb_metabocards_official#NA#NA|0.0000007#18.010564#MJ000004#Water #H2O#18.010564#NA#MeJP#NA#NA|0.0000007#18.010564#MJ000005#H2O #H2O#18.010564#NA#MeJP#NA#NA|0.0000003#18.010565#MetaCyc00008#H2O [H20;hydrogen oxide;water;]#H2O1#18.010565#7732-18-5#metacyc#NA#NA|0.0000353#18.0106#C00001#H2O#H2O#18.0106#NA#KEGG#NA#NA" +C18H45N7O11 535.3181236 "0.0036066#535.314517#MJ078445#Labiatamide A #C29H45NO8#535.314517#NA#MeJP#NA#NA|0.0036066#535.314517#MJ078446#Neoline; O8,O14-Di-Ac, O1-Me #C29H45NO8#535.314517#NA#MeJP#NA#NA|0.0036066#535.314517#MJ078447#Zygadenine; O3-Ac #C29H45NO8#535.314517#NA#MeJP#NA#NA" +Bismuth 209.987659 "0.000604#209.987055#MJ008190#Zinc(II) propanoate #C6H10O4Zn#209.987055#NA#MeJP#NA#NA" +Halothane 98.952389 No_result_found_in_bank_inhouse +"Picolinic acid" 199.951068 "0.003776#199.947292#MJ006975#3-Bromo-4-hydroxybenzaldehyde #C7H5BrO2#199.947292#NA#MeJP#NA#NA|0.003776#199.947292#MJ006976#3-Bromobenzoic acid #C7H5BrO2#199.947292#NA#MeJP#NA#NA" |
b |
diff -r 000000000000 -r be582bcd6585 test-data/out_test2b.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/out_test2b.tabular Thu Oct 04 10:37:14 2018 -0400 |
[ |
@@ -0,0 +1,57 @@ +MASS_Submit DELTA_mass(0.005Da) MASS_Result ENTRY NAME FORMULA MASS PATHWAYS SOURCE MODE TISSUES +422.0849114 0.0024114 422.0825 C00689 alpha,alpha'-Trehalose 6-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C02591 Sucrose 6-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C02995 Maltose 6'-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C04534 6-Phospho-beta-D-glucosyl-(1,4)-D-glucose C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C05396 Lactose 6-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C16688 Sucrose-6-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C16689 poly-cis-Polyprenyl diphosphate longer by one C5 unit C11H22O7P2 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C16690 5-L-Glutamyl-D-glutamyl-peptide C10H16N3O6R 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C16691 DNA 2,6-diamino-5-formamido-3,4-dihydro-4-oxopyrimidine C10H16N5O8P 422.0825 NA KEGG NA NA +422.0849114 0.0024114 422.0825 C18050 beta-D-Fructofuranosyl-alpha-D-mannopyranoside 6F-phosphate C12H23O14P 422.0825 NA KEGG NA NA +422.0849114 0.0023704 422.082541 MJ059635 1,1'-Di-myo-inosityl phosphate C12H23O14P 422.082541 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MJ059636 alpha,alpha'-Trehalose 6-phosphate C12H23O14P 422.082542 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MJ059637 Lactose 6-phosphate C12H23O14P 422.082542 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MJ059638 Maltose 6'-phosphate C12H23O14P 422.082542 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MJ059639 Sugar 1-phosphate C12H23O14P 422.082542 NA MeJP NA NA +422.0849114 0.0023694 422.082542 MetaCyc03484 6-phospho-β-D-glucosyl-(1,4)-D-glucose [] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03485 maltose 6'-phosphate [] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03486 trehalose 6-phosphate [α,α-trehalose 6-phosphate;] C12H23O14P1 422.082542 4484-88-2 metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03487 sucrose-6-phosphate [sucrose 6F-phosphate;sucrose-6-P;] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03488 lactose 6'-phosphate [] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023694 422.082542 MetaCyc03489 6-phospho-β-D-glucosyl-(1,4)-D-glucose [] C12H23O14P1 422.082542 NA metacyc NA NA +422.0849114 0.0023614 422.08255 HMDB01124 Trehalose 6-phosphate C12H23O14P 422.08255 http://www.hmdb.ca/metabolites/HMDB01124 HMDB NA NA +422.0849114 0.0023614 422.08255 HMDB06789 Lactose 6-phosphate C12H23O14P 422.08255 http://www.hmdb.ca/metabolites/HMDB06789 HMDB NA NA +422.0849114 0.0023614 422.08255 HMDB01124 Trehalose 6-phosphate C12H23O14P 422.08255 HMDB01124 PFEM_hmdb_metabocards_official NA NA +422.0849114 0.0023614 422.08255 HMDB06789 Lactose 6-phosphate C12H23O14P 422.08255 HMDB06789 PFEM_hmdb_metabocards_official NA NA +422.0849114 0.0023614 422.08255 HMDB01124 Trehalose 6-phosphate C12H23O14P 422.08255 NA HMDB2010 NA NA +422.0849114 0.0023614 422.08255 HMDB06789 Lactose 6-phosphate C12H23O14P 422.08255 NA HMDB2010 NA NA +422.0849114 0.0000114 422.0849 C10077 Mangiferin C19H18O11 422.0849 NA KEGG NA NA +422.0849114 0.0000114 422.0849 C10089 Norswertianolin C19H18O11 422.0849 NA KEGG NA NA +422.0849114 0.0000114 422.0849 C10095 Tripteroside C19H18O11 422.0849 NA KEGG NA NA +422.0849114 0.0000114 422.0849 C16979 Isomangiferin C19H18O11 422.0849 NA KEGG NA NA +422.0849114 0.0000004 422.084911 MJ059640 1,2,6,8-Tetrahydroxyxanthone; 1-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059641 1,2,6,8-Tetrahydroxyxanthone; 8-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059642 1,3,5,6-Tetrahydroxyxanthone; 3-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059643 1,3,5,8-Tetrahydroxyxanthone; 8-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059644 1,3,6,7-Tetrahydroxyxanthone; 6-O-?-D-Glucopyranoside C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059645 2-Glucosyl-1,3,5,6-tetrahydroxyxanthone C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059646 Chrysograyanone C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059647 Dilatatin C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059648 Isomangiferin C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059649 Mangiferin C19H18O11 422.084911 NA MeJP NA NA +422.0849114 0.0000004 422.084911 MJ059650 Nigricanside C19H18O11 422.084911 NA MeJP NA NA +18.0105647 0.0000057 18.010559 HMDB02111 Water H2O 18.010559 NA HMDB2010 NA NA +18.0105647 0.0000047 18.01056 HMDB02111 Water H2O 18.01056 http://www.hmdb.ca/metabolites/HMDB02111 HMDB NA NA +18.0105647 0.0000047 18.01056 HMDB02111 Water H2O 18.01056 HMDB02111 PFEM_hmdb_metabocards_official NA NA +18.0105647 0.0000007 18.010564 MJ000004 Water H2O 18.010564 NA MeJP NA NA +18.0105647 0.0000007 18.010564 MJ000005 H2O H2O 18.010564 NA MeJP NA NA +18.0105647 0.0000003 18.010565 MetaCyc00008 H2O [H20;hydrogen oxide;water;] H2O1 18.010565 7732-18-5 metacyc NA NA +18.0105647 0.0000353 18.0106 C00001 H2O H2O 18.0106 NA KEGG NA NA +535.3181236 0.0036066 535.314517 MJ078445 Labiatamide A C29H45NO8 535.314517 NA MeJP NA NA +535.3181236 0.0036066 535.314517 MJ078446 Neoline; O8,O14-Di-Ac, O1-Me C29H45NO8 535.314517 NA MeJP NA NA +535.3181236 0.0036066 535.314517 MJ078447 Zygadenine; O3-Ac C29H45NO8 535.314517 NA MeJP NA NA +209.987659 0.000604 209.987055 MJ008190 Zinc(II) propanoate C6H10O4Zn 209.987055 NA MeJP NA NA +98.952389 no results found +199.951068 0.003776 199.947292 MJ006975 3-Bromo-4-hydroxybenzaldehyde C7H5BrO2 199.947292 NA MeJP NA NA +199.951068 0.003776 199.947292 MJ006976 3-Bromobenzoic acid C7H5BrO2 199.947292 NA MeJP NA NA |
b |
diff -r 000000000000 -r be582bcd6585 test-data/out_test_pf1.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/out_test_pf1.tabular Thu Oct 04 10:37:14 2018 -0400 |
b |
@@ -0,0 +1,12 @@ +MASS_Submit DELTA_mass(0.05Da) MASS_Result id mz +154.0499 0 154.0499 584 154.0499 +154.0499 0.0123 154.0622 1845 154.0622 +152.0352 0.0055 152.0297 1212 152.0297 +152.0352 0.003252804903 152.031947195097 1444 152.031947195097 +152.0352 0 152.0352 584 152.0352 +152.0352 0.012 152.0472 1941 152.0472 +152.0352 0.0185 152.0537 1851 152.0537 +152.0352 0.0212 152.0564 1114 152.0564 +152.0352 0.0355 152.0707 1841 152.0707 +123.45 no results found +124.96 no results found \ No newline at end of file |
b |
diff -r 000000000000 -r be582bcd6585 test-data/out_test_pf2a.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/out_test_pf2a.tabular Thu Oct 04 10:37:14 2018 -0400 |
b |
@@ -0,0 +1,7 @@ +id masses BiH_PeakForest_(DELTA_mass(0.005Da)#MASS_Result#id#mz) +C19H18O11 422.0849114 No_result_found_in_bank_inhouse +H2O 18.0105647 No_result_found_in_bank_inhouse +C18H45N7O11 535.3181236 No_result_found_in_bank_inhouse +Bismuth 209.987659 No_result_found_in_bank_inhouse +Halothane 98.952389 No_result_found_in_bank_inhouse +"Picolinic acid" 199.951068 No_result_found_in_bank_inhouse |
b |
diff -r 000000000000 -r be582bcd6585 test-data/out_test_pf2b.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/out_test_pf2b.tabular Thu Oct 04 10:37:14 2018 -0400 |
b |
@@ -0,0 +1,7 @@ +MASS_Submit DELTA_mass(0.005Da) MASS_Result id mz +422.0849114 no results found +18.0105647 no results found +535.3181236 no results found +209.987659 no results found +98.952389 no results found +199.951068 no results found |