计算多序列比对的各种摘要统计信息

amas的Python项目详细描述


#amas
对齐操作和摘要统计

com/book/en/v2/getting started installing git)在您的系统上。

在类似linux的系统(包括ubuntu)上,您可以从命令行使用

`````
sudo apt get install python3
````
将"amas"用作python模块,您可以使用[python包索引](https://pip.pypa.io/en/latest/installing.html)中的[pip]获得它。ython.org/pypi/amas/):
````
pip install amas
````
有关如何将此程序用作python模块的说明,请参见下面的说明。

下面是一般用法(可以在命令行中使用"python3 amas.py-h"查看此用法):

````
用法:amas<;command>;[<;args>;]


amas命令是:
concat concatenate input alignments
convert convert to other file format
replicate c为系统发育刀创建复制数据集
根据分区文件拆分拆分对齐
摘要写入对齐摘要
从对齐中删除分类单元


使用amas<;command>;-h获取有关命令参数的帮助

位置参数:
command子命令要运行

`在命令行上运行amas.py`需要使用'concat'、'convert'、'replicate'、'split'或'summary'指定要处理的输入的操作。
此外,还需要提供所有命令所需的三个参数。给出参数的顺序无关紧要:

1)输入带有"-i"(或长版本:`--in file s`)的文件名,

2)输入带有"-f"(`--in format`)、

3)和带有"-d"(`--data type`)的数据类型。

可用于格式的选项有"fasta"、"phylip"、"nexus"(顺序)、"phylip int"和"nexus int"(交错)。数据类型是蛋白质比对的"aa"和核苷酸比对的"dna"。

例如:
`````
python3 amas.py concat-i gene1.nex gene2.nex-f nexus-d dna
```

并行处理它们。"summary"命令支持"-c"或"-cores",可以指定要使用的核数:

`````
python3 amas.py summary-f phylip-d dna-i*phy-c 12
```
在上面,我们指定了12个核。请注意,如果只处理一个或很少的文件,这不会提高计算时间。并行处理仅用于文件解析步骤和计算对齐摘要。

除了总体对齐摘要外,还可以按顺序打印按序列(分类单元)计算的统计信息。使用"-s"或"-by taxon"标志将其打开。`在这种模式下,amas将打印出一个包含整体对齐摘要的文件和一个包含每个输入对齐的分类单元摘要的文件。

重要!` amas速度快,功能强大,但要小心:它假定您知道自己在做什么,并且不会阻止您重写文件。但是,如果发生这种情况,它会打印出一个警告。` amas也被用来处理对齐的数据和unal生成的一些输出。签名的序列没有意义。由于计算效率,"amas"默认不检查输入序列是否对齐。可以使用"-e"或"-check align"打开此选项。例如,如果要连接目录中的所有dna phylip文件,并且所有文件都具有".phy"扩展名,则可以运行:
````
python3 amas.py concat-f phylip-d dna-i*phy
````
默认情况下,输出将写入两个文件:`partitions.txt`,包含构建新对齐方式所用的分区,并以fasta格式将对齐方式本身"concatenated.out"。可以分别使用"-p"(`--concat part`)和"-t"(`--concat out`)更改这些文件的默认名称,后跟所需的名称。输出格式由`-u`(`--out format`)指定,也可以是下列任何格式:`fasta`、`phylip`、`nexus`(sequential)、`phylip int`或`nexus int`(interleaved)。

/>```
要连接的对齐在处理之前不需要具有相同的分类单元集:连接的对齐将填充缺失的数据,其中给定的轨迹缺少分类单元。但是,如果要连接的每个文件只包含唯一的名称(例如,在一个对齐中的物种名称加上序列名称:`d_melanogaster_nw_001845408.1',在另一个对齐中的'd_melanogaster_nw_001848855.1',等等),则首先需要修剪这些名称,以便来自一个分类单元的序列在所有文件中具有等效的名称。

您可以使用"-o"或"-summary out"更改此文件的名称。也可以同时汇总一个或多个序列对齐。

计算的统计数据包括分类单元数、排列长度、基质细胞总数、待定字符总数、缺失数据百分比、AT和GC含量(用于DNA排列)、可变位点的数量和比例、简约信息位点的数量和比例以及所有字符的计数。在相关的字母表中输入。

输入文件和指示输出格式的"-u nex u s"。

`amas'不会覆盖此处的输入,而是将创建新文件,自动将适当的扩展名附加到输入文件的名称:`-out.fas`、`-out.phy`、`-out.int phy`、`-out.nex`或`-out.int nex`.

你有一个分区文件,你可以分割一个连接的对齐并为每个分区写一个文件:
```
python3 amas.py split-f nexus-d dna-i concat.nex-l partitions.txt-u nexus
````
在上面的一个输入文件'concat.nex'中提供了与'split'分离和与'-l'分割文件'partitions.txt'(与'--spl'相同它是由''。对于拆分,一次只能使用一个输入和一个分区文件。这是一个示例分区文件:
```
aapos1&;2=1-604\3,2-605\3
aapos3=3-606\3
28sautapoindels=7583,7584,7587,7593
`````
``````>br/>如果这是上面示例命令中的` partpartitions.txt`文件,`amas`会写三个输出文件,分别名为` concat'u aapos1&2.nex`,` concat'u aapos3.nex`,` concat`和` concat ` concat ` u 28sauasauapos1&2.nex`,`和` concat ` concat塔波索引.nex`.将解析分区文件d只要在分区名称之前没有文本(`charset aapos1&2`或'dna,aapos1&2`将不起作用)和每个分区中的逗号分隔范围或单个位点,就可以正确地进行排序。

G数据?'.如果不希望这些内容包含在输出中,请在命令行中添加"-j"或"-remove empty"。

假设您有1000个phylip文件,每个文件都包含一个对齐的位点,并且您希望创建200个复制phylip对齐,每个都是从所有输入文件中随机选择的100个位点构建的。可以通过指定"replicate"命令并在命令后面加上"-r"或"-rep aln",然后加上复制数(在本例中为"200")和对齐数(`100')来完成此操作。如果您希望输出格式不是"fasta":
```
python3 amas.py replicate-r 200 100-d dna-f phylip-i*phy-u phylip
```
`````
````
mas.py remove-x species1 species2-d dna-f nexus-i*nex-u nexus int-g no species12\u br/>````
上面将处理目录中的所有"nexus"文件,并删除名为"species1"和"species2"的分类单元。参数"-x"(与"-taxa to remove"相同)后跟要删除的序列的名称。请注意,"amas"将空格转换为下划线,并在处理之前删除输入序列名称中的任何引号,因此您可能需要修改名称以相应地删除。参数"-g"(与"--out prefix"相同)指定要添加到输出文件名的前缀。默认前缀为"reduced"。您可能希望在删除分类单元后重新对齐文件。

默认情况下,此选项被禁用,因为它可以大大增加具有许多分类单元的文件中的计算时间。启用此选项还可以提供对错误指定的输入文件格式的额外检查。



amas作为python模块
在python管道中使用"amas"可以使处理输入和输出的方式更加灵活。命令行界面的所有主要功能都可以使用"amas"作为模块重新创建。从[pip]安装后(https://pip.pypa.io/en/latest/installing.html)使用:
````
pydoc amas.amas
````
访问可用类和函数的详细文档。


可以使用以下命令将"amas"导入脚本:
``python
from amas import amas
```
"amas"中用于操作对齐的类是"metaalignment"。该类必须使用与命令行中相同的命名参数来实例化:"in_files"、"data_type"、"in_format"。您还需要提供与"cores"一起使用的核心数。metaalignment保存一个或多个对齐,其"in_files"选项必须是一个列表,即使只读取一个文件也是如此。
``python

meta_aln=amas.metaalignment(in_files=["gene1.phy"],data_type="dna",in_format="phylip",cores=1)
```
les很简单:
`` python
multi_meta_aln=amas.metaalignment(in_files=["gene1.phy","gene1.phy"],data_type="dna",in_format="phylip",cores=2)
````
现在您可以调用对齐上的各种方法。`.get_summaries()`方法将计算对齐的摘要,并为它们生成标题,第一个元素是标题,第二个元素是一个列表列表,其中包含统计信息:
``python
summaries=meta_aln.get_summaries().
```
核苷酸和氨基酸数据的标题不同。您可以选择跳过它,只打印元组的第二个元素,即摘要统计列表:
``python
statistics=summaries[1]
````
``.get_parsed_alignments()`返回一个字典列表,其中每个字典是一个对齐,其中taxa是键,序列是值。例如,这允许您在每个对齐方式中只打印每个对齐方式中的分类单元名称:
``python3
S公司plit-alignment使用"metaalignment"上的"get partitioned"("your_partitions_file")"与单个输入文件对齐。`.get-partitioned()`返回字典的字典列表,每个分区的结构为{partition-name:{taxon:sequence}` python
``partitions=meta-aln.get-partitioned("partitions.txt")
````
`amas`使用`.get-partitions("您的分区文件")`解析分区文件:
``python
`parsed部分=meta_aln.get_partitions("partitions.txt")
print(parsed_parts)
`````

`.get_replicate(no_replicates,no_locits)`提供一个已分析的对齐(字典)列表,每个对齐(字典)都是由指定数量的locits构造的复制:
``python
replicate_sets=multi_meta_aln.get_replicate(2,2)
````
`
nMents首先用`.get_parsed_alignments()`,然后传递给`.get_concatenated(您的`.get_parsed_alignments`)。这将返回一个元组,其中第一个元素是连接对齐的`{taxon:sequence}`字典
,第二个元素是带`{name:range}`的分区dict。
``python
parsed戡alns=multi戡meta戡aln.get戡parsed戡alignments()
concat戡tuple=multi戡meta aln.get戡concatenated(parsed戡alns)
concatenated戡alignm
concatenated=concatat\u元组[0]
concatenated\u partitions=concatat\u元组[1]
`````
``` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` `
` ` ` ` ` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `格式(已分析)ignment)`以经过解析的字典作为参数调用的方法。这些方法包括`.print_fasta()`、`.print_nexus()`、`.print_nexus_int()`、`print_phylip()`和`.print_phylip_int()`。它们返回一个格式适当的字符串。
`` python
用于串联对齐:
nex_int_string=meta_aln.print_nexus_int(对齐)
print(nex_int_string)
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在通配符泛型类型和泛型类型之间未经检查的强制转换   java Eclipse SWT Hello world教程:无法将显示解析为类型   java如何向远程用户发送注销消息?   java RDD之后的空文件是什么。保存ASTEXTFILE?   用户界面在java中创建一个htmljs UI GCalendar   Java多个哈希映射指向同一个键   Java Dowhile循环不工作?   oraclejava类。组织。阿帕奇。梁sdk。util。UserCodeException:java。sql。SQLException:无法创建PoolableConnectionFactory   java是org类型。日食用户界面。文本编辑器。*看不见   java有没有从弹出窗口复制eclipse中变量值的插件或快捷方式?   java getSubimage为我提供了期望值null   java我想让它变得更简单   swing AWTEventQueue0一直在运行,java中的程序变得非常慢   java Solr实例化类时出错:自定义类   java将ListView适配器移植到RecyclerView适配器   c#测试混合web和桌面应用程序的安全性