diff --git a/src/core/proteinxtp.cpp b/src/core/proteinxtp.cpp index 2f50e84cdb323f196be95a17902409143d639b42..c5f99aea3d34e314e5fade52285978c26431e183 100644 --- a/src/core/proteinxtp.cpp +++ b/src/core/proteinxtp.cpp @@ -187,7 +187,7 @@ void ProteinXtp::parseAccession2dbxref() { for (unsigned int i=0; i < access_list.size(); i++) { accession = access_list.at(i); - qDebug() << "ProteinXtp::parseAccession2dbxref accession " << accession; + //qDebug() << "ProteinXtp::parseAccession2dbxref accession " << accession; if (atg.indexIn(accession, 0) != -1) { QStringList temp = accession.split("."); _dbxref_list.push_back(DbXref(ExternalDatabase::AGI_LocusCode, temp.at(0))); @@ -195,13 +195,13 @@ void ProteinXtp::parseAccession2dbxref() { } if (swiss_prot.indexIn(accession, 0) != -1) { - qDebug() << "ProteinXtp::parseAccession2dbxref accession SwissProt " << accession; + //qDebug() << "ProteinXtp::parseAccession2dbxref accession SwissProt " << accession; _dbxref_list.push_back(DbXref(ExternalDatabase::SwissProt, accession)); continue; } if (trembl.indexIn(accession, 0) != -1) { - qDebug() << "ProteinXtp::parseAccession2dbxref accession TrEMBL " << accession; + //qDebug() << "ProteinXtp::parseAccession2dbxref accession TrEMBL " << accession; _dbxref_list.push_back(DbXref(ExternalDatabase::TrEMBL, accession)); continue; } @@ -236,7 +236,7 @@ void ProteinXtp::parseAccession2dbxref() { } - qDebug() << "ProteinXtp::parseAccession2dbxref end" ; + //qDebug() << "ProteinXtp::parseAccession2dbxref end" ; } diff --git a/src/input/mascot/mascotdatparser.cpp b/src/input/mascot/mascotdatparser.cpp index d6d4209e53d85a5a957fc5da55cf2639d558efec..51d69a9efd512961a6b8f0c50a5039dab9783e97 100644 --- a/src/input/mascot/mascotdatparser.cpp +++ b/src/input/mascot/mascotdatparser.cpp @@ -65,6 +65,12 @@ void MascotDatParser::parse(QIODevice * in_stream) { parseHeaderLine( mime_parser.getCurrentTextStream().readLine()); } } + else if (mime_parser.getCurrentFileName() == "masses") { + while(!mime_parser.getCurrentTextStream().atEnd()) { + parseMassesLine( mime_parser.getCurrentTextStream().readLine()); + } + + } else if (mime_parser.getCurrentFileName() == "summary") { while(!mime_parser.getCurrentTextStream().atEnd()) { parseSummaryLine( mime_parser.getCurrentTextStream().readLine()); @@ -99,11 +105,39 @@ void MascotDatParser::parse(QIODevice * in_stream) { } saveQuery(); } + } mime_parser.close(); qDebug() << "MascotDatParser::parse end"; } + +void MascotDatParser::parseMassesLine(const QString & masses_line) { + qDebug() << __FILE__ << " " << __FUNCTION__<< " " << __LINE__ << " " << masses_line; + if (_regexp_header_line.exactMatch(masses_line)) { + QStringList header_list = _regexp_header_line.capturedTexts(); +// C_term=17.002740 +//N_term=1.007825 +//delta1=15.994915,Oxidation (M) + if (header_list[1].startsWith("delta")) { + QStringList delta_mod_list = header_list[2].split(","); + pappso::pappso_double mass = delta_mod_list[0].toDouble(); + //_number_of_residues = header_list[5].toUInt(); + } + +//NeutralLoss1=0.000000 +//NeutralLoss1_master=63.998285 +//FixedMod1=57.021464,Carbamidomethyl (C) + if (header_list[1].startsWith("FixedMod")) { + QStringList fixed_mod_list = header_list[2].split(","); + pappso::pappso_double mass = fixed_mod_list[0].toDouble(); + //_number_of_residues = header_list[2].toUInt(); + } + +//FixedModResidues1=C + } +} + void MascotDatParser::parseProteinLine(const QString & protein_line) { qDebug() << __FILE__ << " " << __FUNCTION__<< " " << __LINE__ << " " << protein_line; ProteinXtpSp sp_xtp_protein; @@ -224,14 +258,14 @@ void MascotDatParser::parsePeptidesLine(const QString & peptide_line) { //q1_p1=0,597.302322,0.997884,2,GAWHK,9,0000000,7.97,0000012000000000000,0,0;"sp|O95006|OR2F2_HUMAN":0:299:303:1 int position = value.indexOf(";\"", 0); QString peptide_string = value.mid(0, position); - qDebug() << "peptide_string=" << peptide_string; + //qDebug() << "peptide_string=" << peptide_string; _current_peptide.peptide_string_list = peptide_string.split(","); QString protein_string = value.mid(position+2); - qDebug() << "protein_string=" << protein_string; + //qDebug() << "protein_string=" << protein_string; //"sp|Q9Y2I7|FYV1_HUMAN":0:670:675:2,"tr|E9PDH4|E9PDH4_HUMAN":0:614:619:2 _current_peptide.protein_string_list = protein_string.split(",\""); } @@ -266,6 +300,7 @@ void MascotDatParser::parsePeptidesLine(const QString & peptide_line) { q856_p9_terms=-,L:-,V q856_p9_subst=1,X,W */ + } } @@ -415,6 +450,20 @@ void MascotDatParser::savePeptideList(std::vector< PeptideLine> & peptide_list, //parse and save for(PeptideLine & peptide_line:peptide_list) { + /* + * + 0 setMissedCleavages(Integer.parseInt(st.nextToken())); + 1 setPeptideMr(Double.parseDouble(st.nextToken())); + 2 setDeltaMass(Double.parseDouble(st.nextToken())); + 3 setNumberOfIonsMatched(Integer.parseInt(st.nextToken())); + 4 setSequence(st.nextToken()); + 5 setPeaksUsedFromIons1(Integer.parseInt(st.nextToken())); + 6 setVariableModificationsArray(st.nextToken()); + 7 setIonsScore(Double.parseDouble(st.nextToken())); + 8 parseIonSeries(st.nextToken()); + 9 setPeaksUsedFromIons2(Integer.parseInt(st.nextToken())); + 10 setPeaksUsedFromIons3(Integer.parseInt(st.nextToken())); + */ pappso::pappso_double ion_score = peptide_line.peptide_string_list.at(7).toDouble(); peptide_evidence.setParam(PeptideEvidenceParam::mascot_score, QVariant(ion_score)); @@ -439,6 +488,9 @@ void MascotDatParser::savePeptideList(std::vector< PeptideLine> & peptide_list, PeptideXtpSp peptide_sp; peptide_sp = PeptideXtp(peptide_str).makePeptideXtpSp(); + //variable modifications : + setVariableModifications(peptide_sp, peptide_line.peptide_string_list.at(6)); + peptide_evidence.setPeptideXtpSp(_p_project->getPeptideStore().getInstance(peptide_sp)); @@ -456,7 +508,7 @@ void MascotDatParser::savePeptideList(std::vector< PeptideLine> & peptide_list, if (is_decoy) { accession = QString("%1|reversed").arg(accession); } - qDebug() << "accession=" << accession; + //qDebug() << "accession=" << accession; QStringList position_list = str.mid(position+2).split(":"); if (position_list.size() != 4) { throw pappso::PappsoException(QObject::tr("ERROR position_list.size() != 4 %1").arg(str)); @@ -501,3 +553,6 @@ pappso::pappso_double MascotDatParser::getEvalueExperimental(pappso::pappso_doub pappso::pappso_double eval = (ion_score - summary_line.plug_hole) / (pappso::pappso_double)10; eval = confidence_interval / pow((pappso::pappso_double)10, eval); } + +void MascotDatParser::setVariableModifications(PeptideXtpSp & peptide_sp, QString variable_modifications_string) { +} diff --git a/src/input/mascot/mascotdatparser.h b/src/input/mascot/mascotdatparser.h index 42bf445d3c5029918237adf659df95381fd9fcac..592727de0f14231103fdd8fe3063032738a7496b 100644 --- a/src/input/mascot/mascotdatparser.h +++ b/src/input/mascot/mascotdatparser.h @@ -45,8 +45,10 @@ private: void parsePeptidesLine(const QString & peptide_line); void parseQueryLine(const QString & query_line); void parseSummaryLine(const QString & summary_line); + void parseMassesLine(const QString & masses_line); void saveQuery(); void saveAndClearPeptide(); + void setVariableModifications(PeptideXtpSp & peptide_sp, QString variable_modifications_string);