API 概览¶
FastQTools 提供清晰的 C++ 公共 API,支持作为库集成到其他项目中。
入口头文件¶
fq.h 聚合了所有公共接口头文件,包括:
| 模块 | 头文件 | 说明 |
|---|---|---|
| IO | <fqtools/io/...> | FASTQ 读写(FastqReader, FastqWriter, FastqRecord, FastqBatch) |
| 处理 | <fqtools/processing/...> | 处理流水线、Predicate、Mutator |
| 统计 | <fqtools/statistics/...> | 统计计算接口 |
| 核心 | <fqtools/core/core.h> | 序列工具函数 |
| 配置 | <fqtools/config/config.h> | 配置管理 |
| 错误 | <fqtools/error/error.h> | 异常处理框架 |
| 日志 | <fqtools/logging.h> | 日志初始化与级别控制 |
| 通用 | <fqtools/common/common.h> | Timer、IDGenerator 等工具 |
模块架构¶
fq.h(聚合入口)
├── io/ → FastqReader / FastqWriter / FastqRecord / FastqBatch
├── processing/ → ProcessingPipelineInterface / Predicate / Mutator
├── statistics/ → StatisticCalculatorInterface
├── core/ → SequenceUtils
├── config/ → Configuration
├── error/ → FastQException 异常体系
├── logging/ → init / setLevel
└── common/ → Timer / IDGenerator / Logger
快速示例¶
统计分析¶
#include <fqtools/fq.h>
fq::statistic::StatisticOptions options;
options.inputFastqPath = "input.fastq.gz";
options.outputStatPath = "output.stat.txt";
auto calculator = fq::statistic::createStatisticCalculator(options);
calculator->run();
过滤处理¶
#include <fqtools/fq.h>
auto pipeline = fq::processing::createProcessingPipeline();
pipeline->setInputPath("input.fq.gz");
pipeline->setOutputPath("filtered.fq.gz");
fq::processing::ProcessingConfig config;
config.batchSize = 10000;
config.threadCount = 4;
pipeline->setProcessingConfig(config);
// 添加过滤条件
pipeline->addReadPredicate(
std::make_unique<fq::processing::MinQualityPredicate>(20.0, 33));
pipeline->addReadPredicate(
std::make_unique<fq::processing::MinLengthPredicate>(50));
// 添加修剪器
pipeline->addReadMutator(
std::make_unique<fq::processing::QualityTrimmer>(
20.0, 50, fq::processing::QualityTrimmer::TrimMode::Both, 33));
auto stats = pipeline->run();
std::cout << stats.toString() << std::endl;