Full text
33,398 characters
· extracted from
preprint-html
· click to expand
PyMOL plugin for Protein Circuit Topology | bioRxiv /* */ /* */ <!-- <!-- /*! * yepnope1.5.4 * (c) WTFPL, GPLv2 */ (function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0];var j=d.createElement(s);var dl=l!='dataLayer'?'&l='+l:'';j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;j.type='text/javascript';j.async=true;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-M677548'); Skip to main content Home About Submit ALERTS / RSS Search for this keyword Advanced Search New Results PyMOL plugin for Protein Circuit Topology Matīss Dimiņš , Alexander Bazba , Ádám Mogyorósi , Ella Kennon , Tomás Díaz Fiol , Leïla Aïkili Hagen , Vahid Sheikhassani , Vasily Akulov , View ORCID Profile Alireza Mashaghi doi: https://doi.org/10.1101/2025.10.21.683762 Matīss Dimiņš 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands 2 LUdev, Leiden University Faculty of Science , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site Alexander Bazba 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands 2 LUdev, Leiden University Faculty of Science , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site Ádám Mogyorósi 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands 2 LUdev, Leiden University Faculty of Science , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site Ella Kennon 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands 2 LUdev, Leiden University Faculty of Science , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site Tomás Díaz Fiol 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands 2 LUdev, Leiden University Faculty of Science , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site Leïla Aïkili Hagen 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands 2 LUdev, Leiden University Faculty of Science , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site Vahid Sheikhassani 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site Vasily Akulov 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site Alireza Mashaghi 1 Leiden Academic Centre for Drug Research, Faculty of Science, Leiden University , 2333 CC Leiden, The Netherlands Find this author on Google Scholar Find this author on PubMed Search for this author on this site ORCID record for Alireza Mashaghi For correspondence: a.mashaghi.tabari{at}lacdr.leidenuniv.nl Abstract Full Text Info/History Metrics Preview PDF Abstract Circuit Topology (CT) is a fundamental property of folded polymer chains and provides a unique and powerful topological framework for protein analysis, with applications in functional annotation, disease marker identification, protein engineering, and drug development. An open-source Python-based implementation of CT, called ProteinCT, provides access to circuit topology analysis through a scripting environment. Here, we present the ProteinCT tool as a plugin for the molecular visualization platform PyMOL, packaged with a graphical user interface (GUI), easy automatic installation, and novel features developed through strong integration with PyMOL’s application programming interface (API). In addition to ProteinCT tools, the plugin includes CT tools for studying the dynamics of disordered proteins. Analysis of a representative protein trajectory confirms that the original functionality of ProteinCT is retained, the GUI is functional, easy to use, and visually clear, and the additional features are seamlessly integrated with PyMOL, making protein circuit topology widely accessible to researchers in structural biology and related fields. Introduction Nearly a decade ago, Alireza Mashaghi introduced a mathematical and conceptual framework to formally describe the topology of protein molecules ( Mashaghi, A., et al., 2014 ). This framework, known as Circuit Topology (CT), formed the basis of a general classification and analysis approach that can be used to analyse and study the structures of folded linear chains including structured proteins and intrinsically disordered proteins and beyond ( Golovnev, A. and Mashaghi, A., 2020 ; Heidari, M., Schiessel, H., and Mashaghi, A., 2020 ). Expanding on the initial Circuit Topology framework, Duane Moes and colleagues introduced the ProteinCT method – the first code implementation of Circuit Topology specific to the analysis of protein molecules ( Duane Moes et al., 2022 ). The authors made their source code freely available on GitHub, linked in the paper. This code is implemented in Python and is accessible via a Jupyter Notebook. However, the tool requires cloning the GitHub repository and performing several manual steps to be able to run it on a local system, including installing dependencies. Moreover, ProteinCT requires the user to be familiar with Python, GitHub, Anaconda, and the source code. While the tool targets researchers working with proteins, many may lack the technical background needed to operate it, limiting its accessibility. Therefore, a more user-friendly and accessible implementation is essential to broaden its adoption. We introduce a new method that details how to use our Python-based plugin on the molecular visualization platform PyMOL. This plugin contains a clear Graphical User Interface (GUI) that uses the ProteinCT framework. Hence, we made the original method code significantly more accessible and easier to use. Through integration with PyMOL’s API, we enable new means of analyzing proteins within the ProteinCT framework. Furthermore, in the plugin we also include the CT folding score proposed by Akulov et al., which enable compaction analysis of disordered protein chains ( Akulov, V., et al., 2025 ). As such, this report introduces our plugin as a novel method for performing protein Circuit Topology. This article describes the steps from installation to various plotting, exporting, visualization, and analysis features that the plugin contains, and how it is more accessible than the previous method. The new method is validated on representative structures of the disordered AF1c fragment of the glucocorticoid receptor ( Akulov, V., et al., 2025 ). Method details Plugin Installation The installation of the plugin aims to be as streamlined as possible, such that minimal knowledge is required to install it. The current implementation has been tested and verified as working on MacOS version 14.0+ for both the Intel and M1 chips, Windows 10/11 and Ubuntu 24.04 Linux. The plugin begins initialization after its .zip file has been imported using the PyMOL plugin installation window. When PyMOL is installed, whether through an application file or using Anaconda, a miniature version of Anaconda (called ‘Miniconda’) is installed along with it such that the PyMOL terminal line can process Anaconda commands. The plugin uses this to automatically install the dependencies required when possible. When initializing, the plugin first checks what packages the user has installed on their PyMOL Anaconda environment. If the required packages are installed, the plugin will initialize within seconds. If there are missing dependencies, the plugin then checks to see if PyMOL has been installed on the User or System (requires Admin permissions) environment path, as this determines whether the environment is writable or not. If PyMOL is on the system path, for both Windows and Ubuntu Linux, there is currently no way to automate the installation as the environment is not writable, and the automatic installation will fail. On MacOS, if the user is also an admin, then the environment will be writable, and thus automatic installation should be successful. In the case where PyMOL is on the user path, automated installation will commence by installing the missing packages/dependencies in the plugin .zip file’s requirement YAML file using Anaconda commands in the PyMOL terminal. If that fails, the plugin then checks if Anaconda is installed on the laptop and where it has been installed. If Anaconda is on the user path, then it can be used directly with the requirements file. On the system path, Anaconda can still be used for installation as it is possible to overwrite admin permission using the subprocess module. The plugin will use the subprocess module on the device’s terminal to install the dependencies with Anaconda directly into the PyMOL environment. Once the automated installation has completed, which can take anywhere from 2 to 6 minutes depending on the device, the user will be notified, and the plugin will be ready for use. In any of the cases where installation fails, the plugin will return instructions in the PyMOL terminal on how to run commands with Anaconda so that the user can manually install the dependencies themselves. Once the dependencies have been manually installed, the plugin will initialize without issue. Additionally, when installation fails, the terminal will contain the errors and, if known, return the reason why installation failed (such as PyMOL being on the system path). All these steps aim to make installation as easy as possible for a user regardless of prior knowledge to ensure that this method is more accessible than the previous Github implementation. Steps for installation Download the plugin as a zip file from the Github repository. Open PyMOL and navigate to the Plugin dropdown menu, as seen in Fig. 4 . Select Plugin Manager, again seen in Fig. 4 . Go to the Install New Plugin tab, seen in Fig. 3 . Using the local file installation, upload the plugin .zip file. PyMOL then prompts the user about the installation location; it is recommended to use the default location. Plugin installation will then begin. If errors occur in the automated installation process, further instructions will appear in PyMOL’s terminal. The first installation will take a few minutes to complete; it is best to avoid clicking on PyMOL during this process as it can interrupt the installation process. After the first installation, the plugin will initialize much faster upon launching PyMOL Download figure Open in new tab Fig. 1. Circuit Topology plugin program workflow. The program is imported into PyMOL using the built-in plugin manager. Users can choose between three main functionalities: Local Circuit Topology, Single-File Analysis, or Multi-File Analysis. The input data can be loaded from PyMOL directly or through the Circuit Topology graphical interface by choosing a PDB/CIF file. After selecting the file, the plugin offers output options such as “Matrix Plot” and “Circuit Plot” visualization, and data export functionalities such as saving the “Contact Map” and “Relations Matrix” in .csv format. Download figure Open in new tab Fig. 2. Structure of files included in Circuit Topology Plugin. Boxes in blue are folders inside of the Circuit Topology Plugin source code, and boxes in yellow represent the python files used for backend calculations, importing, exporting and plotting. The user is not required to change this configuration. Download figure Open in new tab Fig. 3. Users can open the plugin manager within PyMOL and install the Circuit Topology plugin. Download figure Open in new tab Fig. 4. Users can see and open the Protein Circuit Topology Plugin from the presented interface. Method validation In the subsequent protocols, the method is validated using the protein structures shown in Fig. 10 . Download figure Open in new tab Fig. 5. Choose a file from your computer (A). Clear the currently selected file (B). Select a loaded PyMOL object from the dropdown list (C). Change the cutoff distance in angstroms (D). Change the number of contacts (E). Select the number of excluded neighbours (F). Select the type of contact from Series (S), Parallel (P), and Cross (X) (G). Select the chain (H). Change the residue ID (I). Check box to run local CT (J). Check box to plot local CT (K). Check box to export contact map as csv file (L). Check box to export relations matrix as csv file (M). Press to remove non-polymer atoms before analysis (N). Run the local analysis by pressing here (O). Download figure Open in new tab Fig. 6. The user selects the directory in which the CSV files will be saved during export. Label A indicates the corresponding interface element. Download figure Open in new tab Fig. 7. Choose a file from your computer (A). Clear the currently selected file (B). Select a loaded PyMOL object from the dropdown list (C). Change the cutoff distance in angstroms (D). Change the number of contacts (E). Select the number of excluded neighbours (F). Check to plot the matrix plot of contacts (G). Check to plot the circuit representation (H). Colour the types of contacts: Series (S), Parallel (P), and Cross (X) (I). Check to export the contact map as a .csv file (J). Check to export the relations matrix as a .csv file (K). Check to enable the folding score calculator (L). Press to remove non-polymer atoms before analysis (M). Press to run the single-file analysis (N). When an exporting option is selected, you will have the same option as in Fig. 6 for selecting the output directory. Download figure Open in new tab Fig. 8. Choose a file from you file explorer (A). Clear chosen files (B). Select one of the opened files (C). Change the value of the cutoff distance (D). Change the number of contacts (E). Select the number of excluded neighbours (F). Select the type of contact from cross, series and parallel (G). Select the chain (H). Change the residue ID (I). Check box to run local CT (J). Check box to plot local CT (K). Check box to export contact map as csv file (L). Check box to export relations matrix as csv file (M). Remove non-polymer atoms from PyMOL (N). Run the local analysis by pressing here (O). Download figure Open in new tab Fig. 9. Contact map for 27_3_501_compact from the local CT tab. Download figure Open in new tab Fig. 10. Relations matrix for 27_3_501_compact from the local CT tab. Local circuit topology protocol In the Local Circuit Topology tab, you can analyse topological relationships within a specific region of a selected protein structure. Begin by uploading a .pdb or .cif file from your input directory. Once uploaded, the structure will be loaded into PyMOL for visualisation and local analysis. This section of the GUI allows you to adjust key contact map parameters, including the cutoff distance, the minimum number of contacts, and the number of excluded neighbouring residues, as illustrated in Fig. 3 . You can also choose a specific contact type (Series (S), Parallel (P), Inverse Parallel (-P) or Cross (X)) to focus the analysis on one topological class. After selecting a specific residue ID and contact type, choosing to plot Local Circuit Topology will create plots like shown in Fig. 11 and Fig. 12 . Download figure Open in new tab Fig. 11. In the Plugin Local Circuit Topology tab, when the checkbox for ‘Plot local CT’ is selected and the Circuit Topology analysis is run, the plugin outputs three separate GUI windows. Each window displays a graph-style circuit topology plot for residues involved in local contacts. Since the contact type ‘Parallel (P)’ is selected and chain ‘A’ is the only available chain, the plots are specific to parallel contacts within chain A. Because ‘Plot local CT’ is the only visualization option selected, the plugin generates only these three GUI windows. Local circuit topology plots for Topologically Compact AF1c pSer203 are shown as follows: (A) Circuit plot with residue contacts that include residue #1 highlighted in red. (B) Circuit plot highlighting blue curves that are in a series relation with at least one red curve from (A). (C) Combined plot showing both the red and blue curves from (A) and (B), allowing clear visual identification of local topological relationships. Download figure Open in new tab Fig. 12. In the Plugin Local Circuit Topology tab, when the ‘Plot local CT’ checkbox is selected and the analysis is run, the plugin opens three separate GUI windows, each showing a graph-style circuit topology plot for local contacts. With contact type ‘Cross’ selected and chain ‘A’ as the only available chain, the plots focus on series contacts within chain A. Shown for Topologically Compact AF1c pSer203 : (A) contacts starting or ending at residue #1 (red curves), (B) residues in series with those in (A) (blue curves), and (C) combined red and blue curves from (A) and (B). Download figure Open in new tab Fig. 13. In the Plugin Single-File Analysis tab, when the ‘Enable Folding Score’ checkbox is selected and the Circuit Topology analysis is executed, the plugin displays a separate GUI window showing the calculated CT Folding Score value. To narrow the analysis to a specific region of the protein, you can select a chain and input a residue ID around which the local circuit topology will be computed. By enabling the Run Local CT checkbox, the local topological analysis is performed based on the selected parameters and standard output is returned in PyMOL’s terminal. If desired, you can also display a visualisation of the local circuit topology within PyMOL by checking the corresponding plotting option. Additionally, Fig. 9 and 10 show how results can be exported by selecting the options to save the local contact map or relations matrix as .csv files. An output directory must be selected to store any exported files. Before running the analysis, non-polymer atoms can be removed with a press of a button. This is recommended in most cases as non-polymer atoms can interfere with the results, producing errors, no output, or interfering with the analysis. The tool is intended to work with protein (polymer) atoms exclusively. Once all settings are configured, you can initiate the local analysis by pressing the designated run button. Single-file Analysis protocol Upon accessing the Single-File Analysis tab, follow these steps to analyse a structure: Select an input file by uploading a .pdb or .cif structure file from your input directory or loading one directly through PyMOL. The file will be imported into PyMOL for visualization and analysis. Select the desired object from the dropdown menu within the single-file analysis tab. Adjust contact map parameters as needed, including distance threshold, minimum number of contacts, and number of neighbouring residues. Enable visualizations by selecting the checkboxes for Series, Parallel, or Cross contacts. These options directly color the PyMOL object based on the chosen contact type ( Fig.15 , Fig.16 , Fig.17 )In this example one can easily identify residues and contacts, that are essential for maintaining the structure. Generate plots by activating the Circuit Plot or Matrix Plot options, which display graphical representations of the contact map and topological linkages ( Fig.14 ). Export results by selecting the export options to save the contact map or relations matrix as .csv files ( Fig.18 , Fig.19 ). An output directory will automatically appear for storing the generated data. Calculate the Folding Score by enabling the corresponding checkbox. The plugin computes the score for each chain within the selected object and presents the results in a separate GUI window ( Fig.13 ). Download figure Open in new tab Fig. 14. In the Single-File Analysis tab, when both ‘Matrix Plot’ and ‘Circuit Plot’ checkboxes are selected and the Circuit Topology analysis is executed, the plugin generates two GUI windows: one presenting the color-coded contact matrix plot and the other displaying the circuit topology line graph. As these are the only visualization options selected, the plugin outputs only these two windows. Download figure Open in new tab Fig. 15. In the Single-File Analysis tab, when the ‘Cross (X)’ contact type is selected for visualization, the plugin updates the PyMOL display by color-coding residues based on the number of X (cross) contacts per residue in a single state. Residues with fewer X contacts are coloured magenta, while those with the highest number of X contacts are coloured green. In this example, the per-residue X contacts range from 0 (magenta) to 59 (green), visually indicating the degree of entanglement across the molecular structure. Download figure Open in new tab Fig. 16. In the Plugin Single-File Analysis tab, when the ‘Parallel (P)’ contact type is selected for visualization, the plugin updates the PyMOL display by color-coding residues based on the number of P (parallel) contacts per residue in a single state. Residues with fewer P contacts are coloured blue, while those with the highest number of P contacts are coloured red. In this example, the per-residue P contacts range from 0 (blue) to 157 (red). Download figure Open in new tab Fig. 17. In the Plugin Single-File Analysis tab, when the ‘Series (S)’ contact type is selected for visualization, the plugin updates the PyMOL display by color-coding residues based on the number of S (series) contacts per residue in a single state. Residues with fewer S contacts are coloured blue, while those with the highest number of S contacts are coloured red. In this example, the per-residue S contacts range from 0 (cyan) to 66 (yellow). Download figure Open in new tab Fig. 18. Relations matrix from Plugin’s Single-File analysis tab Download figure Open in new tab Fig. 19. Contact map from Plugin’s Single-File analysis tab. Download figure Open in new tab Fig. 20. In the Multi-File Analysis tab, selecting ‘Statistics Plot’ (letter N on Fig. 7 ) and running the analysis generates a separate GUI window. The window is showing a line graph of Distance from Diagonal vs. Fraction Entangled, and a pie chart of the proportions of Parallel, Series, and Cross contacts. Download figure Open in new tab Fig. 21. In the Plugin Multi-File Analysis tab, when the checkbox for ‘P, S, X list (.csv)’ is selected (letter Q on Fig. 7 ) and the Circuit Topology analysis is run, the plugin generates a CSV file containing the list of P, S, and X contact data over time. This CSV file is saved to the specified output directory. Download figure Open in new tab Fig. 22. In the Plugin Multi-File Analysis tab, when the checkbox for ‘P, S, X contacts plotted over time’ is selected and the Circuit Topology analysis is run, the plugin outputs a separate GUI window. This window displays the 3-colored line graph-style contact plot. Since this is the only visualization tool selected, the plugin generates only this separate GUI window. Multiple-file analysis protocol Upon opening the multiple-file analysis tab you may select your input directory to open the folder containing the files you wish to use. You may also, instead, choose a .pdb file and its corresponding .xtc file, and if preferred they may be converted into separate .pdb files. In the following box of the GUI you may adjust the distance threshold for two residues to be considered in contact, the minimum number of contacts that are required for defining a valid connection and, the number of neighbouring residues that should be ignored. If you wish to analyse single frames of the trajectory, check the box ‘Enable per-frame trajectory analysis’, or letter H on Fig. 7 , and then select which frame you would like to work with. New filter options are available on this tab. First is length filtering, which can be used by checking box J on Fig. 7 . It is used to filter contacts by sequence distance. The next filter is the energy filter, which allows to keep only attractive or repulsive interactions. Beware, these filters do not support multi-chain proteins and have no effect on per-frame analysis. The following figures will show new options for plots and exports that were not present in previous tabs. Limitations This section outlines potential limitations users may encounter when using the Circuit Topology PyMOL plugin and offers corresponding solutions or suggestions for future improvements. Firstly, not all PDB files are supported by this Plugin. If the file includes non-polymer atoms such as water molecules and ions, the analysis will fail because these atoms will be considered as part of the protein. To resolve with this issue, the plugin offers an option of removing non-biopolymer atoms before running the analysis. This prepares the file in a way that works with Circuit Topology. When working with ZIP files, this issue can also come up. In this case, the visualization shows plus signs (“+”) near the polymer. These usually represent atoms or molecules that are not part of the protein. These non-polymer molecules can interfere with the Circuit Topology analysis. The plugin is designed to work only with protein chains, so it is important to remove extra atoms before running the analysis. Moreover, very small PDB files can’t be used. For example, if a file has only one atom or doesn’t include single topological arrangement (at least two intra-chain contact pairs), the analysis won’t run properly as expected. The plugin needs more data to calculate anything meaningful. Finally, length and energy filtering do not currently support multi-chain proteins, as the underlying filtering code was originally designed for single-chain structures. These limitations should be considered when preparing input files or analyzing complex protein structures. Finally, the length and energy filtering features only work with single protein inputs, and not multi chain protein complexes. This is because the core code behind the filtering was built for single chains only. Resource Availability Source code and plugin is freely available at: https://github.com/circuittopology/Protein_Circuit_Topology_PyMOL_Plugin Declaration of interests The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper. References ↵ Moes , D. , Van Wijk , R. J. , Noort , J. , & Mashaghi , A. ( 2022 ). ProteinCT: An implementation of the protein circuit topology framework . MethodsX , 9 , 101861 . doi: 10.1016/j.mex.2022.101861 OpenUrl CrossRef PubMed ↵ Mashaghi , A. , Van Wijk , R. J. , & Tans , S. J. ( 2014 ). Circuit topology of proteins and nucleic acids . Structure , 22 ( 9 ), 1227 – 1237 . doi: 10.1016/j.str.2014.06.015 OpenUrl CrossRef Scalvini , B. , Sheikhhassani , V. , & Mashaghi , A. ( 2021 ). Topological principles of protein folding . Physical Chemistry Chemical Physics , 23 ( 37 ), 21316 – 21328 . doi: 10.1039/D1CP03390E OpenUrl CrossRef PubMed ↵ Akulov , V. , Jiménez Panizo , A. , Estébanez-Perpiñá , E. , Van Noort , J. , & Mashaghi , A. ( 2025 ). Phosphorylation regulated conformational diversity and topological dynamics of an intrinsically disordered nuclear receptor . The Journal of Physical Chemistry B , 129 ( 30 ), 7719 – 7730 . doi: 10.1021/acs.jpcb.5c03257 OpenUrl CrossRef PubMed Mashaghi , A. ( 2021 ). Circuit topology of folded chains . Notices of the American Mathematical Society , 68 ( 3 ), 420 – 423 . OpenUrl ↵ Golovnev , A. , & Mashaghi , A. ( 2020 ). Generalized circuit topology of folded linear chains . iScience , 23 ( 9 ), 101492 . doi: 10.1016/j.isci.2020.101492 OpenUrl CrossRef PubMed ↵ Heidari , M. , Schiessel , H. , & Mashaghi , A. ( 2020 ). Circuit topology analysis of polymer folding reactions . ACS Central Science , 6 ( 6 ), 839 – 847 . doi: 10.1021/acscentsci.0c00360 OpenUrl CrossRef PubMed View the discussion thread. Back to top Previous Next Posted October 22, 2025. Download PDF Email Thank you for your interest in spreading the word about bioRxiv. NOTE: Your email address is requested solely to identify you as the sender of this article. Your Email * Your Name * Send To * Enter multiple addresses on separate lines or separate them with commas. You are going to email the following PyMOL plugin for Protein Circuit Topology Message Subject (Your Name) has forwarded a page to you from bioRxiv Message Body (Your Name) thought you would like to see this page from the bioRxiv website. Your Personal Message CAPTCHA This question is for testing whether or not you are a human visitor and to prevent automated spam submissions. Share PyMOL plugin for Protein Circuit Topology Matīss Dimiņš , Alexander Bazba , Ádám Mogyorósi , Ella Kennon , Tomás Díaz Fiol , Leïla Aïkili Hagen , Vahid Sheikhassani , Vasily Akulov , Alireza Mashaghi bioRxiv 2025.10.21.683762; doi: https://doi.org/10.1101/2025.10.21.683762 Share This Article: Copy Citation Tools PyMOL plugin for Protein Circuit Topology Matīss Dimiņš , Alexander Bazba , Ádám Mogyorósi , Ella Kennon , Tomás Díaz Fiol , Leïla Aïkili Hagen , Vahid Sheikhassani , Vasily Akulov , Alireza Mashaghi bioRxiv 2025.10.21.683762; doi: https://doi.org/10.1101/2025.10.21.683762 Citation Manager Formats BibTeX Bookends EasyBib EndNote (tagged) EndNote 8 (xml) Medlars Mendeley Papers RefWorks Tagged Ref Manager RIS Zotero Tweet Widget Facebook Like Google Plus One Subject Area Bioinformatics Subject Areas All Articles Animal Behavior and Cognition (7633) Biochemistry (17680) Bioengineering (13889) Bioinformatics (41927) Biophysics (21445) Cancer Biology (18585) Cell Biology (25491) Clinical Trials (138) Developmental Biology (13373) Ecology (19897) Epidemiology (2067) Evolutionary Biology (24308) Genetics (15606) Genomics (22494) Immunology (17736) Microbiology (40385) Molecular Biology (17175) Neuroscience (88583) Paleontology (666) Pathology (2830) Pharmacology and Toxicology (4822) Physiology (7641) Plant Biology (15149) Scientific Communication and Education (2045) Synthetic Biology (4293) Systems Biology (9822) Zoology (2271)
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.