Newer
Older
#include <pappsomspp/exception/exceptionnotfound.h>
#include <pappsomspp/mass_range.h>
const QUrl
Utils::getOlsUrl(QString psimod_accession)
{
QString iri(QString("http://purl.obolibrary.org/obo/%1")
.arg(psimod_accession.replace(":", "_")));
QUrl url(
QString("http://www.ebi.ac.uk/ols/ontologies/mod/terms?iri=%1").arg(iri));
return url;
const QString
Utils::getXmlDouble(pappso::pappso_double number)
{
return QString::number(number, 'g', 6);
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
const QString
Utils::getIdentificationEngineName(IdentificationEngine engine)
{
QString engine_name;
switch(engine)
{
case IdentificationEngine::XTandem:
engine_name = "X!Tandem";
break;
case IdentificationEngine::mascot:
engine_name = "Mascot";
break;
case IdentificationEngine::peptider:
engine_name = "Peptider";
break;
case IdentificationEngine::OMSSA:
engine_name = "OMSSA";
break;
case IdentificationEngine::SEQUEST:
engine_name = "Sequest";
break;
case IdentificationEngine::Comet:
engine_name = "Comet";
break;
case IdentificationEngine::Morpheus:
engine_name = "Morpheus";
break;
case IdentificationEngine::MSGFplus:
engine_name = "MS-GF+";
break;
}
return engine_name;
}
const QString
Utils::getDatabaseName(ExternalDatabase database)
{
QString database_name;
switch(database)
{
case ExternalDatabase::AGI_LocusCode:
database_name = "AGI_LocusCode";
break;
case ExternalDatabase::NCBI_gi:
database_name = "NCBI_gi";
break;
case ExternalDatabase::SwissProt:
database_name = "Swiss-Prot";
break;
case ExternalDatabase::TrEMBL:
database_name = "TrEMBL";
break;
case ExternalDatabase::ref:
database_name = "ref";
break;
}
std::vector<std::pair<pappso::pappso_double, size_t>>
Utils::getHistogram(std::vector<pappso::pappso_double> data_values,
unsigned int number_of_class)
{
std::vector<std::pair<pappso::pappso_double, size_t>> histogram(
number_of_class + 1);
try
{
qDebug() << "Utils::getHistogram begin";
std::sort(data_values.begin(), data_values.end());
pappso::pappso_double min = *data_values.begin();
pappso::pappso_double max = *(data_values.end() - 1);
pappso::pappso_double total = std::abs(max - min);
pappso::pappso_double offset =
(total / (pappso::pappso_double)number_of_class);
// qDebug() << "Utils::getHistogram number_of_class offset=" << offset;
for(unsigned int i = 0; i < histogram.size(); i++)
{
histogram[i] = std::pair<pappso::pappso_double, size_t>{
(min + (offset * i) + (offset / 2)), 0};
// qDebug() << "Utils::getHistogram x=" << histogram[i].first;
// qDebug() << "Utils::getHistogram data_values";
for(pappso::pappso_double value : data_values)
{
// qDebug() << "Utils::getHistogram value=" << value;
unsigned int i = std::abs((value - min) / offset);
// qDebug() << "Utils::getHistogram i=" << i << " size=" <<
// histogram.size();
histogram.at(i).second++;
catch(std::exception exception_std)
{
throw pappso::PappsoException(
QObject::tr("Utils::getHistogram error %1").arg(exception_std.what()));
qDebug() << "Utils::getHistogram end";
return histogram;
pappso::AaModificationP
Utils::guessAaModificationPbyMonoisotopicMassDelta(pappso::mz mass)
{
pappso::PrecisionP precision = pappso::Precision::getDaltonInstance(0.01);
pappso::AaModificationP oxidation =
pappso::AaModification::getInstance("MOD:00719");
if(pappso::MassRange(oxidation->getMass(), precision).contains(mass))
{
return oxidation;
pappso::AaModificationP iodoacetamide =
pappso::AaModification::getInstance("MOD:00397");
if(pappso::MassRange(iodoacetamide->getMass(), precision).contains(mass))
{
return iodoacetamide;
pappso::AaModificationP acetylated =
pappso::AaModification::getInstance("MOD:00408");
if(pappso::MassRange(acetylated->getMass(), precision).contains(mass))
{
return acetylated;
pappso::AaModificationP phosphorylated =
pappso::AaModification::getInstance("MOD:00696");
if(pappso::MassRange(phosphorylated->getMass(), precision).contains(mass))
{
return phosphorylated;
pappso::AaModificationP ammonia =
pappso::AaModification::getInstance("MOD:01160");
if(pappso::MassRange(ammonia->getMass(), precision).contains(mass))
{
return ammonia;
pappso::AaModificationP dehydrated =
pappso::AaModification::getInstance("MOD:00704");
if(pappso::MassRange(dehydrated->getMass(), precision).contains(mass))
{
return dehydrated;
pappso::AaModificationP dimethylated =
pappso::AaModification::getInstance("MOD:00429");
if(pappso::MassRange(dimethylated->getMass(), precision).contains(mass))
{
return dimethylated;
pappso::AaModificationP dimethylated_medium =
pappso::AaModification::getInstance("MOD:00552");
if(pappso::MassRange(dimethylated_medium->getMass(), precision)
.contains(mass))
{
return dimethylated_medium;
pappso::AaModificationP dimethylated_heavy =
pappso::AaModification::getInstance("MOD:00638");
if(pappso::MassRange(dimethylated_heavy->getMass(), precision).contains(mass))
{
return dimethylated_heavy;
pappso::AaModificationP DimethylpyrroleAdduct =
pappso::AaModification::getInstance("MOD:00628");
if(pappso::MassRange(DimethylpyrroleAdduct->getMass(), precision)
.contains(mass))
{
return DimethylpyrroleAdduct;
// modification not found, creating customized mod :
return pappso::AaModification::getInstanceCustomizedMod(mass);
throw pappso::ExceptionNotFound(
QObject::tr("Utils::guessAaModificationPbyMonoisotopicMassDelta => "
"modification not found for mass %1")
.arg(mass));
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
pappso::AaModificationP
Utils::translateAaModificationFromUnimod(const QString &unimod_accession)
{
if(unimod_accession == "UNIMOD:1")
{
return pappso::AaModification::getInstance("MOD:00394");
}
if(unimod_accession == "UNIMOD:4")
{
return pappso::AaModification::getInstance("MOD:00397");
}
if(unimod_accession == "UNIMOD:27")
{
return pappso::AaModification::getInstance("MOD:00420");
}
// UNIMOD:28 => MOD:00040
if(unimod_accession == "UNIMOD:28")
{
return pappso::AaModification::getInstance("MOD:00040");
}
if(unimod_accession == "UNIMOD:35")
{
return pappso::AaModification::getInstance("MOD:00425");
}
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__ << " "
<< unimod_accession << " not found";
return nullptr;
}