本文整理汇总了C++中PeakSpectrum::push_back方法的典型用法代码示例。如果您正苦于以下问题:C++ PeakSpectrum::push_back方法的具体用法?C++ PeakSpectrum::push_back怎么用?C++ PeakSpectrum::push_back使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PeakSpectrum
的用法示例。
在下文中一共展示了PeakSpectrum::push_back方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getCIDSpectrumLight_
void CompNovoIdentificationBase::getCIDSpectrumLight_(PeakSpectrum & spec, const String & sequence, DoubleReal prefix, DoubleReal suffix)
{
static DoubleReal h2o_mass = EmpiricalFormula("H2O").getMonoWeight();
Peak1D p;
DoubleReal b_pos(0.0 + prefix);
DoubleReal y_pos(h2o_mass + suffix);
for (Size i = 0; i != sequence.size() - 1; ++i)
{
char aa(sequence[i]);
b_pos += aa_to_weight_[aa];
char aa2(sequence[sequence.size() - i - 1]);
y_pos += aa_to_weight_[aa2];
if (b_pos > min_mz_ && b_pos < max_mz_)
{
p.setPosition(b_pos + Constants::PROTON_MASS_U);
p.setIntensity(1.0f);
spec.push_back(p);
}
if (y_pos > min_mz_ && y_pos < max_mz_)
{
p.setPosition(y_pos + Constants::PROTON_MASS_U);
p.setIntensity(1.0f);
spec.push_back(p);
}
}
spec.sortByPosition();
return;
}
示例2: windowMower_
void CompNovoIdentificationBase::windowMower_(PeakSpectrum & spec, DoubleReal windowsize, Size no_peaks)
{
PeakSpectrum copy(spec);
vector<Peak1D> to_be_deleted;
for (Size i = 0; i < spec.size(); ++i)
{
PeakSpectrum sub_spec;
bool end(false);
for (Size j = i; spec[j].getPosition()[0] - spec[i].getPosition()[0] < windowsize; )
{
sub_spec.push_back(spec[j]);
if (++j == spec.size())
{
end = true;
break;
}
}
sub_spec.sortByIntensity(true);
for (Size k = no_peaks; k < sub_spec.size(); ++k)
{
Peak1D p(sub_spec[k]);
to_be_deleted.push_back(p);
}
if (end)
{
break;
}
}
spec.clear(false);
for (PeakSpectrum::ConstIterator it = copy.begin(); it != copy.end(); ++it)
{
if (find(to_be_deleted.begin(), to_be_deleted.end(), *it) == to_be_deleted.end())
{
spec.push_back(*it);
}
}
spec.sortByPosition();
}
示例3: main_
//.........这里部分代码省略.........
const Residue& mod = aaseq.getResidue(i);
for (Size s = 0; s < fixed_modifications.size(); ++s)
{
if (mod.getOneLetterCode() == mdb->getModification(fixed_modifications[s]).getOrigin() && fixed_modifications[s] != mod.getModification())
{
fixed_modifications_ok = false;
break;
}
}
}
}
//variable modifications
if (aaseq.isModified() && (!variable_modifications.empty()))
{
for (Size i = 0; i < aaseq.size(); ++i)
{
if (aaseq.isModified(i))
{
const Residue& mod = aaseq.getResidue(i);
for (Size s = 0; s < variable_modifications.size(); ++s)
{
if (mod.getOneLetterCode() == mdb->getModification(variable_modifications[s]).getOrigin() && variable_modifications[s] != mod.getModification())
{
variable_modifications_ok = false;
break;
}
}
}
}
}
if (variable_modifications_ok && fixed_modifications_ok)
{
PeptideIdentification& translocate_pid = *i;
librar.getPeptideIdentifications().push_back(translocate_pid);
librar.setPrecursors(s->getPrecursors());
//library entry transformation
for (UInt l = 0; l < s->size(); ++l)
{
Peak1D peak;
if ((*s)[l].getIntensity() > remove_peaks_below_threshold)
{
const String& info = (*s)[l].getMetaValue("MSPPeakInfo");
if (info[0] == '?')
{
peak.setIntensity(sqrt(0.2 * (*s)[l].getIntensity()));
}
else
{
peak.setIntensity(sqrt((*s)[l].getIntensity()));
}
peak.setMZ((*s)[l].getMZ());
peak.setPosition((*s)[l].getPosition());
librar.push_back(peak);
}
}
if (found != MSLibrary.end())
{
found->second.push_back(librar);
}
else
{
vector<PeakSpectrum> tmp;
tmp.push_back(librar);
MSLibrary.insert(make_pair(MZ_multi, tmp));
}
示例4: getCIDSpectrum_
void CompNovoIdentificationBase::getCIDSpectrum_(PeakSpectrum & spec, const String & sequence, Size charge, DoubleReal prefix, DoubleReal suffix)
{
static DoubleReal h2o_mass = EmpiricalFormula("H2O").getMonoWeight();
static DoubleReal nh3_mass = EmpiricalFormula("NH3").getMonoWeight();
static DoubleReal co_mass = EmpiricalFormula("CO").getMonoWeight();
Peak1D p;
DoubleReal b_pos(0 + prefix);
DoubleReal y_pos(h2o_mass + suffix);
bool b_H2O_loss(false), b_NH3_loss(false), y_NH3_loss(false);
for (Size i = 0; i != sequence.size() - 1; ++i)
{
char aa(sequence[i]);
b_pos += aa_to_weight_[aa];
char aa2(sequence[sequence.size() - i - 1]);
y_pos += aa_to_weight_[aa2];
for (Size z = 1; z <= charge && z < 3; ++z)
{
// b-ions
if (b_pos >= min_mz_ && b_pos <= max_mz_)
{
for (Size j = 0; j != max_isotope_; ++j)
{
if (z == 1 /*|| b_pos > MIN_DOUBLE_MZ*/)
{
p.setPosition((b_pos + (DoubleReal)z * Constants::PROTON_MASS_U + (DoubleReal)j + Constants::NEUTRON_MASS_U) / (DoubleReal)z);
p.setIntensity(isotope_distributions_[(Size)b_pos][j] * 0.8 / (z * z));
spec.push_back(p);
}
}
}
// b-ion losses
if (b_pos - h2o_mass > min_mz_ && b_pos - h2o_mass < max_mz_)
{
if (b_H2O_loss || aa == 'S' || aa == 'T' || aa == 'E' || aa == 'D')
{
b_H2O_loss = true;
p.setPosition((b_pos + z * Constants::PROTON_MASS_U - h2o_mass) / z);
p.setIntensity(0.02 / (DoubleReal)(z * z));
if (z == 1 /* || b_pos > MIN_DOUBLE_MZ*/)
{
spec.push_back(p);
}
}
if (b_NH3_loss || aa == 'Q' || aa == 'N' || aa == 'R' || aa == 'K')
{
b_NH3_loss = true;
p.setPosition((b_pos + z * Constants::PROTON_MASS_U - nh3_mass) / z);
p.setIntensity(0.02 / (DoubleReal)(z * z));
if (z == 1 /* || b_pos > MIN_DOUBLE_MZ*/)
{
spec.push_back(p);
}
}
}
// a-ions only for charge 1
if (z == 1)
{
if (b_pos - co_mass > min_mz_ && b_pos - co_mass < max_mz_)
{
// a-ions
p.setPosition((b_pos + z * Constants::PROTON_MASS_U - co_mass) / (DoubleReal)z);
p.setIntensity(0.1f);
spec.push_back(p);
}
}
if (y_pos > min_mz_ && y_pos < max_mz_)
{
// y-ions
for (Size j = 0; j != max_isotope_; ++j)
{
if (z == 1 /* || y_pos > MIN_DOUBLE_MZ*/)
{
p.setPosition((y_pos + (DoubleReal)z * Constants::PROTON_MASS_U + (DoubleReal)j * Constants::NEUTRON_MASS_U) / (DoubleReal)z);
p.setIntensity(isotope_distributions_[(Size)y_pos][j] / (DoubleReal) (z * z));
spec.push_back(p);
}
}
// H2O loss
p.setPosition((y_pos + z * Constants::PROTON_MASS_U - h2o_mass) / (DoubleReal)z);
p.setIntensity(0.1 / (DoubleReal)(z * z));
if (aa2 == 'Q') // pyroglutamic acid formation
{
p.setIntensity(0.5f);
}
if (z == 1 /* || y_pos > MIN_DOUBLE_MZ*/)
{
spec.push_back(p);
}
// NH3 loss
if (y_NH3_loss || aa2 == 'Q' || aa2 == 'N' || aa2 == 'R' || aa2 == 'K')
//.........这里部分代码省略.........