Py学习  »  Python

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

生信媛 • 5 年前 • 1181 次点击  


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