首页 > 编程语言 >【pyfaidx】纯Python实现的FASTA随机索引库

【pyfaidx】纯Python实现的FASTA随机索引库

时间:2022-11-09 23:00:11浏览次数:67  
标签:Python complement genes pyfaidx 序列 FASTA chrM

前言

基因组序列的提取,有不少强大的工具像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

标签:Python,complement,genes,pyfaidx,序列,FASTA,chrM
From: https://www.cnblogs.com/huanping/p/16875533.html

相关文章

  • 新的学习历程-python1 Hello World
    1print('helloworld!')2if2>0:3print('ok')4print('yes')56x=3;y=47print(x+y)学习资源来自:张志刚老师python百例 《例解Python:Pyth......
  • python中字符串的使用和数据转换
    #1.输入输出#sep='',步长数据之间以某个东西分割在这里是空格#end='\n'在打印后会额外的加一个数据换行print('1.输入输出')print('同学们晚上好',1,77......
  • python迭代器
    什么是迭代器迭代器是值迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是迭代为什么要有迭代器寻求一种不依赖索引取值的......
  • 【python】程序员最浪漫的表白方式,将情书写在她的照片里
    前言大家早好、午好、晚好吖~这不光棍节快到了,表弟准备写一封情书给他的女神,想在光棍节之前脱单。为了提高成功率,于是跑来找我给他参谋参谋,本来我是不想理他的。不过......
  • 安装python包fitter过程中报错的解决方法
     pipinstallfitter时,提示“.ReadTimeoutError:HTTPSConnectionPool(host='files.pythonhosted.org',port=443):Readtimedout.”。解决方法:1)改从https://pypi.o......
  • Python在Windows中安装
    Python在Windows中安装Python3适用于Windows,MacOS和大多数Linux操作系统。即使Python2目前可用于许多其他操作系统,有部分系统Python3还没有提供支持或者支持了但被它......
  • Python在CentOS上编译安装
    Python在CentOS上编译安装CentOS71.*安装前准备1.*.&下载安装包点击查看代码$yuminstall-yzlib-develbzip2-developenssl-develxz-libswget1.*.&下载......
  • python添加模块路径的三种方法
    查看python的模块路径方法是importsysprintsys.path这个就会打印出所有的模块路径。 下边是在这个python系统路径中加入新的模块路径的三种方法,1、添加环境变量PY......
  • Python 扩展模块Cython安装及使用
    ​Cython是一种通过python语法编写C扩展的编程语言,源代码可被翻译成优化的C/C++代码并编译成Python扩展模块。 Cython使得Python语言的C扩展与Python一样简单。本文主要......
  • python 混杂模式
    importsocketimportoshost='10.81.226.234'defmain():#判断系统是否为windowsifos.name=='nt':#windwos允许嗅探任何协议s......