问题标签 [seqan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ 模板元编程 - 是否可以输出生成的代码?
我想调试一些模板代码以更好地理解它。
不幸的是,我是模板元编程的新手,我很难进入。
当我尝试输出预处理的源文件时,我得到 125 000 行代码:/
那么有没有办法可以看到生成的代码?(我使用的库是SeqAn)
c++ - SeqAn C++ 库:具有相同数据的 bam 与 sam 的不同 rID 值,bam 由于名称存储的长度而导致断言失败
我正在使用 seqan 1.4.1 来读取 sam/bam 文件。我有一个来自相同数据的 sam 和 bam 文件(与 rn5 refseq 基因对齐)。奇怪的是,当我与 ensembl 基因对齐时,我没有得到这个错误。
我正在读取 sam/bam 文件 BamStream,但如果我下拉到较低级别的 Stream 方法,则会发生同样的错误。
我打印 length(bamStreamIn._nameStore) 和读取的每个 record.rID。这是我使用数据的 bam 文件版本时的输出:
这是我使用 sam 文件时的输出:
有趣的是,名称存储大小相同,但 rID 不同。知道为什么 rID 不同以及导致断言错误的原因是什么?
c++ - 这个 C++ 反序列化习语是什么?使用整数 ID 变量调用文件读取器函数作为`reinterpret_cast(&id)?`
我正在阅读内部 SeqAn 库(它处理特定于生物学的文件格式和数据结构),并且遇到了我不太了解的 C++ 习语。
有一个唯一的 id 变量record.rID
是 __int32。指向它的指针被传递给另一个函数,该函数从文件中读取一堆数据并改变 id。
这是电话:
下面是函数实现:
进行一些跟踪,我可以看到 record.rID 被分配在那里,我猜这是memcpy(destPtr, buffer + stream._blockOffset, copyLength);
发生在哪里,但我不太明白发生了什么以及如何分配有意义的记录 id(但后来我没有没有太多处理这种反序列化代码的经验)。
c++ - 从构造函数传递给成员函数时,私有成员变量为空
我对 C++ 中的 OOP 很陌生,所以请耐心等待。
在定义我的成员变量的标题中;
并在 cpp
和输出 - >
_raw_sequence
当我尝试在类函数中访问成员变量时,它是空白的。我知道我可以在构造函数中做所有事情,但我想了解它为什么会重置。seqan::Dna5 只是 seqan 库中用于处理生物数据的 dna 字符串的模板容器。它拥有 dna 序列。这是文档。这很令人困惑,因为我在此函数中访问的所有其他内容似乎都可用。
c++ - 基于 StringSet 的在线模式搜索
用于模式匹配的 SeqAn 教程提到StringSet
' 可以充当干草堆或针头。在尝试StringSet
如下使用 a 作为大海捞针时,
我得到错误:
错误:重载运算符 '==' 的使用不明确(操作数类型为 'const const seqan::String, seqan::Alloc >' 和 'const seqan::SimpleType')
任何人都知道这应该如何正确完成?
Dna5String
在作品中使用单曲Finder
很好。本教程确实展示了如何进行离线搜索(即,使用索引),但这不是我想要的。StringSet
如果 SeqAn 中的 Finder-Pattern 工具已经处理它,我宁愿不必手动迭代。
c++ - 具有输入间隙的多序列比对 (Seqan)
我有一个这样的字符串序列:["123-5", "1-45", "--345"]
. 结果是完美的得到12345
。所以有时我知道在某个位置我有符号,但不知道是哪个。从示例中我得到了这段代码。
如何判断Seqan
特定位置有符号?
c++ - 模板子类化的一个例子
我正在阅读SEQAN 文档。在入门部分,他们提到了“模板子类化”作为克服运行时多态开销的方法。
OOP 与泛型编程:在 SeqAn 中,我们使用一种称为模板子类化的技术,它基于泛型编程。该技术在编译时使用模板为 C++ 程序提供多态性。这种静态多态性不同于 C++ 中使用子类化和虚函数支持的运行时多态性。它以一些额外的类型为代价,但具有编译器可以内联所有函数调用的优点,从而获得更好的性能。第一步教程中的“从 OOP 到 SeqAn”部分将给出一个示例。
不幸的是,还没有例子来说明它的用法。如果有人提供一个简单的例子,我真的很感激。
我写了简单的模板类,但我不确定这是否是模板子类化的意思!
c++ - 如何从文件中创建索引?
从 String 对象创建索引很简单,例如:
就我而言,我有一个大文件。一种明显的方法是将内存中的文本加载到 CharString 对象中,然后从中创建索引,但是 seqan 中是否有直接执行此操作的函数?该文档看起来很奇怪,因为它没有显示构造函数,所以我无法知道这样的构造函数是否存在。此外,我的文件实际上是关于 DNA 的,所以如果Index<DnaString>
存在 a 的构造函数,那么正常加载它(4 倍以上的空间)将是一种浪费。
c++ - Seqan 迷你领结示例未编译
我尝试从 Seqan 网站复制迷你领结的示例。请注意,该示例来自版本 1.4.2,而不是当前版本。
当我编译时,我有一个错误。最小的可重现示例是:
编译错误很长。它开始于:
API 似乎略有变化,但我不能完全确定它。
我编译:
with clang++ 6.0.0-1ubuntu2 x86_64-pc-linux-gnu
, 但g++ Ubuntu 7.3.0-16ubuntu3
给出了类似的(尽管可读性较差)结果,以及 Seqan 版本 2.3.2。
我应该改变什么?