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 |