#parquet-file #file-format #fasta #sequences #convert #annotations #biological

brrrr-lib

关于处理生物序列和注释到现代文件格式的工具

10个不稳定版本 (4个重大变更)

0.14.0 2022年7月21日
0.12.0 2022年7月4日
0.11.2 2022年7月3日
0.11.0 2021年11月8日
0.9.11 2021年9月18日

#9 in #生物

每月21次下载

MIT许可证

3MB
824

brrrr

brrrr是一个CLI,用于简化常见的生物信息学任务,而brrrr-lib是一个可安装的软件包中的抽象代码。

brrrr

CLI通过命令行界面公开了许多相关的brrrr功能。brrrr-lib旨在用于其他模块。

CLI帮助屏幕。

brrrr --help

警告 brrrr非常原始,可能随时更改或中断。

用例

用例

  • 将FASTA转换为JSON
  • 将FASTA转换为parquet,反之亦然

将FASTA转换为JSON

作为一个快速示例,假设你有一个FASTA文件,并希望将其转换为json。

; echo ">1\nATCG\n>2\nTAGC\n" | brrrr fa2jsonl | jq
{
  "id": "1",
  "desc": null,
  "seq": "ATCG"
}
{
  "id": "2",
  "desc": null,
  "seq": "TAGC"
}

将FASTA转换为parquet,反之亦然

Parquet是一个用于大规模数据存储的有用文件格式,存在许多与之交互的工具。例如,DuckDB可以用来用SQL查询parquet文件。

从Swissprot数据集开始,使用出色的seqkit来查找一些摘要统计信息。

$ seqkit stats uniprot-reviewed_yes.fasta
file                        format  type     num_seqs      sum_len  min_len  avg_len  max_len
uniprot-reviewed_yes.fasta  FASTA   Protein   561,176  201,758,313        2    359.5   35,213

将其转换为parquet...

$ brrrr fa2pq ./uniprot-reviewed_yes.fasta swissprot.parquet && \
    test -f swissprot.parquet && \
    echo "swissprot.parquet exists"
swissprot.parquet exists

将其加载到DuckDB中,选择长度超过1000aa的序列,然后创建新的parquet文件。

$ duckdb -c "COPY (SELECT * FROM 'swissprot.parquet' WHERE length("sequence") >= 1000) TO 'swissprot.1000.parquet' (FORMAT PARQUET);"
$ duckdb -c "SELECT COUNT(*) FROM 'swissprot.1000.parquet'"
┌──────────────┐
 count_star() 
├──────────────┤
 18236        │
└──────────────┘

从parquet转换回FASTA,然后检查min_len是否符合预期。

$ brrrr pq2fa swissprot.1000.parquet swissprot.1000.fasta && seqkit stats swissprot.1000.fasta
file                  format  type     num_seqs     sum_len  min_len  avg_len  max_len
swissprot.1000.fasta  FASTA   Protein    18,236  28,228,604    1,000    1,548   35,213

安装

CLI是可执行入口点,尽管库可以单独安装。

CLI

为以下平台构建了可执行文件

  • x86_64-apple-darwin
  • x86_64-unknown-linux-musl
  • aarch64-unknown-linux-gnu
  • x86_64-pc-windows-msvc

从GitHub的发行版页面下载可执行文件。

brrrr-lib

brrrr-lib是一个包含抽象代码的crate,由CLI使用。

[dependencies]
brrrr-lib = "0.14.0"

文档可在以下位置找到: docs.rs/brrrr-lib

依赖项

~23–31MB
~617K SLoC