社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python pyensembl:基因组位置注释到基因组特征(基因,转录本,外显子)

生信媛 • 3 年前 • 717 次点击  


PyEnsembl 为用户访问 Ensembl(http://www.ensembl.org/)参考基因组数据提供了一个很好的接口。可以直接从Ensembl FTP服务器下载参考基因组的GTF和FASTA文件,并且解析文件;Ensembl 并且提供了一些方法,用户可以通过基因组上位置提取对应的注释信息以及对基因组特征进行各种操作。

安装

  • pyensembl安装
pip install pyensembl
  • Ensembl数据下载
#命令
pyensembl install --release  --species 

#实例
pyensembl install --release 75 76 --species human

使用

from pyensembl import EnsemblRelease

# release 77 uses human reference genome GRCh38
data = EnsemblRelease(77)

# will return ['HLA-A']
gene_names = data.gene_names_at_locus(contig=6, position=29945884)

# get all exons associated with HLA-A
exon_ids  = data.exon_ids_of_gene_name('HLA-A')

缓存位置设置

默认缓存到目录pyensembl下:

C:\Users\用户名\AppData\Local\pyensembl\

自定义缓存位置:

import os

os.environ['PYENSEMBL_CACHE_DIR'] = '/custom/cache/dir'

非Ensembl 的数据

PyEnsembl 可以导入自定义数据;本地数据,指定本地路径;远程数据,指定URLs 。

示例:

data = Genome(
    reference_name='GRCh38',
    annotation_name='my_genome_features',
    gtf_path_or_url='/My/local/gtf/path_to_my_genome_features.gtf')

data.index()
gene_names = data.gene_names_at_locus(contig=6, position=29945884)

API

EnsemblRelease 对象提供各种方法访问参考基因组的注释信息(gene_name, gene_id, transcript_name, transcript_id, exon_id

Genes

  • genes(contig=None, strand=None) #strand='+',strand='-' 返回contig +或-链上所有基因
  • genes_at_locus(contig, position, end=None, strand=None)

基于contig上的位置(点或区域)注释到基因列表

  • gene_by_id(gene_id) 基于Ensembl gene ID返回gene symbol

  • genes_by_name(gene_name) 基于基因名返回Ensembl gene ID

  • gene_by_protein_id(protein_id) 返回基因的Ensembl protein ID

  • gene_names_at_locus(contig, position, end=None, strand=None) 根据位置只返回基因名

  • gene_name_of_gene_id(gene_id) 根据gene id只返回基因名

  • gene_name_of_transcript_id(transcript_id) 根据transcript id返回gene_name

  • gene_name_of_transcript_name(transcript_name) 根据transcript_name返回gene_name

  • gene_name_of_exon_id(exon_id)

    根据exon_id返回gene_name

  • gene_ids(contig=None, strand=None) 返回contig +或-链上所有基因 ID

  • gene_ids_of_gene_name(gene_name)

    gene_name返回 Ensembl gene IDs

Transcripts

  • transcripts(contig=None, strand=None)
  • transcript_by_id(transcript_id)
  • transcripts_by_name(transcript_name)
  • transcript_names(contig=None, strand=None)
  • transcript_ids(contig=None, strand=None)
  • transcript_ids_of_gene_id(gene_id)
  • transcript_ids_of_gene_name(gene_name)
  • transcript_ids_of_transcript_name(transcript_name)
  • transcript_ids_of_exon_id(exon_id)

Exons

  • exon_ids(contig=None, strand=None)
  • exon_ids_of_gene_id(gene_id)
  • exon_ids_of_gene_name(gene_name)
  • exon_ids_of_transcript_id(transcript_id)
  • exon_ids_of_transcript_name(transcript_name)

原文

  • PyEnsembl github(https://github.com/openvax/pyensembl)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/99346
 
717 次点击