跳转到主要内容

基于哈希的音素序列标识符

项目描述

Konstel(lations)

Tests PyPI

一个可扩展的命令行工具、库和配套的 Web应用,用于为任意序列生成易于记忆和发音的基于哈希的标识符。Konstel在编码哈希摘要为人类友好的音素词之前,会规范和哈希给定的字符串、生物序列或SARS-CoV-2序列。这允许在不共享输入的情况下保留隐私的确认,可以将其视为命名学的URL缩短等效。在SARS-CoV-2等新兴传染病爆发的情况下,这种方法可以缓解一些限制性数据访问协议带来的挑战——我可以告诉你我的序列与你的相同,而无需与你共享。需要Python 3.6+。在ABPHM '21上展示。

SARS-CoV-2突刺蛋白命名

音素和截断的cbase32标识符分别提供34和35位的熵,截至2021-05-05,对于公开存档的SARS-CoV-2突刺蛋白序列是冲突免费的。音素标识符包括在第四个辅音之后的辅音-元音对(例如dazator-isak)。第一部分在标识符长度和低冲突率之间提供了有用的折衷方案,而包含第二部分则实现了冲突抵抗。通过覆盖方案的默认长度配置文件,还可以创建更长的标识符。有关SARS-CoV-2命名的讨论,请参阅我的 博客文章

安装

理想情况下在新的虚拟env或conda环境中

# Latest release
pip install konstel

# Development version
git clone https://github.com/bede/konstel
pip install --editable konstel

用法

命令行

任意字符串

$ echo "test" | konstel gen string -  # Uses '-' to accept stdin
{"scheme": "string", "hash": "ky3d10c89hypb6hfxagcappg2phvykrv5c5r4b6hbnp1bc7g1840", "id": "fizodo-tafado-fahudu-tinino-mozupo-pagaji-kotabi"}

$ echo "test" | konstel gen string --length 6 --output table -  # Custom length, tabular output
scheme               string         
hash                 ky3d10c89hypb6hfxagcappg2phvykrv5c5r4b6hbnp1bc7g1840
id                   fizodo   

任意核苷酸序列(字母表 -ACGTU

$ konstel gen bio.nuc acgt.fa --output table  # Fasta containing ACGT
scheme               bio            
hash                 3qzkx17yf1vy0ssvd6xxvkt02973jvhzk51xv28cj6va16pvkbr0
id                   bituzu-gupahu-zolodu-lumaki-suripi-rozitu-guhabi

$ echo "ACGT" | konstel gen bio.nuc --output table -  # ACGT as stdin
scheme               bio        
hash                 3qzkx17yf1vy0ssvd6xxvkt02973jvhzk51xv28cj6va16pvkbr0
id                   bituzu-gupahu-zolodu-lumaki-suripi-rozitu-guhabi

模糊的任意核苷酸序列(字母表 -ABCDGHKMNRSTUVWY

$ konstel gen bio.nuc-ambiguous acgtn.fa --output table  # Fasta containing ACGTN
scheme               bio            
hash                 t9a5abnf4nwtmbpb59b477218wqrwzf0hasz2qm9gw2ynpkpzgpg
id                   gifija-jihovo-rufiju-nopofu-rarapo-jinago-lahaja

任意蛋白序列(字母表 *-ACDEFGHIKLMNPQRSTVWY

$ konstel gen bio.pro taste.fa --output table
scheme               bio            
hash                 nr8npewt0bwamk8s3xwhgxnd47zn6rxsjtrjm4b3eqvvp40rp5g0
id                   fovahi-josuro-kobaru-mopohu-hinalu-lohimi-topuho

SARS-CoV-2突刺蛋白序列

$ konstel gen sars-cov-2-s.protein spike.prot.fa --output table
scheme               sars-cov-2-s   
hash                 S:0k8n9hjh5xh5kbef1k6ye7e2d4brhpry5r985avrtf69v6amrbc0
hash-7               S:0k8n9hj      
id                   S:huhijig-akih 

SARS-CoV-2基因组序列(包含完整的刺突蛋白序列)

$ konstel gen sars-cov-2-s.genome spike.genome.fa --output table
scheme               sars-cov-2-s   
hash                 S:0k8n9hjh5xh5kbef1k6ye7e2d4brhpry5r985avrtf69v6amrbc0
hash-7               S:0k8n9hj     
id                   S:huhijig-akih  

Python

>>> from konstel import konstel

任意字符串

>>> konstel.generate('string', '-', sequence='test')  # From string
{'scheme': 'string', 'hash': 'ky3d10c89hypb6hfxagcappg2phvykrv5c5r4b6hbnp1bc7g1840', 'id': 'fizodo-tafado-fahudu-tinino-mozupo-pagaji-kotabi'}

任意核苷酸序列,长度6

>>> konstel.generate('bio.nuc', '-', sequence='ACGT', length=6)  # From string
{'scheme': 'bio', 'hash': '3qzkx17yf1vy0ssvd6xxvkt02973jvhzk51xv28cj6va16pvkbr0', 'id': 'bituzu'}

SARS-CoV-2突刺蛋白序列

>>> konstel.generate('sars-cov-2-s.protein', 'spike.prot.fa')  # From fasta file
{'scheme': 'sars-cov-2-s', 'hash': 'S:0k8n9hjh5xh5kbef1k6ye7e2d4brhpry5r985avrtf69v6amrbc0', 'hash-7': 'S:0k8n9hj', 'id': 'S:huhijig-akih'}

问题

如果在运行过程中遇到问题,请通过GitHub问题、发推文@beconstant或通过邮箱b at bede dawt im联系我。

贡献

如果您想为此项目做出贡献,请打开一个问题或直接使用上述详细信息联系作者。

在提交拉取请求之前,请

  • 确保测试通过,在包目录中执行pytest(需要pytest包)
  • __init__.py中增加版本号(以SemVer为指南)
  • 如果可能,更新文档和/或测试

项目详情


下载文件

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

源分布

konstel-0.11.0.tar.gz (14.8 kB 查看哈希)

上传时间

支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面