> ## Documentation Index
> Fetch the complete documentation index at: https://proto.evodesign.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# X3DNA Fiber

> X3DNA Fiber wraps the `fiber` program from the [3DNA/X3DNA](https://x3dna.org/) suite, developed by Xiang-Jun Lu and Wilma K. Olson. From a base sequence it builds an idealized canonical (Arnott) fiber model of a nucleic-acid duplex: A-DNA, B-DNA, Z-DNA, or an A-form RNA duplex, with the complementary strand generated automatically. It is deterministic, CPU-only, and produces three-dimensional atomic coordinates of a regular helix rather than a predicted or energy-minimized structure.

<div class="page-hero"><img class="page-hero-banner" src="https://proto-bio.github.io/proto-assets/images/tool/x3dna/hero.png" alt="X3DNA Fiber" /><div class="tool-org-badges page-hero-badges"><a href="/docs/tools/organizations/rutgers-university" class="tool-org-badge" style={{background: "#CC0033"}} title="Rutgers University"><img src="https://mintcdn.com/bio-pro/rW-ZVHoYhZw2v7T_/assets/images/cached/62fac4ff4e57.png?fit=max&auto=format&n=rW-ZVHoYhZw2v7T_&q=85&s=4a9afe4808054f2bbef99b3a0d27a2e4" alt="" class="tool-org-badge-logo" width="330" height="331" data-path="assets/images/cached/62fac4ff4e57.png" /> Rutgers University</a> <a href="/docs/tools/organizations/columbia-university" class="tool-org-badge" style={{background: "#1D4F91"}} title="Columbia University"><img src="https://mintcdn.com/bio-pro/rW-ZVHoYhZw2v7T_/assets/images/cached/d5d148878514.png?fit=max&auto=format&n=rW-ZVHoYhZw2v7T_&q=85&s=9f7713e2715ee28f46c31860e87f1d0a" alt="" class="tool-org-badge-logo" width="330" height="431" data-path="assets/images/cached/d5d148878514.png" /> Columbia University</a></div></div>

<Note>
  **License:** X3DNA Fiber has a CC-BY-NC-4.0 license and has restrictions around commercial use and may require explicit attribution when utilized. Please refer to [the license](https://x3dna.org/) for full terms. X3DNA is user-provisioned: it is not bundled or auto-downloaded, and must be obtained yourself after free registration at [x3dna.org](https://x3dna.org/). Please cite Lu & Olson (2003, 2008).
</Note>

<p class="entity-disclaimer">Proto is not affiliated with Rutgers University and Columbia University. This toolkit is open source and builds on the implementations produced by these organizations. Product names, logos, and trademarks are the property of their respective owners.</p>

<hr class="entity-rule" />

<input type="radio" name="tab-x3dna" id="none-x3dna" class="tab-radio-input" />

<input type="radio" name="tab-x3dna" id="website-x3dna" class="tab-radio-input" defaultChecked />

<input type="radio" name="tab-x3dna" id="paper-x3dna" class="tab-radio-input" />

<input type="radio" name="tab-x3dna" id="cite-x3dna" class="tab-radio-input" />

<input type="radio" name="tab-x3dna" id="source-x3dna" class="tab-radio-input" />

<input type="radio" name="tab-x3dna" id="notebook-x3dna" class="tab-radio-input" />

<input type="radio" name="tab-x3dna" id="proto-x3dna" class="tab-radio-input" />

<div class="tool-tab-bar">
  <span class="tool-tab-wrap"><label for="website-x3dna" class="tool-tab tab-open badge-website"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" /><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" /></svg> Website</label><label for="none-x3dna" class="tool-tab tab-close badge-website"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" /><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" /></svg> Website</label></span> <span class="tool-tab-wrap"><label for="paper-x3dna" class="tool-tab tab-open badge-paper"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" /><polyline points="14 2 14 8 20 8" /><line x1="16" y1="13" x2="8" y2="13" /><line x1="16" y1="17" x2="8" y2="17" /><polyline points="10 9 9 9 8 9" /></svg> Publication</label><label for="none-x3dna" class="tool-tab tab-close badge-paper"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" /><polyline points="14 2 14 8 20 8" /><line x1="16" y1="13" x2="8" y2="13" /><line x1="16" y1="17" x2="8" y2="17" /><polyline points="10 9 9 9 8 9" /></svg> Publication</label></span> <span class="tool-tab-wrap"><label for="cite-x3dna" class="tool-tab tab-open badge-cite"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Cite</label><label for="none-x3dna" class="tool-tab tab-close badge-cite"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Cite</label></span> <span class="tool-tab-wrap"><label for="source-x3dna" class="tool-tab tab-open badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Tool Source</label><label for="none-x3dna" class="tool-tab tab-close badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Tool Source</label></span> <span class="tool-tab-wrap"><label for="notebook-x3dna" class="tool-tab tab-open badge-notebook"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /></svg> Open as Notebook</label><label for="none-x3dna" class="tool-tab tab-close badge-notebook"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /></svg> Open as Notebook</label></span> <span class="tool-tab-wrap"><label for="proto-x3dna" class="tool-tab tab-open badge-local"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5" /><line x1="12" y1="19" x2="20" y2="19" /></svg> Run Locally</label><label for="none-x3dna" class="tool-tab tab-close badge-local"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5" /><line x1="12" y1="19" x2="20" y2="19" /></svg> Run Locally</label></span>
</div>

<a href="https://x3dna.org" target="_blank" class="tab-panel website-panel" data-tab="website-x3dna">
  <div class="website-info">
    <img src="https://www.google.com/s2/favicons?domain=x3dna.org&sz=32" class="website-favicon" width="24" height="24" />

    <span class="website-url">x3dna.org</span>
  </div>

  <span class="panel-goto-btn website-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" /><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" /></svg> Visit website</span></span>
</a>

<a href="https://doi.org/10.1093/nar/gkg680" target="_blank" class="tab-panel paper-panel" data-tab="paper-x3dna">
  <div class="paper-info">
    <div class="paper-title">3DNA: a software package for the analysis, rebuilding and visualization of three-dimensional nucleic acid structures</div>
    <div class="paper-meta">Xiang-Jun Lu and Wilma K Olson</div>
    <div class="paper-meta paper-venue">Nucleic Acids Research (2003)</div>
  </div>

  <span class="panel-goto-btn pub-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" /><polyline points="14 2 14 8 20 8" /><line x1="16" y1="13" x2="8" y2="13" /><line x1="16" y1="17" x2="8" y2="17" /><polyline points="10 9 9 9 8 9" /></svg> Read paper</span></span>
</a>

<div class="tab-panel cite-panel" data-tab="cite-x3dna">
  <div class="cite-code-wrap">
    ```bibtex theme={null}
    @article{lu20033dna,
      title={3DNA: a software package for the analysis, rebuilding and visualization of three-dimensional nucleic acid structures},
      author={Lu, Xiang-Jun and Olson, Wilma K},
      journal={Nucleic Acids Research},
      volume={31},
      number={17},
      pages={5108--5121},
      year={2003},
      publisher={Oxford University Press},
      doi={10.1093/nar/gkg680}
    }

    @article{lu20083dna,
      title={3DNA: a versatile, integrated software system for the analysis, rebuilding and visualization of three-dimensional nucleic-acid structures},
      author={Lu, Xiang-Jun and Olson, Wilma K},
      journal={Nature Protocols},
      volume={3},
      number={7},
      pages={1213--1227},
      year={2008},
      publisher={Nature Publishing Group},
      doi={10.1038/nprot.2008.104}
    }
    ```
  </div>

  <span class="panel-goto-btn cite-copy-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Copy citation</span></span>
</div>

<a href="https://github.com/evo-design/proto-tools/tree/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/x3dna" target="_blank" class="tab-panel source-panel" data-tab="source-x3dna">
  <div class="source-info">
    <img src="https://github.com/evo-design.png?size=40" class="source-avatar" width="36" height="36" />

    <span class="source-path">evo-design/proto-tools<span class="source-subpath">/proto\_tools/tools/structure\_prediction/x3dna</span></span>
  </div>

  <span class="panel-goto-btn source-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> View source</span></span>
</a>

<a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/x3dna/examples/example.ipynb" target="_blank" class="tab-panel notebook-panel" data-tab="notebook-x3dna">
  <div class="notebook-info">
    <span class="notebook-icon">
      <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
        <path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" />

        <path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" />
      </svg>
    </span>

    <span class="notebook-label">Open Notebook</span>
  </div>

  <span class="panel-goto-btn notebook-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /></svg> Open notebook</span></span>
</a>

<div class="tab-panel proto-panel run-local-panel" data-tab="proto-x3dna">
  <a href="https://github.com/evo-design/proto-tools" target="_blank" class="run-local-preview">
    <img noZoom src="https://opengraph.githubassets.com/1/evo-design/proto-tools" alt="proto-tools on GitHub" />
  </a>

  <div class="run-local-install">
    <span class="run-local-label">Run locally with proto-tools</span>

    <div class="run-local-code">
      ```bash theme={null}
      pip install git+https://github.com/evo-design/proto-tools.git
      ```
    </div>
  </div>
</div>

<div class="entity-contributors"><span class="entity-contributors-label">Toolkit contributors</span><span class="entity-contributors-people"><a class="entity-contributor" href="https://github.com/bviggiano" target="_blank" rel="noopener" title="bviggiano: 3 commits"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/21143637?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">bviggiano</span></a><a class="entity-contributor" href="https://github.com/adititm" target="_blank" rel="noopener" title="adititm: 1 commit"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/61667248?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">adititm</span></a></span></div>

| Function            | Description                                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `run_x3dna_fiber()` | Build idealized fiber DNA/RNA duplexes from base sequences with X3DNA fiber | <a href="#api-run-x3dna-fiber" class="func-table-btn func-api-btn"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" /></svg> Docs</a> <a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/x3dna/x3dna_fiber.py#L177" target="_blank" class="func-table-btn func-source-btn"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a> |

## Background

The `fiber` program in 3DNA ([Lu & Olson, 2003](https://doi.org/10.1093/nar/gkg680); [Lu & Olson, 2008](https://doi.org/10.1038/nprot.2008.104)) constructs regular helices by repeating the canonical geometry of a chosen fiber model along a user-supplied sequence. These geometries are the idealized repeating units derived from fiber-diffraction studies, most of them based on the work of Chandrasekaran & Arnott, that define the canonical [A-DNA](https://en.wikipedia.org/wiki/A-DNA), [B-DNA](https://en.wikipedia.org/wiki/B-DNA), and [Z-DNA](https://en.wikipedia.org/wiki/Z-DNA) conformations, together with an A-form RNA duplex. Each base or base pair is placed according to the fixed helical parameters (rise, twist, and the associated base-pair geometry) of the selected form, so the result is a uniform, sequence-threaded helix.

Because every base step uses the same canonical geometry, the output is an idealized model, not a structure prediction: it does not account for sequence-dependent deformation, flexibility, non-canonical pairing, or solvent and counterion effects, and no energy is computed or minimized. The models are most useful as clean, reproducible starting structures for visualization, as templates for docking or molecular-dynamics setup, or as canonical references against which experimental or predicted structures can be compared.

The 3DNA/X3DNA software was originally developed by Xiang-Jun Lu while in Wilma K. Olson's laboratory at Rutgers University and is maintained by Lu (now at Columbia University) in collaboration with Olson. The distribution is gated behind free registration on the 3DNA Forum at [x3dna.org](https://x3dna.org/).

### Learning Resources

* [X3DNA-DSSR homepage](https://x3dna.org/) (Lu & Olson) - the canonical homepage, forum, downloads, and documentation, including the registration required to obtain the software.
* [3DNA fiber models article](https://x3dna.org/articles/3dna-fiber-models) (Xiang-Jun Lu) - a walkthrough of the `fiber` program, the catalog of canonical fiber models, and the command-line interface.

## Tools

<a name="api-run-x3dna-fiber" />

<div class="tool-section-card">
  ### X3DNA Fiber (`x3dna-fiber`)

  Builds an idealized canonical fiber structure from each input base sequence and returns one `Structure` per sequence (the duplex by default, or the sense strand alone), exportable to PDB or mmCIF.

  #### API Reference

  <div class="api-model-section api-input-section">
    <a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/x3dna/x3dna_fiber.py#L29" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a>

    <Accordion title="Input: X3DNAFiberInput">
      <ParamField path="sequences" type="List[string]" required>
        Nucleotide sequences (5'->3') for one strand of each duplex; the complementary strand is generated automatically. Bases must be A/C/G/T/U (any case). T and U are interconverted to match the requested `form` (T for DNA forms, U for RNA). A single string is normalized to a one-element list.
      </ParamField>
    </Accordion>
  </div>

  <div class="api-model-section api-config-section">
    <a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/x3dna/x3dna_fiber.py#L68" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a>

    <Accordion title="Config: X3DNAFiberConfig">
      <ParamField path="form" type="enum" default="B-DNA">
        Canonical helix form to build: `A-DNA`, `B-DNA` (default), `Z-DNA`, or `RNA` (A-form RNA duplex).

        Available options: `A-DNA`, `B-DNA`, `Z-DNA`, `RNA`
      </ParamField>

      <ParamField path="single_stranded" type="boolean" default="False">
        Output only the single (sense) strand instead of the full duplex (fiber `-single`). Default `False`.
      </ParamField>

      <ParamField path="x3dna_dir" type="string">
        Path to a local X3DNA v2.4 install root (the directory containing `bin/fiber`). Overrides the `X3DNA` environment variable and the resolved tool cache. X3DNA is user-provisioned (CC-BY-NC-4.0); see the tool README.
      </ParamField>

      <ParamField path="verbose" type="integer" default="0">
        Verbosity level (0=quiet, 1=info, 2=debug, 3=raw subprocess stderr). `True` is coerced to `1` and `False` to `0`.
      </ParamField>

      <ParamField path="device" type="string" default="cpu">
        Device to run the tool on.
      </ParamField>

      <ParamField path="timeout" type="integer" default="3600">
        Maximum execution time in seconds. `None` waits indefinitely.
      </ParamField>

      <ParamField path="seed" type="integer">
        Random seed. When set, tools run reproducibly up to small GPU float noise (see `BaseToolOutput.approx_equal`), and the seed participates in cache keys. When None, cacheable seed-sensitive tools skip cache until seeded.
      </ParamField>
    </Accordion>
  </div>

  <div class="api-model-section api-output-section">
    <a href="https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/x3dna/x3dna_fiber.py#L106" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a>

    <Accordion title="Output: X3DNAFiberOutput">
      <ResponseField name="structures" type="List[Structure]" required>
        Idealized duplex (or single-strand) structures, one per input sequence, index-aligned with `inputs.sequences`.

        <Expandable title="Structure">
          <ResponseField name="structure" type="string" required>
            Raw structure content in PDB or CIF format.
          </ResponseField>

          <ResponseField name="structure_format" type="string">
            Format of the content string (auto-detected if omitted).
          </ResponseField>

          <ResponseField name="b_factor_type" type="BFactorType">
            What the B-factor column represents.
          </ResponseField>

          <ResponseField name="source" type="string">
            Optional source identifier (filepath or tool name).
          </ResponseField>

          <ResponseField name="metrics" type="Metrics">
            Associated metrics (e.g., pLDDT, pTM scores, per-chain lists, pairwise matrices). None values are stripped at construction.
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Accordion>
  </div>

  #### Applications

  Use this to generate clean canonical helices from a sequence, for example to obtain a B-DNA duplex as a starting model for docking or a molecular-dynamics build, to produce an A-form RNA duplex template, or to create a canonical reference structure to compare against an experimental or predicted model. It is a generator of idealized models rather than a method for predicting the real structure of a given sequence.

  #### Usage Tips

  * **`form` (default `B-DNA`) selects the canonical model to build.** Choose `A-DNA`, `B-DNA`, `Z-DNA`, or `RNA` (an A-form RNA duplex). `T` and `U` are interconverted automatically to match the form (`T` for the DNA forms, `U` for RNA), so the same sequence can be built in any form without manual editing.
  * **`single_stranded` (default `False`) returns only the sense strand.** Leave it `False` to build the full duplex with the auto-generated complement; set it `True` (fiber `-single`) when you need a single strand, such as a single-stranded RNA helix.
  * **X3DNA must be installed by you (it is user-provisioned).** X3DNA is not auto-downloaded (it is gated behind free registration at [x3dna.org](https://x3dna.org/) and distributed under CC-BY-NC-4.0). After downloading X3DNA v2.4, place it in the managed cache so `bin/fiber` is found automatically with no environment variable, or point the tool at the install root via the `X3DNA` environment variable (or `PROTO_X3DNA_WEIGHTS_DIR`, or the `x3dna_dir` config field). See [SETUP.md](SETUP.md) for copy-paste steps. Without a resolvable install, the tool cannot run.
</div>

## Toolkit Notes

These apply to the X3DNA Fiber tool in this toolkit (`x3dna-fiber`).

* **Runs on CPU and is deterministic.** The `fiber` program is a fast command-line builder with no GPU and no random sampling; the same sequence and `form` always yield the same coordinates. Generation is near-instant for typical sequences.
* **User-provisioned local install only.** X3DNA is gated behind free registration at [x3dna.org](https://x3dna.org/) under CC-BY-NC-4.0 and is not bundled or downloaded automatically. After downloading X3DNA v2.4, place it in the managed cache so `bin/fiber` resolves automatically, or expose it through the `X3DNA` environment variable, `PROTO_X3DNA_WEIGHTS_DIR`, or the `x3dna_dir` config field (see [SETUP.md](SETUP.md)). The tool therefore runs locally with `device='cpu'` and is not available on hosted (`device='proto'`) workers.
* **Produces idealized canonical models, not predictions.** Output is a regular fiber helix with fixed canonical geometry for the chosen form; it does not model sequence-dependent deformation, non-canonical pairing, or energetics. Use a structure-prediction or refinement method when the real conformation of a specific sequence is required.

<Tip>
  **Example notebook:** See the [full working example](https://github.com/evo-design/proto-tools/blob/47e34afa5ea240a3b406e323dc38aa5dc85f223e/proto_tools/tools/structure_prediction/x3dna/examples/example.ipynb) for a copy-paste-ready walkthrough.
</Tip>

## Infrastructure Guides

The following guides cover how to run tools efficiently and at scale.

<CardGroup cols={2}>
  <Card title="Tool Persistence" icon="repeat" href="/docs/tools/guides/tool-persistence">Keep a tool's model warm across calls instead of reloading it every invocation.</Card>
  <Card title="Device Management" icon="cpu" href="/docs/tools/guides/device-management">How GPUs are allocated to tools and how to target specific devices.</Card>
  <Card title="Parallel Execution" icon="layers" href="/docs/tools/guides/parallel-execution">Fan a batch of inputs out across multiple GPUs.</Card>
</CardGroup>
