#生物信息学 #命令行 #gfa # #路径 #命令行工具 #文件格式

bin+lib gfautil

用于处理 GFA 文件和相关格式的命令行工具

11 个不稳定版本 (3 个破坏性更新)

0.4.0-alpha.52021 年 2 月 23 日
0.4.0-alpha.42021 年 2 月 9 日
0.3.2 2020 年 11 月 19 日
0.3.0 2020 年 10 月 17 日
0.1.0 2020 年 8 月 18 日

#215生物学

每月 35 次下载

MIT 许可证

87KB
2K SLoC

Rust gfautil

用于对 GFA 和相关文件进行各种操作的命令行工具。

用法

使用 cargo 安装

cargo install gfautil

或克隆并构建它

git clone https://github.com/chfi/rs-gfa-utils.git
cd rs-gfa-utils
cargo build --release

编译的二进制文件将位于 target/release/gfautil

$ gfautil
gfautil 0.3.2

USAGE:
    gfautil [FLAGS] [OPTIONS] -i <input GFA file> <SUBCOMMAND>

FLAGS:
        --debug      Show debug messages
    -h, --help       Prints help information
        --info       Show info messages
        --quiet      Show no messages
    -V, --version    Prints version information

OPTIONS:
    -i <input GFA file>
    -t, --threads <threads>    The number of threads to use when applicable. If omitted, Rayon's default will be used,
                               based on the RAYON_NUM_THREADS environment variable, or the number of logical CPUs

SUBCOMMANDS:
    edge-count
    gaf2paf         Convert a file of GAF records into PAF records
    gfa2vcf         Output a VCF for the given GFA, using the graph's ultrabubbles to identify areas of variation
    help            Prints this message or the help of the given subcommand(s)
    id-convert      Convert a GFA with string names to one with integer names, and back
    snps            Given a reference path from the GFA, by name, find and report the SNPs for all other paths
                    compared to the reference.
    subgraph        Generate a subgraph of the input GFA
    ultrabubbles

GAF -> PAF

给定一个 GAF 文件和创建它的 GFA,输出一个从 GAF 记录派生出的 PAF 文件。对于每个 GAF 记录中的每个路径段,都会生成一个相应的 PAF 记录。

example.gaf 通过 example.gfa 转换,并将输出输出到 stdout

gfautil -i ./example.gfa gaf2paf --gaf ./example.gaf

将输出保存到 out.paf

gfautil -i ./example.gfa gaf2paf --gaf ./example.gaf -o out.paf

GFA -> VCF

在输入 GFA 中找到超泡,然后使用这些超泡来识别变体。对于每个超泡,从每个嵌入路径中提取超泡覆盖的部分。然后成对比较这些子路径。

可以使用 -u 选项从文件(由 ultrabubbles 命令输出)加载超泡列表,而不是计算它们。

目前变体识别主要基于构成每个路径的节点,并且几乎不考虑序列。

输出为 VCF 格式,输出到 stdout。

gfautil -i ./example.gfa gfa2vcf

有一个设置可以跳过比较一对路径,如果它们的泡开始和结束处的方向不匹配

gfautil -i ./example.gfa gfa2vcf --no-inv

从文件加载超泡列表

gfautil -i ./example.gfa gfa2vcf -u example.ultrabubbles

在 GFA 中对参考路径识别 SNP

给定输入 GFA 中用作参考的路径名称,使用由 gfautil ultrabubbles 命令构建的超泡列表或 SNP 位置列表,识别所有其他路径中的 SNP。

输出一个以制表符分隔的列表,格式如下

<query-path-name>\t<reference base>\t<reference pos>\t<query base>\t<query pos>

SNP 位置可以作为 gfautil 参数的列表提供

gfautil --debug -t 8 -i ./example.gfa snps --ref "reference path name" --snps 1234 5677 1> example.gfa.snps

SNP 位置也可以作为文件提供,每行一个位置

gfautil --debug -t 8 -i ./example.gfa snps --ref "reference path name" --snps-file ./positions.txt 1> example.gfa.snps

从文件中使用超气泡

gfautil -i ./example.gfa snps --ref the_path -u example.bubbles

子图

返回给定GFA的子图。提供段名称列表或路径名称列表。如果提供段名称,则结果子图将包括包含至少一个这些段的行。如果提供路径名称,则使用给定路径中的段。

gfautil -i example.gfa subgraph segments --names s1 s2 s3
cat names.txt
s1
s2
s3
gfautil -i example.gfa subgraph segments --file names.txt
gfautil -i example.gfa subgraph paths --names p1 p2

依赖关系

~14–24MB
~303K SLoC