基于哈希的音素序列标识符
项目描述
Konstel(lations)
一个可扩展的命令行工具、库和配套的 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的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 10f999a8432af16827dd47607b47db6b1d690a556dfbdbfcd53eb139c5113256 |
|
MD5 | 75377b595e87ba114232933403267788 |
|
BLAKE2b-256 | 53f97635178a8aa16ff430929219d727c7efaacbc1e40cb57091070ae7821170 |