SAMSON (Software for Adaptive Modeling and Simulation Of Nanosystems) is a computer software platform for molecular design being developed by OneAngstrom and previously by the NANO-D group at the French Institute for Research in Computer Science and Automation (INRIA).[2]

SAMSON 2020 R3.png
The main user interface.
Stable release
SAMSON 2020 R3 / 2020
Written inC++ (Qt)
Operating systemWindows, macOS, Linux
Platformx86, x86-64
Available inEnglish
TypeMolecular design

SAMSON has a modular architecture that makes it suitable for different domains of nanoscience, including material science, life science, physics, electronics, chemistry, and education.[3][4][5][6][7][8]

SAMSON ElementsEdit

SAMSON Elements are modules for SAMSON, developed with the SAMSON software development kit (SDK). SAMSON Elements help users perform tasks in SAMSON, including building new models, performing calculations, running interactive or offline simulations, and visualizing and interpreting results.

SAMSON Elements may contain different class types, including for example:

  • Apps – generic classes with a graphical user interface that extend the functions of SAMSON
  • Editors – classes that receive user interaction events to provide editing functions (e.g., model generation, structure deformation, etc.)
  • Models – classes that describe properties of nanosystems (see below)
  • Parsers – classes that may parse files to add content to SAMSON's data graph (see below)

SAMSON Elements expose their functions to SAMSON and other Elements through an introspection mechanism, and may thus be integrated and pipelined.

Modeling and simulationEdit

SAMSON represents nanosystems using five categories of models:

  • Structural models – describe geometry and topology
  • Visual models – provide graphical representations
  • Dynamical models – describe dynamical degrees of freedom
  • Interaction models – describe energies and forces
  • Property models – describe traits that do not enter in the first four model categories

Simulators (potentially interactive ones) are used to build physically-based models, and predict properties.

Data graphEdit

All models and simulators are integrated into a hierarchical, layered structure that form the SAMSON data graph. SAMSON Elements interact with each other and with the data graph to perform modeling and simulation tasks. A signals and slots mechanism makes it possible for data graph nodes to send events when they are updated, which makes it possible to develop e.g., adaptive simulation algorithms.[9][10][11]

Node specification languageEdit

SAMSON has a node specification language (NSL) that users may employ to select data graph nodes based on their properties. Example NSL expressions include:

  • Hydrogen – select all hydrogens (short version: H)
  • atom.chainID > 2 – select all atoms with a chain ID strictly larger than 2 (short version: > 2)
  • Carbon in node.selected – select all carbons in the current selection (short version: C in n.s)
  • bond.order > 1.5 – select all bonds with order strictly larger than 1.5 (short version: b.o > 1.5)
  • node.type backbone – select all backbone nodes (short version: n.t bb)
  • O in node.type sidechain – select all oxygens in sidechain nodes (short version: O in n.t sc)
  • "CA" within 5A of S – select all nodes named CA that are within 5 angstrom of any sulfur atom (short version: "CA" w 5A of S)
  • node.type residue beyond 5A of node.selected – select all residue nodes beyond 5 angstrom of the current selection (short version: n.t r b 5A of n.s)
  • residue.secondaryStructure helix – select residue nodes in alpha helices (short version: h)
  • node.type sidechain having S – select sidechain nodes that have at least one sulfur atom (short version: n.t sc h S)
  • H linking O – select all hydrogens bonded to oxygen atoms (short version: H l O)
  • C or H – select atoms that are carbons or hydrogens


SAMSON is developed in C++ and implements many features to ease developing SAMSON Elements, including:

  • Managed memory
  • Signals and slots
  • Serialization
  • Multilevel undo-redo
  • Introspection
  • Referencing
  • Unit system
  • Functors and predicate logic
  • SAMSON Element source code generators

SAMSON ConnectEdit

SAMSON, SAMSON Elements and the SAMSON Software Development Kit are distributed via the SAMSON Connect website.[3] The site acts as a repository for the SAMSON Elements being uploaded by developers, and users of SAMSON choose and add Elements from SAMSON Connect.

See alsoEdit


  1. ^ "Terms of use". SAMSON Connect. Retrieved 2020-05-30.
  2. ^ NANO-D - INRIA
  3. ^ a b SAMSON Connect
  4. ^ SAMSON 0.7.0 is available - Macs in Chemistry
  5. ^ RDKit in SAMSON - Macs in Chemistry
  6. ^ Vaucher, Alain C.; Reiher, Markus (2016). "Molecular Propensity as a Driver for Explorative Reactivity Studies". Journal of Chemical Information and Modeling. 56 (8): 1470–1478. arXiv:1604.06748. doi:10.1021/acs.jcim.6b00264. PMID 27447367. S2CID 3549945.
  7. ^ Vaucher, Alain C.; Reiher, Markus (2017). "Steering Orbital Optimization out of Local Minima and Saddle Points Toward Lower Energy". Journal of Chemical Theory and Computation. 13 (3): 1219–1228. arXiv:1701.00128. doi:10.1021/acs.jctc.7b00011. PMID 28207264. S2CID 4406796.
  8. ^ Miao, Haichao; De Llano, Elisa; Sorger, Johannes; Ahmadi, Yasaman; Kekic, Tadija; Isenberg, Tobias; Gröller, M. Eduard; Barišić, Ivan; Viola, Ivan (2017). "Multiscale Visualization and Scale-Adaptive Modification of DNA Nanostructures" (PDF). IEEE Transactions on Visualization and Computer Graphics. 24 (1): 1014–1024. doi:10.1109/TVCG.2017.2743981. PMID 28866510. S2CID 9479885.
  9. ^ Artemova, Svetlana; Redon, Stephane (2012). "Adaptively Restrained Particle Simulations". Physical Review Letters. 109 (19): 190201:1–5. Bibcode:2012PhRvL.109s0201A. doi:10.1103/PhysRevLett.109.190201. PMID 23215362.
  10. ^ Bosson, Mael; Grudinin, Sergei; Bouju, Xavier; Redon, Stephane (2012). "Interactive physically-based structural modeling of hydrocarbon systems". Journal of Computational Physics. 231 (6): 2581–2598. Bibcode:2012JCoPh.231.2581B. CiteSeerX doi:10.1016/
  11. ^ Bosson, Mael; Grudinin, Sergei; Redon, Stephane (2013). "Block-Adaptive Quantum Mechanics: An Adaptive Divide-and-Conquer Approach to Interactive Quantum Chemistry". Journal of Computational Chemistry. 34 (6): 492–504. doi:10.1002/jcc.23157. PMID 23108532. S2CID 2298570.