Python的ms文件读取器(最终可能成为写入器)
项目描述
msssPy
Python的ms/ms文件读取器。
发音为“密西西比”
该读取器比基本的ms文件读取器更加强大,因为它为它读取的每个文件保留索引缓存,这显著加快了对多个复制ms文件中单个样本的随机访问。
这对于机器学习任务特别有用,在这些任务中,ms文件需要被多次随机访问。已经由相同进程看到的文件比第一次在该进程中访问时读取得更快。未来版本还将添加缓存持久性。
此外,mssspy添加了插入不同“读取器”实现的能力,这些实现使用不同的解析算法。目前包括两个内置读取器,一个是“慢速”读取器,它具有更好的容错性和错误报告,另一个是“快速”读取器,它假设ms文件格式正确,而牺牲了更仔细的验证。
基本用法
要读取ms文件,主要的高级接口是MSFile
类。简单地打开一个文件,如
>>> import mssspy
>>> msf = MSFile('path/to/simulations.ms')
然后您可以使用索引符号访问文件中的单个重复样本或“样本”
>>> msf[0]
Sample(haplotypes=array([[0, 1, 1, 0, 0],
[1, 0, 0, 1, 1]], dtype=uint8), positions=array([0.283, 0.55 , 0.589, 0.715, 0.988]))
即使文件中只有一个样本,也是如此,即msf[0]
。
如果您打算在文件打开时从同一文件中读取多个样本,那么在with
语句中使用MSFile
也更为高效,例如
>>> with MSFile('path/to/simulations.ms') as msf:
... all_samples = list(msf)
注意: 目前尚无获取文件长度的样本数的方法。例如,len(msf)
不起作用。这是因为需要扫描整个文件来计数样本数,这将非常低效。然而,这项功能将在未来的版本中添加。
在此期间,您仍然可以遍历 MSFile
,它将尝试从 0
开始的所有可能的索引,直到引发 IndexError
。换句话说,这就是为什么 list(msf)
可以工作的原因。
基本上就是这些了!
高级用法
待办事项
未来版本待办事项列表
-
添加用 C(ython) 编写的 "快速" 读取器,并将其性能与现有的 "更快" 读取器进行比较。
-
更彻底的解析(例如,支持
time:
和树形数据解析)。 -
支持写入。
-
更全面的文档,包括 API 文档。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分布
构建的分布
mssspy-0.1.0b2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e356f2aada86f0cd18f02631dbd621e35819be3dba13916b46aaeeea3bf5433c |
|
MD5 | d203c77aba03f77e19bec6f2d67b6e5e |
|
BLAKE2b-256 | 4236675a4a7a29c02e4fb1873a1e3a5db46592dc1c6a85b488b0d3f03daa14b9 |