{"id":22220465,"url":"https://github.com/lcsb-biocore/fractalis","last_synced_at":"2025-06-18T08:37:54.949Z","repository":{"id":104307194,"uuid":"135255820","full_name":"LCSB-BioCore/Fractalis","owner":"LCSB-BioCore","description":"[Back-end] A scalable open-source service for platform-independent interactive visual analysis of biomedical data","archived":false,"fork":false,"pushed_at":"2021-04-20T08:56:24.000Z","size":4959,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-10-05T02:16:22.995Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://fractalis.lcsb.uni.lu/","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LCSB-BioCore.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}},"created_at":"2018-05-29T07:10:26.000Z","updated_at":"2023-10-20T21:11:10.362Z","dependencies_parsed_at":null,"dependency_job_id":"e30696d6-c19e-4862-8475-358113c55e9a","html_url":"https://github.com/LCSB-BioCore/Fractalis","commit_stats":null,"previous_names":[],"tags_count":35,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LCSB-BioCore%2FFractalis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LCSB-BioCore%2FFractalis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LCSB-BioCore%2FFractalis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LCSB-BioCore%2FFractalis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LCSB-BioCore","download_url":"https://codeload.github.com/LCSB-BioCore/Fractalis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227817178,"owners_count":17824199,"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-12-02T23:08:43.810Z","updated_at":"2024-12-02T23:08:44.575Z","avatar_url":"https://github.com/LCSB-BioCore.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### About\nThis is the back-end component of the Fractalis project. It is a computational node that is responsible for the MicroETL process and the execution of analytical tasks. See https://fractalis.lcsb.uni.lu/\n\n### Demo\nPlease have a look at this playlist to see a demo of the visual aspects of Fractalis: [Playlist](https://www.youtube.com/playlist?list=PLNvp9GB9uBmH1NNAf-qTyj_jN2aCPISFU).\n\n### Installation (Docker)\nThe easiest and most convenient way to deploy Fractalis is using Docker.\nAll necessary information can be found [here](docker).\n\n### Installation (Manual)\nIf you do not want to use docker or want a higher level of control of the several components, that's fine. In fact it isn't difficult to setup Fractalis manually:\n\n- Install and run [Redis](https://redis.io/), which is available on most Linux distributions. This instance must be accessible by the web service and the workers.\n- Install and run [RabbitMQ](https://www.rabbitmq.com/), which is available on most Linux distributions. This instance must be accessible by the web service and the workers.\n- Install Fractalis via `pip3 install fractalis`. Please note that Fractalis requires Python3.4 or higher. This must be installed on all machines that will run the web service or the workers.\n- Install required all required R packages. We won't list these packages excplicitely, as they can change frequently. Please refer instead to the [Dockerfile](https://git-r3lab.uni.lu/Fractalis/fractalis/blob/master/docker/Dockerfile), which is *always* up-to-date, as a new version of Fractalis is only released when the Docker image passes all tests. This must be installed on all machines that will run the web service or the workers.\n- Run and expose the Fractalis web service with whatever tools you want. We recommend **gunicorn** and **nginx**, but others should work, too.\n- Run the celery workers on any machine that you want within the same network. (For a simple setup this can be the very same machine that the web service runs on).\n\nNote: The [docker-compose.yml](docker/docker-compose.yml) describes how the different services are started and how they connect with each other.\n\n### Configuration\nUse the environment variable `FRACTALIS_CONFIG` to define the configuration file path.\nThis variable must be a) a valid python file (.py) and b) be available on all instances that host a Fractalis web service or a Fractalis worker.\n\nTip: Use the [default settings](fractalis/config.py) as an example for your own configuration file.\nPlease note, that all this files combines [Flask settings](http://flask.pocoo.org/docs/0.12/config/), [Celery settings](http://docs.celeryproject.org/en/latest/userguide/configuration.html), and Fractalis settings, which are all listed and documented within this file. \nPlease don't overwrite default settings if you don't know what you are doing. This might have severe implications for security or might cause Fractalis to not work correctly.\n\n### Add new analytics\nThis paragraph only describes how to add the statistical analysis part in R or Python. For the visualisation please refer to the [Fractal.js](https://github.com/LCSB-BioCore/Fractal.js/blob/master/README.md) repository.\nAdding new scripts to Fractalis is a matter of inheriting from the [AnalyticTask](https://github.com/LCSB-BioCore/Fractalis/blob/master/fractalis/analytics/task.py) class and well... knowing how to write Python and R scripts.\nThere are a few things that are enforced by the parent class, such as a task name and the existence of a main method, which is communicated to the developer by readable error messages.\nImplementing those will result in a distributable task without any required knowledge of the surrounding frameworks.\nFor an example please have a look at the [correlation analysis script](https://github.com/LCSB-BioCore/Fractalis/blob/master/fractalis/analytics/tasks/correlation/main.py).\n\nInput to the main method are either the parameters submitted by the client or, in the case of special data ids (\"$123654789$\"), the data frame associated with he data id.\n\nOutput of the main method must be JSON serializable. The content however is up to the developer.  \n\n### Add support for new services\nPlease refer to [this document](fractalis/data).\n\n### Citation\nhttps://academic.oup.com/gigascience/article/7/9/giy109/5082751\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flcsb-biocore%2Ffractalis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flcsb-biocore%2Ffractalis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flcsb-biocore%2Ffractalis/lists"}