{"id":18204694,"url":"https://github.com/jfallmann/rnamediator","last_synced_at":"2025-09-03T20:43:40.939Z","repository":{"id":41182479,"uuid":"201885380","full_name":"jfallmann/RNAmediator","owner":"jfallmann","description":"RNA secondary structure mediated cooperativity/antagonism","archived":false,"fork":false,"pushed_at":"2023-03-20T20:20:09.000Z","size":44846,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-07T19:18:42.479Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jfallmann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-12T08:04:35.000Z","updated_at":"2022-07-19T09:14:23.000Z","dependencies_parsed_at":"2024-11-03T11:42:11.581Z","dependency_job_id":"cff8892f-8abf-4d1a-99f0-cad5fe906ba7","html_url":"https://github.com/jfallmann/RNAmediator","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/jfallmann/RNAmediator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfallmann%2FRNAmediator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfallmann%2FRNAmediator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfallmann%2FRNAmediator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfallmann%2FRNAmediator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jfallmann","download_url":"https://codeload.github.com/jfallmann/RNAmediator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfallmann%2FRNAmediator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261649855,"owners_count":23189754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-03T11:41:55.210Z","updated_at":"2025-06-24T10:09:34.908Z","avatar_url":"https://github.com/jfallmann.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RNAmediator  \n[![PyPI Latest Release](https://img.shields.io/pypi/v/RNAmediator.svg)](https://pypi.org/project/RNAmediator/) [![GitHub](https://img.shields.io/github/tag/jfallmann/RNAmediator.svg)](https://github.com/jfallmann/RNAmediator) [![Build Status](https://github.com/jfallmann/RNAmediator/actions/workflows/python-app.yml/badge.svg?branch=main)](https://github.com/jfallmann/RNAmediator/actions) [![Bioconda](https://anaconda.org/bioconda/RNAmediator/badges/installer/conda.svg)](https://anaconda.org/bioconda/RNAmediator) [![Documentation Status](https://readthedocs.org/projects/rnamediator/badge/?version=latest)](https://rnamediator.readthedocs.io/en/latest/?badge=latest)  [![PRs](https://img.shields.io/badge/PRs-welcome-blue)](https://github.com/jfallmann/RNAmediator/pulls)\n\nThe RNA Interaction via secondary structure mediation (RNAmediator) tool suite\nanalyses the change of RNA secondary structure upon binding other molecules.\n\nIt is available as suite of commandline tools, the source code of RNAmediator is open source and available via GitHub (License GPL-3).\n\n### \u003cu\u003eInstallation via bioconda - recommended\u003c/u\u003e\n\nRNAmediator can be installed with all tool dependencies via [conda](https://conda.io/docs/install/quick.html). Once you have conda installed simply type:\n\n    conda create -n RNAmediator -c conda-forge -c bioconda rnamediator\n\nActivate the environment in which RNAmediator was installed to use it:\n\n    conda activate RNAmediator\n\n\n### \u003cu\u003eUsage\u003c/u\u003e\n    \nRNAmediator provides different tools to answer different research questions. We will discuss the target application of the tools\nand the required input in the following points. \n\n* ConstraintFold.py\n    \n    Computes RNA secondary structure prediction with defined hard binding constraint for a set of sequences.\n    \n    * Input:\n    \n    * Output:\n\n\n* ConstraintPLFold.py\n\n    Computes position-wise probability of being base-paired, using windows, with hard binding constraint for a set of sequences.\n\n    * Input:\n    \n    * Output:\n\n* CollectConsResults.py\n \n    Computes statistics for change of position-wise probability of being base-paired, with binding constraint for a set of provided genes.\n    \n    * Input:\n    \n    * Output:\n\n\n* CollectWindowResults.py \n\n    Computes statistics for change of position-wise probability of being base-paired, using windows, with binding constraint for a set of provided genes.\n    \n    * Input:\n    \n    * Output:\n\n\n* risvis.py\n\n    Visualize base pairing probabilties before and after constraining.\n    \n    * Input:\n    \n    * Output:\n  \n\n## ConstraintPLFold\n\n### Using Genes\n\nConstraintPLFold.py can be used for folding a list of sequences with constraints.\nTherefore it is recommended to use one fasta file containing sequences and another\nbed file containing the constraints. Matching between sequences and constraints is\ndone via the gene identifier (here **ENSG00000270742**) which has to be the same in the bed file and the fasta\nand should look as follows:\n\n#### Fasta\n```\n\u003eENSG00000270742:chr1:61124732-61125202(+)\nTTTTTTCTTTATAATTATTCCCCTATTTGAAAAATCAACTTGTATATGAGGCAGCAAACACCTTGCAGAGC...\n```\n#### Bed\n```\nchr1\t26\t35\tENSG00000270742 .\t+\n```\n\nThe command line call for this simple scenario is supposed to look like this:\n\n```shell\npython ConstraintPLFold.py -s FASTA -x BedFile\n```\n\nby default the results are printed to stdout. The first output is the\nfolded sequence without constraints. This output can be redirected to a file\nusing `--unconstraint nameforunconstraint`. The following outputs are the matrices for\nan unpaired constraint and for an paired constraint. These matrices can also be \nredirected to an file using `--paired nameforpaired` or `--unpaired nameforunpaired`.\nThe folder to which these files should be saved is determined via the `--outdir` flag.\n\nConstraints can also be passed using the `ono` (one on one) flag like this:\n```shell\npython ConstraintPLFold.py -s FASTA -x ono,BedFile\n```\nMatching between constraints and sequences consequently ignores the gene identifiers\nand instead the first sequence will use the first line in the bed file as a constraint.\n\nIf you want to construct bed files with genomic coordinates, containing information about\npairing probabilities (see [CollectConsResults](#CollectConsResults)), it is essential to\nprovide another bed file with genomic coordinates.\nThis file can be passed using the `--genes GeneBedFile` and should look like: \n\n##### GeneBed\n```\nchr1  61124732  61125202  ENSG00000270742 .\t+\n```\n\n### Using Transcripts\n\nIf you plan to use transcripts, missing exons, instead of genes it is highly recommended \nchanging the header of your fasta sequences as well as the constraints in the bed file as follows:\n\n##### Fasta\n```\n\u003eENST00000240304.5::ENST00000240304.5:0-5482(.)\nGUCUUGUCGGCUCCUGUGUGUAGGAGGGAUUUCGGCCUGAGAGCGGGCCGAGGAGAUUGGCGACGGUGUCGCCCGUGUUUUCGUUGGCGGGUGCCUGGGCUGGUGGGAACAGCCGCCCGAAGGAAGCACCAUGAUUUCGGCCGCGCAGUUGUUGGAUGAGUUAAUGGGCCGGGACCGAAACCUAGCCCCGGACGAGAAGCGCAGCAACGUGCGGUGGGACCACGAGAGCGUUUGUAAAUAUUAUCUCUGUGGUUUUUGUCCUGCGGAAUUGUUCACAAAUACACGUUCUGAUCUUGGUCCGUGUGAAAAAAUUCAUGAUGAAAAUCUACGAAAACAGUAUGAGAAGAGCUCUCGUUUCAUGAAAGUUGGCUAUGAGAGAGAUUUUUUGCGAUACUUACAGAGCUUACUUGCAGAAGUAGAACGUAGGAUCAGACGAGGCCAUGCUCGUUUGGCAUUAUCUCAAAACCAGCAGUCUUCUGGGGCCGCUGGCCCAACAGGCAAAAAUGAAGAAAAAAUUCAGGUUCUAACAGACAAAAUUGAUGUACUUCUGCAACAGAUUGAAGAAUUAGGGUCUGAAGGAAAAGUAGAAGAAGCCCAGGGGAUGAUGAAAUUAGUUGAGCAAUUAAAAGAAGAGAGAGAACUGCUAAGGUCCACAACGUCGACAAUUGAAAGCUUUGCUGCACAAGAAAAACAAAUGGAAGUUUGUGAAGUAUGUGGAGCCUUUUUAAUAGUAGGAGAUGCCCAGUCCCGGGUAGAUGACCAUUUGAUGGGAAAACAACACAUGGGCUAUGCCAAAAUUAAAGCUACUGUAGAAGAAUUAAAAGAAAAGUUAAGGAAAAGAACCGAAGAACCUGAUCGUGAUGAGCGUCUAAAAAAGGAGAAGCAAGAAAGAGAAGAAAGAGAAAAAGAACGGGAGAGAGAAAGGGAAGAAAGAGAAAGGAAAAGACGAAGGGAAGAGGAAGAAAGAGAAAAAGAAAGGGCUCGUGACAGAGAAAGAAGAAAGAGAAGUCGUUCACGAAGUAGACACUCAAGCCGAACAUCAGACAGAAGAUGCAGCAGGUCUCGGGACCACAAAAGGUCACGAAGUAGAGAAAGAAGGCGGAGCAGAAGUAGAGAUCGACGAAGAAGCAGAAGCCAUGAUCGAUCAGAAAGAAAACACAGAUCUCGAAGUCGGGAUCGAAGAAGAUCAAAAAGCCGGGAUCGAAAGUCAUAUAAGCACAGGAGCAAAAGUCGGGACAGAGAACAAGAUAGAAAAUCCAAGGAGAAAGAAAAGAGGGGAUCUGAUGAUAAAAAAAGUAGUGUGAAGUCCGGUAGUCGAGAAAAGCAGAGUGAAGACACAAACACUGAAUCGAAGGAAAGUGAUACUAAGAAUGAGGUCAAUGGGACCAGUGAAGACAUUAAAUCUGAAGGUGACACUCAGUCCAAUUAAAACUGAUCUGAUAAGACCUCAGAUCAGACAGAGGACUACUGUUCGAAGAUUUUUGGAAGAAUACUGAGAACGGCAUAAAGUGAAGAUCGACAUUUAAAAAAUGAGGUGAAAGAAAGCUAUAGUGGCAUAGAAAAAGUAUAAAGCUCAGUUAGUUUUUUUAUUAUUAUUAUUAUUAAAAGUUAAUUCAGGACUGAUGUGACCUACCAGAUUUCAGAACAUGUGUUAAUAGUAUAUAUGCCACUGAAAACUUAGGUCCUGUAUCAUACUUUUUUCUUUAAGACUUUUUAAGAAAUAUUACUUAAACAUGUGGCUUGCUCAGUGUUUAAUUGCAAGUUUUCAAUCUUGGACUUUGAAAACAGGAUUAAACGUUAGUAUUCGUGUGAAUCAGACUAAGUGGGAUUUCAUUUUUACAACUCUGCUCUACUUAGCCUUUGGAUUUAGAAGUAAAAAUAAAGUAUCUCUGACUUUCUGUUACAAAGUUGAUUGUCUCUGUCAUUGAAAAGUUUUAGUAUUAAUCUUUUUCUAAUAAAGUUAUUGACUCUGAACUAGUCCCCUGUUUUAAAUACAAGAGUUACACUAUUACUAGAGGUGUUGGUGUACAGUUUUAUCUGAUUUGUUCUGUUUAAGACUAAUUUUUAUAGACUUUCUAAUGUUUUAAAUAAUGGUGCUUCAAUUUUAGGUGGUUAUGAAUAAAUUUGAAUUUUGCUUUUAAUAGCAAAGAUGUGCAGUGAACUAGAAUAUAUUUUUACAUCCCUGAGAGAUUCAUUUAGUAGAAAAUUCCAAGUAUCCUGACAAGCACUCUUUAGCUGGCUAGCUAUGGGAUGAUGUAGAAAAGCAUUCAAGAGCUAGUUUUUGUUAAGUCCUGUAUCAAGAUUAACCCAGCUGUGUCAGUUUAUAAAUGUAUUUGUGUAUAGGGUGUGUAGUAUAUAUGGCAAGGGUUUUUUCCCCCCACUUAAGUGAUUAUUUUUGUGUCACAUCUAGGAAAACCGGCAGCAUGUUUCUAUCUAUAGCCAGCUUCUUCGACUGUAUAAAAGUAUUCUCUCCAGCUACGUAUAUACACACAUACAUAUAUAUCAUAGCAAUUCCUUGUGGUUUAUAACUUGCAAAUACUGCUAUCAGUUUAUAGGUAAAGAAACAGUGUGUUAAAUGACUUAUCCAGGGAGGGUCCUGUGGCUUCAUGUUUAUGGAGUUGCUAGGUCUCUGCCUCAUGGUCCAGUGCCUGUUAAGCCACUGUGUUCAUUCUAAUAGGCAUAAUGAAUUGUUAAAGAAUUUACUAAAAUCUCUUCCACCAAACUUUGAAAAAUAAUGAAGCCGCCCCCACUUUAGAGGCUCUGUAUGAAAAAAUGCUGUGGAGACAGAGCCCUCCUGGCUCCCUAGCUGAUCCUGGAGAUGCAGCAAUAGAUGAAUGGGUUAUCUCUGAAUUUGUAAGAGAUAAUUCACAUGAGGAUUAAGAUAAAAUGGGAAGUAAAAUCUAACAAACACAAAGAUAGCUCCCAGGCACUGCUUUGUGUAGUUUGACAGCAUUGUGGUUGUAGCAGCAAAGGACUUAAAGUGAUAGUUUUUAAACCAUAUUCUGUCCCUAAGUAAUAAAAAAUCUAGGAAGUUACUAAAAUACCAGAUUUGUUCUGCUCUGCCUCAUCUAGAAUCAACGUCUAACUAACUUAAAUGAAGUAUAAUAAAUGAGUUCAUAUGAAAAGGCUUCCUCUAUGGACACUUAGAUAUAUUGUAACUAUUGAAGUUACCUGGGAUGUGGGGGUGGUGGGAGGAGGACCUGCCUCCCCAGGACAUCUAUGACUAAGGCCUGGCUUUAGUUAUGGAGAGAGACGUAGAAGUUGAAUUUUACACCCAAAAUUGAUGUGACUGAAGAGGAACUGAUUGUUGCUAACCAGCUCACAAGAAUCCAGUAUUGAGACCAGUUCACUAGAAGAAACAAACAUUUCUGCCAUGCAGACCAAAAAGUUAUUAGUUGGUGAAUAUGUAUUUUCUCUUUGGAAGGUCUUUAAGGGGAGCAAACCAGUUUUAAUCAAUCAGAUUGCUUGGUAAGUUUGGAAUCUGCAAUCAGUUGGUCUUAAAAAAAAAAAAACUUUAUUUUGGAAAUUUAAAGACAUACACAAAAGAGGAACAAUAUAAUUAACCUCUGUUAACUCAUCACCAACAAGACUCAUGACCACUUUUAUACUUCAUGAGUGAUUGUAUUUGUAUCCACUGUUUUCUAUUAUUUUCGAGCAAGUCUCAGACACACCAUUUAAUCUGUAAAUAAUUCAGCAUGUAUCUCUAAAAGACAAAGACCUCUUAAAUAACAGUUCAUUAGUAUAAAACAAAUUGGGUAAACUUUUGUUGGUCAUCAAACUAUAUUAGCACUGGUCCAAUAGUUUAAUUUUCAUUGAGCCUUUCAAGAGGACCGACCAGUCUGCUGCUCAAGACAUCCUCUCCUCUGGAAUGUAGAGAUAAUACAUAUCAUGCUCCUUUUUGUUAAAACGUUUUUUUUUCCCCUUCAAACACAGUCCAUUCAUUUUUCAGUUUGGGUUGAAACAUCCUUUUCUUGAUCUUGAGCUUAUAAUAACCUAGUCAUAUUGCUCAGCUCAGAUAUUUUUACUCCCUCUCCUUAGGCAUUCUGGUUCCUUAAAUAUAGUUAGUGUCACAGAGGAUAAAUAACCAACCUUAUUUCUAAGGUCUGAGAACACUUGGACCACAUAUUGGUUGAGCUCAGCCACCUUCUGAUUAAAGUUUUCAGACUUGUAAGAACUGAAAAUUUUUAUGGUGGAAGUUCUCUGAGCCCUCAUCCAUUCUGUUUUUAAAAAUGCAUUGCAGAUGGGCUAUGUGAAUAUGUUUUUAAACAUCUGAUAUGUGCAUGAAACAAAAAACACUUGAAGUUAUUAUGUAUACAAUUCUGUGGGAUGGGACUUCAUGCAGGAUUGGUUUUCAAGUUUGAUUUCCUGAGGGAUUUUUUAGUUGUUUGUGAAAGAACCCCAGGUCUACUUUUGAAAUUUUGUAUUAUAAUUGUAAUGUUGCCCAUGGUUAAAAAAAAAAAGUGUUCAGUGAUCUAUGUCUCCUACUACUCCUAUUUCUCUGUUUUUCCUCUGCAGGAGCUUGCUGCUGUUAACAGUUAUUCUUCCAAGUUGUUUUCUUUGUGGGGAGAUGGGAGGUGGGAGGAAAUAUAAACAUAUAUGUAUAGAUCUUUCAAAAUAUAUGACGGUAUACCCGUAUGUUCUGAGUCUUGCUGUUUUUACCUGGUAAUAUUUAGAAACAUUUAUUUUGAGAUAAAGGAGAGCACUUUUAAGUUGAACCUGUAGUUUUAAAAAGUACAUUUCAAGUAAGCCAAAGCAGAGAAGUAAAUGUAUUUUUCAUUGUUGUAUCAGAAUUUUGAAUUUACUAUUUUAAAAAUUCAAGAGUUUUGUAGCUGAUCUAUUUCUUCCCCUCAGCCAUCCCAAAUAGGUCAUUUGUCAACAGAUUUAAGAAUGUUUAGAAACAACAACUUUGGGAAACGGGAAACAAUUUGGUAUAAGUGGGUGUGCCAUAACCUCUCUCGUAGCCAUUCAUUCCCGGAUACAUACCCUAGAGAAACUCUUACACAUGCGUACCAGGGGAUGGAUUUAAGCAUUUGUGUGUAAUAGGAAGAAAAGAAGAAAAAACCCGGGAAGAUCCCAAGUGUCCACCAACAGUGUGUUGGAUAAAUACUGUGGUAUAUUCCAACAGUGGAAUUCCACAGAAGUGAAACUGAACUGCAGCUGUGUAUGUGAACAUGGACAAAACUCAACAAUAGAAGGAUCAAAAAAAGCAAGUCACAGAAGAAUACAUCACUAUGGUUCCAUUUCAAUGAAAGUCAAAAACAGGCUGUCAAAUACAUGAUAAAAGGAAACGAUUAAGACAAAAUUUAAUGUUAGCCGUUUUGAUGGAGGGAGAGGUGAUCAUGAGGGCACAGGGGUCUUCAGAAGAACUGGUGAGGGUCUGUUUCUGAAGCCUGUGGGCAUUUCCUUUUUUAAUCUGUAUGUUUAUGUGCUUUUGUAUGUAUGAUAUUUCUUAAUAAAAUUUAAAAAGAAGAAUGGGAAAAAA\n```\n##### Bed\n```\nENST00000240304.5\t1178\t1183\tENST00000240304.5\t.\t.\n```\nIn this case you should use GeneBed files (`--genes`) which look quite similar to \nthe Constraints File but have as start position 0 and end position the length of \nthe sequence\n\n##### GeneBed\n```\nENST00000240304.5\t0\t5482\tENST00000240304.5\t.\t.\n```\n\n## CollectConsResults \n\nThe methods mentioned in [ConstraintPLFold example](#ConstraintPLFold) will \nproduce output that can be processed by CollectConsResults. This will generate BED\nfiles storing the probability of being unpaired for overlapping spans of nucleotides around the \nconstraint. \u003cREWRITE\u003e Therefore simply call:\n\n```\npython CollectConsResults.py -d path/to/ConstraintPLFold/output -u 5 -g GeneBed --outdir path/to/outdir --unconstraint name  \n```\n\nHereby it is essential that `--unconstraint` matches the uconstraint name provided at the ConstraintPLFold call.   \nFurther the `-u` parameter defines the span sizes that are used for the output BED files which might\nfor example look like this for `-u 5`:\n\n```\nchr1\t110135760\t110135765\tENSG00000065135|44542-44544|110135774-110135777\t0.02620831\t+\t9\t0.05007846\t0.07628677\t2.2444807817789587\t0.02620831000000001\t0.04615814895706037\t0.15227569\nchr1\t110135761\t110135766\tENSG00000065135|44542-44544|110135774-110135777\t0.019514269999999993\t+\t8\t0.049938\t0.06945227\t2.426255722126518\t0.019514269999999993\t-0.03666320494171017\t0.15227569\nchr1\t110135762\t110135767\tENSG00000065135|44542-44544|110135774-110135777\t0.09578122\t+\t7\t0.13804191\t0.23382313\t1.4457214540425338\t0.09578122\t0.9069421599395611\t0.15227569\nchr1\t110135763\t110135768\tENSG00000065135|44542-44544|110135774-110135777\t0.07929997\t+\t6\t0.06154513\t0.1408451\t1.5621026141257632\t0.07929996999999998\t0.7030295094408919\t0.15227569\nchr1\t110135778\t110135783\tENSG00000065135|44542-44544|110135774-110135777\t0.31023007\t+\t-7\t0.14063798\t0.45086805\t0.7213795423617754\t0.31023007\t3.560189541047878\t0.15227569\nchr1\t110135779\t110135784\tENSG00000065135|44542-44544|110135774-110135777\t0.2991335\t+\t-8\t0.1657577\t0.4648912\t0.7438289320089759\t0.2991335\t3.4228983161623856\t0.15227569\nchr1\t110135780\t110135785\tENSG00000065135|44542-44544|110135774-110135777\t0.29541885\t+\t-9\t0.15833754\t0.45375639\t0.7515304743397738\t0.29541885\t3.376939173064934\t0.15227569\n```\n\nA detailed description of that files columns can be found in the [Output](#output) section.\n\n## Further steps\n\nThe BED file created by CollectConsResults can be used to intersect with other known binding sites on the \nsame gene/transcript. Thus, it is possible to see whether the changes in RNA structure upon binding of one ligand might\naffect the structure of binding site of other ligands. \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfallmann%2Frnamediator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjfallmann%2Frnamediator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfallmann%2Frnamediator/lists"}