{"id":38514899,"url":"https://github.com/ulelab/rna_maps","last_synced_at":"2026-01-17T06:27:25.974Z","repository":{"id":242719105,"uuid":"383410597","full_name":"ulelab/rna_maps","owner":"ulelab","description":"Plot CLIP crosslinks around regulated exons to study position-dependent impact on pre-mRNA splicing.","archived":false,"fork":false,"pushed_at":"2025-08-04T12:23:53.000Z","size":13407,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-04T15:46:24.286Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ulelab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2021-07-06T09:19:21.000Z","updated_at":"2025-08-04T12:23:57.000Z","dependencies_parsed_at":"2025-07-01T06:37:05.462Z","dependency_job_id":null,"html_url":"https://github.com/ulelab/rna_maps","commit_stats":null,"previous_names":["ulelab/rna_maps"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ulelab/rna_maps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulelab%2Frna_maps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulelab%2Frna_maps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulelab%2Frna_maps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulelab%2Frna_maps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ulelab","download_url":"https://codeload.github.com/ulelab/rna_maps/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulelab%2Frna_maps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28502270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-01-17T06:27:25.098Z","updated_at":"2026-01-17T06:27:25.960Z","avatar_url":"https://github.com/ulelab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## RNA maps\nAuthors: charlotte.capitanchik@crick.ac.uk; aram.amalietti@gmail.com\n\n**Quick Start**\n\nCreate a conda environment with all dependencies and activate it:\n\n```\nconda env create -f environment.yml\nconda activate rnamaps\n```\n\nThen run the test dataset to check the code is working:\n\n```\npython rna_maps.py \\\n-i test/chr21_PTBP1_2_Gueroussov2015_SE.MATS.JCEC.txt \\\n-x test/chr21_hela_ptbp1_iclip_sorted_merged.bed \\\n-f test/homosapien-hg37-chr21.fa \\\n-fi test/homosapien-hg37-chr21.fa.fai\n```\n**Preparing RNA-Seq data**:\n\nThis code accepts rMATs quantified files for cassette exons (e.g. SE.MATS.JCEC.txt).\n\nIf your condition is RBP knockdown be sure to run your comparison as condition - control, such that definitions of enhanced and repressed are correct. If your condition is RBP overexpression you will need to run the comparison as control - condition. In the generic example group1 - group2 consider that the definition of \"enhanced\" or \"repressed\" are in reference to group2. ie. an exon is enhanced in group2 vs. group1.\n\n**Multivalency analysis**:\n\nMultivalency analysis adds on run time \u0026 involves installing the Ule lab's GeRMs package which is still in development, so it is optional and enabled with the flag `-v`.\nCurrently to run the analysis you will need to install the GeRMs package. To do this clone the repository to your computer somewhere and run the following command from within the repository (you will need to have R devtools installed):\n`R -e 'devtools::install()'`\n\nYou will need to ensure you have the GeRMs requirements installed too, which are: biostrings, parallel, logger and optparse.\nFinally, when you run RNA maps you will need to provide the location of your \"germs\" repo, so that the script can find germs.R to run the multivalency calculations using the flag `-g`, so our test command for running multivalency will look like:\n```\npython rna_maps.py \\\n-i test/chr21_PTBP1_2_Gueroussov2015_SE.MATS.JCEC.txt \\\n-x test/chr21_hela_ptbp1_iclip_sorted_merged.bed \\\n-f test/homosapien-hg37-chr21.fa \\\n-fi test/homosapien-hg37-chr21.fa.fai \\\n-v -g ../germs\n```\nIf you want to create a multivalency map alone (no CLIP data) simply run the above command with the `-x crosslinks.bed` excluded.\n\n**Dependencies** (these are the versions the script was developped with, pandas \u003e= 1 introduced breaking changes, please use these versions):\n```\npython=3.7.7  \npandas=0.24.2  \nnumpy=1.19.2  \npybedtools=0.8.1  \nmatplotlib=3.3.2\nseaborn=0.11.0\nscipy=1.3.1\n```\n\n**Usage**:  \n```\npython rna_maps.py -h\nusage: rna_maps.py [-h] -i INPUTSPLICE -x INPUTXLSITES -f GENOMEFASTA -fi\n                   FASTAINDEX [-o [OUTPUTPATH]] [-w [WINDOW]] [-s [SMOOTHING]]\n                   [-mc [MINCTRL]] [-xc [MAXCTRL]] [-xi [MAXINCL]]\n                   [-xf [MAXFDR]] [-xe [MAXENH]] [-ms [MINSIL]] [-v]\n                   [-g [GERMSDIR]]\n\nPlot CLIP crosslinks around regulated exons to study position-dependent impact\non pre-mRNA splicing.\n\nrequired arguments:\n  -i INPUTSPLICE, --inputsplice INPUTSPLICE\n                        quantification of differential splicing produced by\n                        rMATS\n  -x INPUTXLSITES, --inputxlsites INPUTXLSITES\n                        CLIP crosslinks in BED file format\n  -f GENOMEFASTA, --genomefasta GENOMEFASTA\n                        genome fasta file (.fa)\n  -fi FASTAINDEX, --fastaindex FASTAINDEX\n                        genome fasta index file (.fai)\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -o [OUTPUTPATH], --outputpath [OUTPUTPATH]\n                        output folder [DEFAULT current directory]\n  -w [WINDOW], --window [WINDOW]\n                        window around regulated splicing events to plot\n                        crosslinks [DEFAULT 300]\n  -s [SMOOTHING], --smoothing [SMOOTHING]\n                        smoothing window for plotting crosslink signal\n                        [DEFAULT 15]\n  -mc [MINCTRL], --minctrl [MINCTRL]\n                        minimum dPSI for control events [DEFAULT -0.05]\n  -xc [MAXCTRL], --maxctrl [MAXCTRL]\n                        maximum dPSI for control events [DEFAULT 0.05]\n  -xi [MAXINCL], --maxincl [MAXINCL]\n                        maximum PSI for control exons, above this limit exons\n                        are considered constitutive [DEFAULT 0.9]\n  -xf [MAXFDR], --maxfdr [MAXFDR]\n                        maximum FDR for regulated events, above this events\n                        fall in \"rest\" class, is used for rMATS [DEFAULT 0.1]\n  -xe [MAXENH], --maxenh [MAXENH]\n                        maximum inclusion for exons to be considered enhanced\n                        [DEFAULT -0.05]\n  -ms [MINSIL], --minsil [MINSIL]\n                        minimum inclusion for exons to be considered silenced\n                        [DEFAULT 0.05]\n  -v, --multivalency\n  -g [GERMSDIR], --germsdir [GERMSDIR]\n                        directory for where to find germs.R for multivalency\n                        analysis eg. /Users/Bellinda/repos/germs [DEFAULT\n                        current directory]\n```\n\n### Definitions\n\n**Event types**\n\nControl: An event that doesn't change in inclusion (PSI) in this RBP knockdown, but might in another circumstance. Typical definition:\n\n```\ndPSI   ( -1 \u003c---------- - 0.05xxxxx0xxxxx0.05----------\u003e 1 )\nmaxPSI (  0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0.9------\u003e 1 )\nFDR    (  0 xxxxx0.1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\u003e 1 )\n```\n\nConstituitive: An event that doesn't change in inclusion (PSI) in this RBP knockdown, but is unlikely to change in another circumstance. Typically defined as a control event *plus* have a maximum inclusion (PSI) of \u003e 0.9-0.99.\n\n```\ndPSI   ( -1 \u003c---------- - 0.05xxxxx0xxxxx0.05----------\u003e 1 )\nmaxPSI (  0 ----------------------------------0.9xxxxxx\u003e 1 )\nFDR    (  0 xxxxx0.1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\u003e 1 )\n```\n\nEnhanced: An event that is *less* included in RBP knockdown, suggesting the RBP *promotes/enhances* inclusion of the event.\n\n```\ndPSI   ( -1 \u003cxxxxxxxxxxx- 0.05-----0-----0.05----------\u003e 1 )\nmaxPSI (  0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0.9xxxxxx\u003e 1 )\nFDR    (  0 xxxxx0.1-----------------------------------\u003e 1 )\n```\n\nSilenced: An event that is *more* included in RBP knockdown, suggesting the RBP *represses/silences* inclusion of the event.\n\n```\ndPSI   ( -1 \u003c---------- - 0.05-----0-----0.05xxxxxxxxxx\u003e 1 )\nmaxPSI (  0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0.9xxxxxx\u003e 1 )\nFDR    (  0 xxxxx0.1-----------------------------------\u003e 1 )\n```\n\nEnhanced/Silenced rest: A silenced or enhanced event where the FDR does not fall below the threshold.\n\n```\ndPSI   (            As in silenced or enhanced             )\nmaxPSI (  0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0.9xxxxxx\u003e 1 )\nFDR    (  0 -----0.1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\u003e 1 )\n```\n\n**Hierarchy**\n\nWhen it comes to alternative exons, an exon may be involved in multiple events, but we want to avoid plotting it many times, so we implement a hierarchy:\n\n1. If an exon meets criteria for silenced or enhanced this is designated, if criteria for both is met the most extreme dPSI value is preferred.\n2. Of remaining exons, if they meet criteria for enhanced/silenced rest this is designated, if criteria for both is met the most extreme dPSI value is preferred.\n3. Of remaining exons, if they meet critera for constituitive, this is designated.\n4. Of remaining exons, if they meet critera for control, this is designated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulelab%2Frna_maps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fulelab%2Frna_maps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulelab%2Frna_maps/lists"}