Codificatore basi DNA
Scriva una parola e la veda in lettere del DNA: Hi diventa CAGACGGC, quattro basi per byte, perché ogni coppia di bit corrisponde ad A, C, G o T. Incolli una sequenza per tornare al testo. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hi
- Modalità di calcolo
- Encode
- Risultato
- CAGACGGC
- Input
- Hi
- Dna
- CAGACGGC
- Gruppi
- CAGA, CGGC
Un codificatore di basi DNA trasforma il testo ordinario in una stringa delle quattro basi biologiche adenina, citosina, guanina e timina trattando ogni coppia di bit come una lettera di quell'alfabeto, e un decodificatore DNA inverte la stessa tabella affinché Lei recuperi la stringa UTF-8 originale. Inserisca testo semplice e scelga encode per ricevere una sequenza continua A/C/G/T —quattro basi per byte— oppure incolli una stringa DNA e scelga decode per ricostruire i caratteri.
Come le coppie di bit diventano basi DNA e perché la lunghezza deve essere multiplo di quattro
Il testo digitale è una sequenza di byte e ogni byte conta otto bit. Questo codificatore raggruppa quei bit in coppie e mappa ogni coppia su esattamente una base DNA con una tabella fissa: zero-zero diventa A, zero-uno diventa C, uno-zero diventa G e uno-uno diventa T. Percorrere un byte dalla coppia di bit più significativa a quella meno significativa produce quindi sempre quattro lettere.
La lettera maiuscola H ha valore decimale settantadue, binario zero-uno-zero-zero-uno-zero-zero-zero, che diventa C, A, G, A; la lettera i diventa C, G, G, C; insieme la parola Hi si codifica come CAGACGGC. La decodifica legge la sequenza a gruppi di quattro basi, espande ogni base al suo codice a due bit, ricostruisce ogni byte e interpreta l'array di byte come UTF-8. Poiché un byte intero richiede sempre quattro basi, una sequenza la cui lunghezza non è multiplo di quattro non può rappresentare un numero intero di byte e viene rifiutata.
Allo stesso modo, qualsiasi carattere che non sia A, C, G o T —compresi U, N, cifre e punteggiatura— è non valido. Spazi, virgole, trattini e separatori simili vengono rimossi prima della convalida, così i frammenti incollati in stile FASTA funzionano ancora quando contengono solo basi legali. I caratteri UTF-8 multi-byte, come lettere accentate o emoji, si espandono su più di un byte e quindi su più di quattro basi; è atteso, non un errore.
Questa pagina si rivolge a chi cerca un codificatore di basi DNA, un convertitore testo-DNA o uno strumento di impacchettamento binario A/C/G/T; non è un allineatore di sequenze biologiche, una tabella dei codoni né un calcolatore di reverse-complement.
Casi d'uso
Controlli dei compiti sui codici DNA di teoria dell'informazione
Gli studenti codificano frasi brevi, confrontano stringhe A/C/G/T scritte a mano con il risultato deterministico e decodificano sequenze fornite dall'insegnante senza un foglio di calcolo.
Dimostrazioni in aula dell'impacchettamento digitale a quattro lettere
I workshop mostrano come etichette stampabili diventino basi DNA due bit alla volta, poi forzano lettere non valide o lunghezze dispari per illustrare la convalida rigorosa.
Domande frequenti
Quale mapping usa il codificatore di basi DNA?
Ogni coppia di bit mappa su una base: 00→A, 01→C, 10→G, 11→T. I bit si leggono dal più significativo per primo in ogni byte UTF-8, così ogni byte diventa esattamente quattro basi.
Perché la lunghezza della sequenza DNA deve essere multiplo di quattro?
Quattro basi contengono otto bit —un byte intero—.
Sono ammesse basi minuscole e spazi?
Sì in decode. Le basi vengono messe in maiuscolo e gli spazi o i separatori comuni (virgole, trattini, pipe) vengono rimossi prima della convalida. Encode restituisce sempre DNA continuo in maiuscolo.
Supporta UTF-8 ed emoji?
Sì. La codifica usa UTF-8, quindi i caratteri multi-byte diventano più gruppi di quattro basi. La decodifica rifiuta sequenze di byte che non sono UTF-8 valido.
Il codificatore di basi DNA è gratuito?
Lo strumento del browser è gratuito e gira in locale.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/enc/dna-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/dna-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/dna-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/dna-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/dna-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Hi"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.dna_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 100000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Le sequenze che contengono lettere diverse da A, C, G e T, o la cui lunghezza non è un multiplo di quattro, restituiscono un errore invalid_input chiaro invece di inventare padding o sostituzioni silenziose. Il percorso è aritmetica puramente deterministica su byte UTF-8 —senza rete, senza semi casuali, senza dipendenza dall'orologio— così che l'esecutore gratuito del browser e l'API prepagata restituiscano lo stesso JSON ogni volta che Lei la chiama a $0.002 per richiesta riuscita.
Come chiamare l'API e cosa contiene la risposta
La modalità predefinita è encode: i byte UTF-8 del testo diventano una stringa DNA continua in maiuscolo. La modalità decode tratta il testo come una sequenza DNA —eventualmente con spazi o separatori comuni— e restituisce la stringa UTF-8 recuperata dopo aver rimosso i separatori, portato le basi in maiuscolo e convalidato alfabeto e lunghezza. In caso di successo per decode, la risposta include mode, input, result e text con la stringa UTF-8 decodificata, dna normalizzata a sequenza continua maiuscola, gli stessi array groups e bytes, i conteggi, il mapping e un messaggio corrispondente. Invii un corpo JSON con un campo stringa obbligatorio text (alias input, value, data e sequence) e un mode opzionale che sia encode o decode. La lunghezza dell'input è limitata a centomila caratteri così una sola richiesta non esaurisce la memoria del Worker su stringhe enormi. In caso di successo per encode, la risposta include mode, input, result e dna con la stessa stringa di basi, groups come array di blocchi da quattro basi (uno per byte), bytes con i valori interi, byte_count, base_count, bit_count, la legenda del mapping e un breve messaggio. La convalida fallita —text assente, text non stringa, input troppo grande, mode sconosciuto, carattere non base, lunghezza non multiplo di quattro, oppure byte decodificati non UTF-8 validi— restituisce invalid_input e non viene mai addebitata. Il prezzo è una tariffa fissa di $0.002 per richiesta riuscita con unità item.
Suggerimenti pratici, limiti e strumenti correlati
I controlli andata e ritorno sono lo smoke test più rapido: codifichi una parola breve come Hi, confermi che le otto basi corrispondono ai gruppi di quattro basi noti per H e i, poi decodifichi quelle basi e confermi di recuperare la stringa originale. Preferisca questa capacità quando l'intento di ricerca è testo o binario versus basi DNA con tabella di impacchettamento a due bit; usi un convertitore testo-binario o esadecimale quando le servono forme zero-uno o esadecimali invece di A/C/G/T. Nell'insegnamento, mostri lo stesso emoji o lettera accentata accanto a una lettera ASCII semplice così gli studenti vedono gli ottetti UTF-8 multi-byte apparire come gruppi extra di quattro basi piuttosto che come un singolo codone misterioso. Preferisca decode quando ha già una stringa A/C/G/T da un manuale o da un payload generato e vuole recuperare i caratteri. Invii di proposito un frammento di tre basi o una stringa con X o U per verificare che il suo client gestisca invalid_input e il messaggio di errore che nomina l'alfabeto o la regola del multiplo di quattro. Mantenga i payload sotto il limite di caratteri pubblicato; i dump da più megabyte appartengono all'offline. Questo strumento non è un'utilità biologica di reverse-complement, né un traduttore di codoni, né un convertitore generale in base 4 per interi arbitrari: quei problemi meritano pagine dedicate. Le attività fallite che restituiscono invalid_input non consumano il saldo prepagato, il che mantiene economici gli script esplorativi quando gli apprendisti incollano sequenze incomplete.
Casi di integrazione
Fixture di test unitari per formati di dati sintetici
Generi stringhe note in stile DNA da testo di fixture e affermi che decode recupera gli stessi byte UTF-8 in CI senza helper ad hoc di impacchettamento bit.