SAMSON School 2017 is now over, and this year sixteen lectures had accompanying written step-by-step tutorials! Feel free to follow the links below to learn how to install and use SAMSON, as well as develop your own SAMSON Elements and share them on SAMSON Connect:
We introduce the Users program of the SAMSON School and SAMSON, the software platform for computational nanoscience. We highlight the need for an integrated platform able to combine diverse domains of nanoscience, which led to SAMSON’s open architecture and the creation of the SAMSON Connect online platform. We introduce SAMSON Connect, the online platform used to distribute SAMSON and SAMSON Elements, the modules for SAMSON, and we install SAMSON and default SAMSON Elements.
Producing publication-quality images and animations
We explore how SAMSON can be used to generate publication-quality images and animations, thanks to visual models and color schemes, and fine control of rendering options and effects, including interactive ambient occlusion, depth-of-field rendering, silhouettes, anti-aliasing, multisampling, etc. We show how to setup SAMSON to capture snapshots of the viewport.
Simulating small molecules, graphene and proteins
We demonstrate how SAMSON can be used to perform interactive simulation of various systems, including small molecules with the Universal Force Field (UFF), graphene and nanotubes with the Brenner force field, and proteins with GROMACS force fields. We show how interactive minimization helps produce realistic structures. We discuss the choice of state updaters.
Calculating non-linear normal modes
We demonstrate the SAMSON app which makes it possible to compute non-linear normal modes very efficiently. We show how they help produce large realistic deformations of protein structures, and demonstrate how to generate and export trajectories and snapshots.
Aligning sequences with MUSCLE – Interactive Ramachandran plots
We show how to use the SAMSON app that integrates the MUSCLE tool for multiple sequence alignement, and we demonstrate the SAMSON app for interactive Ramachandran plots, which lets users directly edit the Ramachandran plot to modify the protein structure.
Generating crystal models
We show how to use the crystal generator app to easily create crystal models in SAMSON. We also show how to import cif models, visualize and edit them.
Performing Orbital-Free Density Functional Theory calculations
We demonstrate how to perform Orbital-Free Density Functional Theory (OF-DFT) calculations in SAMSON. In particular, we show how to set up the system and calculation, as well as combine these calculations with simulators in SAMSON to perform energy minimization.
Installing the SAMSON SDK
We introduce the Developers program of the SAMSON School, and the SAMSON Software Development Kit (SDK) that we will use to develop SAMSON Elements. We set up a programming environment for everyone, and we install the SAMSON SDK. We explore the SAMSON Connect platform from the developer point of view. We explain the structure of the SAMSON SDK. We introduce the libraries composing the SDK, and the main classes used to represent atoms, molecules and data graph nodes in SAMSON. We describe naming conventions, as well as the typical file structure of a SAMSON Element.
Programming new apps
We use the SAMSON Element Generator to create the template of a new SAMSON app. We use this template to develop our first app: a tool to perturb atoms positions in the document. We explore the creation of the user interface, the retrieval of atoms in a document or in a user selection, and perturb atom positions using a random number generator. We use SAMSON’s holding mechanism to let users undo and redo their actions.
Handling units and dimensional analysis
In SAMSON, physical quantities are strongly typed. We show how to define and manipulate physical quantities and their units, in order to help ensure the quality of the calculations. We show how to convert between units, define new units and constants, and program an app that performs energy conversions.
Importing and exporting data
We describe how to import and export data into SAMSON. We implement an XYZ parser that creates a structural model based on atom coordinates and types, and we export an XYZ file based on the contents of the active document or the user selection.
Creating novel visualizations
We introduce visual models, and show how they can be used to provide new visual representations to users. We introduce SAMSON’s various display functions used to simplify the rendering of spheres, cylinders, surfaces, etc. We program a van der Waals representation of a group of atoms. We show how to make objects selectable by the user.
Programming new force fields
We explain how to program new force fields in SAMSON. We introduce dynamical models and interaction models, and show how to create and apply a set of springs to a group of atoms. We show how to compute energies and forces based on the information contained in the dynamical model.
Programming new simulation methods
We explain how to program new simulation methods in SAMSON. We introduce state updaters, the data graph nodes used to perform interactive simulation, and we implement a Metropolis Monte Carlo sampler. We show how to save the best structures found by the Monte Carlo minimizer in the document.
Integrating external programs
We explain how to develop a SAMSON app that integrates an external executable. In particular, we implement a prototype app that a) creates a configuration file on disk based on the parameters the user has entered in the app GUI, b) launches the external executable and c) retrieves the output of the external executable and imports it into SAMSON.
Distributing new SAMSON Elements on SAMSON Connect
We explain how to use the SAMSON Element Packager to prepare a SAMSON Element for distribution on SAMSON Connect. We show how to upload screenshots and describe SAMSON Elements, manage collaborators allowed to edit the SAMSON Element, as well as manage versions of SAMSON Elements.
Please share, and don’t hesitate to contact us or comment below if you have any questions!