本文整理汇总了C++中Genome::getName方法的典型用法代码示例。如果您正苦于以下问题:C++ Genome::getName方法的具体用法?C++ Genome::getName怎么用?C++ Genome::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Genome
的用法示例。
在下文中一共展示了Genome::getName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: copyFromTopAlignment
void copyFromTopAlignment(AlignmentConstPtr topAlignment,
AlignmentPtr mainAlignment, const string &genomeName)
{
Genome *mainReplacedGenome = mainAlignment->openGenome(genomeName);
const Genome *topReplacedGenome = topAlignment->openGenome(genomeName);
topReplacedGenome->copyTopDimensions(mainReplacedGenome);
topReplacedGenome->copyTopSegments(mainReplacedGenome);
mainReplacedGenome->fixParseInfo();
// Copy bot segments for the parent and top segments for the
// siblings of the genome that's being replaced
Genome *mainParent = mainReplacedGenome->getParent();
const Genome *topParent = topReplacedGenome->getParent();
topParent->copyBottomDimensions(mainParent);
topParent->copyBottomSegments(mainParent);
mainParent->fixParseInfo();
vector<string> siblings = mainAlignment->getChildNames(mainParent->getName());
for (size_t i = 0; i < siblings.size(); i++)
{
if (siblings[i] != genomeName)
{
Genome *mainChild = mainAlignment->openGenome(siblings[i]);
const Genome *topChild = topAlignment->openGenome(siblings[i]);
topChild->copyTopDimensions(mainChild);
topChild->copyTopSegments(mainChild);
mainChild->fixParseInfo();
}
}
}
示例2: writeDimensions
void LodExtract::writeDimensions(
const map<const Sequence*, hal_size_t>& segmentCounts,
const string& parentName,
const vector<string>& childNames)
{
// initialize a dimensions list for each (input) genome
map<const Genome*, vector<Sequence::Info> > dimMap;
map<const Genome*, vector<Sequence::Info> >::iterator dimMapIt;
vector<string> newGenomeNames = childNames;
newGenomeNames.push_back(parentName);
for (size_t i = 0; i < newGenomeNames.size(); ++i)
{
const Genome* inGenome = _inAlignment->openGenome(newGenomeNames[i]);
pair<const Genome*, vector<Sequence::Info> > newEntry;
newEntry.first = inGenome;
// it's important we keep the sequences in the output genome
// in the same order as the sequences in the input genome since
// we always use global coordinates!
SequenceIteratorConstPtr seqIt = inGenome->getSequenceIterator();
SequenceIteratorConstPtr seqEnd = inGenome->getSequenceEndIterator();
for (; seqIt != seqEnd; seqIt->toNext())
{
const Sequence* inSequence = seqIt->getSequence();
map<const Sequence*, hal_size_t>::const_iterator segMapIt;
segMapIt = segmentCounts.find(inSequence);
// we skip empty sequences for now with below check
if (segMapIt != segmentCounts.end())
{
vector<Sequence::Info>& segDims = newEntry.second;
hal_size_t nTop =
inGenome->getName() == parentName ? 0 : segMapIt->second;
hal_size_t nBot =
inGenome->getName() != parentName ? 0 : segMapIt->second;
segDims.push_back(Sequence::Info(inSequence->getName(),
inSequence->getSequenceLength(),
nTop,
nBot));
}
}
// note potential bug here for genome with no data
dimMap.insert(newEntry);
}
// now that we have the dimensions for each genome, update them in
// the output alignment
for (dimMapIt = dimMap.begin(); dimMapIt != dimMap.end(); ++dimMapIt)
{
Genome* newGenome = _outAlignment->openGenome(dimMapIt->first->getName());
assert(newGenome != NULL);
vector<Sequence::Info>& segDims = dimMapIt->second;
// ROOT
if (newGenome->getName() == _outAlignment->getRootName())
{
assert(newGenome->getName() == parentName);
newGenome->setDimensions(segDims, _keepSequences);
}
// LEAF
else if (newGenome->getName() != parentName)
{
newGenome->setDimensions(segDims, _keepSequences);
}
// INTERNAL NODE
else
{
vector<Sequence::UpdateInfo> updateInfo;
for (size_t i = 0; i < segDims.size(); ++i)
{
updateInfo.push_back(
Sequence::UpdateInfo(segDims[i]._name,
segDims[i]._numBottomSegments));
}
newGenome->updateBottomDimensions(updateInfo);
}
}
}