samapp2024.jl

Code for the SAM-I riboswitch paper

https://github.com/cossio/samapp2024.jl

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: biorxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords from Contributors

mesh interactive
Last synced: 10 months ago · JSON representation ·

Repository

Code for the SAM-I riboswitch paper

Basic Info
  • Host: GitHub
  • Owner: cossio
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 22.7 MB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created about 2 years ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

This repository hosts the source code for the paper:

Designing Molecular RNA Switches with Restricted Boltzmann Machines

by Jorge Fernandez-de-Cossio-Diaz, Pierre Hardouin, Francois-Xavier Lyonnet du Moutier, Andrea Di Gioacchino, Bertrand Marchand, Yann Ponty, Bruno Sargueil, Rémi Monasson, Simona Cocco

bioRxiv preprint: https://www.biorxiv.org/content/10.1101/2023.05.10.540155v2.abstract

If you use this code, please cite this paper (or you can use the included CITATION.bib).

Setup

The code is organized as a Julia package. If you haven't setup Julia on your computer, you can install it following the simple instructions from the official website. We have tested our package on the latest Julia version at the time of writing (v1.10.4). It should work on future non-breaking versions (v1.x.y) of Julia as well.

After having installed Julia, clone this repository locally using git, on a local directory, by running the following command from the terminal:

bash git clone https://github.com/cossio/SamApp2024.jl.git

Then, navigate to this directory in your terminal, start Julia (by running julia in the terminal), and then activate the included Project.toml by running the command:

julia julia> import Pkg julia> Pkg.activate(pwd()) # activate the project in the current directory julia> Pkg.instantiate() # install all the dependencies

The last command will install all the dependencies of this package.

Next, we will configure storage for downloading data from Rfam. Create a file named LocalPreferences.toml in the root directory of this package, and add the following lines:

toml [Rfam] RFAM_DIR = "[path to local Rfam directory]" RFAM_VERSION = "14.7"

where [path to local Rfam directory] should be replaced with the path to some local directory in your system, where the package will place data downloaded from Rfam.

Lastly, import the package within a Julia session by running:

julia julia> import SamApp2024

You can use this command in the Julia REPL. The first time you import it, it might some time for precompilation (but future imports should be faster).

At this point you can call any of the functions in the package.

Running the Pluto notebooks

The included Pluto notebooks contain the code for the downstream analysis done in the paper (which depend on the SamApp2024 package). For more information about Pluto notebooks, see: https://plutojl.org.

To setup Pluto, start a fresh Julia session, and then run the following commands:

julia julia> import Pkg julia> Pkg.add("Pluto") julia> import Pluto; Pluto.run()

This starts a Pluto server. Now open your browser, and navigate to localhost:1234, which is the default address where Pluto is listening. You can then open the notebooks by navigating to the pluto directory in the repository, and opening the .jl files.

Related packages

The code implementing Restricted Boltzmann machines (training, sampling, and other functions) is provided in a separate package: https://github.com/cossio/RestrictedBoltzmannMachines.jl. Note that this package will be installed automatically as a dependency of this repository by the Julia package manager.

The code for simulations of other riboswitch families (reported in Supplementary Materials of the paper cited above) can be found at the following repository: https://github.com/cossio/RiboswitchesSimulations20240620.jl.

For an alternative implementation of Restricted Boltzmann machines in Python, see https://github.com/jertubiana/PGM. In particular, we have prepared a repository at https://github.com/cossio/SamApp2024Py, showing how to use this Python package to train an RBM on RNA sequences from the RF00162 family.

In addition, the following repository: https://github.com/2024-RNA-Chapter/2024-01-09-SAM-RBM-example, contains a self-contained example of training an RBM on an RNA family from Rfam. Two notebooks are included: one for training on CPU and another on GPU.

A Google colab notebook is also available showing how to train an RBM on the RF00162 family with a GPU.

Issues

If you encounter any problems, or need help setting up this package, please open an issue in this repository.

Owner

  • Name: Jorge Fernandez-de-Cossio-Diaz
  • Login: cossio
  • Kind: user

Citation (CITATION.bib)

@article {Fernandez-de-Cossio-Diaz2023.05.10.540155,
	author = {Fernandez-de-Cossio-Diaz, Jorge and Hardouin, Pierre and Lyonnet du Moutier, Francois-Xavier and Di Gioacchino, Andrea and Marchand, Bertrand and Ponty, Yann and Sargueil, Bruno and Monasson, R{\'e}mi and Cocco, Simona},
	title = {Designing Molecular RNA Switches with Restricted Boltzmann Machines},
	elocation-id = {2023.05.10.540155},
	year = {2024},
	doi = {10.1101/2023.05.10.540155},
	publisher = {Cold Spring Harbor Laboratory},
	abstract = {Riboswitches are structured allosteric RNA molecules that change conformation in response to a metabolite binding event, eventually triggering a regulatory response. Computational modelling of the structure of these molecules is complicated by a complex network of tertiary contacts, stabilized by the presence of their cognate metabolite. In this work, we focus on the aptamer domain of SAM-I riboswitches and show that Restricted Boltzmann machines (RBM), an unsupervised machine learning architecture, can capture intricate sequence dependencies induced by secondary and tertiary structure, as well as a switching mechanism between open and closed conformations. The RBM model is then used for the design of artificial allosteric SAM-I aptamers. To experimentally validate the functionality of the designed sequences, we resort to chemical probing (SHAPE-MaP), and develop a tailored analysis pipeline adequate for high-throughput tests of diverse homologous sequences. We probed a total of 476 RBM designed sequences in two experiments, showing between 20\% and 40\% divergence from any natural sequence, obtaining ≈ 30\% success rate of correctly structured aptamers that undergo a structural switch in response to SAM.Competing Interest StatementThe authors have declared no competing interest.},
	URL = {https://www.biorxiv.org/content/early/2024/04/20/2023.05.10.540155},
	eprint = {https://www.biorxiv.org/content/early/2024/04/20/2023.05.10.540155.full.pdf},
	journal = {bioRxiv}
}

GitHub Events

Total
  • Watch event: 1
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 3
  • Pull request event: 4
  • Create event: 1
Last Year
  • Watch event: 1
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 3
  • Pull request event: 4
  • Create event: 1

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 151
  • Total Committers: 3
  • Avg Commits per committer: 50.333
  • Development Distribution Score (DDS): 0.43
Past Year
  • Commits: 68
  • Committers: 1
  • Avg Commits per committer: 68.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jorge FdCD j****d@i****m 86
cossio j****z@g****m 62
dependabot[bot] 4****] 3

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 13
  • Average time to close issues: N/A
  • Average time to close pull requests: 9 days
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.69
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 13
Past Year
  • Issues: 0
  • Pull requests: 13
  • Average time to close issues: N/A
  • Average time to close pull requests: 9 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.69
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 13
Top Authors
Issue Authors
Pull Request Authors
  • dependabot[bot] (23)
Top Labels
Issue Labels
Pull Request Labels
dependencies (23)

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout 692973e3d937129bcbf40652eb9f2f61becf3332 composite
  • julia-actions/cache 580d2b69d895343992af2cbad49c32a0149c2cde composite
  • julia-actions/julia-buildpkg 90dd6f23eb49626e4e6612cb9d64d456f86e6a1c composite
  • julia-actions/julia-runtest d0c4f093badade621cd041bba567d1e832480ac2 composite
  • julia-actions/setup-julia 780022b48dfc0c2c6b94cfee6a9284850107d037 composite