<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<tool id="met4j_MetaboRank" name="MetaboRank" version="2.0.0">
  <description>Compute the MetaboRank, a custom personalized PageRank for metabolic network.</description>
  <xrefs>
    <xref type="bio.tools">met4j</xref>
  </xrefs>
  <requirements>
    <container type="singularity">oras://registry.forgemia.inra.fr/metexplore/met4j/met4j-singularity:2.0.0</container>
  </requirements>
  <command detect_errors="exit_code"><![CDATA[sh /usr/bin/met4j.sh networkAnalysis.MetaboRank -i "$sbmlFilePath"
 -s "$seedsFilePath"
#if str($edgeWeightsFilePaths) != 'None':
 -w "$edgeWeightsFilePaths"
#end if
#if str($inputSide) != 'None':
 -sc "$inputSide"
#end if
#if str($maxNbOfIter):
 -max "$maxNbOfIter"
#end if
#if str($tolerance) != 'nan':
 -t "$tolerance"
#end if
#if str($dampingFactor) != 'nan':
 -d "$dampingFactor"
#end if
 -o "$output"
]]></command>
  <inputs>
    <param argument="-i" format="sbml" label="input SBML file: path to network used for computing centrality, in sbml format." name="sbmlFilePath" optional="false" type="data" value=""/>
    <param argument="-s" format="tsv" label="input seeds file: tabulated file containing node of interest ids and weight" name="seedsFilePath" optional="false" type="data" value=""/>
    <param argument="-w" format="tsv" label="input edge weight file: (recommended) path to file containing edges' weights. Will be normalized as transition probabilities" name="edgeWeightsFilePaths" optional="true" type="data" value=""/>
    <param argument="-sc" format="txt" label="input Side compound file" name="inputSide" optional="true" type="data" value=""/>
    <param argument="-max" label="maximal number of iteration" name="maxNbOfIter" optional="true" type="text" value="15000">
      <sanitizer invalid_char="_">
        <valid initial="string.printable"/>
      </sanitizer>
    </param>
    <param argument="-t" label="convergence tolerance" name="tolerance" optional="true" type="float" value="0.001"/>
    <param argument="-d" label="damping factor" name="dampingFactor" optional="true" type="float" value="0.85"/>
  </inputs>
  <outputs>
    <data format="tsv" name="output"/>
  </outputs>
  <tests>
    <test>
      <param name="sbmlFilePath" value="XF_network.sbml"/>
      <param name="seedsFilePath" value="XF_network_C_Seed.tab"/>
      <param name="inputSide" value="XF_network_C_Side.tab"/>
      <output name="output">
        <assert_contents>
          <has_n_lines n="1100"/>
          <has_n_columns n="11"/>
        </assert_contents>
      </output>
    </test>
  </tests>
  <help><![CDATA[Compute the MetaboRank, a custom personalized PageRank for metabolic network.
The MetaboRank takes a metabolic network and a list of compounds of interest, and provide a score of relevance for all of the other compounds in the network.
The MetaboRank can, from metabolomics results, be used to fuel a recommender system highlighting interesting compounds to investigate, retrieve missing identification and drive literature mining.
It is a two dimensional centrality computed from personalized PageRank and CheiRank, with special transition probability and normalization to handle the specificities of metabolic networks.
For convenience, a one dimensional centrality rank is also computed from the highest rank from PageRank or CheiRank, and using lowest rank as tie-breaker.
See publication for more information.]]></help>
  <citations>
    <citation type="doi">10.1093/bioinformatics/bty577</citation>
  </citations>
</tool>
