跳转到主要内容

使用NumPy进行遗传学

项目描述

Tests codecov Docs PyPI version

gumpy

使用NumPy进行遗传学

安装

git clone https://github.com/oxfordmmm/gumpy
cd gumpy
pip install .

文档

https://oxfordmmm.github.io/gumpy/

测试

可以从终端运行一系列测试

python -m pytest --cov=gumpy -vv

用法

解析genbank文件

可以通过传递genbank文件的文件名来创建基因组对象

from gumpy import Genome

g = Genome("filename.gbk")

解析VCF文件

可以通过传递vcf文件的文件名来创建VCFFile对象

from gumpy import VCFFile

vcf = VCFFile("filename.vcf")

将VCF文件应用于参考基因组

可以将vcf文件中定义的突变应用于参考基因组,以生成一个包含vcf中详细更改的新基因组对象

如果vcf中设置了contig,则contig的长度应与基因组的长度匹配。否则,如果vcf详细信息在基因组范围内更改,将进行更改。

from gumpy import Genome, VCFFile

reference_genome = Genome("reference.gbk")
vcf = VCFFile("filename.vcf")

resultant_genome = reference_genome + vcf

基因组级别比较

有两种不同的方法用于比较更改。可以快速检查由给定VCF文件引起的更改。另一种可以检查两个基因组之间的更改。因此,后者最适合在两个基因组都发生突变或VCF文件不可用的情况下的比较。前者最适合在需要确定由VCF引起的更改,但找到基因级别差异需要重建基因对象,这可能很耗时的情况。

比较基因组

可以轻松比较相同长度的两个基因组,包括两个之间的相等性和更改。最适合比较两个突变基因组的情况。

from gumpy import Genome, GenomeDifference

g1 = Genome("filename1.gbk")
g2 = Genome("filename2.gbk")

diff = g2 - g1 #Genome.difference returns a GenomeDifference object
print(diff.snp_distance) #SNP distance between the two genomes
print(diff.variants) #Array of variants (SNPs/INDELs) of the differences between g2 and g1

基因水平比较

当创建基因组对象时,它会用genbank文件中详细描述的每个基因的基因对象填充。这些基因也可以进行比较。可以通过直接比较基因对象或通过使用GenomeDifferencegene_differences()方法系统地进行基因差异的查找。

from gumpy import Genome, Gene

g1 = Genome("filename1.gbk")
g2 = Genome("filename2.gbk")

#Get the Gene objects for the gene "gene1_name" from both Genomes
g1_gene1 = g1.build_gene["gene1_name"]
g2_gene1 = g2.build_gene["gene1_name"]

g1_gene1 == g2_gene1 #Equality check of the two genes
diff= g1_gene1 - g2_gene1 #Returns a GeneDifference object
diff.mutations #List of mutations in GARC describing the variation between the two genes

保存和加载基因组对象

由于创建基因组对象需要很长时间,将其保存到磁盘可能是有益的。建议使用pickle模块来完成此操作,但鉴于其安全性影响,请在自己的风险下进行!以下是一个示例

import pickle

import gumpy

#Load genome
g = gumpy.Genome("filename.gbk")

#Save genome
pickle.dump(g, open("filename.pkl", "wb"))

#Load genome
g2 = pickle.load(open("filename.pkl", "rb"))

g == g2 #True

项目详情


下载文件

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

源分布

gumpy-1.3.8.tar.gz (47.4 kB 查看哈希)

上传时间

构建分布

gumpy-1.3.8-py3-none-any.whl (49.1 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面