Skip to content

jeevanreji/ECGenius

Repository files navigation

ECGenius

Steps to run

  1. Run ./setup_env.sh
  2. Make sure all dependencies in requirements.txt are installed

File descriptions

dicom_loader.py: Implements a dataloader over torch.utils.data.Dataset for converting Echo-Cardiogram videos (*.dcm files) to torch tensors, passing them through preprocessing

preprocessing.py: Implements transforms over tensors read obtained from dcm files for remaining superfluous information

requirements.txt: Packages needed for running ECGenius

results_generator.py: Script version of python notebooks for running models for a longer duration

runner.py: Implements generic Trainer class to abstract out training and evaluation process

setup_env.sh: Creates symlinks for data and validation directories, creates environment.json for various system-specific parameters that would otherwise need to be hardcoded

checkpoints/: Saves model weights and loss history plots

docs/: Code for GitHub page for the project

models/: Contains code for all the models tested until now

  • models/auxiliary/: Models related to the 2nd dataset (Heart failure clinical records) and insights from the RVENet dataset
    • models/auxiliary/RandomForestRegressor.py: Identify importance of age, sex, patient group and heart rate for prediction of RVEF
    • models/auxiliary/text_preprocessing.py: Preprocesses and removed outliers from heart failure clinical records dataset
    • models/auxiliary/heuristic_concatenation.py: Concatenates cardiovascular and RVENet dataset by bucketizing age groups in 0-100
    • models/auxiliary/merge_datasets.py: Tries pandas merge + iterative imputation to concatenate cardiovascular and RVENet dataset
    • models/auxiliary/merge_dataset_knn.py: Tries k-nearest neighbors to concatenate cardiovascular and RVENet dataset
    • models/auxiliary/*.csv: Corresponding merged dataset outputs
    • models/auxiliary/get_summary_llm.py: Get LLM summary for the patient personal merged from 2 datasets
  • models/rvenet/: Deep neural networks implemented for the RVENet dataset for predicting RVEF (Right ventricle ejection fraction) from echo-cardiogram videos
    • models/rvenet/all_models.py: Saves union of all models implemented so that it doesn't need to be hardcoded
    • models/rvenet/CardiacCycleRNN.py: Resnet18 + LSTM + Linear layer + Feature Augmentation
    • models/rvenet/CardiacCycleTransformer.py: Resnet18 + Transformer Encoder + Linear layer
    • models/rvenet/ResNetLSTM.py: Resnet18 + LSTM + Linear layer with different loss function
    • models/rvenet/ResNextTemporal.py: Temporal CNN with ResNext as backbone

notebooks/: Cleaned up versions of notebooks used during experimentation in the project notebooks/feature_augmentation_benefits.ipynb: Notebook to experiment if feature augmentation helps in CariacCycleRNN

setup/: Directory storing environment.json and containing python script for generating it

About

Multi modal cardio vascular disease detection and diagnosis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •