未知
项目描述
# lizards-are-awesome
一个基于Docker的工作流程,用于从Excel文件推断出的DArTseq SNP数据中执行Plink和fastStructure分析。
## 概述
该软件旨在减少将DArTseq SNP数据(1行格式)准备用于Plink和fastStructure分析所需的繁琐手工操作。LAA专门针对由DArTseq生成的SNP数据集(1行格式)。因此,输入数据将是DArTseq提供的以下元数据:“0”=参考等位基因纯合子,“1”=SNP等位基因纯合子,“2”=杂合子,“-”=双缺失/缺失等位基因纯合子(基因组表示中缺少带有SNP的片段)。LAA首先将这些数据转换为Plink分析所需的ped和map文件。
除了提到的外部包之外,大部分工作都由Python脚本完成。脚本执行的主要操作包括
复制输入数据。
在两组数据中执行某些字符的替换,以创建与Plink兼容的字符(即“-”到“0”)。
独立索引两组数据。
合并两组数据。
按组合索引排序。
转置组合数据。
输出到与Plink兼容的ped和map格式。
在此之前,这些步骤可能需要使用各种软件包手动执行,而现在它们可以自动执行。
除了转换操作外,还有额外的功能可以执行Plink和fastStructre的分析运行,并在两个程序之间自动传递数据文件。
除了转换操作外,LAA还会自动在生成的ped和map文件上启动程序Plink,然后将生成的bed、bim和fam文件传递给fastStructure进行分析。用户可以选择最多K(种群数量)个种群由fastStructure分析。输出文件包括每个个体的平均Q值,定义了属于K1到Kx任意一个种群的平均概率。
## 设计决策
### 为什么选择Docker?
Plink是为基于Linux的操作系统编写的。因此,在Linux系统上可以直接执行所有操作,无需任何形式的虚拟化层。但是,为了支持使用基于Windows的操作系统的研究人员,决定利用Docker虚拟化。
Docker提供了一个轻量级的虚拟化层,使得Linux软件能够在Windows上(相对)轻松地运行。它还具有提供基于云的机制来向用户分发软件“镜像”的额外好处。与VirtualBox或VMware等系统相比,Docker的优势在于
基于云的预构建镜像分发,
未来版本将允许原生Docker容器,并且
易于复制虚拟镜像的创建。
### 为什么选择Python?
Python是一种强大且表达丰富的脚本语言。它带有许多不同的包,并且得到了开发者的出色支持(例如,fastStructure是用Python编写的)。
## 依赖项
在任何平台上安装时,有一些必需的依赖项
Python
Docker
如果您在Windows上安装,则还有一些额外的要求
Visual Studio Python编译器
MsysGit
## 重要
我们发现Docker在Windows上运行时存在问题,导致数据转换错误。虽然您可能能够在Windows系统上安装LAA,但结果的可能准确性会受到影响。
要安装在Windows上,我们建议使用运行Ubuntu安装的虚拟机,例如VMware。下面所有详细步骤(包括安装Docker)都必须在虚拟机中执行。
## 安装
首先,安装操作系统上列出的所有依赖项。
完成安装后,打开系统终端(请参阅下文关于系统终端的子节,在使用部分)。
从打开的系统终端,使用以下命令安装LAA Python界面:
`bash pip install lizards-are-awesome`
接下来,从系统终端,下载并准备laa docker镜像。此镜像包含plink、fastStructure和转换脚本,所有这些都集成到一个轻量级的Alpine Linux镜像中
`bash laa init`
## 使用
### 终端
当前的使用是通过操作系统终端直接完成的。在类似Linux的操作系统(包括Mac OS X)中,使用系统终端模拟器。在Windows操作系统中,使用Docker快速启动终端。
### 输入格式
LAA接受XLSX Excel格式和CSV。不幸的是,使用开源工具解析XLSX非常慢。因此,我们建议在使用LAA之前将Excel数据转换为CSV(只需使用Microsoft Office或开源电子表格工具,如Libre Office打开并另存为csv文件)。
数据表应只包含具有DArTseq SNP数据的列(即0、1、2和-),所有其他列都必须删除。第一行应包含每个个体所属的种群名称(例如物种),第二行应包含每个个体的ID。所有后续行包含SNP数据。
一个简短的、虚构的示例
<table class="table table-bordered table-hover table-condensed"> <tbody><tr><td>Pminima</td> <td>Pminima</td> <td>Pminor</td> <td>Pminima</td> <td>Pminor</td> <td>Pminima</td> </tr> <tr><td>lizard1</td> <td>lizard2</td> <td>lizard15</td> <td>lizard39</td> <td>lizard40</td> <td>lizard44</td> </tr> <tr><td>0</td> <td>1</td> <td>1</td> <td>2</td> <td>1</td> <td>1</td> </tr> <tr><td>0</td> <td>0</td> <td>0</td> <td>1</td> <td>0</td> <td>0</td> </tr> <tr><td>1</td> <td>-</td> <td>1</td> <td>0</td> <td>1</td> <td>1</td> </tr> <tr><td>0</td> <td>0</td> <td>1</td> <td>0</td> <td>-</td> <td>0</td> </tr> <tr><td>2</td> <td>2</td> <td>1</td> <td>1</td> <td>1</td> <td>2</td> </tr> <tr><td>2</td> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>0</td> </tr> <tr><td>1</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>1</td> </tr> <tr><td>1</td> <td>1</td> <td>1</td> <td>2</td> <td>0</td> <td>1</td> </tr> <tr><td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> </tr> <tr><td>-</td> <td>1</td> <td>2</td> <td>1</td> <td>1</td> <td>1</td> </tr> </tbody></table>
并且,以CSV格式
`csv Pminima,Pminima,Pminor,Pminima,Pminor,Pminima lizard1,lizard2,lizard15,lizard39,lizard40,lizard44 0,1,1,2,1,1 0,0,0,1,0,0 1,-,1,0,1,1 0,0,1,0,-,0 2,2,1,1,1,2 2,2,1,2,1,0 1,1,2,1,2,1 1,1,1,2,0,1 0,0,0,0,0,0 -,1,2,1,1,1 `
### 位置
所有LAA命令都必须从包含您的CSV输入文件的同一目录中运行。为了示例的目的,假设我们有一个位于/c/workspace/data的输入文件,input.csv
`bash cd /c/workspace/data `
### 快速运行
要执行完整过程,包括转换、Plink、fastStructre和K值的分析,您可以只需运行
`bash laa all input.csv --maxk=5 `
其中 –maxk=5 可以替换为合适的最大K值。
这将产生一系列文件,位于当前工作目录中,对应于转换、Plink和fastStructre的输出。
### 转换
转换输入数据将进行重组、转座,输出PED文件,并生成适当的映射文件
`bash laa convert input.csv output.ped `
这将生成两个文件:output.ped和output.map。这些文件适合与Plink一起使用。
### Plink
要使用Plink处理转换后的输入文件,请运行
`bash laa plink output.ped `
### fastStructure
要使用fastStructure处理Plink输出,请运行
`bash laa fast output `
### K值选择
要多次运行fastStructure并选择合适的K值,请运行
`bash laa choosek output --maxk=5 `
其中 –maxk=5 可以替换为合适的最大K值。
## 获取帮助
帮助始终可以从命令行获得。要获取可用命令的打印输出,请运行
`bash laa -h `
您还可以使用类似的方式获取特定命令的帮助
`bash laa convert -h `
其中 convert 可以替换为您需要获取帮助的相应命令。
项目详情
lizards-are-awesome-0.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 18481e54c3d47bfda28a7994cf0b29297d16eeb7e425cf94c61e42f3b981ee90 |
|
MD5 | ef41b62d034825f5af14df2cd73634c7 |
|
BLAKE2b-256 | 6b982c487d9d2f719ede89097cf9a21ced4f812c733f39cca93facd3dae1b95f |