Table of Contents

Automatic Mode

Introduction

This mode has no user interface. The automatic mode allow to execute a set of operations, defined in a script file, on a specific Mascot® identification result. The script file is the same as the one used in batch mode. See IRMa batch documentation.

Running auotIRMa

An exemple is done in the runautoIRMa.bat file under <IRMa_HOME>

To run the autoIRMa on a Mascot® identification result :

java -Djava.library.path=./lib -Xms256m -Xmx512m -cp IRMa-<version>.jar cea.irma.autoIRMa <resultURL> <mascotDatPath> -s <scriptFile>

Where

Integration into Mascot Daemon®

The main purpose of this mode is that it permits IRMa integration into existing, automatic, workflows such as Mascot Daemon®.

VBScripts

IRMa comes with three Visual Basic scripts (<IRMa_HOME>/VBscripts) to allow to run autoIRMa using wscript so from Mascot Daemon® :

:!: This VBScript defines a variable indicating the <IRMa_HOME> directory and an other variable indicating where Mascot® .dat files are stored. This latest directory should be accessible from the Mascot Daemon® Service Owner.
:!: -Xms argument should NOT be specified in the VBScript !!

Integration

IRMa can be invoked, as an external process, by the Mascot Daemon® software, which controls raw data pre-processing and Mascot® searches. When defining a new Mascot Daemon® task, you can invoke a script provided in IRMa distribution.

  1. Select “External Process in Actions group
  2. Enter the following command in the After each search section, in order to be able to validate each Mascot® search result.
  wscript "[Path\To\IRMaVBScripts]\master.vbs" /peakfile:"<cachedpeaklist>" 
     /resultfile:"<resultfilename>" 
     /script:"[Path\To\IRMaScripts]\script_TEST_DB.xml"

Scripts

Scripts are written in XML format. XML format That is, very simply, a set of blocs (nested or successive) with a opening and closing tag…

<script> // Opening tag for script bloc
   ... // bloc content
</script> // closing tag for script bloc

Every script should be described in a script bloc, as shown above. A script is a set of actions corresponding to IRMa operation to be executed. The execution order of these operations will be identical to the action description order in the script file.

Mascot result parse

This opération is only possible on Mascot identification and not on previously saved IRMa project (.irma). This action correspond to the execution of Mascot parse in IRMa using same parameters as those entered in Report Settings/Parser Properties dialog

Parse bloc is defined as follow : parse tag, followed by a parameters tag which contains all parameters to be used. Each parameter is described in a parameter tag and a name and value should be specified.

Parse bloc example:

   <parse>
    <parameters>
      <parameter name="is.hit.count.auto">
        <value class="boolean">true</value>
      </parameter>
      <parameter name="protein.cutoff">
        <value class="double">0.05</value>
      </parameter>
      <parameter name="ions.score.cutoff">
        <value class="int">0</value>
      </parameter>
      <parameter name="subset.threshold">
        <value class="double">0.5</value>
      </parameter>
      <parameter name="read.sequence">
        <value class="string">masters</value>
      </parameter>
    </parameters>
  </parse>

Available parameters:

Peptide specific and score filter

  <delete.Proteins>
    <parameters>
      <parameter name="is.freeze.fp.analysis">
        <value class="boolean">true</value>
      </parameter>
      <parameter name="peptides.count">
        <value class="int">1</value>
      </parameter>
      <parameter name="peptides.score">
        <value class="int">20</value>
      </parameter>
      <parameter name="peptides.unicity">
        <value class="boolean">true</value>
      </parameter>
    </parameters>
  </delete.Proteins>

Single match per query filter

Nota : no parameter to set.

  <filter.PSM>
    <parameter name="filter.class.name">
      <value class="string">cea.irma.model.validation.SingleMatchPerQueryFilter</value>
    </parameter>
  </filter.PSM>

FPR seeker filter

See inside xml below to find comments:

  <filter.FPR.Seeker>
    <parameters>
      <parameter name="seek.fpr.with.score.and.rank.filter">
        <value class="boolean">true</value> <!-- true : the SaR filter will be used. Set to false if you juste want DM to be used. If both are set to false, the default one (SaR) will be used-->
      </parameter>
      <parameter name="seek.fpr.with.delta.mass.filter">
        <value class="boolean">true</value> <!-- true : the DM filter will be used. Set to false if you juste want SaR to be used. If both are set to false, the default one (SaR) will be used-->
      </parameter>
      <parameter name="sought.fpr.in.percentage">
        <value class="double">1.0</value>
      </parameter>
    </parameters>
  </filter.FPR.Seeker>

Master protein filter

:!: If the master protein change is leading to an ambiguous peptide suppression (because the new master protein don't have match with it), the script will suppress it. It's a different behaviour than manual master protein changing in IRMa application, where a dialog ask the user to decide what to do.
:!: The “filter.master.rule.operation” parameter can be :

Simple Rule example:

<filter.Master>
    <rules.list>
      <rule name="R1">
        <parameter name="filter.master.rule.operation">
          <value class="rule.operation">ENDS_WITH_RULE</value>
        </parameter>
        <parameter name="filter.master.applies.to.description">
          <value class="boolean">false</value>
        </parameter>
        <parameter name="filter.master.applies.to.accession">
          <value class="boolean">true</value>
        </parameter>
        <parameter name="filter.master.searched.string">
          <value class="string">_HUMAN</value>
        </parameter>
        <parameter name="filter.master.rule.name">
          <value class="string">R1</value>
        </parameter>
      </rule>
    </rules.list>
    <rules.composition value="R1"/>
  </filter.Master>

Dual rules example:

 <filter.Master>
    <rules.list>
      <rule name="R1">
        <parameter name="filter.master.rule.operation">
          <value class="rule.operation">ENDS_WITH_RULE</value>
        </parameter>
        <parameter name="filter.master.applies.to.description">
          <value class="boolean">false</value>
        </parameter>
        <parameter name="filter.master.applies.to.accession">
          <value class="boolean">true</value>
        </parameter>
        <parameter name="filter.master.searched.string">
          <value class="string">_HUMAN</value>
        </parameter>
        <parameter name="filter.master.rule.name">
          <value class="string">R1</value>
        </parameter>
      </rule>
      <rule name="R2">
        <parameter name="filter.master.rule.operation">
          <value class="rule.operation">NOT_CONTAINS_RULE</value>
        </parameter>
        <parameter name="filter.master.applies.to.description">
          <value class="boolean">true</value>
        </parameter>
        <parameter name="filter.master.applies.to.accession">
          <value class="boolean">false</value>
        </parameter>
        <parameter name="filter.master.searched.string">
          <value class="string">tr</value>
        </parameter>
        <parameter name="filter.master.rule.name">
          <value class="string">R2</value>
        </parameter>
      </rule>
    </rules.list>
    <rules.composition value="R1 and R2"/>
  </filter.Master>
 

MGF Export

<export.MGF baseFilePath="Path/to/export/directory" />

Database Export

  <export.DB dbVersion="E">
    <config>
      <parameters>
        <parameter name="db.export.user">
          <value class="string">username</value>
        </parameter>
        <parameter name="db.export.pswd">
          <value class="string">passwd</value>
        </parameter>
        <parameter name="db.export.driver">
          <value class="string">org.postgresql.Driver</value>
        </parameter>
        <parameter name="db.export.dbname">
          <value class="string">MSIdb_Name</value>
        </parameter>
        <parameter name="db.export.url">
          <value class="string">jdbc:postgresql://DB_Server_Address:DB_Server_Port/MSIdb_Name</value>
        </parameter>
        <parameter name="db.export.unassigned.peptides">
          <value class="boolean">false</value>
        </parameter>
        <parameter name="db.export.unassigned.queries">
          <value class="boolean">false</value>
        </parameter>
      </parameters>
    </config>
  </export.DB>