Matrix Science header

config_fragrules.pl

Read in the fragmentation_rules file.

#!/usr/local/bin/perl
##############################################################################
# file: config_fragrules.pl                                                  #
# 'msparser' toolkit example code                                            #
##############################################################################
# COPYRIGHT NOTICE                                                           #
# Copyright 1998-2010 Matrix Science Limited  All Rights Reserved.           #
#                                                                            #
##############################################################################
#     $Source: parser/examples/test_perl/config_fragrules.pl $ #
#     $Author: villek@matrixscience.com $                                                      #
#       $Date: 2018-07-30 16:23:53 +0100 $                                         #
#   $Revision: 1b450440f9c97e1e41d0fc6016a27d68951d4532 | MSPARSER_REL_2_8_1-0-gea32989045 $                                                         #
# $NoKeywords::                                                            $ #
##############################################################################
use strict;
##############################################################################

use msparser;

if (!defined($ARGV[0])) {
    print <<EOF;
The location of 'fragmentation_rules' file has to be specified as a parameter.
The location should either be the full path to the 'fragmentation_rules' file
or a URL to a Mascot server - e.g. http://mascot-server/mascot/cgi
EOF
    exit 1;
}

# Note: $cs must not be lexically scoped; you need to keep it in scope
# for as long as you use $file. See "Using the toolkit from Perl, Java and 
# Python" in Mascot Parser manual.
my ($file, $cs);

# A sessionID can optionally be passed as the second parameter.
# This will only be required if the 'file' is a URL.
if (defined($ARGV[1])) {
    $cs = new msparser::ms_connection_settings;
    $cs->setSessionID($ARGV[1]);
    $file = new msparser::ms_fragrulesfile($ARGV[0], $cs);
} else {
    $file = new msparser::ms_fragrulesfile($ARGV[0]);
}

if (!$file->isValid) {
    print "There are errors. Cannot continue. The last error description:\n";
    print $file->getLastErrorString(), "\n";
    exit 1;
}

my $n = $file->getNumberOfInstruments;
print $n, " instruments are configured:\n";

for my $i (0 .. $n-1) {
    print $file->getInstrumentName($i), "\n";
}

# Now change ESI-QUAD-TOF.
my $instrument = $file->getInstrumentByName("ESI-QUAD-TOF");
$instrument->setSeriesUsed(23, 1);  # Add v series
$file->updateInstrumentByName("ESI-QUAD-TOF", $instrument);

# And delete MALDI-QIT-TOF
$file->deleteInstrumentByName("MALDI-QIT-TOF");

# Finally, save the file under a new name
$file->setFileName($ARGV[0] . ".new");
$file->save_file;

if (!$file->isValid) {
    print "Failed to save: ", $file->getLastErrorString, "\n";
} else {
    print $ARGV[0], ".new now has ", $file->getNumberOfInstruments(), " instruments configured.\n";
}

my $firstSeries = msparser::ms_fragmentationrules::getFirstSeries();
my $lastSeries  = msparser::ms_fragmentationrules::getLastSeries();

print "First series: ", $firstSeries, "\n";
print "Last series : ", $lastSeries , "\n";

for my $i ($firstSeries .. $lastSeries) {
    print "--------- $i ---------\n";
    print msparser::ms_fragmentationrules::getSeriesName($i), "\n";
    print msparser::ms_fragmentationrules::getSeriesDescription ($i), "\n";
}


=pod

Running the program as 

perl -I../bin config_fragfules.pl ../config/fragmentation_rules

will give the following output under Mascot Server 2.3:

14 instruments are configured:
Default
ESI-QUAD-TOF
MALDI-TOF-PSD
ESI-TRAP
ESI-QUAD
ESI-FTICR
MALDI-TOF-TOF
ESI-4SECTOR
FTMS-ECD
ETD-TRAP
MALDI-QUAD-TOF
MALDI-QIT-TOF
MALDI-ISD
CID+ETD
../config/fragmentation_rules.new now has 13 instruments configured
First series: 4
Last series : 25
--------- 4 ---------
immonium
immonium
--------- 5 ---------
a
a series
--------- 6 ---------
a*
a - NH3 if a significant and fragment includes RKNQ
--------- 7 ---------
a0
a - H2O if a significant and fragment includes STED
--------- 8 ---------
b
b series
--------- 9 ---------
b*
b - NH3 if b significant and fragment includes RKNQ
--------- 10 ---------
b0
b - H2O if b significant and fragment includes STED
--------- 11 ---------
c
c series
--------- 12 ---------
x
x series
--------- 13 ---------
y
y series
--------- 14 ---------
y*
y - NH3 if y significant and fragment includes RKNQ
--------- 15 ---------
y0
y - H2O if y significant and fragment includes STED
--------- 16 ---------
z
z series
--------- 17 ---------
yb
internal yb < 700 Da
--------- 18 ---------
ya
internal ya < 700 Da
--------- 19 ---------
y must be significant
y or y++ must be significant
--------- 20 ---------
y must be highest score
y or y++ must be highest scoring series
--------- 21 ---------
z+1
z+1 series
--------- 22 ---------
d
d and d' series
--------- 23 ---------
v
v series
--------- 24 ---------
w
w and w' series
--------- 25 ---------
z+2
z+2 series


=cut


Copyright © 2022 Matrix Science Ltd.  All Rights Reserved. Generated on Thu Mar 31 2022 01:12:29