#系统发育 #生物信息学 #命令行界面

bin+lib fastax

从 NCBI 分类数据库生成系统发育树和谱系

7 个稳定版本

1.5.0 2023年3月19日
1.4.0 2020年2月9日
1.3.2 2019年12月31日
1.3.0 2019年10月16日
1.2.0 2019年9月11日

#97 in 生物学

30 每月下载量

MIT 许可证

59KB
966

Fastax

crates.io badge

Fastax 是一个命令行工具,可以从 NCBI 分类数据库生成系统发育树和谱系。它使用本地数据库副本,使其速度非常快。

默认情况下,所有结果都会进行美化打印。此外,它可以将树输出为 Newick 格式,并将谱系输出为 CSV 格式。

它还可以用来获取一些类群的信息,例如它们的替代学名或它们使用的遗传代码。

安装

Fastax 使用 Rust 编写,这使得它安全、快速且可移植。代码使用 Cargo 管理,并在 crates.io 上发布。如果已经安装了 Cargo,只需在终端中输入

$ cargo install fastax

Et voilà !

或者,您可以从源代码编译它

$ git clone https://github.com/Picani/fastax.git
$ cd fastax
$ cargo build --release

可执行文件位于 target/release/fastax。只需将其移动到您的 PATH 上的某个位置。

填充本地数据库

首先,您需要获取 NCBI 分类数据库的本地副本。

$ fastax populate -ve [email protected]

populate 将下载最新的数据库转储,提取它们,并将它们加载到本地的 SQLite 数据库中。使用 -v 请求 fastax 告诉它在做什么。使用 -e 请求使用该电子邮件地址连接到 NCBI。请注意,提供您的电子邮件地址是可选的,但更受欢迎。

数据库位于您的本地数据文件夹中的 fastax 文件夹内,该文件夹应该位于 $HOME/.local/share

用法

对于每个命令,您至少需要查询一个节点。用于获取节点的术语可以是其唯一的 NCBI 分类学 ID(称为 taxid),其双名学名,或者由下划线(字符 _)分隔的双名学名两部分。最后一个选项对于脚本很有用。

请注意,对于某些物种,正在使用多个双名学名。Fastax 会寻找每个双名学名。

show 命令

您可以获取有关节点的一般信息

$ fastax show 4932
Saccharomyces cerevisiae - species
----------------------------------
NCBI Taxonomy ID: 4932
Same as:
* Saccharomyces capensis
* Saccharomyces italicus
* Saccharomyces oviformis
* Saccharomyces uvarum var. melibiosus
Commonly named baker's yeast.
Also known as:
* S. cerevisiae
* brewer's yeast
Part of the Plants and Fungi.
Uses the Standard genetic code.
Its mitochondria use the Yeast Mitochondrial genetic code.

$ fastax show "Homo sapiens"
Homo sapiens - species
----------------------
NCBI Taxonomy ID: 9606
Commonly named human.
Also known as:
* man
First description:
* Homo sapiens Linnaeus, 1758
Part of the Primates.
Uses the Standard genetic code.
Its mitochondria use the Vertebrate Mitochondrial genetic code.

或者也可以

$ fastax show Tyrannosaurus_rex
Tyrannosaurus rex - species
---------------------------
NCBI Taxonomy ID: 436495
Part of the Vertebrates.
Uses the Standard genetic code.
Its mitochondria use the Vertebrate Mitochondrial genetic code.

lineage 命令

您可以获取一个节点的谱系

$ fastax lineage 4932
root
  └┬─ no rank: cellular organisms (taxid: 131567)
   └┬─ superkingdom: Eukaryota (taxid: 2759)
    └┬─ no rank: Opisthokonta (taxid: 33154)
     └┬─ kingdom: Fungi (taxid: 4751)
      └┬─ subkingdom: Dikarya (taxid: 451864)
       └┬─ phylum: Ascomycota (taxid: 4890)
        └┬─ no rank: saccharomyceta (taxid: 716545)
         └┬─ subphylum: Saccharomycotina (taxid: 147537)
          └┬─ class: Saccharomycetes (taxid: 4891)
           └┬─ order: Saccharomycetales (taxid: 4892)
            └┬─ family: Saccharomycetaceae (taxid: 4893)
             └┬─ genus: Saccharomyces (taxid: 4930)
              └── species: Saccharomyces cerevisiae (taxid: 4932)

相同的谱系在 CSV 中

$ fastax lineage Saccharomyces_cerevisiae
no rank:root:1,no rank:cellular organisms:131567,superkingdom:Eukaryota:2759,no rank:Opisthokonta:33154,kingdom:Fungi:4751,subkingdom:Dikarya:451864,phylum:Ascomycota:4890,no rank:saccharomyceta:716545,subphylum:Saccharomycotina:147537,class:Saccharomycetes:4891,order:Saccharomycetales:4892,family:Saccharomycetaceae:4893,genus:Saccharomyces:4930,species:Saccharomyces cerevisiae:4932

tree 命令

您可以获取一个系统发育树

$ fastax tree "Escherichia coli" 4932 Drosophila_melanogaster 9606 "Mus musculus"
 ─┬─ no rank: root
  └─┬─ no rank: cellular organisms
    ├─┬─ no rank: Opisthokonta
     ├─┬─ no rank: Bilateria
     │ ├─┬─ superorder: Euarchontoglires
     │ │ ├── species: Mus musculus
     │ │ └── species: Homo sapiens
     │ └── species: Drosophila melanogaster
     └── species: Saccharomyces cerevisiae
    └── species: Escherichia coli

相同的树在新ick格式

$ fastax tree -n 562 4932 7227 9606 10090
(root,(cellular organisms,(Escherichia coli,Opisthokonta,(Saccharomyces cerevisiae,Bilateria,(Drosophila melanogaster,Euarchontoglires,(Homo sapiens,Mus musculus))))));

使用 -f/--format,您也可以更改默认的节点格式化

$ fastax tree -f "%taxid (%name)" "Escherichia coli" 4932 Drosophila_melanogaster 9606 "Mus musculus"
 ─┬─ 1 (root)
  └─┬─ 131567 (cellular organisms)
    ├─┬─ 33154 (Opisthokonta)
     ├─┬─ 33213 (Bilateria)
     │ ├─┬─ 314146 (Euarchontoglires)
     │ │ ├── 10090 (Mus musculus)
     │ │ └── 9606 (Homo sapiens)
     │ └── 7227 (Drosophila melanogaster)
     └── 4932 (Saccharomyces cerevisiae)
    └── 562 (Escherichia coli)

可用的标签有

  • %name 由学名替换
  • %rank 由等级替换
  • %taxid 由 NCBI 分类学 ID 替换

默认情况下,只有一个子节点的节点会被隐藏。您可以使用 -i/--internal 选项显示它们

$ fastax tree -i Mus_musculus Rattus_norvegicus
 ─┬─ no rank: root
  └─┬─ no rank: cellular organisms
    └─┬─ superkingdom: Eukaryota
      └─┬─ no rank: Opisthokonta
        └─┬─ kingdom: Metazoa
          └─┬─ no rank: Eumetazoa
            └─┬─ no rank: Bilateria
              └─┬─ no rank: Deuterostomia
                └─┬─ phylum: Chordata
                  └─┬─ subphylum: Craniata
                    └─┬─ no rank: Vertebrata
                      └─┬─ no rank: Gnathostomata
                        └─┬─ no rank: Teleostomi
                          └─┬─ no rank: Euteleostomi
                            └─┬─ superclass: Sarcopterygii
                              └─┬─ no rank: Dipnotetrapodomorpha
                                └─┬─ no rank: Tetrapoda
                                  └─┬─ no rank: Amniota
                                    └─┬─ class: Mammalia
                                      └─┬─ no rank: Theria
                                        └─┬─ no rank: Eutheria
                                          └─┬─ no rank: Boreoeutheria
                                            └─┬─ superorder: Euarchontoglires
                                              └─┬─ no rank: Glires
                                                └─┬─ order: Rodentia
                                                  └─┬─ suborder: Myomorpha
                                                    └─┬─ no rank: Muroidea
                                                      └─┬─ family: Muridae
                                                        └─┬─ subfamily: Murinae
                                                          ├─┬─ genus: Rattus
                                                           └── species: Rattus norvegicus
                                                          └─┬─ genus: Mus
                                                            └─┬─ subgenus: Mus
                                                              └── species: Mus musculus

subtree 命令

您可以获取一个节点的子代系统发育树

$ fastax subtree Homininae
 ─┬─ subfamily: Homininae
  ├─┬─ genus: Homo
   ├── species: Homo heidelbergensis
   └─┬─ species: Homo sapiens
     ├── subspecies: Homo sapiens subsp. 'Denisova'
     └── subspecies: Homo sapiens neanderthalensis
  ├─┬─ genus: Pan
   ├─┬─ species: Pan troglodytes
   │ ├── subspecies: Pan troglodytes verus x troglodytes
   │ ├── subspecies: Pan troglodytes ellioti
   │ ├── subspecies: Pan troglodytes vellerosus
   │ ├── subspecies: Pan troglodytes verus
   │ ├── subspecies: Pan troglodytes troglodytes
   │ └── subspecies: Pan troglodytes schweinfurthii
   └── species: Pan paniscus
  └─┬─ genus: Gorilla
    ├─┬─ species: Gorilla beringei
     ├── subspecies: Gorilla beringei beringei
     └── subspecies: Gorilla beringei graueri
    └─┬─ species: Gorilla gorilla
      ├── subspecies: Gorilla gorilla diehli
      ├── subspecies: Gorilla gorilla uellensis
      └── subspecies: Gorilla gorilla gorilla

如果您只想得到物种

$ fastax subtree -s Homininae
 ─┬─ subfamily: Homininae
  ├─┬─ genus: Homo
   ├── species: Homo heidelbergensis
   └── species: Homo sapiens
  ├─┬─ genus: Pan
   ├── species: Pan troglodytes
   └── species: Pan paniscus
  └─┬─ genus: Gorilla
    ├── species: Gorilla beringei
    └── species: Gorilla gorilla

相同的树在新ick格式

$ fastax subtree -sn Homininae
(Homininae,(Homo,(Homo sapiens,Homo heidelbergensis),Gorilla,(Gorilla beringei,Gorilla gorilla),Pan,(Pan paniscus,Pan troglodytes)));

tree 命令一样,您可以使用 -f/--format 选项格式化节点,并使用 -/--internal 选项显示内部节点。更多信息请见上文。

许可证

版权 © 2019 Sylvain PULICANI [email protected]

本作品是免费的。您可以在 MIT 许可证的条款下重新分发或修改它。有关更多详细信息,请参阅 LICENSE 文件。

依赖

~46MB
~755K SLoC