Agent skill
bio-transcription-translation
Install this agent skill to your Project
npx add-skill https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills/tree/main/skills/bio-transcription-translation
SKILL.md
name: bio-transcription-translation description: Transcribe DNA to RNA and translate to protein using Biopython. Use when converting between DNA, RNA, and protein sequences, finding ORFs, or using alternative codon tables. tool_type: python primary_tool: Bio.Seq measurable_outcome: Execute skill workflow successfully with valid output within 15 minutes. allowed-tools:
- read_file
- run_shell_command
Transcription and Translation
Convert between DNA, RNA, and protein sequences using Biopython.
Required Import
from Bio.Seq import Seq
Core Methods
Transcription (DNA to RNA)
dna = Seq('ATGCGATCGATCG')
rna = dna.transcribe() # Returns Seq('AUGCGAUCGAUCG')
Transcription replaces T with U. Works on coding strand (5' to 3').
Back Transcription (RNA to DNA)
rna = Seq('AUGCGAUCGAUCG')
dna = rna.back_transcribe() # Returns Seq('ATGCGATCGATCG')
Translation (RNA/DNA to Protein)
# From coding DNA (includes ATG start)
coding_dna = Seq('ATGTTTGGT')
protein = coding_dna.translate() # Returns Seq('MFG')
# From RNA
rna = Seq('AUGUUUGGU')
protein = rna.translate() # Returns Seq('MFG')
Translation Options
Stop at First Stop Codon
seq = Seq('ATGTTTGGTTAAGGG')
protein = seq.translate(to_stop=True) # Stops at TAA, excludes stop
Include Stop Codon Symbol
seq = Seq('ATGTTTGGTTAA')
protein = seq.translate() # Returns Seq('MFG*')
Alternative Codon Tables
Biopython supports NCBI codon tables. Common tables:
| ID | Name | Use Case |
|---|---|---|
| 1 | Standard | Default, most organisms |
| 2 | Vertebrate Mitochondrial | Human/vertebrate mitochondria |
| 4 | Mold Mitochondrial | Fungi, protozoa mitochondria |
| 5 | Invertebrate Mitochondrial | Insects, worms mitochondria |
| 6 | Ciliate Nuclear | Tetrahymena, Paramecium |
| 11 | Bacterial/Archaeal | Prokaryotes, plastids |
# Bacterial translation
seq = Seq('ATGTTTGGT')
protein = seq.translate(table=11)
# Mitochondrial translation
protein = seq.translate(table=2)
# By name
protein = seq.translate(table='Vertebrate Mitochondrial')
CDS Translation (Complete Coding Sequence)
For validated coding sequences with proper start/stop:
cds = Seq('ATGTTTGGTTAA') # Must start with start codon, end with stop
protein = cds.translate(cds=True) # Validates and removes stop
The cds=True option:
- Validates start codon (ATG or alternative)
- Validates stop codon at end
- Removes stop codon from result
- Raises error if invalid CDS
Code Patterns
Basic Transcription and Translation Pipeline
dna = Seq('ATGTTTGGTCATTAA')
rna = dna.transcribe()
protein = rna.translate()
print(f'DNA: {dna}')
print(f'RNA: {rna}')
print(f'Protein: {protein}')
Translate All Six Reading Frames
def six_frame_translation(seq):
frames = []
for strand, s in [('+', seq), ('-', seq.reverse_complement())]:
for frame in range(3):
length = 3 * ((len(s) - frame) // 3)
fragment = s[frame:frame + length]
frames.append((strand, frame, fragment.translate()))
return frames
seq = Seq('ATGCGATCGATCGATCGATCG')
for strand, frame, protein in six_frame_translation(seq):
print(f'{strand}{frame}: {protein}')
Find All ORFs (Start to Stop)
def find_orfs(seq, min_length=30):
orfs = []
for strand, s in [('+', seq), ('-', seq.reverse_complement())]:
for frame in range(3):
trans = s[frame:].translate()
aa_start = 0
while True:
start = trans.find('M', aa_start)
if start == -1:
break
stop = trans.find('*', start)
if stop == -1:
stop = len(trans)
orf = trans[start:stop]
if len(orf) * 3 >= min_length:
orfs.append((strand, frame, start * 3 + frame, str(orf)))
aa_start = start + 1
return orfs
seq = Seq('ATGCGATCGATCGATCGATCGTAA')
for strand, frame, pos, orf in find_orfs(seq, min_length=3):
print(f'{strand} frame {frame} pos {pos}: {orf}')
Translate with Quality Check
def translate_cds_safe(seq):
try:
return seq.translate(cds=True)
except Exception as e:
return seq.translate(to_stop=True) # Fallback
Get Codon Table Info
from Bio.Data import CodonTable
table = CodonTable.unambiguous_dna_by_id[1]
print(f'Start codons: {table.start_codons}')
print(f'Stop codons: {table.stop_codons}')
Common Errors
| Error | Cause | Solution |
|---|---|---|
TranslationError: First codon is not a start codon |
Used cds=True without valid start |
Remove cds=True or fix sequence |
TranslationError: Final codon is not a stop codon |
Used cds=True without stop codon |
Remove cds=True or add stop codon |
TranslationError: Sequence length not multiple of 3 |
Partial codons at end | Trim sequence to multiple of 3 |
| Unexpected amino acids | Wrong codon table | Specify correct table for organism |
Decision Tree
Need to convert sequence?
├── DNA to RNA?
│ └── Use seq.transcribe()
├── RNA to DNA?
│ └── Use seq.back_transcribe()
├── DNA/RNA to protein?
│ ├── Complete CDS with start/stop?
│ │ └── Use translate(cds=True)
│ ├── Stop at first stop codon?
│ │ └── Use translate(to_stop=True)
│ ├── Non-standard organism?
│ │ └── Use translate(table=N)
│ └── Get all including stop symbol?
│ └── Use translate()
└── Find all ORFs?
└── Translate all six frames, search for M...*
Related Skills
- seq-objects - Create Seq objects for translation
- reverse-complement - Translate both strands (six-frame translation)
- codon-usage - Analyze codon bias in coding sequences
- sequence-io/read-sequences - Parse GenBank files with CDS features
- database-access/entrez-fetch - Fetch CDS sequences from NCBI for translation
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
vcf-annotator
Annotate VCF variants with VEP, ClinVar, gnomAD frequencies, and ancestry-aware context. Generates prioritised variant reports.
chemist-analyst
Analyzes events through chemistry lens using molecular structure, reaction mechanisms, thermodynamics, kinetics, and analytical techniques (spectroscopy, chromatography, mass spectrometry). Provides insights on chemical processes, material properties, reaction pathways, synthesis, and analytical methods. Use when: Chemical reactions, material analysis, synthesis planning, process optimization, environmental chemistry. Evaluates: Molecular structure, reaction mechanisms, yield, selectivity, safety, environmental impact.
bio-alignment-io
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO. Supports Clustal, PHYLIP, Stockholm, FASTA, Nexus, and other alignment formats for phylogenetics and conservation analysis. Use when reading, writing, or converting alignment file formats.
sleep-analyzer
分析睡眠数据、识别睡眠模式、评估睡眠质量,并提供个性化睡眠改善建议。支持与其他健康数据的关联分析。
metabolomics-workbench-database
Access NIH Metabolomics Workbench via REST API (4,200+ studies). Query metabolites, RefMet nomenclature, MS/NMR data, m/z searches, study metadata, for metabolomics and biomarker discovery.
bio-hi-c-analysis-matrix-operations
Balance, normalize, and transform Hi-C contact matrices using cooler and cooltools. Apply iterative correction (ICE), compute expected values, and generate observed/expected matrices. Use when normalizing or transforming Hi-C matrices.
Didn't find tool you were looking for?