BioSequences是一个集合了基本的常用的生物序列分析工具的包,旨在提高日常一些基本序列分析流程的工作效率,以及为大数据分析提供一些基础支持。
完整文档请看这里Document。
pip install biosequences
windows下需要安装Microsoft VC++
编译工具, Linux 需要安装gcc或其他编译工具。
git clone https://github.com/Dragon-GCS/BioSequences.git
cd BioSequences
python -m pip install BioSequences
bioseq
可以从标准fasta格式的文件或NCBI/Ensemble数据库读取序列信息。当fetch
方法的参数为列表时可以批量抓取目标序列。
>>> from bioseq.utils import loadFasta, fetchNCBI, fetchENS
>>> sequence1 = loadFasta("/path/to/file.fasta")
>>> bsa = fetchNCBI("NP_851335.1")
>>> actin = fetchENS("ENST00000614376")
bioseq.RNA
,bioseq.DNA
和 bioseq.Peptide
都继承自 bioseq.Sequence
,因此三者基本操作基本一致。
-
查看序列的基本属性
>>> actin.GC, actin.length (0.5, 102) >>> actin.composition {'A': 24, 'C': 18, 'G': 33, 'T': 27} >>> actin.seq 'AGAAACTTTAGCATCTGGCTAGGAGCATCTGTGGTGGCTCACCTTTCTACCTATACGTGTGAGTGGGTGACCTGAGAGGAGTACGGTGAGCATATGAGGATG' >>> round(bsa.weight, 1) 69334.4 >>> bsa.pI 6.805 >>> round(bsa.chargeInpH(7.4), 2) -13.76
-
DNA序列或RNA序列可以进行转录
transcript()
,DNA序列有translate()
方法可以翻译为RNA序列。 还可以通过bioseq.config.START_CODON
自定义起始密码子,以及通过修改bioseq.config.CODON_TABLE
自定义密码子表。>>> from bioseq.config import START_CODON, CODON_TABLE >>> actin.transcript() >>> START_CODON[0] = 'AGA' >>> actin.transcript() [N-RNFSIWLGASVVAHLSTYTCEWVT-C] >>> CODON_TABLE["AAC"] = "Y" >>> actin.transcript() [N-RYFSIWLGASVVAHLSTYTCEWVT-C]
-
两个相同类型的序列可以进行拼接
>>> from bioseq import DNA >>> dna1 = DNA("ATCG") >>> dna2 = DNA("GCAT") >>> dna1 + dna2 "5'-ATCGGCAT-3'" >>> dna2 + dna1 "5'-GCATATCG-3'"
-
通过
mutation()
方法对序列进行修改>>> dna1.mutation("ATC", "GGG") 'GGGG' >>> dna1.mutation(0, "AT") 'ATGG' >>> dna1.mutation([0, 3], "C") 'CTGC'
-
Sequence
用C语言实现了Needleman-Wunsch
全局比对和Smith-Waterman
局部比对两种基本的序列匹配算法,可以用来快速比对序列(局部比对仅返回匹配的局部序列)。>>> DNA("GCATGCT").align("GATTACA") ('GCA-TGCT', 'G-ATTACA', -4.0) >>> DNA("GCATGCT").align("GATTACA", 2) ('AT', 'AT', 4.0)
比对返回的前两个参数为比对后的序列,第三个参数为匹配得分,可以通过
bioseq.utils.printAlign()
来优化比对结果的显示。>>> from bioseq.utils import printAlign >>> seq1, seq2, score = DNA("GCATGCT").align("GATTACA") >>> printAlign(seq1, seq2) 1 GCA-TGCT ┃━┃━┃•┃• 1 G-ATTACA
可以通过修改
bioseq.config.AlignmentConfig
来修改匹配时的罚分,默认为MATCH(2.0), MISMATCH(-3.0), GAP_OPEN: (-3.0), GAP_EXTEND(-3.0)
>>> from bioseq.config import AlignmentConfig >>> AlignmentConfig.GAP_OPEN = -10 >>> DNA("GCATGCT").align("GATTACA") ('GCATGCT', 'GATTACA', -6.0)