Giter VIP home page Giter VIP logo

epoc-aki's Introduction

The EPOC-AKI Study

Evaluation of the Predictive value of short-term Oliguria and minor Creatinine increases for Acute Kidney Injury (AKI) in ICU

Data Overview

Definitions

Data Overview

Changes in Creatinine Episodes:

  • Creatinine change during episode (µmol/L): Δcr
  • Duration of creatinine change episode (hrs): Δtcr_ch = Ti - (Ti - δt)
  • Time between end of cr change epis and AKI (hrs or NA): Δtaki = TAKI - Ti

Oliguria Episodes:

  • Time Oliguria identified: Tolig = T0
  • Time Oliguria episode started: Tolig_4 = T0 - 4
  • Time between olig epis and AKI (hrs or NA): Δtaki - TAKI - T0

Exploration

Data Exploration

Example: Significant difference in creatinine changes 8 < Δtcr_ch < 12 between 'No AKI' and 'tAKI in 4-8 hrs'

Running

  1. Clone the repository and open the R project file epoc-aki.Rproj with RStudio

    git clone [email protected]:alwinw/epoc-api.git
  2. Preview the relevant bookdown file

    • Option 1: Open the file directly in RStudio

      1. Open up the bookdown index, e.g. doc/full/index.Rmd
      2. In RStudio run Addins > Preview Book, or from the console run
      bookdown::serve_book()
    • Option 2: Run serve_book from the console

      bookdown::serve_book(dir = "doc/full/")
  3. Preview the bookdown site at http://localhost:4321/ or http://127.0.0.1:4321/

Contributors

Alwin Wang and Lisa Toh

Acknowledgements

Activity

GitHub commit activity GitHub last commit Visits GitHub repo size in bytes Total Lines

License

GitHub

epoc-aki's People

Contributors

alwinw avatar lymt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

epoc-aki's Issues

Check inclusion criteria and episode numbers

Running with and without a filter for Excl_criteria_ok results in differing values

filter(Excl_criteria_ok == 1) %>%  # TODO If no filter, there is an 'extra' one
  select(`UR number`, starts_with("Total_no_")) %>%
  mutate(
    Total_no_cr_epis = if_else(
      is.na(Total_no_cr_epis), " 0 cr epis", sprintf("%2d cr epis", Total_no_cr_epis)),
    Total_no_olig_epis = if_else(
      is.na(Total_no_olig_epis), " 0 olig epis", sprintf("%2d olig epis", Total_no_olig_epis)),
  ) %>%
  group_by(Total_no_cr_epis, Total_no_olig_epis) %>%
  summarise(
    Admissions = n(),
  ) %>%
  ungroup() %>%
  pivot_wider(names_from = Total_no_olig_epis, values_from = Admissions) %>%
  adorn_totals(c("row", "col")) %>% 
  • Determine source of error
  • Robustly correct error
  • Update table to give Excl criteria not ok as a row as well

AKI Prediction Score

  • Create a score based on multivariable model to predict probability of AKI (e.g. weight score)
  • Clinically relevant explanation

Added benefit of cr change to multivariable model

True and false positive rates

Another approach to assessing value is to calculate the change in true and false positive rates at a clinical relevant risk threshold…which here could be 15% and/or 20%

  • Calculate TP and FP rates for with/without cr_change
  • Clinical relevance and risk threshold

AUC 95% CI

All AUCs have 95% Cis and we should show that the Cis of this model and of the one below do not overlap with the clinical model in isolation.

  • Calculate 95% CIs for with/without cr_change
  • Ensure they do not overlap

Net Reclassification Index

We should consider the net reclassification index (NRI)

  • Calculate NRI

Brier Score

Consider calculating the Brier score. The Brier Score is a strictly proper score function or strictly proper scoring rule that measures the accuracy of probabilistic predictions.

  • Calculate Brier score

Update Figures

  • Figure 3: Change one of the blue or purple lines to red
  • Figure 3: For the optimal cut off point provide a value.
    For example: what is the optimal ARBOC score is XXXX
    Please provide an AUC for delta creat alone
  • Supplementary Figure 2: It would be extra nice to have a box to report the sensitivity and specificity and AUC of a creat change > 1mcmol/L/hr in isolation ......and place it above the blue bit for comparison with the full model.

Model Additions

  • remove APACHE from model
  • stages 2 and 3 aki as outcome
  • RRT as outcome (likely not feasible as only 6 pts)
  • gender in model
  • mechanically ventilated in model (Mecvenadm)
  • ABG data only vs. ABG + UEC creatinines
  • redo all the pt characteristics / demographics as 3 additional pts excluded b/c they didn't have enough cr measurements (387 -> 384)

Data Source

How can I access the data source? Sincerely.

Statistics for Arboc Score

  • Should we add a columns with NPV, PPV, +ve LR, -ve LR sensitivity and specificity ...or at least PPV and NPV?

Update how `Event` is calculated

03_screening_log

  mutate(
    Total_rows = n(),
    duplicates = Total_admissions != Total_rows,
    Event      = if_else(is.na(Pt_Study_no_olig), 0, 1),
    Event      = if_else(is.na(Pt_Study_no_crch), 0, 2) + Event
    ) %>%
  • Change to Epis_cr_change
  • Rerun to check
  • Change to factor

Figures and Tables

Maximum of 8 total

  • Figure of flow diagram showing number of pts and inclusion/exclusion
  • Figure showing change in creatinine and AKI development timeframe (time vs creatinine level)
  • Figure showing heatmap of creatinine changes and AKI
  • Table of pts demographics (that met the inclusion criteria)
  • Table of cr only as predictor
  • Table of multivariable model

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.