Codificador de bases DNA
Digite uma palavra e veja-a em letras de DNA: Hi vira CAGACGGC, quatro bases por byte, porque cada par de bits corresponde a A, C, G ou T. Cole uma sequência para voltar ao texto. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hi
- Modo de cálculo
- Encode
- Resultado
- CAGACGGC
- Entrada
- Hi
- Dna
- CAGACGGC
- Grupos
- CAGA, CGGC
Um codificador de bases de DNA transforma texto comum em uma cadeia das quatro bases biológicas adenina, citosina, guanina e timina ao tratar cada par de bits como uma letra desse alfabeto, e um decodificador de DNA inverte a mesma tabela para que você recupere a string UTF-8 original. Digite texto simples e escolha codificar para receber uma sequência contínua A/C/G/T —quatro bases por byte— ou cole uma string de DNA e escolha decodificar para reconstruir os caracteres.
Como pares de bits viram bases de DNA e por que o comprimento deve ser múltiplo de quatro
Texto digital é uma sequência de bytes, e cada byte tem oito bits. Este codificador agrupa esses bits em pares e mapeia cada par para exatamente uma base de DNA usando uma tabela fixa: zero-zero vira A, zero-um vira C, um-zero vira G e um-um vira T. Percorrer um byte do par de bits mais significativo até o menos significativo produz portanto sempre quatro letras.
A letra maiúscula H tem valor decimal setenta e dois, binário zero-um-zero-zero-um-zero-zero-zero, que vira C, A, G, A; a letra i vira C, G, G, C; juntas, a palavra Hi codifica-se como CAGACGGC. A decodificação lê a sequência de quatro em quatro bases, expande cada base de volta ao código de dois bits, reconstrói cada byte e interpreta o array de bytes como UTF-8.
Como um byte completo sempre precisa de quatro bases, uma sequência cujo comprimento não é múltiplo de quatro não pode representar um número inteiro de bytes e é rejeitada. Da mesma forma, qualquer caractere que não seja A, C, G ou T —incluindo U, N, dígitos e pontuação— é inválido. Espaços em branco, vírgulas, hífens e separadores semelhantes são removidos antes da validação, para que fragmentos colados no estilo FASTA ainda funcionem quando contiverem apenas bases legais.
Caracteres UTF-8 multi-byte, como letras acentuadas ou emoji, expandem-se para mais de um byte e portanto para mais de quatro bases; isso é esperado, não um erro. Esta página atende quem busca um codificador de bases de DNA, conversor de texto para DNA ou ferramenta de empacotamento binário A/C/G/T; não é um alinhador de sequências biológicas, tabela de códons nem calculadora de reverso-complemento.
Casos de uso
Conferência de lição de casa sobre códigos DNA de teoria da informação
Alunos codificam frases curtas, comparam strings A/C/G/T escritas à mão com o resultado determinístico e decodificam sequências do professor sem uma planilha.
Demonstrações em sala do empacotamento digital de quatro letras
Oficinas mostram como rótulos imprimíveis viram bases de DNA dois bits por vez e forçam letras inválidas ou comprimentos ímpares para ilustrar validação estrita.
Perguntas frequentes
Qual mapeamento o codificador de bases de DNA usa?
Cada par de bits mapeia para uma base: 00→A, 01→C, 10→G, 11→T. Os bits são lidos do mais significativo primeiro dentro de cada byte UTF-8, de modo que cada byte vira exatamente quatro bases.
Por que o comprimento da sequência de DNA deve ser múltiplo de quatro?
Quatro bases guardam oito bits —um byte completo—.
Bases minúsculas e espaços são permitidos?
Sim no decode. As bases são colocadas em maiúsculas e espaços ou separadores comuns (vírgulas, hífens, pipes) são removidos antes da validação. Encode sempre devolve DNA contínuo em maiúsculas.
Há suporte a UTF-8 e emoji?
Sim. A codificação usa UTF-8, então caracteres multi-byte viram vários grupos de quatro bases. A decodificação rejeita sequências de bytes que não são UTF-8 válido.
O codificador de bases de DNA é gratuito?
A ferramenta do navegador é gratuita e roda localmente.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"text": "Hi"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.dna_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Sequências com letras fora de A, C, G e T, ou cujo comprimento não é múltiplo de quatro, retornam um erro invalid_input claro em vez de inventar preenchimento ou substituições silenciosas. O caminho é aritmética determinística pura sobre bytes UTF-8 —sem rede, sem sementes aleatórias, sem dependência de relógio— de modo que o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON sempre que você a chama a US$ 0,002 por requisição bem-sucedida.
Como chamar a API e o que a resposta contém
O modo padrão é encode: os bytes UTF-8 do texto tornam-se uma string de DNA contínua em maiúsculas. O modo decode trata o texto como uma sequência de DNA —opcionalmente com espaços ou separadores comuns— e devolve a string UTF-8 recuperada após remover separadores, colocar as bases em maiúsculas e validar o alfabeto e o comprimento. Em sucesso para decode, a resposta inclui mode, input, result e text com a string UTF-8 decodificada, dna normalizada para sequência contínua em maiúsculas, os mesmos arrays groups e bytes, contagens, mapeamento e uma mensagem correspondente. Envie um corpo JSON com um campo string obrigatório text (aliases input, value, data e sequence) e um mode opcional que seja encode ou decode. O comprimento de entrada é limitado a cem mil caracteres para que uma única requisição não esgote a memória do Worker com strings enormes. Em sucesso para encode, a resposta inclui mode, input, result e dna com a mesma string de bases, groups como array de blocos de quatro bases (um por byte), bytes com os valores inteiros, byte_count, base_count, bit_count, a legenda do mapeamento e uma mensagem curta. Validação falha —text ausente, text que não é string, entrada grande demais, mode desconhecido, caractere que não é base, comprimento que não é múltiplo de quatro ou bytes decodificados que não são UTF-8 válido— retorna invalid_input e nunca é cobrada. O preço é um valor fixo de US$ 0,002 por requisição bem-sucedida com unidade item.
Dicas práticas, limites e ferramentas relacionadas
Verificações de ida e volta são o smoke test mais rápido: codifique uma palavra curta como Hi, confirme que as oito bases batem com os grupos de quatro bases conhecidos para H e i, depois decodifique essas bases e confirme que recupera a string original. Esta ferramenta não é um utilitário biológico de reverso-complemento, nem um tradutor de códons, nem um conversor geral de base 4 para inteiros arbitrários — esses problemas merecem páginas dedicadas. Prefira esta capacidade quando a intenção de busca for texto ou binário versus bases de DNA com tabela de empacotamento de dois bits; use um conversor de texto para binário ou hex quando precisar de formas zero-um ou hexadecimais em vez de A/C/G/T. Ao ensinar, mostre o mesmo emoji ou letra acentuada ao lado de uma letra ASCII simples para que os alunos vejam octetos UTF-8 multi-byte aparecerem como grupos extras de quatro bases em vez de um códon misterioso único. Prefira decode quando você já tem uma string A/C/G/T de um livro ou de um payload gerado e quer recuperar os caracteres. Envie de propósito um fragmento de três bases ou uma string com X ou U para afirmar que seu cliente trata invalid_input e a mensagem de erro que nomeia o alfabeto ou a regra do múltiplo de quatro. Mantenha os payloads abaixo do limite de caracteres publicado; dumps de vários megabytes pertencem ao ambiente offline. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando aprendizes colam sequências incompletas.
Casos de integração
Fixtures de teste unitário para formatos de dados sintéticos
Gere strings conhecidas no estilo DNA a partir de texto de fixture e afirme que decode recupera os mesmos bytes UTF-8 em CI sem ajudantes ad hoc de empacotamento de bits.