跳转到主要内容

未知

项目描述

# 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脚本完成。脚本执行的主要操作包括

  1. 复制输入数据。

  2. 在两组数据中执行某些字符的替换,以创建与Plink兼容的字符(即“-”到“0”)。

  3. 独立索引两组数据。

  4. 合并两组数据。

  5. 按组合索引排序。

  6. 转置组合数据。

  7. 输出到与Plink兼容的pedmap格式。

在此之前,这些步骤可能需要使用各种软件包手动执行,而现在它们可以自动执行。

除了转换操作外,还有额外的功能可以执行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镜像。此镜像包含plinkfastStructure和转换脚本,所有这些都集成到一个轻量级的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.pedoutput.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 (7.1 kB 查看哈希值)

上传时间: 源代码

支持者