Skip to content

Latest commit

 

History

History
38 lines (32 loc) · 1.89 KB

software_dev_practices.md

File metadata and controls

38 lines (32 loc) · 1.89 KB
layout page
title Software Development /Object Oriented Programming (OOP) Practices
subtitle How I structure my code
comments true
carbonads true
<style> .responsive-image { max-width: 100%; height: auto; display: block; margin-left: auto; margin-right: auto; } </style>

I'm a big advocate of writing re-usable and streamline code for data science projects. Some of the modules that I've built for my personal bioinformatics projects can be found on OmixHub. Some of the crucial and advanced concepts of inheritance, polymorphism, encapsulation and abstraction can be seen in all of the modules.

Here is a list of some useful tools that can be found:

  • Base Preprocessor
    • Example class with methods and attributes inherited by child classes. Some key methods provided are:
      • data skew
      • data leakage
      • patient overlap
      • training_testing_split
      • etc
  • Base ml models wrapper
    • Example class with functionality to evaluate and plot multiple ML models for a data science application. This is intended to be inherited by specific child classes for building models for different Omics data
  • Dimensionality reduction and clustering wrapper
    • Interfaces with Preprocessor classes to facilitate easy application of UMAP and clustering
  • Differential Analysis Wrapper
    • Faciliatates easy application of pydyseq in a few lines to perform differential analysis