本文整理汇总了C++中AlignmentConstPtr::getNewickTree方法的典型用法代码示例。如果您正苦于以下问题:C++ AlignmentConstPtr::getNewickTree方法的具体用法?C++ AlignmentConstPtr::getNewickTree怎么用?C++ AlignmentConstPtr::getNewickTree使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AlignmentConstPtr
的用法示例。
在下文中一共展示了AlignmentConstPtr::getNewickTree方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createInterpolatedAlignment
void LodExtract::createInterpolatedAlignment(AlignmentConstPtr inAlignment,
AlignmentPtr outAlignment,
double scale,
const string& tree,
const string& rootName,
bool keepSequences,
bool allSequences,
double probeFrac,
double minSeqFrac)
{
_inAlignment = inAlignment;
_outAlignment = outAlignment;
_keepSequences = keepSequences;
_allSequences = allSequences;
_probeFrac = probeFrac;
_minSeqFrac = minSeqFrac;
string newTree = tree.empty() ? inAlignment->getNewickTree() : tree;
createTree(newTree, rootName);
cout << "tree = " << _outAlignment->getNewickTree() << endl;
deque<string> bfQueue;
bfQueue.push_front(_outAlignment->getRootName());
while (!bfQueue.empty())
{
string genomeName = bfQueue.back();
bfQueue.pop_back();
vector<string> childNames = _outAlignment->getChildNames(genomeName);
if (!childNames.empty())
{
convertInternalNode(genomeName, scale);
for (size_t childIdx = 0; childIdx < childNames.size(); childIdx++)
{
bfQueue.push_back(childNames[childIdx]);
}
}
}
}
示例2: main
//.........这里部分代码省略.........
if (bottomSegments != "\"\"") ++optCount;
if (allCoverage) ++optCount;
if (optCount > 1)
{
throw hal_exception("--genomes, --sequences, --tree, --span, --spanRoot, "
"--branches, --sequenceStats, --children, --parent, "
"--bedSequences, --root, --numSegments, --baseComp, "
"--genomeMetaData, --chromSizes, --percentID, "
"--coverage, --topSegments, --bottomSegments, "
"--allCoverage "
"and --branchLength options are exclusive");
}
}
catch(exception& e)
{
cerr << e.what() << endl;
optionsParser->printUsage(cerr);
exit(1);
}
try
{
AlignmentConstPtr alignment = openHalAlignmentReadOnly(path, optionsParser);
if (listGenomes == true && alignment->getNumGenomes() > 0)
{
printGenomes(cout, alignment);
}
else if (sequencesFromGenome != "\"\"")
{
printSequences(cout, alignment, sequencesFromGenome);
}
else if (tree == true)
{
cout << alignment->getNewickTree() << endl;
}
else if (sequenceStatsFromGenome != "\"\"")
{
printSequenceStats(cout, alignment, sequenceStatsFromGenome);
}
else if (bedSequencesFromGenome != "\"\"")
{
printBedSequenceStats(cout, alignment, bedSequencesFromGenome);
}
else if (spanGenomes != "\"\"")
{
printBranchPath(cout, alignment, chopString(spanGenomes, ","), false);
}
else if (spanRootGenomes != "\"\"")
{
printBranchPath(cout, alignment, chopString(spanRootGenomes, ","), true);
}
else if (branches == true)
{
printBranches(cout, alignment);
}
else if (childrenFromGenome != "\"\"")
{
printChildren(cout, alignment, childrenFromGenome);
}
else if (parentFromGenome != "\"\"")
{
printParent(cout, alignment, parentFromGenome);
}
else if (printRoot == true)
{
printRootName(cout, alignment);
示例3: main
int main(int argc, char** argv)
{
CLParserPtr optionsParser = hdf5CLParserInstance();
optionsParser->setDescription("Rertrieve basic statics from a hal database");
optionsParser->addArgument("halFile", "path to hal file to analyze");
optionsParser->addOptionFlag("genomes", "print only a list of genomes "
"in alignment", false);
optionsParser->addOption("sequences", "print list of sequences in given "
"genome", "\"\"");
optionsParser->addOption("sequenceStats", "print stats for each sequence in "
"given genome", "\"\"");
optionsParser->addOptionFlag("tree", "print only the NEWICK tree", false);
optionsParser->addOptionFlag("branches", "print list of branches. "
"Each branch is specified by the child genome",
false);
optionsParser->addOption("span", "print branches on path (or spanning tree) "
"between comma "
"separated list of genomes", "\"\"");
optionsParser->addOption("spanRoot", "print genomes on path"
"(or spanning tree) between comma "
"separated list of genomes. Different from --path"
"only in that the spanning tree root is also "
"given", "\"\"");
string path;
bool listGenomes;
string sequencesFromGenome;
string sequenceStatsFromGenome;
string spanGenomes;
string spanRootGenomes;
bool tree;
bool branches;
try
{
optionsParser->parseOptions(argc, argv);
path = optionsParser->getArgument<string>("halFile");
listGenomes = optionsParser->getFlag("genomes");
sequencesFromGenome = optionsParser->getOption<string>("sequences");
sequenceStatsFromGenome = optionsParser->getOption<string>("sequenceStats");
tree = optionsParser->getFlag("tree");
spanGenomes = optionsParser->getOption<string>("span");
spanRootGenomes = optionsParser->getOption<string>("spanRoot");
branches = optionsParser->getFlag("branches");
size_t optCount = listGenomes == true ? 1 : 0;
if (sequencesFromGenome != "\"\"") ++optCount;
if (tree == true) ++optCount;
if (sequenceStatsFromGenome != "\"\"") ++optCount;
if (spanGenomes != "\"\"") ++optCount;
if (spanRootGenomes != "\"\"") ++optCount;
if (branches) ++optCount;
if (optCount > 1)
{
throw hal_exception("--genomes, --sequences, --tree, --span, "
"--spanRoot, --branches "
"and --sequenceStats "
"options are mutually exclusive");
}
}
catch(exception& e)
{
cerr << e.what() << endl;
optionsParser->printUsage(cerr);
exit(1);
}
try
{
AlignmentConstPtr alignment = openHalAlignmentReadOnly(path, optionsParser);
if (listGenomes == true && alignment->getNumGenomes() > 0)
{
printGenomes(cout, alignment);
}
else if (sequencesFromGenome != "\"\"")
{
printSequences(cout, alignment, sequencesFromGenome);
}
else if (tree == true)
{
cout << alignment->getNewickTree() << endl;
}
else if (sequenceStatsFromGenome != "\"\"")
{
printSequenceStats(cout, alignment, sequenceStatsFromGenome);
}
else if (spanGenomes != "\"\"")
{
printBranchPath(cout, alignment, chopString(spanGenomes, ","), false);
}
else if (spanRootGenomes != "\"\"")
{
printBranchPath(cout, alignment, chopString(spanRootGenomes, ","), true);
}
else if (branches == true)
{
printBranches(cout, alignment);
}
else
{
HalStats halStats(alignment);
//.........这里部分代码省略.........