IO 模块 API¶
命名空间:fq::io
FastqRecord¶
FASTQ 记录的零拷贝视图,使用 std::string_view 指向 FastqBatch 的连续内存。
字段¶
| 字段 | 类型 | 说明 |
|---|---|---|
id | std::string_view | 记录标识符 |
sequence | std::string_view | DNA 序列 |
quality | std::string_view | 质量分数字符串 |
separator | std::string_view | 分隔符行(通常为 +) |
关键方法¶
auto averageQuality(int qualityEncoding = 33) const -> double;
auto length() const -> size_t;
auto gcContent() const -> double;
auto nRatio() const -> double;
FastqBatch¶
批量存储多条 FASTQ 记录的容器,维护连续内存缓冲区。
关键方法¶
auto records() const -> const std::vector<FastqRecord>&;
auto size() const -> size_t;
auto empty() const -> bool;
void clear();
void reserve(size_t count);
内存模型¶
FastqReader¶
FASTQ 文件读取器,支持纯文本和 gzip 压缩格式。
构造与使用¶
fq::io::FastqReader reader("input.fastq.gz");
fq::io::FastqBatch batch;
while (reader.nextBatch(batch, 10000)) {
for (const auto& record : batch.records()) {
// 处理每条记录
}
}
关键方法¶
explicit FastqReader(const std::string& path);
auto nextBatch(FastqBatch& batch, size_t batchSize = 10000) -> bool;
auto isOpen() const -> bool;
性能参数¶
| 参数 | 说明 |
|---|---|
readChunkBytes | 每次读取的字节数 |
zlibBufferBytes | zlib 解压缓冲区大小 |
maxBufferBytes | 最大缓冲区限制 |
FastqWriter¶
FASTQ 文件写入器,支持纯文本和 gzip 压缩输出。
构造与使用¶
fq::io::FastqWriter writer("output.fastq.gz");
for (const auto& record : batch.records()) {
writer.write(record);
}
性能参数¶
| 参数 | 说明 |
|---|---|
zlibBufferBytes | 压缩缓冲区大小 |
outputBufferBytes | 输出缓冲区大小 |
FastqBatchPool¶
基于 ObjectPool<FastqBatch> 的对象池,减少 TBB pipeline 中的频繁分配。