Skip to content

populationgenomics/cpg-flow

Repository files navigation

πŸ™ CPG Flow

CPG Flow logo

Python

TODO: Badges Will look something like this

βš™οΈ Build Workflow πŸš€ Deploy To Production Workflow

GitHub release semantic-release: conventional commits GitHub license DependenciesKnown Vulnerabilities

Tests count Scenarios

Technical Debt Duplicated Lines (%) Code Smells


πŸ“‹ Table of Contents

  1. πŸ™ What is this API ?
  2. ✨ Production and development links
  3. πŸ”¨ Installation
  4. πŸš€ Build
  5. 🐳 Docker
  6. πŸ’― Tests
  7. 🌿 Env variables
  8. β˜‘οΈ Code analysis and consistency
  9. πŸ“ˆ Releases & Changelog
  10. 🎬 GitHub Actions
  11. ✨ Misc commands
  12. ©️ License
  13. ❀️ Contributors

Welcome to CPG Flow!

This API provides a set of tools and workflows for managing population genomics data pipelines, designed to streamline the processing, analysis, and storage of large-scale genomic datasets. It facilitates automated pipeline execution, enabling reproducible research while integrating with cloud-based resources for scalable computation.

CPG Flow supports various stages of genomic data processing, from raw data ingestion to final analysis outputs, making it easier for researchers to manage and scale their population genomics workflows.

🌐 Production

The production version of this API is available at api.werewolves-assistant.com.

This API is used by the Werewolves Assistant Web App.

The production server is updated automatically with the latest version of the API when a new release is created. (When a new tag is pushed on the main branch)

πŸ› οΈ Development

The development version of this API is available at preprod.api.werewolves-assistant.com.

This API is used by the Werewolves Assistant Web App.

The development server is updated automatically when a commit is pushed on the develop branch.

To install this project, you will need to have on your machine :

Node PNPM Docker

We recommend to use the node version specified in the .nvmrc file.

If you don't have pnpm installed, you can still use npm for all commands below, but we recommend to use pnpm for faster and more reliable installs.

Then, run the following commands :

# Install dependencies and Husky hooks
pnpm install

# Run the app in dev mode
pnpm run start:dev

The above command will start the app in development mode and watch for changes on local.

You can also run the app in development mode with Docker, more information in the Docker section.

TODO

TODO

πŸ”¨ Development mode

To develop on this project first clone the repository. Then use the make init to setup for development. This will install the pre-commit hooks and requirements.

git clone https://github.com/populationgenomics/cpg-flow.git
make init

πŸš€ Production mode

TODO

πŸ§ͺ Test mode

TODO

πŸ§ͺ Unit and E2E tests

TODO: Test results and badges here (in more detail). Will look something like this.

Jest

Tests count

Covered Statements

Covered Branches

Covered Functions

Covered Lines

πŸ₯’ Acceptance tests

Cucumber

Scenarios

Click on the badge below πŸ‘‡ to see the reports.

ScenariosReports

πŸ‘½ Mutant testing

Stryker

Mutation testing badge

You can also check the mutation testing report.

▢️ Commands

Before testing, you must follow the installation steps.

TODO

TODO

πŸ” Code linting & formatting

Precommit

In order to keep the code clean, consistent and free of bad TS practices, more than 300 ESLint rules are activated !

Complete list of all enabled rules is available in the .eslintrc.js file.

▢️ Commands

Before linting, you must follow the installation steps.

Then, run the following command

# Lint
pre-commit run --all-files

When setting up local linting for development you can also run the following once:

# Install the pre-commit hook
pre-commit install

πŸ₯‡ Project quality scanner

Multiple tools are set up to maintain the best code quality and to prevent vulnerabilities:

TODO:

TODO:

This project uses GitHub Actions to automate some boring tasks.

You can find all the workflows in the .github/workflows directory.

🎒 Workflows

TODO

TODO

This project is licensed under the MIT License.

There is no contributor yet. Want to be the first ?

If you want to contribute to this project, please read the contribution guide.