Python Biopython: Extract DNA Sequence Features and Handle Translation Warnings
from Bio import SeqIO import pandas as pd
def extract_features(seq_record): features = {} # 提取GC含量特征 gc_content = (seq_record.seq.count('G') + seq_record.seq.count('C')) / len(seq_record.seq) features['gc_content'] = gc_content # 提取二核苷酸频率特征 dinucleotide_freq = {} for i in range((len(seq_record.seq))-1): dinucleotide = seq_record.seq[i:i+2] if dinucleotide in dinucleotide_freq: dinucleotide_freq[dinucleotide] += 1 else: dinucleotide_freq[dinucleotide] = 1 features['dinucleotide_freq'] = dinucleotide_freq # 提取反向互补序列特征 reverse_complement = seq_record.seq.reverse_complement() features['reverse_complement'] = str(reverse_complement) # 提取氨基酸序列特征 if len(seq_record.seq) % 3 == 0: protein_seq = seq_record.seq.translate() else: protein_seq = seq_record.seq[:-(len(seq_record.seq)%3)].translate() features['protein_seq'] = str(protein_seq) return features
读取FASTA文件并提取特征
df = pd.DataFrame() for seq_record in SeqIO.parse('CP015849.fasta', 'fasta'): features = extract_features(seq_record) features['id'] = seq_record.id df = df.append(features, ignore_index=True)
将数据框输出到文件
df.to_csv('features.csv', index=False)
原文地址: https://www.cveoy.top/t/topic/lNmG 著作权归作者所有。请勿转载和采集!