本文整理汇总了C++中stringlist::iterator::hasPrefix方法的典型用法代码示例。如果您正苦于以下问题:C++ iterator::hasPrefix方法的具体用法?C++ iterator::hasPrefix怎么用?C++ iterator::hasPrefix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类stringlist::iterator
的用法示例。
在下文中一共展示了iterator::hasPrefix方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: digest
void DigestSimulation::digest(SimTypes::FeatureMapSim& feature_map)
{
LOG_INFO << "Digest Simulation ... started" << std::endl;
if ((String)param_.getValue("enzyme") == String("none"))
{
//peptides = proteins;
// convert all proteins into peptides
// for each protein_hit in the FeatureMap
for (std::vector<ProteinHit>::iterator protein_hit = feature_map.getProteinIdentifications()[0].getHits().begin();
protein_hit != feature_map.getProteinIdentifications()[0].getHits().end();
++protein_hit)
{
// generate a PeptideHit hit with the correct link to the protein
PeptideHit pep_hit(1.0, 1, 0, AASequence::fromString(protein_hit->getSequence()));
PeptideEvidence pe;
pe.setProteinAccession(protein_hit->getAccession());
pep_hit.addPeptideEvidence(pe);
// add the PeptideHit to the PeptideIdentification
PeptideIdentification pep_id;
pep_id.insertHit(pep_hit);
// generate Feature with correct Intensity and corresponding PeptideIdentification
Feature f;
f.getPeptideIdentifications().push_back(pep_id);
f.setIntensity(protein_hit->getMetaValue("intensity"));
// copy intensity meta-values and additional annotations from Protein to Feature
StringList keys;
protein_hit->getKeys(keys);
for (StringList::const_iterator it_key = keys.begin(); it_key != keys.end(); ++it_key)
{
f.setMetaValue(*it_key, protein_hit->getMetaValue(*it_key));
}
// add Feature to SimTypes::FeatureMapSim
feature_map.push_back(f);
}
return;
}
UInt min_peptide_length = param_.getValue("min_peptide_length");
bool use_log_model = param_.getValue("model") == "trained" ? true : false;
UInt missed_cleavages = param_.getValue("model_naive:missed_cleavages");
double cleave_threshold = param_.getValue("model_trained:threshold");
EnzymaticDigestion digestion;
digestion.setEnzyme(digestion.getEnzymeByName((String)param_.getValue("enzyme")));
digestion.setLogModelEnabled(use_log_model);
digestion.setLogThreshold(cleave_threshold);
std::vector<AASequence> digestion_products;
// keep track of generated features
std::map<AASequence, Feature> generated_features;
// Iterate through ProteinHits in the FeatureMap and digest them
for (std::vector<ProteinHit>::iterator protein_hit = feature_map.getProteinIdentifications()[0].getHits().begin();
protein_hit != feature_map.getProteinIdentifications()[0].getHits().end();
++protein_hit)
{
// determine abundance of each digestion product (this is quite long now...)
// we assume that each digestion product will have the same abundance
// note: missed cleavages reduce overall abundance as they combine two (or more) single peptides
// how many "atomic"(i.e. non-cleavable) peptides are created?
digestion.setMissedCleavages(0);
Size complete_digest_count = digestion.peptideCount(AASequence::fromString(protein_hit->getSequence()));
// compute average number of "atomic" peptides summed from all digestion products
Size number_atomic_whole = 0;
Size number_of_digestion_products = 0;
for (Size i = 0; (i <= missed_cleavages) && (i < complete_digest_count); ++i)
{
number_atomic_whole += (complete_digest_count - i) * (i + 1);
number_of_digestion_products += (complete_digest_count - i);
}
// mean number of "atomic" peptides per digestion product is now: number_atomic_whole / number_of_digestion_products
// -> thus abundance of a digestion product is: #proteins / avg#of"atomic"peptides
// i.e.: protein->second / (number_atomic_whole / number_of_digestion_products)
Map<String, SimTypes::SimIntensityType> intensities;
StringList keys;
protein_hit->getKeys(keys);
for (StringList::const_iterator it_key = keys.begin(); it_key != keys.end(); ++it_key)
{
if (!it_key->hasPrefix("intensity"))
continue;
intensities[*it_key] = std::max(SimTypes::SimIntensityType(1), SimTypes::SimIntensityType(protein_hit->getMetaValue(*it_key))
* SimTypes::SimIntensityType(number_of_digestion_products)
/ SimTypes::SimIntensityType(number_atomic_whole)); // order changed for numeric stability
}
// do real digest
digestion.setMissedCleavages(missed_cleavages);
digestion.digest(AASequence::fromString(protein_hit->getSequence()), digestion_products);
//.........这里部分代码省略.........