--- name: carbon-dna description: "Consult Carbon-X, a DNA language model, about DNA sequences in files: variant effects, regulatory elements, organism of origin, sequence features, and likelihood comparisons between variants." --- # Consult Carbon-X about DNA Carbon-X is a DNA language model. Use it for biological interpretation of DNA alongside your own analysis. Its answers are model predictions, not verified facts or clinical classifications. `scripts/carbon.py` (next to this file) talks to a server running Carbon-X. It needs only Python 3.10+. The user configures the server with `CARBON_BASE_URL` (default `http://localhost:8000/v1`), `CARBON_MODEL` and, if needed, `CARBON_API_KEY`. Resolve the script's absolute path from this skill's directory. Put each sequence in its own file (plain DNA or one FASTA record) and refer to files by name. Do not retype DNA into commands: copying long sequences by hand introduces errors. Ask a question about one or more sequences: ```sh python3 /path/to/carbon-dna/scripts/carbon.py ask \ --sequence reference=reference.fa --sequence variant=variant.fa \ --question "variant differs from reference at one base. Is the change likely benign or pathogenic?" \ --context "Position 20 (1-based): A>T. Gene and coordinates, if known." ``` Rank equal-length variants by how typical Carbon-X finds each sequence (a likelihood, not a pathogenicity score): ```sh python3 /path/to/carbon-dna/scripts/carbon.py compare --reference reference.fa --alternative variant=variant.fa ``` From Python, add `scripts/` to `sys.path` and call `ask(question, {name: dna}, context)` or `compare(reference_dna, {name: dna})`. Guidance: - Work out exact facts in code first (positions, reference and alternate bases, reading frame, lengths) and pass them as `--context`. Carbon-X can miscount positions in long sequences. - Ask one self-contained question per call, and keep any answer choices from the user's question. - Carbon-X reads A/C/G/T only. The script trims `N` padding at the ends and refuses other characters. - Check `truncated` in the result; for next-base or continuation questions, ask for only the length you need.