From 3fd2c02052ce16c52e11d5b01ef0696727d7b0a3 Mon Sep 17 00:00:00 2001 From: Juan Esteban Arango Ossa Date: Fri, 1 Nov 2024 11:53:27 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=92=20organize=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 137 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 71 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index 2d1013e..bde141b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +# IPSS-M API and CLI + [![Compute IPSS-M and IPSS-M Risks on IWG-PM Cohort (Bernard et al, 2022 NJEM Evid)](https://github.com/papaemmelab/ipssm-js/actions/workflows/risk-scores-test.yml/badge.svg)](https://github.com/papaemmelab/ipssm-js/actions/workflows/risk-scores-test.yml) [![Can be run as CLI](https://github.com/papaemmelab/ipssm-js/actions/workflows/cli-test.yml/badge.svg)](https://github.com/papaemmelab/ipssm-js/actions/workflows/cli-test.yml) @@ -10,41 +12,98 @@ > [!important] > **You may use `IPSS-M API`, the underlying content, and any output therefrom for personal for academic and research and noncommercial purposes only. See [LICENSE](LICENSE) for more details.** -# ipssm API and CLI - -⚡️ API Reference Available at: https://api.mds-risk-model.com - API and CLI of the Molecular International Prognostic Scoring System (IPSS-M) for Myelodysplastic Syndromes. -- For the R package, see [papaemmelab/ipssm](https://github.com/papaemmelab/ipssm). +⚡️ API Reference Available at: https://api.mds-risk-model.com +- For the R package, see [https://github.com/papaemmelab/ipssm](https://github.com/papaemmelab/ipssm). - For the Online Web Calculator, visit [https://mds-risk-model.com](https://mds-risk-model.com). ## Table of contents - [📖 IPSS-M Publication](#page_with_curl-ipss-m-publication) +- [🗒️ Input Variables Definition](#spiral_notepad-input-variables-definition) - [🚀 API Usage](#rocket-api-usage) + - [🧬 IPSS-M API Endpoint](#dna-ipss-m-api-endpoint) + - [🆎 IPSS-R API Endpoint](#ab-ipss-r-api-endpoint) - [🤖 CLI Usage](#robot-cli-usage) - [🔥 Using it as a node/javascript package](#fire-using-it-as-a-nodejavascript-package) - [💥 IPSS-M](#boom-ipss-m) - [⚡️ IPSS-R and IPSS-R (Age adjusted)](#zap-ipss-r-and-ipss-r-age-adjusted) - [🎯 Annotating batch from CSV/Excel file](#dart-annotating-batch-from-csvexcel-file) -- [🗒️ Input Variables Definition](#spiral_notepad-input-variables-definition) +- [👨🏻‍💻 Development](#-development) - [❓ Question](#question-question) -[inputs](#inputs) - ## :page_with_curl: IPSS-M Publication >**Bernard E**, Tuechler H, Greenberg PL, Hasserjian RP, Arango Ossa JE et al. **Molecular International Prognostic Scoring System for Myelodysplastic Syndromes**, *NEJM Evidence* 2022. https://evidence.nejm.org/doi/full/10.1056/EVIDoa2200008 + + + +## :spiral_notepad: Input Variables Definition + +Note: Values for mutations: + +- `0` means wild-type (non-mutated) +- `1` means mutated, and +- `NA` means 'Not Asssesed'. + +| Category | Variable Explanation | Variable | type, and Unit | Possible Value | +|----------------------------|-------------------------------|--------------|----------------------------------|-------------------------------------------------------------| +| clinical | Hemoglobin | `HB` | float, in g/dL | [`4`-`20`] | +| clinical | Platelets | `PLT` | float, in Giga/L | [`0`-`2000`] | +| clinical | Bone Marrow Blasts | `BM_BLAST` | float, in % | [`0`-`30`] | +| clinical (only for IPSS-R) | Absolute Neutrophil Count | `ANC` | float, in Giga/L | [`0`-`15`] | +| clinical (only for IPSS-RA)| Bone Marrow Blasts | `AGE` | float, in years | [`18`-`120`] | +| cytogenetics | Presence of del(5q) | `del5q` | integer | `0`/`1` | +| cytogenetics | Presence of -7/del(7q) | `del7_7q` | integer | `0`/`1` | +| cytogenetics | Presence of -17/del(17p) | `del17_17p` | integer | `0`/`1` | +| cytogenetics | Complex karyotype | `complex` | integer | `0`/`1` | +| cytogenetics | Cytogenetics Category | `CYTO_IPSSR` | string | `Very Good`/`Good`/`Intermediate`/`Poor`/`Very Poor` | +| TP53 locus | Number of TP53 mutations | `TP53mut` | string | `0`/`1`/`2 or more` | +| TP53 locus | Maximum TP53 VAF | `TP53maxvaf` | float, between 0 and 1 | [`0`-`1`] | +| TP53 locus | Loss of heterozygosity at TP53| `TP53loh` | integer: 0 or 1, string `'NA'` | `0`/`1` | +| MLL and FLT3 mutations | MLL PTD | `MLL_PTD` | integer: 0 or 1, string `'NA'` | `0`/`1` / `NA` | +| MLL and FLT3 mutations | FLT3 ITD or TKD | `FLT3` | integer: 0 or 1, string `'NA'` | `0`/`1` | +| gene main effect | ASXL1 | `ASXL1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | CBL | `CBL` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | DNMT3A | `DNMT3A` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | ETV6 | `ETV6` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | EZH2 | `EZH2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | IDH2 | `IDH2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | KRAS | `KRAS` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | NPM1 | `NPM1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | NRAS | `NRAS` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | RUNX1 | `RUNX1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | SF3B1 | `SF3B1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | SRSF2 | `SRSF2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene main effect | U2AF1 | `U2AF1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | BCOR | `BCOR` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | BCORL1 | `BCORL1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | CEBPA | `CEBPA` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | ETNK1 | `ETNK1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | GATA2 | `GATA2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | GNB1 | `GNB1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | IDH1 | `IDH1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | NF1 | `NF1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | PHF6 | `PHF6` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | PPM1D | `PPM1D` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | PTPN11 | `PTPN11` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | PRPF8 | `PRPF8` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | SETBP1 | `SETBP1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | STAG2 | `STAG2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | +| gene residual | WT1 | `WT1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | + ## :rocket: API Usage The API is available at: https://api.mds-risk-model.com -- **IPSS-M endpoint:** `/ipssm` +### :dna: IPSS-M API Endpoint + +Endpoint: `POST` `/ipssm` ```bash curl \ @@ -114,7 +173,9 @@ curl \ } ``` -- **IPSS-R endpoint:** `/ipssr` +### :ab: IPSS-R API Endpoint + +Endpoint: `POST` `/ipssr` ```bash $ curl \ @@ -325,62 +386,6 @@ const outputFile = 'IPSSMexample.annotated.xlsx' await annotateFile(inputFile, outputFile) ``` - - - -## :spiral_notepad: Input Variables Definition - -Note: Values for mutations: - -- `0` means wild-type (non-mutated) -- `1` means mutated, and -- `NA` means 'Not Asssesed'. - -| Category | Variable Explanation | Variable | type, and Unit | Possible Value | -|----------------------------|-------------------------------|--------------|----------------------------------|-------------------------------------------------------------| -| clinical | Hemoglobin | `HB` | float, in g/dL | [`4`-`20`] | -| clinical | Platelets | `PLT` | float, in Giga/L | [`0`-`2000`] | -| clinical | Bone Marrow Blasts | `BM_BLAST` | float, in % | [`0`-`30`] | -| clinical (only for IPSS-R) | Absolute Neutrophil Count | `ANC` | float, in Giga/L | [`0`-`15`] | -| clinical (only for IPSS-RA)| Bone Marrow Blasts | `AGE` | float, in years | [`18`-`120`] | -| cytogenetics | Presence of del(5q) | `del5q` | integer | `0`/`1` | -| cytogenetics | Presence of -7/del(7q) | `del7_7q` | integer | `0`/`1` | -| cytogenetics | Presence of -17/del(17p) | `del17_17p` | integer | `0`/`1` | -| cytogenetics | Complex karyotype | `complex` | integer | `0`/`1` | -| cytogenetics | Cytogenetics Category | `CYTO_IPSSR` | string | `Very Good`/`Good`/`Intermediate`/`Poor`/`Very Poor` | -| TP53 locus | Number of TP53 mutations | `TP53mut` | string | `0`/`1`/`2 or more` | -| TP53 locus | Maximum TP53 VAF | `TP53maxvaf` | float, between 0 and 1 | [`0`-`1`] | -| TP53 locus | Loss of heterozygosity at TP53| `TP53loh` | integer: 0 or 1, string `'NA'` | `0`/`1` | -| MLL and FLT3 mutations | MLL PTD | `MLL_PTD` | integer: 0 or 1, string `'NA'` | `0`/`1` / `NA` | -| MLL and FLT3 mutations | FLT3 ITD or TKD | `FLT3` | integer: 0 or 1, string `'NA'` | `0`/`1` | -| gene main effect | ASXL1 | `ASXL1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | CBL | `CBL` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | DNMT3A | `DNMT3A` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | ETV6 | `ETV6` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | EZH2 | `EZH2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | IDH2 | `IDH2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | KRAS | `KRAS` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | NPM1 | `NPM1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | NRAS | `NRAS` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | RUNX1 | `RUNX1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | SF3B1 | `SF3B1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | SRSF2 | `SRSF2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene main effect | U2AF1 | `U2AF1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | BCOR | `BCOR` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | BCORL1 | `BCORL1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | CEBPA | `CEBPA` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | ETNK1 | `ETNK1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | GATA2 | `GATA2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | GNB1 | `GNB1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | IDH1 | `IDH1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | NF1 | `NF1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | PHF6 | `PHF6` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | PPM1D | `PPM1D` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | PTPN11 | `PTPN11` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | PRPF8 | `PRPF8` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | SETBP1 | `SETBP1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | STAG2 | `STAG2` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | -| gene residual | WT1 | `WT1` | integer: 0 or 1, string `'NA'` | `0`/`1`/`NA` | ## :question: Question