Skip to main content

CPG Flow API for Hail Batch

Project description

🐙 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

🐙 What is this API ?

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 and development links

🌐 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.

🔨 Installation

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.

🚀 Build

TODO

🐳 Docker

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

💯 Tests

🧪 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

🌿 Env variables

TODO

☑️ Code analysis and consistency

🔍 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:

📈 Releases & Changelog

TODO:

🎬 GitHub Actions

This project uses GitHub Actions to automate some boring tasks.

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

🎢 Workflows

TODO

✨ Misc commands

TODO

©️ License

This project is licensed under the MIT License.

❤️ Contributors

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cpg_flow-0.1.0a8.tar.gz (982.4 kB view details)

Uploaded Source

Built Distribution

cpg_flow-0.1.0a8-py3-none-any.whl (58.7 kB view details)

Uploaded Python 3

File details

Details for the file cpg_flow-0.1.0a8.tar.gz.

File metadata

  • Download URL: cpg_flow-0.1.0a8.tar.gz
  • Upload date:
  • Size: 982.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for cpg_flow-0.1.0a8.tar.gz
Algorithm Hash digest
SHA256 e5f1e2ead72644dffe4e32d61bfb65d5a23d6ec58a11fca6577ac7466febb741
MD5 05ed01a7bba2c9ba27f53079f44b4360
BLAKE2b-256 28c778612154ca5fe8fba9f533f577d3a92fdd9a8469e05414c71aa064e5a590

See more details on using hashes here.

File details

Details for the file cpg_flow-0.1.0a8-py3-none-any.whl.

File metadata

  • Download URL: cpg_flow-0.1.0a8-py3-none-any.whl
  • Upload date:
  • Size: 58.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for cpg_flow-0.1.0a8-py3-none-any.whl
Algorithm Hash digest
SHA256 cc462bfe4c56cc1cc7f0180b32a402e461689c546a43ed1b1626651190c91a74
MD5 1708e78bcfcee2303b21be8ec37a1504
BLAKE2b-256 671c42425aa5dfbfd5d2908cdb43025cd8b73b85805558ebe470abfa3f28eb3c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page