2021/03/03
Biopython 常用代码
from Bio import SeqIO
from Bio.seq import Seq
# 一般序列处理
coding_dna = Seq('ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG')
print(type(coding_dna)) # <class 'Bio.Seq.Seq'>
template_dna = coding.reverse_complement() # CTATCGGGCACCCTTTCAGCGGCCCATTACAATGGCCAT
messenger_rna = coding_dna.transcribe() # AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG
template_dna.reverse_complement().transcribe() # 生物学意义转录
# AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG
messenger_rna.back_transcribe() # mRNA逆向转录为DNA编码链
# ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG
messenger_rna.translate() # 翻译
coding_dna.translate() # 翻译
# MAIVMGR*KGAR*
# 文件读取
fa_dict = SeqIO.to_dict(SeqIO.parse('example.fastq', 'fasta'))
fq_dict = SeqIO.to_dict(SeqIO.parse('shishi.fastq', 'fastq'))
for record in SeqIO.parse('example.fastq', 'fasta'):
print(record.id, record.seq)
print(type(record.seq)) # <class 'Bio.Seq.Seq'>
print(type(str(record.seq)) # <class 'str'>
# 文件格式转换
## 将 fastq 文件转为 fasta 文件 count = 序列数
count = SeqIO.convert("example.fastq", "fastq", "result.fasta", "fasta")
## 将 fastq 文件转为 QUAL 文件
SeqIO.convert("example.fastq", "fastq", "example.qual", "qual")
# 序列筛选
records = [rec.reverse_complement(id="rc_"+rec.id, description =
"reverse complement") for rec in
SeqIO.parse("my_example.fasta", "fasta") if len(rec) < 15]
# 统计reads数
rec_count = 0
for rec in SeqIO.parse("example.fastq", "fastq"):
rec_count += 1
在python中处理.gz文件 / 生物方面,如 fastq,fasta
如 *.fastq.gz 文件
from Bio import SeqIO # 导入biopython
from Bio.SeqIO import parse
import gzip
fastq_dt = SeqIO.to_dict(parse(gzip.open(fastq, 'rt'), 'fastq')) # 不解压构建字典
seq = fastq_dt[id].seq # Seq(' ') 类型序列 无法写入xlsx
seq = str(fastq_dt[id].seq) # 普通字符串类型 可以写入xlsx
biopython 读取 genbank文件
from Bio import SeqIO
for rec in SeqIO.parse('exam.gb', 'gb'):
print(rec.annotations) # annotations里以字典形式储存了FEATURES上面所有内容
多序列比对
1、PFAM(或者Stockholm)格式的蛋白序列比对文件

2、生信修炼手册: 序列比对在biopython中的处理
https://cloud.tencent.com/developer/article/1771286
网友评论