Calculateur de fraction d’utilisation des codons
Ce calculateur mesure la part d’un codon parmi tous les codons observés qui codent le même acide aminé dans un gène.
Lancer gratuitement
Indiquez les comptages et choisissez le codon cible : le résultat fournit sa fraction normalisée, son pourcentage, l’acide aminé et le groupe synonyme complet utilisé comme dénominateur. Les notations ADN et ARN sont acceptées, les lignes dupliquées sont regroupées et les synonymes absents valent zéro. Vous obtenez ainsi un résumé reproductible du biais de codons, sans tableur ni table du code génétique entretenue manuellement.
Comprendre la fraction d’utilisation d’un codon
De nombreux acides aminés sont codés par plusieurs codons. La fraction d’utilisation répond à une question précise : parmi les codons observés pour un acide aminé dans ce gène, quelle part emploie le codon sélectionné ? Si un gène comporte 18 occurrences de TTT et 12 de TTC, qui codent tous deux la phénylalanine, la fraction de TTT vaut 18 divisé par 30, soit 0.6. Le calcul porte sur l’acide aminé, et non sur l’ensemble des codons du gène. Il décrit donc la préférence synonyme sans que la composition en autres acides aminés modifie le dénominateur. Une fraction proche de un signale que le codon choisi domine son groupe ; une valeur proche de zéro traduit un emploi rare ou absent. Ce résultat résume une composition observée, mais ne démontre pas à lui seul une sélection, une efficacité d’expression ou une significativité statistique. Ces interprétations nécessitent un jeu de référence approprié et un contexte biologique. Utilisez un cadre de lecture et une définition du gène cohérents.
Préparer et interpréter les données
Saisissez chaque codon observé avec son comptage entier positif ou nul, puis indiquez le codon cible. Les lettres d’ADN comme TTT et d’ARN comme UUU sont admises ; U est normalisé en T dans le résultat. La casse et les espaces extérieurs sont ignorés. Si un même codon normalisé apparaît plusieurs fois, ses comptages sont additionnés, ce qui facilite le regroupement de régions ou de lots distincts. Il n’est pas nécessaire d’énumérer tous les synonymes. Tout codon synonyme omis est affiché avec un comptage nul et figure dans le résultat, ce qui rend le dénominateur explicite. Les codons d’autres acides aminés sont acceptés mais n’influencent pas la fraction choisie. Le calculateur applique le code génétique standard et refuse un codon stop comme cible, car il ne code aucun acide aminé. Il refuse également un groupe synonyme dont le total est nul. Vérifiez la liste renvoyée avant toute comparaison entre gènes.
Exploiter le résultat dans une étude de biais
usage_fraction se situe entre zéro et un, tandis que percentage exprime la même valeur entre zéro et cent. Le comptage cible et le total synonyme accompagnent la fraction afin que les analyses ultérieures conservent les données à l’origine du rapport. Ce point est essentiel, car des fractions identiques peuvent reposer sur des effectifs très différents : une occurrence sur deux et cinq cents sur mille donnent toutes deux 0.5, sans justifier automatiquement la même confiance. Pour une exploration, calculez la fraction de chaque codon synonyme et comparez les profils entre gènes, conditions, organismes ou séquences conçues. Conservez les mêmes hypothèses de code génétique, versions d’annotation et règles de comptage. Comme contrôle, les fractions d’une famille synonyme doivent totaliser un lorsqu’elles utilisent les mêmes données. L’API coûte $0.002 par requête, tandis que le navigateur exécute localement le même calcul déterministe. Aucune recherche réseau, fréquence externe ni sélection aléatoire n’intervient.
Cas d’usage
Résumer un gène
Mesurez si un codon synonyme domine ou reste rare au sein d’un gène.
Comparer des conceptions géniques
Calculez des fractions comparables pour des séquences natives et remaniées avec les mêmes règles.
Auditer une table de comptages
Contrôlez le dénominateur synonyme et les membres nuls avant une analyse plus large.
Questions fréquentes
Quelle formule est utilisée ?
Le comptage du codon choisi est divisé par la somme des comptages de tous les codons du même acide aminé selon le code standard.
Puis-je saisir des codons d’ARN ?
Oui. U est normalisé en T ; UUU et TTT sont donc considérés comme le même codon.
Que devient un synonyme absent ?
Son comptage vaut zéro. Le résultat énumère toute la famille synonyme employée dans le calcul.
Les lignes dupliquées sont-elles admises ?
Oui. Les codons dupliqués sont normalisés et leurs comptages entiers positifs ou nuls sont additionnés.
La cible peut-elle être un codon stop ?
Non. La mesure relie un codon à son acide aminé ; les signaux stop sont donc refusés.
Une fraction élevée prouve-t-elle une expression optimale ?
Non. Elle décrit seulement les comptages fournis ; toute conclusion sur l’expression exige des références et un contexte biologique.
Quel est le prix d’une requête API ?
Le prix est de $0.002 par requête. La page peut aussi exécuter localement le calcul déterministe dans le navigateur.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/bio/codon-usage-fraction \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"codon_counts":[{"codon":"TTT","count":18},{"codon":"TTC","count":12},{"codon":"ATG","count":7}],"target_codon":"TTT"}'const res = await fetch("https://api.kit.forhosting.com/bio/codon-usage-fraction", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"codon_counts": [
{
"codon": "TTT",
"count": 18
},
{
"codon": "TTC",
"count": 12
},
{
"codon": "ATG",
"count": 7
}
],
"target_codon": "TTT"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/codon-usage-fraction",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"codon_counts": [
{
"codon": "TTT",
"count": 18
},
{
"codon": "TTC",
"count": 12
},
{
"codon": "ATG",
"count": 7
}
],
"target_codon": "TTT"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/codon-usage-fraction", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"codon_counts":[{"codon":"TTT","count":18},{"codon":"TTC","count":12},{"codon":"ATG","count":7}],"target_codon":"TTT"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"codon_counts":[{"codon":"TTT","count":18},{"codon":"TTC","count":12},{"codon":"ATG","count":7}],"target_codon":"TTT"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/codon-usage-fraction", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"codon_counts": [
{
"codon": "TTT",
"count": 18
},
{
"codon": "TTC",
"count": 12
},
{
"codon": "ATG",
"count": 7
}
],
"target_codon": "TTT"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.codon_usage_fraction",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items | 64 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |