6 个版本 (3 个重大更新)
0.4.1 | 2024 年 2 月 1 日 |
---|---|
0.4.0 | 2024 年 2 月 1 日 |
0.3.0 | 2023 年 10 月 27 日 |
0.2.1 | 2023 年 10 月 26 日 |
0.1.1 | 2020 年 11 月 24 日 |
#451 在 解析实现
每月 <117 次下载
380KB
732 行
swc-neuron
SWC 文件的读取、写入和操作 Rust 库。还包括 CLI 进行基本验证、排序和重新索引(可选功能 cli
)。
该格式最初由 Cannon, et al. 1998 提出,在 dohalloran/SWC_BATCH_CHECK 中实现。
尽管常用,但存在许多变体;此实现试图涵盖 此处 描述的“标准化”版本,并通过 SWCplus 规范 解决了一些歧义。
头部是一系列以 #
开头的行,从文件开头开始。空行(即没有 #
或任何其他非空白内容)不会中断头部,但也不包含在解析的头部中。`SwcNeuron` 类型是 `Header` 实现的泛型,目前仅实现了 String
(即它被视为一个自由文本字段,每行的前导 #
被删除)。文件中第一个样本之后的所有其他以 #
开头和仅包含空白行的行都将被忽略。
swctool
包含在 cli
功能中。
swctool 0.2.1
Tool for manipulating and validating SWC neuronal morphology files.
Implementation is based on the "specification" at
http://www.neuronland.org/NLMorphologyConverter/MorphologyFormats/SWC/Spec.html
All headers, blank lines, and whitespace separators other than a single space character between each field will be
removed.
USAGE:
swctool [FLAGS] [OPTIONS] [ARGS]
FLAGS:
-h, --help
Prints help information
-n, --no-catchall
Some known sub-specifications have a "catch-all" structure which allows any value to be valid: this argument
ignores that structure if "structures" is given
-r, --reindex
Reindex the samples, starting at 1 (happens after sorting)
-s, --sort
Sort the samples by their sample number (happens before reindexing)
-t, --toposort
Sort the samples topologically in depth first preorder from the root; must be a valid tree
-u, --unordered
If using --validate, allow samples to be given out of order (i.e. parents can be defined after their
children). Ignored if --validate is not given
-V, --validate
Check that SWC describes a valid tree. --toposort requires a valid tree structure
--version
Prints version information
OPTIONS:
-S, --structures <structures>
If given, structure IDs will be checked against the given comma-separated list of integers. Also accepts the
names of known SWC sub-specifications: "neuromorpho", "cnic", "vned", "gulyas", "navis". If your schema
extends a known sub-spec, give e.g. "cnic,8,9,10"
ARGS:
<input>
Input file; does nothing if not given, reads from stdin if -
<output>
Output file; writes nothing if not given, writes to stdout if -
示例数据
由 neuromorpho.org 提供。一些是标准化的,一些不是。
关于 SWC 头部的说明
“标准” SWC(如最初提出的那样)有一些特定的元数据字段,这些字段“应该”存在于头部中。Neuromorpho SWC 没有头部要求。SWCplus 将更复杂的元数据作为 XML 编码在头部中。
请注意,SWCplus 规范网页存在一些编码问题。在元数据中,CONTRIBUTOR
的姓氏和首字母之间应使用下划线 _
作为分隔符,而 SOMA_AREA
应为平方微米 μm²
,而不是平方毫米 mm²
。
开发
应通过 cargo-release 处理版本标签等;然后在 CI 上进行发布。
依赖关系
~1.5–2.6MB
~39K SLoC