#assembly #gfa #genome #command-line-tool

bin+lib gfatk

gfatk 是一个用于操作中小型 GFA 文件的命令行工具,特别是用于从基因组组装器 MBG 输出的文件

2 个版本

0.2.17 2022 年 7 月 1 日
0.2.16 2022 年 6 月 28 日
0.2.3 2023 年 4 月 8 日
0.2.2 2022 年 7 月 9 日

#50生物学

每月 40 次下载

MIT 许可证

2MB
2.5K SLoC

包含 (WOFF 字体,400KB) docs/NanumBarunGothic.ttf.woff2,(WOFF 字体,135KB) docs/FiraSans-Medium.woff2,(WOFF 字体,130KB) docs/FiraSans-Regular.woff2,(WOFF 字体,82KB) docs/SourceSerif4-Bold.ttf.woff2,(WOFF 字体,77KB) docs/SourceSerif4-Regular.ttf.woff2,(WOFF 字体,45KB) docs/SourceCodePro-It.ttf.woff2 和更多

gfatk

A command line utility to explore, extract, and linearise plant mitochondrial assemblies. The Graphical Fragment Assembly files (GFA's) used to refine the code in this repository are almost exclusively generated from the assembly program <a href="https://github.com/maickrau/MBG">MBG</a>. See the testing section below for caveats.

安装

从发行版中获取(仅限 Mac & Linux)

# for mac
curl -L "https://github.com/tolkit/gfatk/releases/download/0.2.2/gfatk_mac_0.2.2" > gfatk && chmod +x gfatk
# and linux (ubuntu)
curl -L "https://github.com/tolkit/gfatk/releases/download/0.2.2/gfatk_ubuntu_0.2.2" > gfatk && chmod +x gfatk

或从源代码构建。

# e.g. get rustup!
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# get directly from crates.io
# currently this is the latest available version 0.2.3XX
cargo install gfatk

# or clone this repo!
git clone https://github.com/tolkit/gfatk
# cd!
cd gfatk
# build!
cargo build --release
# or install into your path!
cargo install --path .

功能

该工具箱的功能仅反映了它们在调试、可视化和线性化从(特别是)植物线粒体基因组组装器 MBG 输出的 GFA 的有用性。这些基因组通常相当小(高达 2Mb),在许多情况下具有环形或分支路径。

当前帮助

Explore and linearise (plant organellar) GFA files.

Usage: gfatk [COMMAND]

Commands:
  overlap         Extract overlaps from a GFA.
  extract         Extract subgraph from a GFA, given a segment name.
  linear          Force a linear representation of the graph.
  fasta           Extract a fasta file.
                      Almost as simple as: awk '/^S/{print ">"$2"\n"$3}'.
  stats           Some stats about the input GFA.
  extract-mito    Extract the mitochondria from a GFA.
  extract-chloro  Extract the plastid from a GFA.
  dot             Return the dot representation of a GFA.
  trim            Trim a GFA to remove nodes of degree < 4 (i.e. only has one neighbour).
  path            Supply an input path to evaluate a linear representation of.
                  Input must be a text file of a single comma separated line with node ID's and orientations. E.g. 1+,2-,3+
  rename          Rename the segment ID's of a GFA.
  help            Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

简要解释以下内容

  • gfatk dot <GFA> - 生成 GFA 的 <a href="http://graphviz.cpp.org.cn/doc/info/lang.html">DOT 语言表示。
  • gfatk extract <GFA> -s <segment-ids> -i <iterations> - 根据段名从 GFA 中提取子图,或多个(如果多个,则必须用逗号分隔,不包含空格)。对于大型图,可能需要增加迭代次数。
  • gfatk extract-chloro <GFA> - 从 GFA 中提取质粒。它有默认参数,似乎效果不错。
  • gfatk extract-mito <GFA> - 从 GFA 中提取线粒体。它有默认参数,似乎效果不错。
  • gfatk fasta <GFA> - 从 GFA 中提取 fasta 文件。这仅仅打印 GFA 中的每个段。我说它几乎和 awk 版本一样简单,但工具包会进行检查,看我们是否真的在处理 GFA。
  • gfatk linear <GFA> ---<node-threshold> - 强制图的最长线性合法表示。您可以在子图中评估(-),或包含节点覆盖率信息(-)。
  • gfatk overlap <GFA> -<size> - 从 GFA 中提取重叠部分。这些来自每个链接的 CIGAR 字符串,并可选项扩展(例如 -1000 到重叠两边各 1000bp)。
  • gfatk path <GFA> <path> (-/to/path.txt) - 根据输入路径评估图的线性表示。输入路径可以在命令行中,或是一个文件。简单地,它必须是一个逗号分隔的节点 ID 和方向的列表(1+,2-,3+ ... )。
  • gfatk stats <GFA> - - 一些关于输入 GFA 的统计信息。对于大型、未连接的图,可能非常详细。 - 输出表格数据(TSV)。
  • gfatk trim <GFA> - 如果段只有一个邻居,则移除段。对于修剪具有段在低覆盖率下连接的 GFA 有用。

这些不是每个子命令的所有选项。运行

gfatk help <subcommand> 获取每个子命令的更多信息。

许多这些命令可以链式调用,例如:gfatk extract-chloro in.gfa | gfatk linear > out.fa

示例和文档

一些更详细的示例可以在examples目录中看到,其中有一个README.md文件。要查看自动生成的二进制文件的文档,包括所有底层函数的详细信息,请参阅

API文档

需求与测试

现在在tests目录中提供了一些单元测试。要运行这些测试(您需要Rust)

cargo test --release

为了实现工具包的全部功能,需要两个标签,节点覆盖和边缘覆盖。如果CIGAR字符串不是纯重叠格式,则其他功能将失败;即格式为<整数>M。仅支持GFA版本1。只需要标题(H)、段(S)和链接(L)行。P行用于gfatk path --all <GFA>

H	VN:Z:1.0
S	11	ACCTT	ll:f:30.0 <- this tag indicates node/segment coverage (here it's 30.0)
S	12	TCAAGG	ll:f:60.0
S	13	CTTGATT	ll:f:30.0
L	11	+	12	-	4M	ec:i:1 <- this tag indicates edge coverage (here it's 1)
L	12	-	13	+	5M	ec:i:1
L	11	+	13	+	3M	ec:i:1
L	12	+	11	-	4M	ec:i:1
L	13	-	12	+	5M	ec:i:1
L	13	-	11	-	3M <- simple overlap on the CIGAR string (overlap == 3)	ec:i:1

感谢

感谢MBG的开发者,以及生命之树项目中的合作伙伴以及其他人员

  • Marcela Uliano-Silva
  • Sergey Nurk
  • Alex Twyford
  • Lucia Campos
  • Chenxi Zhou
  • Mark Blaxter

依赖项

~11MB
~158K SLoC