{"id":34036928,"url":"https://github.com/jakobilab/circhemy","last_synced_at":"2026-04-01T20:17:48.440Z","repository":{"id":235876710,"uuid":"576813942","full_name":"jakobilab/circhemy","owner":"jakobilab","description":"Convert and query IDs of circular RNAs from many different databases","archived":false,"fork":false,"pushed_at":"2024-04-26T23:55:41.000Z","size":332708,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-05T08:09:33.266Z","etag":null,"topics":["circrna","circular","circularrna","conversion","converter","naming-pattern","rna"],"latest_commit_sha":null,"homepage":"https://circhemy.jakobilab.org","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/jakobilab.png","metadata":{"files":{"readme":"README.rst","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":"2022-12-11T03:58:19.000Z","updated_at":"2024-05-18T18:19:16.000Z","dependencies_parsed_at":"2024-04-26T23:45:28.407Z","dependency_job_id":null,"html_url":"https://github.com/jakobilab/circhemy","commit_stats":null,"previous_names":["jakobilab/circhemy"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jakobilab/circhemy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobilab%2Fcirchemy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobilab%2Fcirchemy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobilab%2Fcirchemy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobilab%2Fcirchemy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakobilab","download_url":"https://codeload.github.com/jakobilab/circhemy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakobilab%2Fcirchemy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31018588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T03:51:26.850Z","status":"ssl_error","status_checked_at":"2026-03-27T03:51:09.693Z","response_time":164,"last_error":"SSL_read: 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":["circrna","circular","circularrna","conversion","converter","naming-pattern","rna"],"created_at":"2025-12-13T20:47:20.203Z","updated_at":"2026-03-27T04:24:20.939Z","avatar_url":"https://github.com/jakobilab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"**circhemy**\n======================================================================\n\n**The alchemy of circular RNA ID conversion**\n\n.. image:: https://github.com/jakobilab/circhemy/raw/main/circhemy/web/static/logo_small.png\n   :alt: circhemy - The alchemy of circular RNA ID conversion\n   :target: https://circhemy.jakobilab.org/\n\n\n|downloads| |pypi| |ci| |docker|\n\nIntroduction\n-------------\n\nCircular RNAs (circRNAs) originate through back-splicing events from linear\nprimary transcripts, are resistant to exonucleases, typically not\npolyadenylated, and have been shown to be highly specific for cell type and\ndevelopmental stage.\n\nThe prediction of circular RNAs is a multi-stage bioinformatics process starting\nwith raw sequencing data and usually ending with a list of potential circRNA\ncandidates which, depending on tissue and condition may contain hundreds to\nthousands of potential circRNAs. While there are a number of tools for the\nprediction process (e.g. circtools developed by our group) a unified naming\nconvention for circRNA is not available.\n\nMultiple databases gathered hundreds of thousands of circRNAs, however, most\ndatabases employ their own naming scheme, making it harder and harder to keep\ntrack of known circRNAs and their identifiers.\n\nCirchemy\n-------------\n\nWe developed circhemy, a modular, Python3-based framework for circRNA ID\nconversion that unifies several functionalities in a single Python package.\nThree different routes are implemented within package to access more than 2\nmillion circRNA IDs:\n\n* User-friendly web application at `circhemy.jakobilab.org \u003chttps://circhemy.jakobilab.org\u003e`__\n* Streamlined CLI application for direct access to the prepackaged local SQLite3 database\n* A public `REST API \u003chttps://circhemy.jakobilab.org/rest/\u003e`__ that enables direct access to the most recent ID database from HPC systems using curl or similar tools\n\nCirchemy includes two different modes of action: ``convert`` and ``query``. Convert\nallows the user to convert from one type of circRNA ID to a wide variety of\nother database identifiers, while query allows users to run direct queries on\nthe circRNA database to extract circRNAs fulfilling a user-defined set of\nconstraints.\n\nMoreover, circhemy is the first circRNA resource that supports and integrates\nthe first version of the **C**\\ircRNA **S**\\tandard **N**\\omenclature (abbreviated\n**CSNv1** in circhemy) as outlined in `\"A guide to naming eukaryotic circular RNAs\", Chen et al. 2023 \u003chttps://www.nature.com/articles/s41556-022-01066-9\u003e`__.\n\nCurrently, circhemy contains computationally generated CSNv1 names for nearly 1\nmillion circRNAs of Human, mouse, and rat.\n\nInstallation\n-------------\n\nThe circhemy CLI package is written in Python3 (\u003e=3.8) and consists of two\ncore modules, namely ``convert`` and ``query``. The command line version requires\nonly one external dependency, ``sqlite3``, for access to the internal SQLite3\ndatabase with circRNA ID data\n\nInstallation is managed through ``python3 -m pip install circhemy`` or ``python3 setup.py\ninstall`` when installed from the cloned GitHub repository. No sudo access is\nrequired if the installation is executed with ``--user`` which will install the\npackage in a user-writeable folder. The binaries should be installed\nto ``/home/$user/.local/bin/`` in case of Debian-based systems.\n\ncirchemy was developed and tested on Debian Buster, but should run with\nany other distribution.\n\nThe latest release version of circhemy can be installed via pip:\n\n.. code-block:: console\n\n    python3 -m pip install circhemy\n\nAdditionally, this repository offers the latest development version:\n\n.. code-block:: console\n\n    python3 -m pip install git+https://github.com/jakobilab/circhemy.git\n\n\n\nCommand Line Interface\n-----------------------\n\nCirchemy currently offers two modules:\n\nConvert module\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThe convert module is able to convert from a range of input circRNA ID into different one or more database identifiers.\n\nExample: Convert a list of CircAtlas2 IDs read via STDIN from file input.csv into Circpedia2 IDs, but also output  CircAtlas2 IDs, while writing the output to /tmp/output.csv:\n\n.. code-block:: console\n\n    cat input.csv | circhemy convert -q STDIN -i CircAtlas2 -o Circpedia2 CircAtlas2 -O /tmp/output.csv\n\nQuery module\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThe query module is able to retrieve circRNA IDs from the internal database that fulfil a set of user-defined constraints.\n\nExample: Retrieve a list of circbase and CircAtlas2 circRNA IDs that are located on chromosome 3 of the species rattus norvegicus; only print out circRNAs from the rn6 genome build.\n\n.. code-block:: console\n\n    circhemy query -o circbase CircAtlas2 -C chr3 -s rattus_norvegicus -g rn6\n\n\nRepresentational State Transfer Interface (REST)\n-------------------------------------------------\n\nRepresentational State Transfer, or REST for short, allows users and software\ndevelopers to easily access circhemy from within their own tools or pipelines.\nCirchemy's REST API uses JSON for input queries and returning output, making it\neasy to format queries from every programming language or even by hand.\n\nThe REST API it publicly available and uses a fixed set of keywords to perform\nconversions or queries. Two examples for the two different modes of action are\nshown below.\n\nConvert module\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThe convert module is able to convert from a range of input circRNA ID into\ndifferent one or more database identifiers.\n\nExample: Convert a list of CircAtlas2 IDs into circBase and\ninto Circpedia2 IDs, including the Genome build.\n\n.. code-block:: console\n\n    curl -X 'POST' 'https://circhemy.jakobilab.org/api/convert'\n      -H 'accept: application/json'\n      -H 'Content-Type: application/json'\n      -d '{\n          \"input\": \"CircAtlas2\",\n          \"output\": [\"Circpedia2\",\"CircAtlas2\",\"Genome\"],\n          \"query\": [\"hsa-MYH9_0004\",\"hsa-MYH9_0004\"]\n          }'\n\nOutput is returned as JSON-formatted string which can directly be used for AG\nGrid tables for any other postprocessing:\n\n.. code-block:: json\n\n    {\n      \"columnDefs\": [\n        {\n          \"headerName\": \"circBase\",\n          \"field\": \"circBase\"\n        },\n        {\n          \"headerName\": \"Circpedia2\",\n          \"field\": \"Circpedia2\"\n        }\n        {\n          \"headerName\": \"Genome\",\n          \"field\": \"Genome\"\n        }\n      ],\n      \"rowData\": [\n        {\n          \"circBase\": \"hsa_circ_0004470\",\n          \"Circpedia2\": \"HSA_CIRCpedia_36582\"\n          \"Genome\": \"hg38\"\n        },\n        {\n          \"circBase\": \"hsa_circ_0004470\",\n          \"Circpedia2\": \"HSA_CIRCpedia_36582\"\n          \"Genome\": \"hg19\"\n        }\n      ]\n    }\n\nQuery module\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe query module is able to retrieve circRNA IDs from the internal database that\nfulfil a set of user-defined constraints.\n\nExample: Retrieve all circRNAs with a CircAtlas2 ID containing *nppa* in the\nspecies homo sapiens, return the IDs in circBase and CircAtlas2 format:\n\n.. code-block:: console\n\n                curl -X 'POST'\n                  'https://circhemy.jakobilab.org/api/query'\n                  -H 'accept: application/json'\n                  -H 'Content-Type: application/json'\n                  -d '{\n                      \"input\": [\n                        {\n                          \"query\": \"nppa\",\n                          \"field\": \"CircAtlas2\",\n                          \"operator1\": \"AND\",\n                          \"operator2\": \"LIKE\"\n                        },\n                        {\n                          \"query\": \"homo_sapiens\",\n                          \"field\": \"Species\",\n                          \"operator1\": \"AND\",\n                          \"operator2\": \"is\"\n                        }\n                      ],\n                      \"output\": [\n                        \"circBase\",\n                        \"CircAtlas2\"\n                      ]\n                    }'\n\nOutput is returned as JSON-formatted string which can directly be used for AG\nGrid tables for any other postprocessing:\n\n.. code-block:: json\n\n    {\n      \"columnDefs\": [\n        {\n          \"headerName\": \"circBase\",\n          \"field\": \"circBase\"\n        },\n        {\n          \"headerName\": \"CircAtlas2\",\n          \"field\": \"CircAtlas2\"\n        }\n      ],\n      \"rowData\": [\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA_0001\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA_0002\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA-AS1_0001\"\n        },\n        {\n          \"circBase\": \"hsa_circ_0009871\",\n          \"CircAtlas2\": \"hsa-NPPA-AS1_0004\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA-AS1_0002\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA-AS1_0003\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA_0001\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA_0002\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA-AS1_0001\"\n        },\n        {\n          \"circBase\": \"hsa_circ_0009871\",\n          \"CircAtlas2\": \"hsa-NPPA-AS1_0004\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA-AS1_0002\"\n        },\n        {\n          \"circBase\": \"\",\n          \"CircAtlas2\": \"hsa-NPPA-AS1_0003\"\n        }\n      ]\n    }\n\n\n.. |downloads| image:: https://pepy.tech/badge/circhemy\n    :alt: Python Package Index Downloads\n    :scale: 100%\n    :target: https://pepy.tech/project/circhemy\n\n.. |pypi| image:: https://badge.fury.io/py/circhemy.svg\n    :alt: Python package version\n    :scale: 100%\n    :target: https://badge.fury.io/py/circhemy\n\n.. |ci| image:: https://github.com/jakobilab/circhemy/actions/workflows/run_circhemy_ci.yml/badge.svg\n    :alt: CI tests\n    :scale: 100%\n    :target: https://github.com/jakobilab/circhemy/actions/workflows/run_circhemy_ci.yml\n\n.. |docker| image:: https://github.com/jakobilab/circhemy/actions/workflows/build_docker.yml/badge.svg\n    :alt: Docker build process\n    :scale: 100%\n    :target: https://github.com/jakobilab/circhemy/actions/workflows/build_docker.yml\n\n\nAbout\n-------------\nCirchemy is developed at the `Jakobi Lab \u003chttps://jakobilab.org/\u003e`__, part of\nthe `Translational Cardiovascular Research Center (TCRC) \u003chttps://phoenixmed.arizona.edu/tcrc/\u003e`__, in the Department of Internal Medicine at `The University of Arizona College of Medicine – Phoenix \u003chttps://phoenixmed.arizona.edu/\u003e`__.\n\nContact: **circhemy@jakobilab.org**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakobilab%2Fcirchemy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakobilab%2Fcirchemy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakobilab%2Fcirchemy/lists"}