Name | cpg-flow JSON |
Version |
0.1.0a11
JSON |
| download |
home_page | None |
Summary | CPG Flow API for Hail Batch |
upload_time | 2024-12-13 05:05:41 |
maintainer | None |
docs_url | None |
author | None |
requires_python | <3.11,>=3.10 |
license | MIT License Copyright (c) 2022 Centre for Population Genomics Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
hail
flow
api
bioinformatics
genomics
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<!-- markdownlint-disable MD033 MD024 -->
# ๐ CPG Flow
<img src="/assets/DNA_CURIOUS_FLOYD_CROPPED.png" height="300" alt="CPG Flow logo" align="right"/>
![Python](https://img.shields.io/badge/-Python-black?style=for-the-badge&logoColor=white&logo=python&color=2F73BF)
TODO: Badges
Will look something like this
[![โ๏ธ Build Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml)
[![๐ Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml)
[![GitHub release](https://img.shields.io/github/release/antoinezanardi/werewolves-assistant-api-next.svg)](https://GitHub.com/antoinezanardi/werewolves-assistant-api-next/releases/)
[![semantic-release: conventional commits](https://img.shields.io/badge/semantic--release-conventional%20commits-ร1A7DBD?logo=semantic-release&color=1E7FBF)](https://github.com/semantic-release/semantic-release)
[![GitHub license](https://img.shields.io/github/license/antoinezanardi/werewolves-assistant-api-next.svg)](https://github.com/antoinezanardi/https://img.shields.io/github/license/werewolves-assistant-api-next.svg/blob/main/LICENSE)
![Dependencies](https://img.shields.io/badge/-dependencies-black?style=flat-square&logoColor=white&logo=pnpm&color=B76507)[![Known Vulnerabilities](https://snyk.io/test/github/antoinezanardi/werewolves-assistant-api-next/badge.svg?targetFile=package.json&style=flat-square)](https://snyk.io/test/github/antoinezanardi/werewolves-assistant-api-next?targetFile=package.json)
[![Tests count](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)
[![Scenarios](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)
[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
<br />
## ๐ Table of Contents
1. ๐ [What is this API ?](#what-is-this-api)
2. โจ [Production and development links](#production-and-development-links)
3. ๐จ [Installation](#installation)
4. ๐ [Build](#build)
5. ๐ณ [Docker](#docker)
6. ๐ฏ [Tests](#tests)
7. ๐ฟ [Env variables](#env-variables)
8. โ๏ธ [Code analysis and consistency](#code-analysis-and-consistency)
9. ๐ [Releases & Changelog](#versions)
10. ๐ฌ [GitHub Actions](#github-actions)
11. โจ [Misc commands](#misc-commands)
12. ยฉ๏ธ [License](#license)
13. โค๏ธ [Contributors](#contributors)
## <a name="what-is-this-api">๐ What is this API ?</a>
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.
## <a name="production-and-development-links">โจ Production and development links</a>
### ๐ Production
The production version of this API is available at **[api.werewolves-assistant.com](https://api.werewolves-assistant.com/docs)**.
This API is used by the **[Werewolves Assistant Web App](https://werewolves-assistant.com)**.
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](https://preprod.api.werewolves-assistant.com/docs)**.
This API is used by the **[Werewolves Assistant Web App](https://preprod.werewolves-assistant.com)**.
The development server is updated automatically when a commit is pushed on the `develop` branch.
## <a name="installation">๐จ Installation</a>
To install this project, you will need to have on your machine :
![Node](https://img.shields.io/badge/-nodejs-black?style=for-the-badge&logoColor=white&logo=node.js&color=366A31)
![PNPM](https://img.shields.io/badge/-pnpm-black?style=for-the-badge&logoColor=white&logo=pnpm&color=B76507)
![Docker](https://img.shields.io/badge/-Docker-black?style=for-the-badge&logoColor=white&logo=docker&color=004EA2)
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 :
```bash
# 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](#docker)**.
## <a name="build">๐ Build</a>
TODO
## <a name="docker">๐ณ Docker</a>
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.
```bash
git clone https://github.com/populationgenomics/cpg-flow.git
make init
```
### ๐ Production mode
TODO
### ๐งช Test mode
TODO
## <a name="tests">๐ฏ Tests</a>
### ๐งช Unit and E2E tests
TODO: Test results and badges here (in more detail). Will look something like this.
![Jest](https://img.shields.io/badge/-Jest-black?style=for-the-badge&logoColor=white&logo=jest&color=BF3B14)
[![Tests count](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)
[![Covered Statements](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-statements)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-statements)
[![Covered Branches](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-branches)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-branches)
[![Covered Functions](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-functions)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-functions)
[![Covered Lines](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-lines)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-lines)
### ๐ฅ Acceptance tests
![Cucumber](https://img.shields.io/badge/-Cucumber-black?style=for-the-badge&logoColor=white&logo=cucumber&color=169652)
[![Scenarios](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)
Click on the badge below ๐ to see the **[reports](https://reports.cucumber.io/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18)**.
[![ScenariosReports](https://messages.cucumber.io/api/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18/badge)](https://reports.cucumber.io/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18)
### ๐ฝ Mutant testing
![Stryker](https://img.shields.io/badge/-Stryker-black?style=for-the-badge&logoColor=white&logo=stryker&color=7F1B10)
[![Mutation testing badge](https://img.shields.io/endpoint?style=flat&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fantoinezanardi%2Fwerewolves-assistant-api-next%2Fmain)](https://dashboard.stryker-mutator.io/reports/github.com/antoinezanardi/werewolves-assistant-api-next/main)
You can also check the **[mutation testing report](https://dashboard.stryker-mutator.io/reports/github.com/antoinezanardi/werewolves-assistant-api-next/main#mutant)**.
### โถ๏ธ Commands
Before testing, you must follow the **[installation steps](#installation)**.
TODO
## <a name="env-variables">๐ฟ Env variables</a>
TODO
<!--
Environment variables are :
| Name | Description | Required | Default value | Limitations |
| :-----------------: | :-------------------------------------: | :------: | :-----------: | :----------------------------------------------: |
| `HOST` | Host on which the API will be available | โ | `127.0.0.1` | If set, can't be empty string |
| `PORT` | Port on which the API will be available | โ | `8080` | If set, must be a number between `0` and `65535` |
| `ENVIRONNEMENT` | Environment in which the API will run | โ
| โ | Must be `development`, `production` or `test` |
| `DATABASE_HOST` | MongoDB database host URL | โ
| โ | Can't be empty string |
| `DATABASE_PORT` | MongoDB database port | โ | `undefined` | If set, must be a number between `0` and `65535` |
| `DATABASE_NAME` | MongoDB database name | โ
| โ | Can't be empty string |
| `DATABASE_USERNAME` | MongoDB database user | โ
| โ | Can't be empty string |
| `DATABASE_PASSWORD` | MongoDB database password | โ
| โ | Can't be empty string |
| `CORS_ORIGIN` | CORS allowed origin | โ | `*` | If set, can't be empty string |
-->
## <a name="code-analysis-and-consistency">โ๏ธ Code analysis and consistency</a>
### ๐ Code linting & formatting
![Precommit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)
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](https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/master/.eslintrc.js)**.
### โถ๏ธ Commands
Before linting, you must follow the [installation steps](#installation).
Then, run the following command
```bash
# Lint
pre-commit run --all-files
```
When setting up local linting for development you can also run the following once:
```bash
# 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:
<!--
![CodeQL](https://img.shields.io/badge/-CodeQL-black?style=for-the-badge&logoColor=white&logo=github&color=2781FE)
You can check the **[CodeQL analysis report here](https://github.com/antoinezanardi/werewolves-assistant-api-next/security/code-scanning)**.
![SonarCloud](https://img.shields.io/badge/-SonarCloud-black?style=for-the-badge&logoColor=white&logo=sonarcloud&color=F37A3A)
SonarCloud summary is available **[here](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)**.
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=coverage)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=bugs)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)
-->
## <a name="versions">๐ Releases & Changelog</a>
TODO:
<!--
Releases on **main** branch are generated and published automatically by :
![Semantic Release](https://img.shields.io/badge/-Semantic%20Release-black?style=for-the-badge&logoColor=white&logo=semantic-release&color=000000)
It uses the **[conventional commit](https://www.conventionalcommits.org/en/v1.0.0/)** strategy.
Each change when a new release comes up is listed in the **<a href="https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/master/CHANGELOG.md" target="_blank">CHANGELOG.md file</a>**.
Also, you can keep up with changes by watching releases via the **Watch GitHub button** at the top of this page.
#### ๐ท๏ธ <a href="https://github.com/antoinezanardi/werewolves-assistant-api-next/releases" target="_blank">All releases for this project are available here</a>.
-->
## <a name="github-actions">๐ฌ GitHub Actions</a>
This project uses **GitHub Actions** to automate some boring tasks.
You can find all the workflows in the **[.github/workflows directory](https://github.com/populationgenomics/cpg-flow/tree/main/.github/workflows).**
### ๐ข Workflows
TODO
<!--
| Name | Description & Status | Triggered on |
| :---------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: |
| **[โ๏ธ Build](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml)** | Various checks for app health, code quality and tests coverage<br/><br/>[![โ๏ธ Build Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml) | `push` on `develop` and all pull requests to `develop` |
| **[๐ Lint PR Name Into Develop Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml)** | Checks if pull request name respects `conventionnal-commit` rules<br/><br/>[![๐ Lint PR Name Into Develop Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml) | `pull-request` `created` or `updated` |
| **[โต๏ธ Push On Develop Branch Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml)** | Uploads app with `develop` version to `Docker Hub`<br/><br/>[![โต๏ธ Push On Develop Branch Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml) | `push` on `develop` |
| **[๐๏ธ Upsert PR Release Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml)** | Creates or updates pull request to `main` depending on commits on `develop` since last release<br/><br/>[![๐๏ธ Upsert PR Release Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml) | `push` on `develop` |
| **[๐ท๏ธ Release Creation Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml)** | Creates a new release using `semantic-release` with tag and updated changelog<br/><br/>[![๐ท๏ธ Release Creation Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml) | `push` on `main` |
| **[๐ Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml)** | Deploys app with last tag version to `Docker Hub` and `GCP`<br/><br/>[![๐ Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml) | `tag-creation` |
-->
## <a name="misc-commands">โจ Misc commands</a>
TODO
<!--
### ๐ณ Animated tree visualisation of the project's evolution with **[Gource](https://gource.io/)**
```shell
# Please ensure that `gource` is installed on your system.
pnpm run gource
```
### ๐ Create git branch with a conventional name
```shell
pnpm run script:create-branch
```
### โคด๏ธ Create pull request against the `develop` branch from current branch
```shell
pnpm run script:create-pull-request
```
### ๐ฃ To all IntelliJ IDEs users (IntelliJ, Webstorm, PHPStorm, etc.)
All the above commands are available in the **.run directory** at the root of the project.
You can add them as **run configurations** in your IDE.
-->
## <a name="license">ยฉ๏ธ License</a>
This project is licensed under the [MIT License](http://opensource.org/licenses/MIT).
## <a name="contributors">โค๏ธ Contributors</a>
There is no contributor yet. Want to be the first ?
If you want to contribute to this project, please read the [**contribution guide**](https://github.com/populationgenomics/cpg-flow/blob/master/CONTRIBUTING.md).
Raw data
{
"_id": null,
"home_page": null,
"name": "cpg-flow",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.11,>=3.10",
"maintainer_email": null,
"keywords": "hail, flow, api, bioinformatics, genomics",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/2c/9c/1aca2199a21f0105e1ed6cbf3c2281e27e626266cde971b387dd4147470b/cpg_flow-0.1.0a11.tar.gz",
"platform": null,
"description": "<!-- markdownlint-disable MD033 MD024 -->\n# \ud83d\udc19 CPG Flow\n\n<img src=\"/assets/DNA_CURIOUS_FLOYD_CROPPED.png\" height=\"300\" alt=\"CPG Flow logo\" align=\"right\"/>\n\n![Python](https://img.shields.io/badge/-Python-black?style=for-the-badge&logoColor=white&logo=python&color=2F73BF)\n\nTODO: Badges\nWill look something like this\n\n[![\u2699\ufe0f Build Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml)\n[![\ud83d\ude80 Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml)\n\n[![GitHub release](https://img.shields.io/github/release/antoinezanardi/werewolves-assistant-api-next.svg)](https://GitHub.com/antoinezanardi/werewolves-assistant-api-next/releases/)\n[![semantic-release: conventional commits](https://img.shields.io/badge/semantic--release-conventional%20commits-\u00c61A7DBD?logo=semantic-release&color=1E7FBF)](https://github.com/semantic-release/semantic-release)\n[![GitHub license](https://img.shields.io/github/license/antoinezanardi/werewolves-assistant-api-next.svg)](https://github.com/antoinezanardi/https://img.shields.io/github/license/werewolves-assistant-api-next.svg/blob/main/LICENSE)\n![Dependencies](https://img.shields.io/badge/-dependencies-black?style=flat-square&logoColor=white&logo=pnpm&color=B76507)[![Known Vulnerabilities](https://snyk.io/test/github/antoinezanardi/werewolves-assistant-api-next/badge.svg?targetFile=package.json&style=flat-square)](https://snyk.io/test/github/antoinezanardi/werewolves-assistant-api-next?targetFile=package.json)\n\n[![Tests count](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)\n[![Scenarios](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)\n\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n\n<br />\n\n## \ud83d\udccb Table of Contents\n\n1. \ud83d\udc19 [What is this API ?](#what-is-this-api)\n2. \u2728 [Production and development links](#production-and-development-links)\n3. \ud83d\udd28 [Installation](#installation)\n4. \ud83d\ude80 [Build](#build)\n5. \ud83d\udc33 [Docker](#docker)\n6. \ud83d\udcaf [Tests](#tests)\n7. \ud83c\udf3f [Env variables](#env-variables)\n8. \u2611\ufe0f [Code analysis and consistency](#code-analysis-and-consistency)\n9. \ud83d\udcc8 [Releases & Changelog](#versions)\n10. \ud83c\udfac [GitHub Actions](#github-actions)\n11. \u2728 [Misc commands](#misc-commands)\n12. \u00a9\ufe0f [License](#license)\n13. \u2764\ufe0f [Contributors](#contributors)\n\n## <a name=\"what-is-this-api\">\ud83d\udc19 What is this API ?</a>\n\nWelcome to CPG Flow!\n\nThis 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.\n\nCPG 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.\n\n## <a name=\"production-and-development-links\">\u2728 Production and development links</a>\n\n### \ud83c\udf10 Production\n\nThe production version of this API is available at **[api.werewolves-assistant.com](https://api.werewolves-assistant.com/docs)**.\n\nThis API is used by the **[Werewolves Assistant Web App](https://werewolves-assistant.com)**.\n\nThe 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)\n\n### \ud83d\udee0\ufe0f Development\n\nThe development version of this API is available at **[preprod.api.werewolves-assistant.com](https://preprod.api.werewolves-assistant.com/docs)**.\n\nThis API is used by the **[Werewolves Assistant Web App](https://preprod.werewolves-assistant.com)**.\n\nThe development server is updated automatically when a commit is pushed on the `develop` branch.\n\n## <a name=\"installation\">\ud83d\udd28 Installation</a>\n\nTo install this project, you will need to have on your machine :\n\n![Node](https://img.shields.io/badge/-nodejs-black?style=for-the-badge&logoColor=white&logo=node.js&color=366A31)\n![PNPM](https://img.shields.io/badge/-pnpm-black?style=for-the-badge&logoColor=white&logo=pnpm&color=B76507)\n![Docker](https://img.shields.io/badge/-Docker-black?style=for-the-badge&logoColor=white&logo=docker&color=004EA2)\n\nWe recommend to use the node version specified in the `.nvmrc` file.\n\n**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.**\n\nThen, run the following commands :\n\n```bash\n# Install dependencies and Husky hooks\npnpm install\n\n# Run the app in dev mode\npnpm run start:dev\n```\n\nThe above command will start the app in development mode and watch for changes on local.\n\nYou can also run the app in development mode with Docker, more information in the **[Docker section](#docker)**.\n\n## <a name=\"build\">\ud83d\ude80 Build</a>\n\nTODO\n\n## <a name=\"docker\">\ud83d\udc33 Docker</a>\n\nTODO\n\n### \ud83d\udd28 Development mode\n\nTo 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.\n\n```bash\ngit clone https://github.com/populationgenomics/cpg-flow.git\nmake init\n```\n\n### \ud83d\ude80 Production mode\n\nTODO\n\n### \ud83e\uddea Test mode\n\nTODO\n\n## <a name=\"tests\">\ud83d\udcaf Tests</a>\n\n### \ud83e\uddea Unit and E2E tests\n\nTODO: Test results and badges here (in more detail). Will look something like this.\n\n![Jest](https://img.shields.io/badge/-Jest-black?style=for-the-badge&logoColor=white&logo=jest&color=BF3B14)\n\n[![Tests count](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/tests-count)\n\n[![Covered Statements](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-statements)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-statements)\n\n[![Covered Branches](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-branches)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-branches)\n\n[![Covered Functions](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-functions)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-functions)\n\n[![Covered Lines](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-lines)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/covered-lines)\n\n### \ud83e\udd52 Acceptance tests\n\n![Cucumber](https://img.shields.io/badge/-Cucumber-black?style=for-the-badge&logoColor=white&logo=cucumber&color=169652)\n\n[![Scenarios](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)](https://byob.yarr.is/antoinezanardi/werewolves-assistant-api-next/scenarios)\n\nClick on the badge below \ud83d\udc47 to see the **[reports](https://reports.cucumber.io/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18)**.\n\n[![ScenariosReports](https://messages.cucumber.io/api/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18/badge)](https://reports.cucumber.io/report-collections/9a53c3ab-ff98-43ce-977d-4b6ba9f9ae18)\n\n### \ud83d\udc7d Mutant testing\n\n![Stryker](https://img.shields.io/badge/-Stryker-black?style=for-the-badge&logoColor=white&logo=stryker&color=7F1B10)\n\n[![Mutation testing badge](https://img.shields.io/endpoint?style=flat&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fantoinezanardi%2Fwerewolves-assistant-api-next%2Fmain)](https://dashboard.stryker-mutator.io/reports/github.com/antoinezanardi/werewolves-assistant-api-next/main)\n\nYou can also check the **[mutation testing report](https://dashboard.stryker-mutator.io/reports/github.com/antoinezanardi/werewolves-assistant-api-next/main#mutant)**.\n\n### \u25b6\ufe0f Commands\n\nBefore testing, you must follow the **[installation steps](#installation)**.\n\nTODO\n\n## <a name=\"env-variables\">\ud83c\udf3f Env variables</a>\n\nTODO\n\n<!--\nEnvironment variables are :\n\n| Name | Description | Required | Default value | Limitations |\n| :-----------------: | :-------------------------------------: | :------: | :-----------: | :----------------------------------------------: |\n| `HOST` | Host on which the API will be available | \u274c | `127.0.0.1` | If set, can't be empty string |\n| `PORT` | Port on which the API will be available | \u274c | `8080` | If set, must be a number between `0` and `65535` |\n| `ENVIRONNEMENT` | Environment in which the API will run | \u2705 | \u274c | Must be `development`, `production` or `test` |\n| `DATABASE_HOST` | MongoDB database host URL | \u2705 | \u274c | Can't be empty string |\n| `DATABASE_PORT` | MongoDB database port | \u274c | `undefined` | If set, must be a number between `0` and `65535` |\n| `DATABASE_NAME` | MongoDB database name | \u2705 | \u274c | Can't be empty string |\n| `DATABASE_USERNAME` | MongoDB database user | \u2705 | \u274c | Can't be empty string |\n| `DATABASE_PASSWORD` | MongoDB database password | \u2705 | \u274c | Can't be empty string |\n| `CORS_ORIGIN` | CORS allowed origin | \u274c | `*` | If set, can't be empty string |\n-->\n\n\n## <a name=\"code-analysis-and-consistency\">\u2611\ufe0f Code analysis and consistency</a>\n\n### \ud83d\udd0d Code linting & formatting\n\n![Precommit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)\n\nIn order to keep the code clean, consistent and free of bad TS practices, more than **300 ESLint rules are activated** !\n\nComplete list of all enabled rules is available in the **[.eslintrc.js file](https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/master/.eslintrc.js)**.\n\n### \u25b6\ufe0f Commands\n\nBefore linting, you must follow the [installation steps](#installation).\n\nThen, run the following command\n\n```bash\n# Lint\npre-commit run --all-files\n```\n\nWhen setting up local linting for development you can also run the following once:\n\n```bash\n# Install the pre-commit hook\npre-commit install\n```\n\n### \ud83e\udd47 Project quality scanner\n\nMultiple tools are set up to maintain the best code quality and to prevent vulnerabilities:\n\nTODO:\n<!--\n![CodeQL](https://img.shields.io/badge/-CodeQL-black?style=for-the-badge&logoColor=white&logo=github&color=2781FE)\n\nYou can check the **[CodeQL analysis report here](https://github.com/antoinezanardi/werewolves-assistant-api-next/security/code-scanning)**.\n\n![SonarCloud](https://img.shields.io/badge/-SonarCloud-black?style=for-the-badge&logoColor=white&logo=sonarcloud&color=F37A3A)\n\nSonarCloud summary is available **[here](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)**.\n\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=coverage)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=antoinezanardi_werewolves-assistant-api-next&metric=bugs)](https://sonarcloud.io/summary/new_code?id=antoinezanardi_werewolves-assistant-api-next)\n-->\n\n## <a name=\"versions\">\ud83d\udcc8 Releases & Changelog</a>\n\nTODO:\n\n<!--\nReleases on **main** branch are generated and published automatically by :\n\n![Semantic Release](https://img.shields.io/badge/-Semantic%20Release-black?style=for-the-badge&logoColor=white&logo=semantic-release&color=000000)\n\nIt uses the **[conventional commit](https://www.conventionalcommits.org/en/v1.0.0/)** strategy.\n\nEach change when a new release comes up is listed in the **<a href=\"https://github.com/antoinezanardi/werewolves-assistant-api-next/blob/master/CHANGELOG.md\" target=\"_blank\">CHANGELOG.md file</a>**.\n\nAlso, you can keep up with changes by watching releases via the **Watch GitHub button** at the top of this page.\n\n#### \ud83c\udff7\ufe0f <a href=\"https://github.com/antoinezanardi/werewolves-assistant-api-next/releases\" target=\"_blank\">All releases for this project are available here</a>.\n\n-->\n\n## <a name=\"github-actions\">\ud83c\udfac GitHub Actions</a>\n\nThis project uses **GitHub Actions** to automate some boring tasks.\n\nYou can find all the workflows in the **[.github/workflows directory](https://github.com/populationgenomics/cpg-flow/tree/main/.github/workflows).**\n\n### \ud83c\udfa2 Workflows\n\nTODO\n<!--\n| Name | Description & Status | Triggered on |\n| :---------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: |\n| **[\u2699\ufe0f Build](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml)** | Various checks for app health, code quality and tests coverage<br/><br/>[![\u2699\ufe0f Build Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/build.yml) | `push` on `develop` and all pull requests to `develop` |\n| **[\ud83d\udd03 Lint PR Name Into Develop Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml)** | Checks if pull request name respects `conventionnal-commit` rules<br/><br/>[![\ud83d\udd03 Lint PR Name Into Develop Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/lint-pr-name-into-develop.yml) | `pull-request` `created` or `updated` |\n| **[\u26f5\ufe0f Push On Develop Branch Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml)** | Uploads app with `develop` version to `Docker Hub`<br/><br/>[![\u26f5\ufe0f Push On Develop Branch Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/push-on-develop.yml) | `push` on `develop` |\n| **[\ud83d\udd03\ufe0f Upsert PR Release Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml)** | Creates or updates pull request to `main` depending on commits on `develop` since last release<br/><br/>[![\ud83d\udd03\ufe0f Upsert PR Release Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/upsert-pr-release.yml) | `push` on `develop` |\n| **[\ud83c\udff7\ufe0f Release Creation Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml)** | Creates a new release using `semantic-release` with tag and updated changelog<br/><br/>[![\ud83c\udff7\ufe0f Release Creation Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/release-creation.yml) | `push` on `main` |\n| **[\ud83d\ude80 Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml)** | Deploys app with last tag version to `Docker Hub` and `GCP`<br/><br/>[![\ud83d\ude80 Deploy To Production Workflow](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml/badge.svg)](https://github.com/antoinezanardi/werewolves-assistant-api-next/actions/workflows/deploy-to-production.yml) | `tag-creation` |\n\n-->\n\n## <a name=\"misc-commands\">\u2728 Misc commands</a>\n\nTODO\n\n<!--\n### \ud83c\udf33 Animated tree visualisation of the project's evolution with **[Gource](https://gource.io/)**\n```shell\n# Please ensure that `gource` is installed on your system.\npnpm run gource\n```\n\n### \ud83d\udd00 Create git branch with a conventional name\n```shell\npnpm run script:create-branch\n```\n\n### \u2934\ufe0f Create pull request against the `develop` branch from current branch\n```shell\npnpm run script:create-pull-request\n```\n\n### \ud83d\udce3 To all IntelliJ IDEs users (IntelliJ, Webstorm, PHPStorm, etc.)\n\nAll the above commands are available in the **.run directory** at the root of the project.\n\nYou can add them as **run configurations** in your IDE.\n\n-->\n\n## <a name=\"license\">\u00a9\ufe0f License</a>\n\nThis project is licensed under the [MIT License](http://opensource.org/licenses/MIT).\n\n## <a name=\"contributors\">\u2764\ufe0f Contributors</a>\n\nThere is no contributor yet. Want to be the first ?\n\nIf you want to contribute to this project, please read the [**contribution guide**](https://github.com/populationgenomics/cpg-flow/blob/master/CONTRIBUTING.md).\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2022 Centre for Population Genomics Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
"summary": "CPG Flow API for Hail Batch",
"version": "0.1.0a11",
"project_urls": {
"Repository": "https://github.com/populationgenomics/cpg-flow"
},
"split_keywords": [
"hail",
" flow",
" api",
" bioinformatics",
" genomics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "47280d1dcc79cc614ffab846055ae1062fb3b787a385e7fc2a8fa88d4f3e249f",
"md5": "9be592b65f2e29884297d0fef7dc8cde",
"sha256": "91e4d668c8ac669d0542ee17fe304b19b2d72d7a70415097e49ba6a816cb0c60"
},
"downloads": -1,
"filename": "cpg_flow-0.1.0a11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9be592b65f2e29884297d0fef7dc8cde",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.11,>=3.10",
"size": 59486,
"upload_time": "2024-12-13T05:05:40",
"upload_time_iso_8601": "2024-12-13T05:05:40.158470Z",
"url": "https://files.pythonhosted.org/packages/47/28/0d1dcc79cc614ffab846055ae1062fb3b787a385e7fc2a8fa88d4f3e249f/cpg_flow-0.1.0a11-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2c9c1aca2199a21f0105e1ed6cbf3c2281e27e626266cde971b387dd4147470b",
"md5": "baf8fab0f74d2451f38d9b635dbdc104",
"sha256": "6c74a8d28c7c6852a19058fd1c7f06790a85d1b0c597de50227d9f7a727a9eab"
},
"downloads": -1,
"filename": "cpg_flow-0.1.0a11.tar.gz",
"has_sig": false,
"md5_digest": "baf8fab0f74d2451f38d9b635dbdc104",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.11,>=3.10",
"size": 992416,
"upload_time": "2024-12-13T05:05:41",
"upload_time_iso_8601": "2024-12-13T05:05:41.579787Z",
"url": "https://files.pythonhosted.org/packages/2c/9c/1aca2199a21f0105e1ed6cbf3c2281e27e626266cde971b387dd4147470b/cpg_flow-0.1.0a11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-13 05:05:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "populationgenomics",
"github_project": "cpg-flow",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cpg-flow"
}