需求
给定cds序列,统计不同的密码子出现的频率。首先需要将fasta序列以3位单位分割
找到了一个办法
https://www.jb51.net/article/139207.htm
居然可以使用正则表达式。。。
代码
import re
from Bio import SeqIO
for rec in SeqIO.parse("cds.fasta",'fasta'):
all_codons = re.findall('.{3}',str(rec.seq))
codon_freq = {}
for aa in all_codons:
if aa not in codon_freq:
codon_freq[aa] = 1
else:
codon_freq[aa] += 1
all_codons 是一个列表
欢迎大家关注我的公众号
小明的数据分析笔记本