Skip to content
Snippets Groups Projects
Commit 160db657 authored by Langella Olivier's avatar Langella Olivier
Browse files

fixed mascot parser for single fasta file

parent 2b860768
No related branches found
No related tags found
No related merge requests found
......@@ -447,11 +447,21 @@ MascotDatParser::parsePeptidesLine(const QString &peptide_line)
QString index = header_list[1];
QString value = header_list[2];
QStringList index_list = index.split("_");
QString query_index_str = index_list[0];
unsigned int query_index_number = query_index_str.mid(1).toUInt();
if((value != "-1") &&
(query_index_number != _current_peptide.query_index))
{
saveAndClearPeptide();
}
_current_peptide.query_index = query_index_number;
if(index_list.size() == 3)
{
if(index_list[2] == "db")
{
saveAndClearPeptide();
// q1_p1_db=02
while(value.size() > 0)
{
......@@ -476,9 +486,7 @@ MascotDatParser::parsePeptidesLine(const QString &peptide_line)
else
{
QString query_index = index_list[0];
_current_peptide.query_index = query_index.mid(1).toUInt();
QString peptide_index = index_list[1];
QString peptide_index = index_list[1];
_current_peptide.peptide_index =
peptide_index.mid(1).toUInt();
// q1_p1=0,597.302322,0.997884,2,GAWHK,9,0000000,7.97,0000012000000000000,0,0;"sp|O95006|OR2F2_HUMAN":0:299:303:1
......@@ -698,12 +706,22 @@ MascotDatParser::saveQuery()
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
if(_current_query.query_index > 0)
{
std::vector<PeptideLine> peptide_list =
_query_peptide_results[_current_query.query_index - 1];
savePeptideList(peptide_list, false);
peptide_list =
_decoy_query_peptide_results[_current_query.query_index - 1];
savePeptideList(peptide_list, true);
try
{
std::vector<PeptideLine> peptide_list =
_query_peptide_results[_current_query.query_index - 1];
savePeptideList(peptide_list, false);
peptide_list =
_decoy_query_peptide_results[_current_query.query_index - 1];
savePeptideList(peptide_list, true);
}
catch(pappso::PappsoException &error)
{
throw pappso::PappsoException(
QObject::tr("ERROR saving MASCOT query%1 :\n %2")
.arg(_current_query.query_index)
.arg(error.qwhat()));
}
}
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
}
......@@ -803,14 +821,6 @@ MascotDatParser::savePeptideList(std::vector<PeptideLine> &peptide_list,
// peptide_str << " evalue=" << peptide_evidence.getEvalue() << "
// ionscore=" << ion_score;
if(peptide_line.protein_string_list.size() !=
peptide_line.fasta_file_list.size())
{
throw pappso::PappsoException(
QObject::tr("ERROR (peptide_line.protein_string_list.size() != "
"peptide_line.fasta_file_list.size()) %1")
.arg(peptide_line.protein_string_list.join(",\"")));
}
unsigned int i = 0;
foreach(const QString &str, peptide_line.protein_string_list)
......@@ -834,7 +844,31 @@ MascotDatParser::savePeptideList(std::vector<PeptideLine> &peptide_list,
// qDebug() << __FILE__ << " " << __FUNCTION__<< " " << __LINE__;
ProteinXtp protein;
protein.setAccession(accession);
protein.setFastaFileP(peptide_line.fasta_file_list[i].get());
if(peptide_line.fasta_file_list.size() == 0)
{
if(_fasta_file_list.size() == 1)
{
protein.setFastaFileP(_fasta_file_list[0].get());
}
else
{
throw pappso::PappsoException(
QObject::tr("ERROR no FASTA file"));
}
}
else
{
if(i < peptide_line.fasta_file_list.size())
{
protein.setFastaFileP(peptide_line.fasta_file_list[i].get());
}
else
{
throw pappso::PappsoException(
QObject::tr("ERROR no corresponding FASTA file %1").arg(i));
}
}
if(is_decoy)
{
protein.setIsDecoy(true);
......@@ -904,7 +938,8 @@ MascotDatParser::setVariableModifications(PeptideXtpSp &peptide_sp,
for(unsigned int i = 0; i < variable_modifications_string.size(); i++)
{
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__ << " "
<< variable_modifications_string.mid(i, 1).toUInt();
<< variable_modifications_string.mid(i, 1).toUInt() << " "
<< variable_modifications_string;
if(variable_modifications_string.mid(i, 1).toUInt() > 0)
{
MascotModification mascot_modification = _delta_modification_list
......@@ -913,10 +948,14 @@ MascotDatParser::setVariableModifications(PeptideXtpSp &peptide_sp,
{
if(i > 0)
{
i = i - 1;
peptide_sp.get()->addAaModification(
mascot_modification.modification, i - 1);
}
else
{
peptide_sp.get()->addAaModification(
mascot_modification.modification, i);
}
peptide_sp.get()->addAaModification(
mascot_modification.modification, i);
}
catch(pappso::PappsoException &error)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment