Skip to content

HELMshaker

HELMshaker reads, validates, converts and modifies biopolymers written in HELM, XNA and FASTA. It handles oligonucleotides, including conjugates, and peptides, including cyclic and macrocyclic ones. It is the HELM engine behind Forge and the RNA Hub.

from helmshaker import Molecule, MonomerLibrary

library = MonomerLibrary()
library.load_from_file("monomers.json")

oligo = Molecule.from_helm(
    "RNA1{[moe](A)[sp].[moe](U)[sp].[moe](G)}$$$$V2.0", monomer_library=library
)

oligo.to_fasta()          # 'AUG'
oligo.molecular_weight()  # 1124.996

Where to go

  • Get started

    Install it and read your first molecule. Start here.

  • Tutorials

    Guided walkthroughs that teach the library by using it.

  • How-to guides

    Short answers to specific tasks you already have.

  • Reference

    The API, the CLI, the pattern schema, the exceptions.

  • Explanation

    Why the library works the way it does.

What it does

  • Read from HELM, XNA, plain sequences, and token-based vendor notations
  • Write to HELM, XNA and FASTA
  • Build peptides from a sequence, with crosslinks, N/C caps and non-natural monomers
  • Modify with named patterns or single-monomer replacements
  • Validate against a monomer dictionary
  • Compute molecular weight, formula, SMILES and molblock, via RDKit
  • Draw oligonucleotides as 2D cartoon schematics
  • Pull dictionaries from TMR or Forge, from Python or the helmshaker CLI

The core install depends only on pyyaml. Chemistry, visualization, networking and alignment are optional extras, imported lazily, so parsing and validation work without any of them.

One thing to know first

HELMshaker ships no monomers. A HELM string records symbols, not what they mean, so every read needs a dictionary and reading without one raises MonomerLibraryError. That is deliberate: guessing produces a plausible molecule made of the wrong things. See Why a monomer library is mandatory.