GithubHelp home page GithubHelp logo

oicr-gsi / djerba Goto Github PK

View Code? Open in Web Editor NEW
7.0 3.0 2.0 36.04 MB

Create cancer bioinformatics reports from metadata and workflow output

License: GNU General Public License v3.0

Python 68.76% HTML 19.94% R 10.72% Shell 0.22% CSS 0.37%

djerba's Introduction

Djerba

Djerba

Modular system to create reports from metadata and workflow output

Introduction

The Djerba software:

  • translates cancer bioinformatics workflow outputs and metadata into clinical reports;
  • has a modular structure based on plugins;
  • is named for an island off the coast of North Africa -- the initial letter D is silent, so it is pronounced "jerba";
  • is developed and maintained by the Clinical Genome Informatics (CGI) group at OICR.

Documentation

Structure

Workflow steps

Generating a report with Djerba has the following steps:

  1. Configure an INI file
  2. Extract metrics to a JSON file
  3. Render the JSON to HTML
  4. Publish the HTML as PDF

In addition, Djerba supports:

  • Archiving the JSON report documents to a CouchDB database.
  • Updating a JSON document with revised summary text and/or PHI (as of version 1.3.0).

Software components

Reports are generated by the following types of component:

  • Core: Central element of Djerba. Runs other components, as specified in the INI config file, to generate a report.
  • Plugin: Main component type. Has its own configure, extract, and render operations.
  • Helper: Writes ancillary files for use by plugins.
  • Merger: Merges inputs from multiple plugins to generate an HTML section.

The report document is made up of one or more sections, generated by running plugins, helpers, and mergers in a specific order.

Installation and package locations

Djerba is primarily written in Python. It has a setup.py script and can be installed using pip. PDF conversion requires the wkhtmltopdf binary, and individual plugins may have dependencies on other languages such as R.

The Djerba core code is contained in a Python package called djerba. Djerba components (plugins, helpers, and mergers) are also Python packages. As of version 1.6.0, Djerba supports loading components from locations other than the main djerba package.

See ReadTheDocs for details.

History

See the changelog for a detailed development history. In brief:

  • 2020-09: Early prototype addressing cBioPortal as well as the CGI clinical reporting format.
  • 2021-05: Change of scope to focus exclusively on CGI clinical reports.
  • 2022-01: Version 0.1.0. First production release of Djerba for CGI reports.
  • 2022-02: Version 0.2.0. Incremental improvements and bugfixes.
  • 2022-06: Version 0.3.0. Write reporting data in a machine-readable JSON document. Generate HTML with Mako templates (replacing Rmarkdown).
  • 2023-03: Version 0.4.0. Upload the JSON document to a CouchDB database. (Prototyped in version 0.3.15, 2022-12.)
  • 2023-11: Version 1.0.0. Major upgrade and refactoring to support a plugin structure.

Copyright and License

Copyright © 2020-2024 by Genome Sequence Informatics, Ontario Institute for Cancer Research.

Licensed under the GPL 3.0 license.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.