【pyfaidx】纯Python实现的FASTA随机索引库
前言
基因组序列的提取,有不少强大的工具像samtools,bedtools,之前也提到 pybedtools 提取序列。 不过pybedtools是对bedtools提供一个Python接口,除了安装pybedtools外, 还需要bedtools。最近想要一款纯Python实现,不依赖于其他的软件,能随机索引获取基因组序列的库,了解到了pyfaidx。
pyfaidx
快速进行随机索引的关键是index,有了index,就能以较少的内存消耗,快速获取任意序列。像samtools, bedtools都会构建index。 而pyfaidx 也利用纯Python实现索引算法,可以FASTA的序列index, 序列获取,原地修改操作。
使用
下载#
下载用一行命令就行:
pip install pyfaidx
用法#
用法也比较简单
from pyfaidx import Fasta
# GRCh38.primary_assembly.genome.fa 换成自己fasta 序列路径
genes = Fasta('GRCh38.primary_assembly.genome.fa')
genes
# Fasta("GRCh38.primary_assembly.genome.fa")
查看多少个染色体序列
>>> genes.keys()
odict_keys(['chr1', 'chr2', 'chr3', 'chr4', 'chr5', 'chr6', 'chr7', 'chr8', 'chr9', 'chr10', 'chr11', 'chr12', 'chr13', 'chr14', 'chr15', 'chr16', 'chr17', 'chr18', 'chr19', 'chr20', 'chr21', 'chr22', 'chrX', 'chrY', 'chrM'])
获取指点区间的序列
>>> genes["chrM"][0:5]
>chrM:1-5
GATCA
>>> genes["chrM"][0:5].seq
GATCA
>>> genes["chrM"][0:5].name
'chrM'
>>> genes["chrM"][0:5].name
'chrM'
>>> genes["chrM"][0:5].start
1
>>> genes["chrM"][0:5].end
5
互补,反向序列的获取
>>> genes["chrM"][0:5]
>chrM:1-5
GATCA
# 单纯反向序列
>>> genes["chrM"][0:5].reverse
>chrM:5-1
ACTAG
# 互补序列
>>> genes["chrM"][0:5].complement
>chrM:1-5 (complement)
CTAGT
# 反向互补序列
>>> genes["chrM"][0:5].complement.reverse
>chrM:5-1 (complement)
TGATC
# 反向互补序列,还可以这样
>>> -genes["chrM"][0:5]
>chrM:5-1 (complement)
TGATC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)