本文整理汇总了C++中TopSegmentIteratorConstPtr::toSite方法的典型用法代码示例。如果您正苦于以下问题:C++ TopSegmentIteratorConstPtr::toSite方法的具体用法?C++ TopSegmentIteratorConstPtr::toSite怎么用?C++ TopSegmentIteratorConstPtr::toSite使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TopSegmentIteratorConstPtr
的用法示例。
在下文中一共展示了TopSegmentIteratorConstPtr::toSite方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: checkGenome
void TopSegmentIteratorToSiteTest::checkGenome(const Genome* genome)
{
TopSegmentIteratorConstPtr ti = genome->getTopSegmentIterator();
for (hal_index_t pos = 0;
pos < (hal_index_t)genome->getSequenceLength(); ++pos)
{
ti->toSite(pos);
CuAssertTrue(_testCase, ti->getStartPosition() == pos);
CuAssertTrue(_testCase, ti->getLength() == 1);
ti->toSite(pos, false);
CuAssertTrue(_testCase, pos >= ti->getStartPosition() &&
pos < ti->getStartPosition() + (hal_index_t)ti->getLength());
CuAssertTrue(_testCase,
ti->getLength() == ti->getTopSegment()->getLength());
}
}
示例2: main
int main(int argc, char** argv)
{
CLParserPtr optionsParser = hdf5CLParserInstance();
optionsParser->setDescription("Rertrieve chain (pairwise alignment) "
"information from a hal database.\n"
"WARNING: THIS TOOL WAS NEVER FINISHED OR"
" TESTED. USE AT OWN RISK. PLEASE "
"CONSIDER halLiftover --outPSL INSTEAD.");
optionsParser->addArgument("halFile", "path to hal file to analyze");
optionsParser->addArgument("genome", "(query) genome to process");
optionsParser->addOption("sequence", "sequence name in query genome ("
"all sequences if not specified)", "\"\"");
optionsParser->addOption("start", "start position in query genome", 0);
optionsParser->addOption("length", "maximum length of chain to output.", 0);
optionsParser->addOption("chainFile", "path for output file. stdout if not"
" specified", "\"\"");
optionsParser->addOption("maxGap",
"maximum indel length to be considered a gap within"
" a chain.",
20);
string halPath;
string chainPath;
string genomeName;
string sequenceName;
hal_size_t start;
hal_size_t length;
hal_size_t maxGap;
try
{
optionsParser->parseOptions(argc, argv);
halPath = optionsParser->getArgument<string>("halFile");
genomeName = optionsParser->getArgument<string>("genome");
sequenceName = optionsParser->getOption<string>("sequence");
start = optionsParser->getOption<hal_size_t>("start");
length = optionsParser->getOption<hal_size_t>("length");
chainPath = optionsParser->getOption<string>("chainFile");
maxGap = optionsParser->getOption<hal_size_t>("maxGap");
}
catch(exception& e)
{
cerr << e.what() << endl;
optionsParser->printUsage(cerr);
exit(1);
}
try
{
cerr << "WARNING: THIS TOOL WAS NEVER FINISHED OR TESTED. USE AT OWN RISK."
<< " PLEASE CONSIDER halLiftover --outPSL INSTEAD." <<endl;
AlignmentConstPtr alignment = openHalAlignmentReadOnly(halPath,
optionsParser);
const Genome* genome = alignment->openGenome(genomeName);
if (genome == NULL)
{
throw hal_exception(string("Genome not found: ") + genomeName);
}
hal_index_t endPosition =
length > 0 ? start + length : genome->getSequenceLength();
const Sequence* sequence = NULL;
if (sequenceName != "\"\"")
{
sequence = genome->getSequence(sequenceName);
if (sequence == NULL)
{
throw hal_exception(string("Sequence not found: ") + sequenceName);
}
start += sequence->getStartPosition();
endPosition =
length > 0 ? start + length : sequence->getSequenceLength();
}
ofstream ofile;
ostream& outStream = chainPath == "\"\"" ? cout : ofile;
if (chainPath != "\"\"")
{
ofile.open(chainPath.c_str());
if (!ofile)
{
throw hal_exception(string("Error opening output file ") +
chainPath);
}
}
TopSegmentIteratorConstPtr top = genome->getTopSegmentIterator();
top->toSite(start, false);
// do slicing here;
GappedTopSegmentIteratorConstPtr gtop =
genome->getGappedTopSegmentIterator(top->getArrayIndex(), maxGap);
// need to review!
Chain chain;
chain._id = 0;
while (gtop->getRightArrayIndex() <
(hal_index_t)genome->getNumTopSegments() &&
//.........这里部分代码省略.........