Matrix Science header

config_modfile.cpp

Read in the modifications file - modfile.

/*
##############################################################################
# file: config_modfile.cpp                                                   #
# 'msparser' toolkit example code                                            #
##############################################################################
# COPYRIGHT NOTICE                                                           #
# Copyright 1998-2005 Matrix Science Limited  All Rights Reserved.           #
#                                                                            #
##############################################################################
#    $Source: parser/examples/test_cxx/config_modfile.cpp $ #
#     $Author: villek@matrixscience.com $                                                      #
#       $Date: 2018-07-30 16:23:53 +0100 $                                         #
#   $Revision: 1b450440f9c97e1e41d0fc6016a27d68951d4532 | MSPARSER_REL_2_8_1-0-gea32989045 $                                                         #
# $NoKeywords::                                                            $ #
##############################################################################
*/


#include "msparser.hpp"

#include <iostream>


// All the classes are part of the matrix_science namespace
using namespace matrix_science;

int main(int argc, char * argv[])
{
    if ( argc < 2 )
    {
        std::cout << "The location of modifications file has to be specified as a parameter" << std::endl;
        std::cout << "The location should either be the full path to the modifications file" << std::endl;
        std::cout << "or a URL to a Mascot server - e.g. http://mascot-server/mascot/cgi" << std::endl;
        return 1;
    }

    // A sessionID can optionally be passed as the second parameter
    // This will only be required if the 'file' is a URL
    ms_connection_settings cs;
    if (argc > 2) 
    {
        cs.setSessionID(argv[2]);
    }

    // we need ms_masses class instance
    // in practice, it has to be also read from a disc file
    // but, for simplicity, we will use default masses
    ms_masses massesFile;

    ms_modfile file(argv[1], &massesFile, false, &cs);

    if ( !file.isValid() )
    {
        std::cout << "There are errors. Cannot continue. The last error description:" << std::endl;
        std::cout << file.getLastErrorString() << std::endl;
        return 1;
    }

    int n = file.getNumberOfModifications();
    std::cout << "There are " << n << " modifications configured:" << std::endl;

    // now get'em all!
    int i = 0;
    for(i=0; i < n; i++)
    {
        std::cout << file.getModificationByNumber(i)->getTitle() << std::endl;
    }

    // Now change Acetyl (K)
    ms_modification mod = *file.getModificationByName("Acetyl (K)");
    mod.setHidden(true);
    file.updateModificationByName("Acetyl (K)", mod);

    // And delete Methyl (R)
    file.deleteModificationByName("Methyl (R)");

    //Finally, save the file under a new name - but only if not http:
    if (strncmp("http:", argv[1], 5) != 0) {
        std::string filename = argv[1];
        filename +=  ".new";
        file.setFileName(filename.c_str());
        file.save_file();
    }
    std::cout << "There are now " << file.getNumberOfModifications() << " modifications configured:" << std::endl;

    return 0;
}


/*

will give the output, for instance: 


# config_modfile ../config/mod_file

There are 12 modifications configured:
Acetyl (N-term)
Acetyl (K)
Acetyl/Methyl (K)
Propionyl/Methyl (K)
Methyl (R)
Dimethyl (R)
Succininyl (K)
Succininyl+Methyl (K)
Biotinylated (N-term)
Biotinylated (K)
Carbamidomethyl (C)
Carbamyl (N-term)

*/

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