seqtkrs 0.1.1

A Rust reimplementation of seqtk, a fast and lightweight tool for processing biological sequences in FASTA/FASTQ format
Documentation
# 测试数据说明

本目录包含从NCBI SRA数据库下载的真实FASTQ测试数据,用于seqtkrs项目的功能测试和性能基准测试。

## 数据集列表

### SRR000001 - 完整数据集
- **来源**: NCBI SRA数据库
- **描述**: 双端测序数据(Paired-end sequencing data)
- **序列数**: 236,041 条配对序列
- **文件**:
  - `SRR000001_1.fastq` (68M) - Read 1
  - `SRR000001_2.fastq` (76M) - Read 2
  - `SRR000001.fastq` (141M) - 合并的单端数据
- **用途**: 完整的功能测试、性能基准测试

### SRR000001 - 小型测试子集
- **序列数**: 10,000 条配对序列
- **文件**:
  - `SRR000001_1_small.fastq` (2.8M) - Read 1 子集
  - `SRR000001_2_small.fastq` (3.0M) - Read 2 子集
- **用途**: 快速功能测试、调试、开发过程中的验证

## 使用示例

### 测试基本的seq命令
```bash
# 使用小型数据集快速测试
cargo run --release -- seq data/SRR000001_1_small.fastq > output.fq

# 使用完整数据集进行性能测试
cargo run --release -- seq data/SRR000001_1.fastq > output.fq
```

### 测试双端序列处理
```bash
# 测试mergepe命令(双端合并)
cargo run --release -- mergepe data/SRR000001_1.fastq data/SRR000001_2.fastq

# 测试sample命令(配对采样)
cargo run --release -- sample -s 100 data/SRR000001_1.fastq 1000
```

### 测试过滤和质量控制
```bash
# 测试trimfq命令(质量修剪)
cargo run --release -- trimfq data/SRR000001_1_small.fastq

# 测试fqchk命令(质量统计)
cargo run --release -- fqchk data/SRR000001_1_small.fastq
```

## 数据格式

所有文件均为标准的FASTQ格式(Phred+33质量编码):
```
@序列ID 描述信息
ATCGATCGATCG...
+序列ID 描述信息
质量值字符串...
```

## 与原版seqtk对比测试

```bash
# 生成原版seqtk的输出
cd raw/seqtk
./seqtk seq ../../data/SRR000001_1_small.fastq > expected.fq

# 与seqtkrs输出对比
cd ../..
cargo run --release -- seq data/SRR000001_1_small.fastq > actual.fq
diff expected.fq actual.fq
```

## 重新下载数据

如需重新下载或更新数据,可以使用以下命令:

```bash
# 确保已安装sra-tools
conda install -c bioconda sra-tools -y

# 下载完整数据集
cd data
fasterq-dump SRR000001 --progress

# 重新创建小型子集
head -n 40000 SRR000001_1.fastq > SRR000001_1_small.fastq
head -n 40000 SRR000001_2.fastq > SRR000001_2_small.fastq
```

## 注意事项

- 完整数据集约290MB,下载和处理需要一定时间
- 建议在开发过程中使用小型子集进行快速迭代测试
- 在提交PR前使用完整数据集进行最终验证
- 数据文件已添加到`.gitignore`,不会提交到版本库