TRAMbio: a flexible python package for graph rigidity analysis of macromolecules
Nicolas Handke, Thomas Gatter, Franziska Reinhardt, Peter F. Stadler

TL;DR
TRAMbio is a Python tool that analyzes the rigidity and flexibility of molecular structures using a pebble game algorithm, helping researchers understand protein behavior.
Contribution
TRAMbio provides the first easy-to-use implementation of the pebble game algorithm for molecular rigidity analysis.
Findings
TRAMbio performs efficiently on large molecules and time series of protein movements.
Rigid components identified by TRAMbio can be visualized using standard molecular platforms.
The tool bridges the gap between theoretical rigidity analysis and practical molecular biology research.
Abstract
Insight into the rigidity or flexibility of molecular structures is integral for a series of common research questions in molecular biology, including the identification of functional regions, simulated protein unfolding, or tracking and prediction of conformational changes in proteins over time. Determining rigidity in 3-dimensional space is a difficult problem in general. For a well-defined subclass of frameworks, however, this task can be solved in polynomial time with the help of constraint counting algorithms known as pebble games. Although this approach is well established, no easy-to-use implementation of the pebble game algorithm in the context of general graph analysis and molecular rigidity is currently available to researchers. To close this gap, we developed TRAMbio, a Python-based software tool for Topological Rigidity Analysis in Molecular Biology. We summarize and…
Genes, proteins, chemicals, diseases, species, mutations and cell lines named across the full text — each resolved to its canonical identifier and authoritative record.
Click any figure to enlarge with its caption.
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9- —Universität Leipzig (1039)
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsProtein Structure and Dynamics · Advanced Physical and Chemical Molecular Interactions · Graph theory and applications
Introduction
Proteins constitute the majority of a cell’s dry mass and govern the key processes of most cellular functions [1]. They catalyze most chemical reactions of the cell’s metabolism, act as regulators for the production and degradation of biological macromolecules, exert control in response to environmental cues, and orchestrate development in multicellular organisms. As a consequence, alterations of protein structures caused by mutations, chemical modification, or triggered by pathogens such as bacteria or viruses are often the molecular root cause of diseases through changes of binding interfaces and changes of interactions that disrupt regulatory network.
Since physical and chemical interactions with their environment define protein function, accurate representations of their three-dimensional structure are a critical first step towards understanding their biological roles. A wide variety of experimental techniques has been developed to determine single 3D structures of proteins: most commonly, nuclear magnetic resonance (NMR), cryogenic electron microscopy (cryo-EM) and X-ray crystallography that provide a time invariant structure are employed. Recently, dramatic progress has also been achieved with regards to the computational prediction of protein structures, at least as far as naturally evolved protein sequences are concerned [2–4].
Conformational changes, are an important part of the mechanism underlying protein function. Dynamic changes of protein subsystems, however, are much harder to capture experimentally than a single, dominant structure. Although NMR can in principle contribute to measuring protein dynamics [5], computational approaches are in general more accessible and widespread. Most commonly Molecular Dynamics (MD) is employed to simulate the motions of individual atoms based on potentials describing chemical bonds as well as electrostatic and other interactions within and between molecules.
A downside of MD simulations is that the atom-level resolution makes it non-trivial to identify the mechanics behind non-local changes of the structure. This is of particular relevance in allostery, where a binding event at one site affects a different functional site [6, 7]. In such applications it is of particular interest to identify substructures that move collectively relative to each other.
Rigidity analysis, reviewed in [8, 9], is a promising computational strategy to identify such blocks. To this end, interatomic distances that remain essentially unchanged over larger time-scales are interpreted as edges of a graph. Rigid components that do not admit internal motions but retain residual degrees of freedom relative to each are then defined at a purely graph-theoretical level. The general usefulness of rigidity analysis in protein science has been demonstrated e.g. in [10–14].
Efficient combinatorial algorithms [15, 16] are based on so-called pebble games [17]. Although practical implementations, e.g. ProFlex/FIRST [10], ASU FIRST [18] and KINARI [19–21], have become available, an open-access tool for the analysis of molecular rigidity does not seem to be available at present. Here we aim to close this gap. TRAMbio implements the classic pebble game algorithms for rigidity and at the same time provides a convenient framework geared towards protein analysis, including a direct interface to the Protein Data Bank. Despite the focus on protein structures, TRAMbio implements at its core a general class of pebble game algorithms that handle so-called \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -sparse graphs, which encompass the most important notions of graph rigidity. TRAMbio thus can be used to solve combinatorial rigidity problems independent of a specific application domain.
This contribution is organized as follows. The theoretical background on graph rigidity together with the pebble game algorithm and its application to molecular structures are briefly summarized in Sect. 2. The software tool TRAMbio is presented in Sect. 3, detailing its architecture and functionalities as well as insights on implementation decisions. Section 4 provides a showcase example and an evaluation of the required computational resources. An outlook to open issues and future developments is the main topic of the concluding Sect. 5.
Theory
Rigidity and (k, l)-sparse graphs
Molecules in general have well-defined bond lengths and bond angles (cf. Fig. 1a). The latter imply that also next-nearest neighbors have fixed, well-defined distances. Starting from a molecular graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$M=(V,B)$$\end{document} , where vertices represent atoms and edges the chemical bonds, the fixed distances are encoded in a second graph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$G=(V,E)$$\end{document} with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$xy\in E$$\end{document} whenever there is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$z\in V$$\end{document} such that both \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$xz\in B$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$zy\in B$$\end{document} (cf. Fig. 1b). Accordingly, this graph describing all rigid distances G on the set of atoms V is the so-called square of M [22]. The atoms V are embedded in D-dimensional Euclidean space by a map \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\eta : V\rightarrow \textbf{R}^{D}$$\end{document} , where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$D=3$$\end{document} for molecules. The graph G together with the map \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\eta $$\end{document} and the length function \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell (xy):=\Vert \eta (x)-\eta (y)\Vert $$\end{document} for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$xy\in E$$\end{document} is called a framework. An Euclidean distance matrix \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{D}_{xy}:=\Vert \eta (x)-\eta (y)\Vert $$\end{document} for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x,y\in V$$\end{document} is naturally associated with the framework such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{D}_{xy}=\ell (xy)$$\end{document} for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$xy\in E$$\end{document} . A framework \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(G,\eta )$$\end{document} is globally rigid if its distance matrix \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{D}$$\end{document} is uniquely defined by the edge lengths \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell $$\end{document} .Fig. 1A molecular bar-and-joint framework with fixed bond-angles (a) and the corresponding bond-bending framework (b). Each vertex with its covalent neighbors forms a complete subgraph (c) which corresponds to a rigid body (d). Every two adjacent bodies share a single edge (red lines in (e)) which only permits a hinge rotation around the bond axis. Figure adapted from [23]
An infinitesimal motion \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}$$\end{document} consists of a D-dimensional velocity vector \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}_x$$\end{document} for each \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x\in V$$\end{document} such that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(\textbf{v}_x-\textbf{v}_y)(\eta (x)-\eta (y))=0$$\end{document} for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$xy\in E$$\end{document} . This linear system can be rewritten in the form \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{R}_{\eta }\textbf{v}=0$$\end{document} , where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}$$\end{document} is a D|V|-dimensional vector of velocities and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{R}_{\eta }$$\end{document} is the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|E|\times D|V|$$\end{document} -dimensional rigidity matrix. Each row of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{R}_{\eta }$$\end{document} corresponds to an edge xy of the graph G, with entries \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}_x-\textbf{v}_y$$\end{document} for the velocity of vertex x, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}_y-\textbf{v}_x$$\end{document} for the velocity of vertex y, and 0 otherwise. For an example we refer to [24].
The framework \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(G,\eta )$$\end{document} is infinitesimally rigid if there are only “trivial” motions \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}$$\end{document} that do not affect the distances between any two vertices, i.e., if the rank of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{R}_{\eta }$$\end{document} equals \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$D|V|-{D+1 \atopwithdelims ()2}$$\end{document} . The \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$${D+1 \atopwithdelims ()2}$$\end{document} trivial degrees of freedom correspond to the translation, rotation, and general screw motions of a rigid body in D-dimensional space. The rank of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{R}_{\eta }$$\end{document} in general depends explicitly on \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\eta $$\end{document} . However, if a graph G has an infinitesimally rigid framework \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(G,\eta )$$\end{document} , then all its generic frameworks (i.e., those with embedding coordinates algebraically independent over the rational numbers) are infinitesimally rigid [25]. Generic infinitesimally rigidity, therefore, is a property of the graph G only.
For \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$D=2$$\end{document} dimensions, generic rigidity of bar-and-joint frameworks is characterized by the Geiringer-Laman theorem [26, 27]: \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$G=(V,E)$$\end{document} is generically rigid as a bar-and-joint framework in 2 dimensions if and only if it contains a spanning subgraph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$G'=(V,E')$$\end{document} with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|E'|=2|V|-3$$\end{document} and edges for all subsets of edges \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$F\subseteq E'$$\end{document} holds \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|F|\le 2|V(F)|-3$$\end{document} , where V(F) is the set of vertices incident with F. An analogous counting formula for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$D=3$$\end{document} (with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|E'|=3|V|-6$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|F|\le 3|V(F)|-6$$\end{document} according to Maxwell), however, fails due to the famous “double banana” graph [28].
As noted above, molecules are naturally modeled as bar-and-joint frameworks of the square of the structural formula. Alternatively, each atom and its neighbors can be viewed as rigid bodies connected by hinges corresponding to the connecting bonds, which in general allow free rotations, cf. Fig. 1d and e. However, these molecular body-and-hinge frameworks have a special configuration called hinge-concurrent, because all the hinges (chemical bonds) incident to a body intersect at the atom at the center of the body. This special configuration in principle could change the (infinitesimal) degrees of freedom by introducing additional linear dependencies. Rigidity of 3D hinge-concurrent body-and-hinge frameworks is equivalent to rigidity of corresponding rigid panel-and-hinge frameworks [29]. In 1984, Tay and Whiteley [30] conjectured that, in arbitrary dimensions, a multigraph G can be realized as an infinitesimally rigid body-and-hinge framework if and only if G can be realized by an infinitesimally rigid panel-and-hinge framework. This so-called “Molecular Conjecture” was proven by Jackson and Jordán for 2 dimensions [22] and finally by Katoh and Tanigawa for arbitrary dimensions [31]. In particular, therefore, it suffices to test body-and-hinge rigidity of a molecular graph to determine bar-and-joint rigidity of the square of the molecular graph G and thus rigidity of the molecule.Table 1. Rigidity problems equivalent to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -tightnessFramework typek \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell $$\end{document} References2D bar-and-joint32[27]2D body-and-bar33[30]Frictional jamming33[32]Translational rigidity34[33]3D minimally rigid36[34]3D body-and-bar66[30]
A framework is minimally rigid if it is rigid and the deletion of any edge leads to a flexible (i.e., non-rigid) framework. Several different types of generic rigidity of graphs are characterized by counts of degrees of freedom, which leads to combinatorial conditions analogous to 2-dimensional bar-and-joint frameworks, see Table 1 for some important rigidity models. The mathematical basis is conveniently expressed in terms of so-called \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -sparse graphs, where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k>0$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$0\le \ell <2k$$\end{document} . This class of graphs was introduced in the context matroid theory [35]:
Definition 1
A multigraph \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$G=(V,E)$$\end{document} is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -sparse if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|E'|\le k|V(E')|-\ell $$\end{document} for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\emptyset \ne E'\subseteq E$$\end{document} . It is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -tight if it is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -sparse and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$|E|=k|V|-\ell $$\end{document} .
The \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -tight graphs thus correspond to minimally rigid graphs for the corresponding notion of rigidity. That is, a graph is “ \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -rigid”, if it contains a spanning \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -tight subgraph, i.e., it is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -sparse.
Definition 2
A \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -rigid component is vertex-maximal subgraph of G that is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -tight.
Two \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -rigid components are always edge-disjoint. They are vertex-disjoint for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$0<\ell \le k$$\end{document} and may overlap in at most one vertex for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k<\ell <2k$$\end{document} . For \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell >0$$\end{document} , all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -rigid components are connected subgraphs [16]. For the special case of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell =0$$\end{document} , only a single \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -rigid component exists in a given graph.
Pebble game algorithms
Fig. 2A graph G with 2 pebbles assigned to each vertex (a), for which it is possible to cover every edge with a pebble (b). Each edge is directed away from the node where the covering pebble was used from. Therefore, in every generic embedding of G in the plane, all edges are independent
A pebble game is a single-person game played on a set V of nodes each of which is initialized by k pebbles. The player inserts and orients edges between the vertices. The rules of a particular pebble game determine conditions under which an edge is accepted, when pebbles can be moved, and edges are re-oriented (cf. Fig. 2). A pebble game algorithm “plays” the pebble game by attempting to insert the edges of a given graph G in arbitrary order. Jacobs and Hendrickson proposed a simple pebble game algorithm to decide planar bar-and-joint rigidity, i.e., to recognize Laman graphs [17]. This idea was generalized in [16] to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -graphs:
Starting from an edge-less graph D, an edge e of the input graph G is inserted into D between two nodes u and v if the two vertices together contain at least \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell +1$$\end{document} pebbles. Moreover, no more than k pebbles are allowed at any single vertex. Otherwise additional pebbles can be retrieved consecutively from any vertex w that is reachable from u or v. Transporting a pebble from w to u or v inverts the orientation of all edges along a single directed path from u to w or v to w, respectively. The edge is directed \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u\rightarrow v$$\end{document} and the pebble in u is removed, unless no pebbles are present on u in which case the roles of u and v are reversed (cf. Fig. 3). If D contains exactly \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell $$\end{document} pebbles after attempting to insert all input edges, then G is \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -tight if all edges were inserted successfully, otherwise it contains redundant edges.Fig. 3A graph during the pebble game. Inserting the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x_1x_2$$\end{document} (gray) requires freeing a pebble (a). A pebble from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x_4$$\end{document} can be used to cover the edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x_3x_4$$\end{document} , which frees a pebble on \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x_3$$\end{document} to cover \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x_1x_3$$\end{document} , finally freeing a pebble on \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x_1$$\end{document} (b) that can cover the new edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$x_1x_2$$\end{document} (c)
Rigid components can be detected by a simple extension of this procedure that explicitly maintains the rigid components. Upon attempting to insert an edge \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e=uv$$\end{document} one checks if u and v are in the same component, in which case the edge is redundant. Otherwise, if e can be inserted, one checks if a new component is formed or if the additional edge causes two or more components to join.
Representation of molecular structures
For molecular structures, the rigidity problem can therefore be solved by the (6, 6)-pebble game on the multigraph which underlies the molecular body-and-hinge framework. Every molecular single bond is encoded as 5 edges between the same pair of atoms in the body-and-hinge graph, leaving a single degree of freedom given by the torsion angle. Double bonds, on the other hand, are rigid and constrain the neighborhoods of the incident atoms to a common plane. This additional constraint is represented as a 6-th edge in the multigraph. Triple bonds are treated analogously.
Since the result of the pebble game is the list of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -tight subgraphs in this “molecular multigraph”, where each node represents a rigid body consisting of a central atom with its nearest neighbors, these results need to be mapped back onto the molecular graph. An atom may be part of more than one rigid component, since it may be both at the center of a rigid body and at the periphery of one or more rigid bodies centered at each of its adjacent atoms (cf. Fig. 4b). Any atom of valency 1, e.g., hydrogens and halogens, could also be considered to be forming a rigid body together with their unique binding partner. These are completely subsumed in the adjacent body, however, and hence can be ignored. In Fig. 4, the three vertices on the bottom-left are already represented by a single rigid body.Fig. 4A bond-bending framework in 3-space (a) and the multi-graph of the corresponding body-and-bar framework (b). The dashed lines represent the next-nearest neighbor edges. The inside of each body in (b) shows the set of vertices from (a) that consolidate this body. The orange dot marks the same vertex from the bond-bending framework. Figure adapted from [36]
In applications to protein structures, interesting results can be expected only if hydrogen bonds and other contacts are taken into account. Otherwise, at least the torsion angles between N-C \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$_{\alpha }$$\end{document} and C \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$_{\alpha }$$\end{document} -C along the backbone [37] remain unconstrained1 and there are no “interesting” rigid components beyond parts of individual amino-acids. Hydrogen bonds are naturally treated like singe covalent bonds due to their well-defined bond lengths and bond angles.
The representation of additional, weaker non-covalent interactions in rigidity analysis is much less straight-forward. This concerns in particular hydrophobic tethers as well as weak hydrogen bonds. One possibility is to represent such contacts with fewer than five edges, advocated in particular in [9, 18, 38, 39]. In generic body-and-bar frameworks this would directly relate to fewer constraints between the respective bodies and thus a representation of more flexibility in the overall system. With respect to molecular modeling, however, there may appear further linear dependencies through the intersection of chemical bonds incident to a body. In addition to the previously mentioned hinge-concurrencies, this model would also allow for the intersection of two bars or a bar and a hinge, termed bar-bar- and bar-hinge-concurrencies, respectively [40]. While the “Molecular Conjecture” implies that hinge-concurrency does not affect the rigidity results, no analogous results exist for bar-bar- or bar-hinge-concurrencies. Moreover, the use of specific edges to represent such contacts should be regarded as a heuristic approximation [41].
The TRAMbio package
TRAMbio (Topological Rigidity Analysis in Molecular Biology) is a pure-Python package based on and centered on the pebble game. It provides functionality for general applications in graph theory including testing for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -sparsity as well as determining the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -spanning subgraphs, i.e., the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -rigid components. With regards to molecular data, in particular proteins, TRAMbio provides tools for the rigidity analysis on an atom or residue-level with further functionality towards specialized tasks like (a) simulated protein unfolding [11] on single-state protein data and (b) time-based tracking of rigid component changes in molecular dynamics (MD) trajectories.
Input data
TRAMbio processes general graph data in GraphML2 format and provides convenient interfaces to PDB and XTC data to study rigidity in protein structures.
The PDB file format is a text-based format introduced in 1972 to store three dimensional protein structures in the Protein Data Bank, the main community resource for this type of data [42]. At the time of writing, the PDB provides 229, 681 high quality structures for proteins, with more computational results. PDB data record atom coordinates. Covalent bonds, hydrogen bonds, and other interactions are not given explicitly and thus need to be inferred from relative positions of atoms. TRAMbio implements algorithms for extracting the graph structure following well-established procedures: (a) Covalent interactions are determined by firstly using amino-acid templates (cf. Fig. 5), as in the initial step of KINARI’s “phased pebble game” [21], and then by employing a general distance-based algorithm for missed edges that is essentially identical to the method used in graphein [43]. (b) Hydrogen bonds and salt-bridges are determined as described in [11]. (c) Hydrophobic interactions are calculated using either the distance-based approach based on Van der Waals surfaces [11] or the potential-based algorithm described for KINARI [40] leveraging a Lennard–Jones-12-6 potential. (d) The remaining non-covalent interactions (e.g. pi-cation or pi-stacking) are calculated using the geometric parameters listed at https://getcontacts.github.io/interactions.html. Further details on the construction process for molecular graphs can be found in Appendix A.Fig. 5. Example of the pre-constructed pebbled graph for a protein chain with amino acids proline (left) and tryptophan (right). Every directed edge represents five edges in the pebbled graph. The red edges are later added through the actual pebble game. Figure based on images from [44]
Molecular dynamic trajectories describe the temporal evolution of the three-dimensional conformations of a molecule. The XTC file format encodes the trajectories as time series of 3-dimensional coordinates for atoms, based on the unix concept of External Data Representation. After loading the trajectory with either MDAnalysis [45, 46] or mdtraj [47], the coordinates of each selected frame are exported as PDB data and the interactions between atoms are calculated as mentioned above. Since all frames model the same protein in various states, it suffices to determine covalent bonds once and then assumed for all frames while the non-covalent interactions are calculated for each frame individually.
Tool description and architecture
The architecture of TRAMbioconsists of two main parts. At its core lies an API for the general \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -component pebble game on arbitrary k and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell $$\end{document} as well as the specific (6, 6)-pebble game in the context of molecular rigidity calculation.
Workflow structures follow the SOA (service-oriented architecture) design pattern, implementing convenient interfaces for the pebble game API. Although most commonly associated with Web-Applications, SOA serves as a useful design foundation for software systems consisting of distributed yet integrated components. In the case of TRAMbio, aside from the capability of directly downloading protein information from the Protein Data Bank,3 the remainder of the tool and especially the entire calculation runs completely locally. The usage of SOA separates program logic of TRAMbiointo dedicated registries for handling I/O, internal structures, molecular interaction modeling, and the overall workflows. Although Python does not have a native interface structure, the usage of abstract classes allowed for a recreation of interface functionality.
The internal data structures and the implementation of the pebble game highly leverages the Python packages NetworkX [48] and BioPandas [49]. Input data of proteins is stored and processed in PDB format through the use of data frames. Aside from that, the most notable internal structures are (1) a graph representation of the protein at atom level, with detected covalent and non-covalent bonds as annotated edges, and (2) a weighted bi-directional digraph serving as an auxiliary graph during the pebble game. Weighted digraphs are utilized in contrast to multigraphs based on an overall performance increase, as edge inversions (removal and re-adding of individual edges) are reduced to in practice more time efficient4 weight shifts. This concept was already applied in KINARI-2 [21].
A customized file format for storing molecular rigidity or general pebble game results was designed based on XML (eXtensible Markup Language). XML-Schema are provided for both structure types to warrant file integrity. Since the pebble game employs an all-atom model for rigidity calculation, additional functionality is provided to convert the results to residue-level rigid components. Due to its reduced complexity, these outputs are formatted in JSON (JavaScript Object Notation).
Functionality, features, and implementation
This subsection provides an overview of TRAMbio’s workflows in general and specifically geared towards application on single state proteins and trajectories from molecular dynamics (MD) simulations. It also highlights key features and underlying implementation details. TRAMbio in particular reimplements5 some functionalities of ASU FIRST [10, 18] and KINARI [19, 21] in an open-source framework that is designed to be easy to maintain and extend.
Aside from the mentioned service-oriented API, the TRAMbio is a command-line-only tool featuring five separate workflows (see Table 2).Table 2. Command-line workflows provided by TRAMbioNr.CommandDescription1.tram-pebbleApplies the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -pebble game on general graph data2.tram-pdbCalculates rigid components and dilution analysis for single state PDB-data3.tram-xtcCalculates rigid components in protein trajectories4.tram-residueConverts the atom-level results of 2. and 3. to residue-level components5.tram-pymolGenerates source files for result visualization with PyMol [50]
Leveraging the known covalent structure of biopolymers such as DNA, RNA, and in this case proteins, the majority of edge insertions corresponding to covalent bonds can already be decided prior to running the pebble game. Thereby, a reverse arborescence,6 with each node having at most \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell -1$$\end{document} edges pointing away, is extracted from the protein graph. This represents a well-defined state of the pebble game. This approach, first introduced as “phased pebble game” by Bygi and Streinu [21], greatly reduces the computation time required, since only the remaining edges need to be tested through actual runs of the pebble game. To further speed up computation, a multiprocessing approach is used for state-wise pebble game runs on trajectories and for mapping results to rigid molecular structures.
One major design consequence of building a pure-Python package relates to the mechanical modeling of molecules, especially the calculation of non-covalent interactions. This excluded the use of third-party software for out-sourcing model complexity. The off-the-shelf solution of the existing Python package graphein [43] for molecular graph modeling was temporarily considered during development. However, we realized that its purely distance-based interaction model is too limited. The current version of graphein (v. 1.7.7 when this study was conducted) determines hydrogen bonds as follows: first, all atoms of the molecule are filtered into a set of donor and acceptor atoms using a set of pre-determined rules for each residue-atom-type. Then, all pairs of atoms (not limited to just donor-acceptor pairs) in that set are considered to be connected by a hydrogen bond, if they are at most 3.5, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$${\stackrel{\circ}{\text{A}}}$$\end{document} apart (or 4.0, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$${\stackrel{\circ}{\text{A}}}$$\end{document} , if the pair contains a sulfur atom). In contrast, ASU FIRST [11] uses geometric criteria and a Mayo-potential [51] to model of hydrogen bonds. Since this approach appears to be better suited for our requirements we implemented this interaction model directly within TRAMbio. This decision coupled with the SOA structure pattern provides high flexibility, as each interaction is isolated through its own parameterized service and it is possible to expand the molecular interaction model by introducing additional services.
Protein unfolding can be understood in terms of breaking weak interaction in response to increasing temperature. The matroid nature of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -sparse graphs ensures that the insertion order of edges is arbitrary. Thus, it suffices to sort non-covalent bonds from strongest to weakest bond and to record rigid components at each step of this insertion order. Protein unfolding, accordingly, can be simulated in a single run of the pebble game, considering the dissolution of rigid components in reverse insertion order [21].
As mentioned before, the current version of TRAMbio is a command-line-only tool and does not provide its own graphical visualization functions. Instead, it features a separate workflow for creating annotated, PyMol-compatible files. The application examples shown below have been generated in this manner. TRAMbio utilizes a consistent-coloring algorithm, similar to the one proposed in [52], to allow a visual tracking of rigid structure development over time (for trajectories) or during dilution (for individual states).
Applications
In this section we summarize TRAMbio’s runtime performance on general graphs as well as selected proteins, and explain the visualization of result on an exemplary dilution analysis.
For benchmarking on general graphs, randomized Laman graphs and random graphs following the classic Erdős–Rényi model with 2 distinct edge probabilities were generated, as well as a set of complete graphs, with varying node sizes. TRAMbio was run using tram-pebble mode. Results are summarized in Table 3.
For small graphs, runtimes are dominated by computational overhead such as IO-operations rather than the pebble game algorithm. For larger graphs, the overall runtime appears to scale close to linearly in the number of edges. While the pebble game itself has a runtime complexity of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$O(n^2)$$\end{document} , it is easy to observe that the pebble game can be played in O(n) on path graphs. For arbitrary graphs we therefore also gain a factor n on a path acting as a ”backbone“ in each graph component. The second factor of n derives from structures branching of this path. However, we generally expect there to be only a number \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m<<n$$\end{document} of such structures, leading to the observed behavior.Table 3. Overview of the runtime for tram-pebble on various graphs for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k=2$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\ell =3$$\end{document} Graph typeNodesEdgesSingle-coreMulti-coreReal timeCPU-TimeReal timeCPU-Time(mm:ss.ms)(mm:ss.ms)(mm:ss.ms)(mm:ss.ms) Laman101700:01.1600:00.8900:01.4500:00.9210019700:01.2200:00.9500:01.3100:01.041000199700:10.9200:10.6000:07.2600:30.14Random (0.3)1013.700:01.5100:00.9300:01.1700:00.931001485.900:01.8600:01.2400:01.4700:01.201000149,85001:48.5601:47.8300:56.3401:05.42Random (0.5)1021.500:01.2200:00.8100:01.3500:01.041002487.300:01.5700:01.2600:01.7100:01.401000249,75003:11.1303:10.3001:28.3001:32.64Complete104500:01.3100:00.9900:01.1600:00.93100495000:01.9600:01.6000:01.8200:01.611000499,50006:37.0106:35.6202:44.8402:56.68Calculations were run on a system with Intel® Xeon® Gold 6130 using either one (Single-Core) or up to 60 cores (Multi-Core). The exact number of cores used for parallelization depended on the respective graph decomposition using a Greedy-type algorithm. The parenthesized value for random graphs denotes the edge probability. Since the Laman and Random graphs are not uniquely determined, the reported times are averages over runs of 10 different graphs each. For these graph types, we report the average number of edges over a sample of 10 graphs
Although TRAMbio already features a variant of the pebble game which uses parallelization, all graphs in Table 3 were analyzed once using single-core processing for an easier comparison of runtimes. Since the order of inserted edges has no influence on the detected components, it is theoretically possible to separate a graph into disjointed sub-graphs and a set of joining edges, run pebble games (in parallel) on these sub-graphs, combine their resulting pebbled graphs, and finally play the pebble game for the joining edges. Due to the already near-linear performance of the pebble game [16, 17], the computational overhead related to splitting and re-combining the respective graphs appears to be prohibitive on smaller graphs, resulting in almost identical real-time performance. However, for a sufficiently large number of edges, multiprocessing can significantly decrease computation times. Use cases and size thresholds for efficient multiprocessing for general case graphs are yet to be determined. As of date, these features are still considered experimental.
Benchmarks on real datasets were performed on publicly available protein data, utilizing two different modes of TRAMbio. Rigidity analysis was performed for six different protein PDBs with tram-pdb and trajectory-analysis with tram-xtc on a single protein-interaction in two different time resolutions. Runtimes are summarized in Table 4. PDB data was downloaded from the Protein Data Bank prior7 to execution and missing hydrogen atoms were added using the software Reduce [53]. Benchmarks do not include times for both. Parallelization was permitted for trajectory-analysis, as frames can be computed largely independent of each other. The trajectory data of the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\beta _2$$\end{document} -adrenergic receptor [54] was analyzed once with a stride of 50 (only using every 50-th frame) and once on the entire trajectory. All runs were performed using the default run options, which mainly includes the identification of all possible non-covalent interactions, as described in Sect. 3.1.Table 4. Overview of the runtime for the analysis of single-state PDB data (upper section) and trajectory data (lower section)Protein name# AtomsMax RAMReal timeCPU-Time(in GB)(HH:mm:ss.ms)(HH:mm:ss.ms)Trp-Cage Miniprotein Construct TC5b (1L2Y)3045.800:00:01.4500:00:01.21Titin module A71 from Human Cardiac muscle (1BPV)16035.800:00:02.8600:00:02.60Bovine rhodopsin (1L9H) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$^{*}$$\end{document} 60396.9 (5.7)00:00:13.2600:00:10.02Bovine bile-salt activated lipase complexed with taurocholate (1AQL) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$^{*}$$\end{document} 16,79815.6 (5.9)00:01:00.0900:00:56.55Native human TSH bound to human Thyrotropin receptor in complex with miniGs399 (7T9I)23,61325.3 (6.1)00:04:32.3900:04:30.92Recombinant thiocyanate hydrolase (2ZZD) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$^{*}$$\end{document} 34,77648.2 (7.2)00:09:18.8000:09:14.18Copper amine oxidase from hansenula polymorpha (1A2V) \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$^{*}$$\end{document} 63,926149.5 (9.8)00:55:33.3500:55:23.30 \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\beta 2$$\end{document} -adrenergic receptor without G protein [54]4574·61 frames \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$6.8 + 3^{*}$$\end{document} 00:01:28.9400:13:03.684574·3001 frames \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$7.2 + 5^{*}$$\end{document} 00:23:34.9703:56:54.99 \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\beta 2$$\end{document} -adrenergic receptor with coupled GDP-bound Gs protein [54]16,646·63 frames \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$15.4 + 6^{*}$$\end{document} 00:02:50.2700:38:07.0316,646·3132 frames \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$15.4 + 10^{*}$$\end{document} 01:32:31.0019:30:08.95Calculations were performed on a system with Inte®l Xeon® Gold 6130 using up to 64 CPUs with default CLI options. For the proteins marked with an asterisk ( \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$^*$$\end{document} ), no hydrogen atoms were present in the PDB records and their positions were approximated via Reduce [53]. The max RAM column reports the maximum amount of RAM allocated at once during the computation (rounded up). Parenthesized values additionally report the maximum amount of allocated RAM after the initial step of loading input data. Since trajectories are calculated via multiprocessing, the reported RAM value is only for the master process with the approximated summed value for simultaneous sub-processes added on top. The latter one is marked with an asterisk ( \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$^*$$\end{document} ). The available RAM for each run was limited to 200 GB
Compared to general graphs, on the same number of atoms/nodes, runtimes are on average longer by a significant factor. Concurrently, runtimes delineate more strongly from linear complexity, showing a higher influence of the theoretical quadratic term of the pebble game. We presume both effects are due to the extension of the classic pebble game algorithm for tram-pdb by dilution analysis. Dilution analysis constitutes an integral step for protein analysis, as will become apparent shortly, offering valuable data for post-processing. It is therefore deeply integrated into the algorithm, creating a snapshot for the interpretation of the state of the pebble game each time the components change from an inserted hydrogen bond (or other quantified non-covalent interactions). Runtime costs for this additional step largely exceeding those of the original pebble game. In contrast, TRAMbio mode tram-xtc for trajectory analysis does not include dilution analysis, resulting in running times of around 22-36 s for single frames with 16,646 atoms (cf. Table 4) which is considerably faster than a dilution analysis on a comparatively size PDB.
Initially, it was considered to treat the dilution analysis as an optional feature and by default to run the rigidity analysis without dilution. However, this led to significant problems in the user experience of researchers. In a typical setup, the user has to provide an energy threshold, up to which bond strength hydrogen bonds should be considered, thereby defining the set of relevant bonds, heavily influencing rigid components. Given the energy function [11] used to model the strength of hydrogen bonds in TRAMbio, however, it is difficult to derive exact local bond energies (or a corresponding system temperature for that matter). Accordingly, the set of actually inserted hydrogen bonds may differ from user expectation. Adaptions to the threshold are trivial to determine if dilution data is available, but require a complete re-run of the pebble game otherwise.
Additional benchmarking runs were attempted for proteins with more than 80,000 atoms. However, the initial step of loading the PDB data via BioPandas [49] required an exponential amount of RAM (more than 200 GB), far exceeding the limits of normal research computers and even compute servers. This highlights an important limitation to our approach. Notably for trajectory analysis, the frame-based parallelization of both the detection of non-covalent interactions and the stability analysis with the pebble game allowed for an around 13 times faster overall calculation.
As mentioned earlier, TRAMbio currently relies on the 3D molecular visualizer PyMol [50] for external visualization of protein analysis results. As an example, the visualization of four separate dilution steps of the de-novo protein Trp-Cage Miniprotein Construct TC5b [55] can be seen in Fig. 6.Fig. 6. Result visualization for the dilution analysis of Trp-Cage Miniprotein Construct TC5b (PDB-code 1L2Y) at four selected energy thresholds for included hydrogen bonds ( \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$E_{HB}$$\end{document} ). Identical colored (connected) atoms indicate membership towards the same rigid region. Images were generated using PyMol [50]
Trivial components, i.e., every atom with only its direct covalent neighborhood, are not visualized in order to better highlight the remaining, more complex components. Without any hydrogen bonds, the protein is decomposed into a number of small rigid units (cf. Fig. 6a). Introducing more hydrogen bonds increases the overall rigidity until the majority of the protein forms a single rigid body (cf. Fig. 6d). The remaining non-trivial rigid structures mainly correspond to peripheral peptide units.
Our main focus was on the utilization of the pebble game for protein analysis. However, the application of the pebble game and in turn of TRAMbio is not limited to just proteins and the analysis workflows can be applied onto various different molecules, most notably DNA and RNA. To ensure this compatibility, the validation experiments run by the automatic test pipeline8 include the detection of characteristic hydrogen bonds between DNA or RNA nucleotides as well as the detection of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\pi $$\end{document} -stacking interactions in RNA structures. An exemplary application of rigidity analysis onto DNA, specifically a 16-base-pair B-DNA (PDB-code 3BSE) can be seen in Fig. 8.
To demonstrate the applicability of rigidity-based community analysis to large and complex proteins we use \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\beta $$\end{document} 2-adrenergic receptor ( \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\beta $$\end{document} 2AR) as an example, see Fig. 9. The multidomain G protein-coupled receptor \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\beta $$\end{document} 2AR contains both rigid transmembrane regions and flexible loops. Figure 9 illustrates the evolution of rigid amino acid communities over six consecutive frames of a MD simulation, sampled at 1 ns intervals. Each community is represented by a distinct color, allowing dynamic changes in the underlying rigidity pattern to be visualized directly. The results reveal clear temporal reorganization of communities, with merging and splitting events occurring across transmembrane helices and intracellular loops. Such changes reflect local adaptations in structural rigidity and flexibility that are not easily captured by conventional secondary-structure or root-mean-square deviation (RMSD) analyses. Importantly, rigidity-based community analysis is able to highlight the interplay between relatively stable transmembrane domains and more disordered regions, thereby providing a domain-level perspective on structural stability while also capturing transient reconfigurations. This example demonstrates how rigidity-based community analysis can extend beyond small test proteins to large, multidomain membrane receptors. By tracking changes in community organization over time, the approach provides mechanistic insights into conformational transitions and dynamic coupling between structural regions, which are central to receptor activation and signal transduction.
Concluding remarks
TRAMbio is a (pure-)Python package implementing the pebble game for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(k,\ell )$$\end{document} -sparse graphs and wrapper functions geared towards the straight forward analysis of general graphs and protein rigidity. Due to the lack of other accessible software, TRAMbio’s open-source framework bridges the gap in currently available rigidity software surrounding the pebble game. Our tool will therefore aid researchers in a wide spectrum of applications relating to protein stability and motion, such as characterizing motion mechanisms in proteins [56, 57] or simulated unfolding [11]. Additionally, as demonstrated in [38], graph rigidity results can be used for pre-processing in molecular dynamics. Since these faster heuristics can identify fully rigid atom communities as well as motion potential between them, rigidity results allow for a more compact protein modeling, in turn reducing the cost of more complex, geometric-based protein simulations. Our benchmarks highlight relatively low computational costs, even for very large proteins and time series. Already implemented parallelization can be used to further speed up computations. Deeper parallelization strategies may be implemented in a future update, but require further research. Although dilution analysis slows down computation times for proteins considerably, they are essential to determine correct energy thresholds, thereby avoiding even more costly reruns.
Future developments of TRAMbio will focus in particular on a custom graphical user-interface (GUI) for the protein analysis with a directly integrated molecular visualizer for rigidity results. This would simplify various use cases, such as the fine-tuning of parameters for dilution experiments. Another task in focus is additional support for analyzing allosteric effects [9] and the detection of symmetries in molecular graphs, which may lead to increased flexibility [58]. This is of interest both for small molecules and for protein complexes. The integration of a programming interface for defining custom interactions and energy functions would allow researchers to better fine-tune the mechanical modeling to the specific needs of their research task.
Editorial Policies for:
Springer journals and proceedings: https://www.springer.com/gp/editorial-policies
Nature Portfolio journals: https://www.nature.com/nature-research/editorial-policies
Scientific Reports: https://www.nature.com/srep/journal-policies/editorial-policies
BMC journals: https://www.biomedcentral.com/getpublished/editorial-policies
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1Afrasiabi F, Dehghanpoor R, Haspel N. Integrating rigidity analysis into the exploration of protein conformational pathways using RRT and MC. Molecules 26(8), 232910.3390/molecules 26082329 PMC 807357433923805 · doi ↗ · pubmed ↗
- 2Lee A, Streinu I. Pebble game algorithms and -sparse graphs. In: Felsner, S. (ed.) 2005 European Conference on Combinatorics, Graph Theory and Applications (Euro Comb ’05), pp. 181–186. Discrete Mathematics and Theoretical Computer Science, Berlin, Germany 2005. 10.46298/dmtcs.3394
- 3Tanigawa S-i. Combinatorial Rigidity Theory: from Basic to Advanced 2011. https://www.kurims.kyoto-u.ac.jp/coss/coss 2011/tanigawa-4.pdf
- 4Collaborative Computational Project for NMR (CPPN): NEF Atom Names 2024. https://www.ccpn.ac.uk/manual/v 3/NEF Atom Names.html Accessed 2024-06-20
- 5Wriggers W, Schulten K. Protein domain movements: detection of rigid domains and visualization of hinges in comparisons of atomic coordinates. Proteins Struct. Funct. Bioinform. 1997;29(1):1–14. 10.1002/(SICI)1097-0134(199709)29:1%3C 1::AID-PROT 1%3E 3.0.CO;2-J 9294863 · pubmed ↗
- 6Schulze B, Sljoka A, Whiteley W. How does symmetry impact the flexibility of proteins? Philosophical Transactions of the Royal Society A 372 2014. 10.1098/rsta.2012.004110.1098/rsta.2012.0041 PMC 387130124379431 · doi ↗ · pubmed ↗
