序列注释
seqann的Python项目详细描述
用于注释基因功能的python包
- 自由软件:lgpl 3.0
- 文档:https://seqann.readthedocs.io。
- Jupyter Notebook
概述
seqann包允许 用户在一致序列中注释基因特征。可以通过将一致性序列传递给 BioSeqAnn类。初始化BioSeqAnn类时不需要参数。但是,注释可以是 在使用biosql数据库时创建得更快。如果没有提供biosql数据库,则下载并分析最后一个hla.dat文件。 包含所有ipd-imgt/hla的biosql数据库可以在DockerHub上获得,并且可以 在任何安装了Docker的机器上运行。
参数
下面是初始化BioSeqAnn对象时使用的参数和默认值的列表。
Parameter | Type | Default | Description |
---|---|---|---|
server | ^{tt6}$ | None | A BioSQL database containing all of the sequence data from IPD-IMGT/HLA. |
dbversion | ^{tt7}$ | Latest | The IPD-IMGT/HLA or KIR database release. |
datfile | ^{tt7}$ | None | The IPD-IMGT/HLA or KIR dat file to use in place of the server parameter. |
kir | ^{tt9}$ | False | Flag for indicating the input sequences are from the KIR gene system. |
align | ^{tt9}$ | False | Flag for producing the alignments along with the annotations. |
verbose | ^{tt9}$ | False | Flag for running in verbose mode. |
verbosity | ^{tt12}$ | None | Numerical value to indicate how verbose the output will be in verbose mode. |
debug | ^{tt13}$ | None | A dictionary containing a process names as the key and verbosity as the value |
用法
若要注释序列,请初始化新的BioSeqAnn对象,然后将序列传递给 annotate方法。序列必须是BiopythonSeq。序列的轨迹不是必需的,但它将提高注释的准确性。
fromseqannimportBioSeqAnnseqann=BioSeqAnn()ann=seqann.annotate(sequence,"HLA-A")
序列的注释可以在提供BioSeqDatabase或不提供BioSeqDatabase的情况下完成。使用biosql数据库 使用与正在运行的数据库匹配的参数初始化BioSeqDatabase。如果你是 从DockerHub运行imgt_biosqldb,则以下参数相同。
fromseqannimportBioSeqAnnfromBioSQLimportBioSeqDatabaseserver=BioSeqDatabase.open_database(driver="pymysql",user="root",passwd="my-secret-pw",host="localhost",db="bioseqdb",port=3306)seqann=BioSeqAnn(server=server)ann=seqann.annotate(sequence,"HLA-A")
注释
{'complete_annotation': True, 'annotation': {'exon_1': SeqRecord(seq=Seq('AGAGACTCTCCCG', SingleLetterAlphabet()), id='HLA:HLA00630', name='HLA:HLA00630', description='HLA:HLA00630 DQB1*03:04:01 597 bp', dbxrefs=[]), 'exon_2': SeqRecord(seq=Seq('AGGATTTCGTGTACCAGTTTAAGGCCATGTGCTACTTCACCAACGGGACGGAGC...GAG', SingleLetterAlphabet()), id='HLA:HLA00630', name='HLA:HLA00630', description='HLA:HLA00630 DQB1*03:04:01 597 bp', dbxrefs=[]), 'exon_3': SeqRecord(seq=Seq('TGGAGCCCACAGTGACCATCTCCCCATCCAGGACAGAGGCCCTCAACCACCACA...ATG', SingleLetterAlphabet()), id='HLA:HLA00630', name='<unknown name>', description='HLA:HLA00630', dbxrefs=[])}, 'features': {'exon_1': SeqFeature(FeatureLocation(ExactPosition(0), ExactPosition(13), strand=1), type='exon_1'), 'exon_2': SeqFeature(FeatureLocation(ExactPosition(13), ExactPosition(283), strand=1), type='exon_2')'exon_3': SeqFeature(FeatureLocation(ExactPosition(283), ExactPosition(503), strand=1), type='exon_3')}, 'method': 'nt_search and clustalo', 'gfe': 'HLA-Aw2-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-4', 'seq': SeqRecord(seq=Seq('AGAGACTCTCCCGAGGATTTCGTGTACCAGTTTAAGGCCATGTGCTACTTCACC...ATG', SingleLetterAlphabet()), id='HLA:HLA00630', name='HLA:HLA00630', description='HLA:HLA00630 DQB1*03:04:01 597 bp', dbxrefs=[])}
一旦序列被注释,基因特征及其相应的序列就可以在返回的Annotation对象中使用。如果 无法生成批注,则不会返回任何内容。下面是一个显示如何访问和打印功能的示例。
ann=seqann.annotate(sequence,"HLA-A")forfeatinann.annotation:print(feat,ann.gfe,str(ann.annotation[feat].seq),sep="\t")
安装
pip install seqann
依赖关系
- Clustal Omega1.2.0或更高版本
- Python 3.6
- blastn