本文整理汇总了C++中ConsensusFeature::ensureUniqueId方法的典型用法代码示例。如果您正苦于以下问题:C++ ConsensusFeature::ensureUniqueId方法的具体用法?C++ ConsensusFeature::ensureUniqueId怎么用?C++ ConsensusFeature::ensureUniqueId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConsensusFeature
的用法示例。
在下文中一共展示了ConsensusFeature::ensureUniqueId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: postDigestHook
void SILACLabeler::postDigestHook(SimTypes::FeatureMapSimVector& features_to_simulate)
{
SimTypes::FeatureMapSim& light_channel_features = features_to_simulate[0];
SimTypes::FeatureMapSim& medium_channel_features = features_to_simulate[1];
// merge the generated feature maps and create consensus
SimTypes::FeatureMapSim final_feature_map = mergeProteinIdentificationsMaps_(features_to_simulate);
if (features_to_simulate.size() == 2)
{
Map<String, Feature> unlabeled_features_index;
for (SimTypes::FeatureMapSim::iterator unlabeled_features_iter = light_channel_features.begin();
unlabeled_features_iter != light_channel_features.end();
++unlabeled_features_iter)
{
(*unlabeled_features_iter).ensureUniqueId();
unlabeled_features_index.insert(std::make_pair(
(*unlabeled_features_iter).getPeptideIdentifications()[0].getHits()[0].getSequence().toString()
,
*unlabeled_features_iter
));
}
// iterate over second map
for (SimTypes::FeatureMapSim::iterator labeled_feature_iter = medium_channel_features.begin(); labeled_feature_iter != medium_channel_features.end(); ++labeled_feature_iter)
{
const String unmodified_sequence = getUnmodifiedSequence_(*labeled_feature_iter, medium_channel_arginine_label_, medium_channel_lysine_label_);
// guarantee uniqueness
(*labeled_feature_iter).ensureUniqueId();
// check if we have a pair
if (unlabeled_features_index.has(unmodified_sequence))
{
// own scope as we don't know what happens to 'f_modified' once we call erase() below
Feature& unlabeled_feature = unlabeled_features_index[unmodified_sequence];
// guarantee uniqueness
unlabeled_feature.ensureUniqueId();
// feature has a SILAC Label and is not equal to non-labeled
if ((*labeled_feature_iter).getPeptideIdentifications()[0].getHits()[0].getSequence().isModified())
{
// add features to final map
final_feature_map.push_back(*labeled_feature_iter);
final_feature_map.push_back(unlabeled_feature);
// create consensus feature
ConsensusFeature cf;
cf.insert(MEDIUM_FEATURE_MAPID_, *labeled_feature_iter);
cf.insert(LIGHT_FEATURE_MAPID_, unlabeled_feature);
cf.ensureUniqueId();
consensus_.push_back(cf);
// remove unlabeled feature
unlabeled_features_index.erase(unmodified_sequence);
}
else
{
// merge features since they are equal
Feature final_feature = mergeFeatures_(*labeled_feature_iter, unmodified_sequence, unlabeled_features_index, 1, 2);
final_feature_map.push_back(final_feature);
}
}
else // no SILAC pair, just add the labeled one
{
final_feature_map.push_back(*labeled_feature_iter);
}
}
// add singletons from unlabeled channel
// clean up unlabeled_index
for (Map<String, Feature>::iterator unlabeled_index_iter = unlabeled_features_index.begin(); unlabeled_index_iter != unlabeled_features_index.end(); ++unlabeled_index_iter)
{
// the single ones from c0
final_feature_map.push_back(unlabeled_index_iter->second);
}
}
// merge three channels
if (features_to_simulate.size() == 3)
{
// index of unlabeled channelunlabeled_feature
Map<String, Feature> unlabeled_features_index;
for (SimTypes::FeatureMapSim::iterator unlabeled_features_iter = light_channel_features.begin();
unlabeled_features_iter != light_channel_features.end();
++unlabeled_features_iter)
{
(*unlabeled_features_iter).ensureUniqueId();
unlabeled_features_index.insert(std::make_pair(
(*unlabeled_features_iter).getPeptideIdentifications()[0].getHits()[0].getSequence().toString()
,
*unlabeled_features_iter
));
}
// index of labeled channel
Map<String, Feature> medium_features_index;
for (SimTypes::FeatureMapSim::iterator labeled_features_iter = medium_channel_features.begin();
//.........这里部分代码省略.........