跳转到主要内容

从磁盘进行快速、可扩展的SNP距离计算。

项目描述

Find Neighbour 5

Find Neighbour 4的精神继承者 - 继续David Wyllie的工作。

Tests Build FN5 images

使用缓存到磁盘的SNP矩阵生成。

安装

由于这是编译的客户端,请确保已安装功能齐全的C++编译器,如GCC。目前仅在Linux上进行了测试。

# Optional virtual environment
python -m virtualenv env
souce env/bin/activate

# Install via pip
pip install fn5

注意

这提供了一些底层FN5库的绑定,但有一些限制。大部分功能应通过Python绑定公开。

读取FASTA文件

首先,您需要一个参考基因组,以及在其中进行掩码的位置列表。掩码是可选的,但可以用来掩蔽没有流行病学意义的同源或多系谱区域。掩码应该是行分隔的基因组位置。

import fn5

reference = fn5.load_reference("<path to your reference>")
mask = fn5.load_mask("<path to your mask>")

# Alternatively ignore the mask
mask = set()

然后,可以从FASTA文件中解析出样本

sample1 = fn5.Sample("<path to sample1's FASTA>", reference, mask, "sample1")
sample2 = fn5.Sample("<path to sample2's FASTA>", reference, mask, "sample2")
...

保存样本

为了提高效率,可以将样本写入(随后从)磁盘。

请注意,fn5.save方法将写入5个文件到指定目录。 <path>/<sample ID>.A<path>/<sample ID>.C。 ...

fn5.save("<some output directory>", sample1)

加载样本

从磁盘加载预先保存的样本。这应该比重新解析FASTA文件要快得多。

sample1 = fn5.load("<some output directory>/sample1")

计算距离

可以使用任意的SNP截止值来计算距离。

单个距离

如果返回的距离 == 您的截止值 + 1,则两个样本比SNP截止值更远。

sample1.dist(sample2, <some cutoff>)

距离矩阵

默认情况下,此方法使用4个线程,没有截止值。如果返回的距离列表中缺少一对样本,则它们比给定的截止值更远。

samples = [fn5.load("<some directory>/"+f) for f in <existing filepaths>]
fn5.compute(samples)

# With more/less threads
fn5.compute(samples, thread_count=12)
fn5.compute(samples, thread_count=1)

# With a SNP cutoff
fn5.compute(samples, cutoff=12)

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

fn5-2.0.2.tar.gz (19.5 kB 查看哈希值)

上传时间

由以下支持