本文整理汇总了C++中ConsensusFeature::computeMonoisotopicConsensus方法的典型用法代码示例。如果您正苦于以下问题:C++ ConsensusFeature::computeMonoisotopicConsensus方法的具体用法?C++ ConsensusFeature::computeMonoisotopicConsensus怎么用?C++ ConsensusFeature::computeMonoisotopicConsensus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConsensusFeature
的用法示例。
在下文中一共展示了ConsensusFeature::computeMonoisotopicConsensus方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: recomputeConsensus_
//.........这里部分代码省略.........
map_index = simulated_features[i].getMetaValue("map_index");
}
++features_per_labeled_map[map_index];
}
}
for (Map<String, IntList>::iterator it = id_map.begin(); it != id_map.end(); ++it)
{
LOG_DEBUG << it->first << " " << it->second << std::endl;
}
// new consensus map
ConsensusMap new_cm;
// initialize submaps in consensus map
for (Map<UInt64, Size>::Iterator it = features_per_labeled_map.begin(); it != features_per_labeled_map.end(); ++it)
{
new_cm.getFileDescriptions()[it->first].size = it->second;
new_cm.getFileDescriptions()[it->first].unique_id = simulated_features.getUniqueId();
}
for (ConsensusMap::iterator cm_iter = consensus_.begin(); cm_iter != consensus_.end(); ++cm_iter)
{
bool complete = true;
LOG_DEBUG << "Checking consensus feature containing: " << std::endl;
// check if we have all elements of current CF in the new feature map (simulated_features)
for (ConsensusFeature::iterator cf_iter = (*cm_iter).begin(); cf_iter != (*cm_iter).end(); ++cf_iter)
{
complete &= id_map.has(String((*cf_iter).getUniqueId()));
LOG_DEBUG << "\t" << String((*cf_iter).getUniqueId()) << std::endl;
}
if (complete)
{
// get all elements sorted by charge state; since the same charge can be achieved by different
// adduct compositions we use the adduct-string as indicator to find the groups
Map<String, std::set<FeatureHandle, FeatureHandle::IndexLess> > charge_mapping;
for (ConsensusFeature::iterator cf_iter = (*cm_iter).begin(); cf_iter != (*cm_iter).end(); ++cf_iter)
{
IntList feature_indices = id_map[String((*cf_iter).getUniqueId())];
for (IntList::iterator it = feature_indices.begin(); it != feature_indices.end(); ++it)
{
UInt64 map_index = 0;
if (simulated_features[*it].metaValueExists("map_index"))
{
map_index = simulated_features[*it].getMetaValue("map_index");
}
if (charge_mapping.has(simulated_features[*it].getMetaValue("charge_adducts")))
{
charge_mapping[simulated_features[*it].getMetaValue("charge_adducts")].insert(FeatureHandle(map_index, simulated_features[*it]));
}
else
{
LOG_DEBUG << "Create new set with charge composition " << simulated_features[*it].getMetaValue("charge_adducts") << std::endl;
std::set<FeatureHandle, FeatureHandle::IndexLess> fh_set;
fh_set.insert(FeatureHandle(map_index, simulated_features[*it]));
charge_mapping.insert(std::make_pair(simulated_features[*it].getMetaValue("charge_adducts"), fh_set));
}
}
}
// create new consensus feature from derived features (separated by charge, if charge != 0)
for (Map<String, std::set<FeatureHandle, FeatureHandle::IndexLess> >::const_iterator charge_group_it = charge_mapping.begin();
charge_group_it != charge_mapping.end();
++charge_group_it)
{
ConsensusFeature cf;
cf.setCharge((*(*charge_group_it).second.begin()).getCharge());
cf.setMetaValue("charge_adducts", charge_group_it->first);
std::vector<PeptideIdentification> ids;
for (std::set<FeatureHandle, FeatureHandle::IndexLess>::const_iterator fh_it = (charge_group_it->second).begin(); fh_it != (charge_group_it->second).end(); ++fh_it)
{
cf.insert(*fh_it);
// append identifications
Size f_index = simulated_features.uniqueIdToIndex(fh_it->getUniqueId());
std::vector<PeptideIdentification> ids_feature = simulated_features[f_index].getPeptideIdentifications();
ids.insert(ids.end(), ids_feature.begin(), ids_feature.end());
}
cf.computeMonoisotopicConsensus();
cf.setPeptideIdentifications(ids);
new_cm.push_back(cf);
}
}
}
new_cm.setProteinIdentifications(simulated_features.getProteinIdentifications());
consensus_.swap(new_cm);
consensus_.applyMemberFunction(&UniqueIdInterface::ensureUniqueId);
}