Package: misst
A Murine-based Intelligent Sleep Staging ToolMISST is aPython librarythat utilizesdeep neural networksin order to automate the grading ofmurinae polysomnograms(PSGs). By using a combination of residual connections, bottleneck blocks, and fully-connected layers, MISST is able to classify raw PSGs with little to no preprocessing, while still remaininglightweightandconsistent. On a dataset of ~10 hours of murine PSGs, MISST reached a validation accuracy of 87.6% and a Cohen's Kappa of 0.74.This program was developed as part of a research project conducted at theJohns Hopkins Center for Interdisciplinary Sleep Research and Education.FeaturesEasy-to-use Python APIScalable for large datasetsAll data manipulation (preprocessing, training, etc.) uses the same amount of RAM, regardless of dataset size.Full GUI for Real-Time Data AnalysisSupport for both Hyperband Tuning and Bayesian OptimizationDistributed Training (Model-Parallel & Data-Parallel)GUIAutomaticModel Configuration GeneratorA model configuration menu is automatically generated as per the user's entered parametersLiveaccuracy and loss metricsUpdated in real-time during trainingPredictionError Distribution graphsIncorporates a custom metric to directly interface with the model predictionsBuilt-in failsafesfor early stoppingGetting StartedSystem Requirements:Python 3.10 or laterA system with 8 GB RAM or moreAt least 5 GB of free disk spaceWindows, MacOS, or LinuxTo install MISST, run the following command:C:\...>pipinstallmisstUsing MISSTAt a high-level, MISST can be thought of as TensorFlow-basedmodel training applicationdesigned specifically for processing murine polysomnograms.Importing MISST into a Python project is as simple asimport misst. However, in order touseany of MISST's functions, there are severalsupplementary filesthat must be placed alongside your Python script. Conceptually, MISST uses the followingfile pipeline:In practice, thedirectory treeof a MISST project should look as follows:└──Your_Project├──data│├───[subdirectory_1]│├───[subdirectory_2]│└───[subdirectory_3]├──my_program.py└──config.yamlmy_program.pyrepresents the script that you're writing. While itcancontain anything, you can find a barebones examplehere.For theconfig.yamlfile, you should always usethistemplate. You can modify and tweak parameters accordingly, but deleting an entry altogether may result in an error.Thedatadirectory must abide by strict formatting rules, which is outlined in theDatasetsection of this guide.For an example of how this should look, reference theexamplefolder in the GitHub Repo.Dataset FormattingIn order to use MISST, a specificdataset formatmust be followed. This section outlines the rules for both the PSG and Hypnogram files. The program may result in an error if this formatting is not strictly adhered to.The dataset must be placed into the~/MISST/mist/data/directory, with the following structure:Each PSG recordingmustbe in it's own subdirectoryThe subdirectory can be named anythingThe subdirectory can include unrelated filesBoth a Hypnogram (in .csv format) and a PSG (in .edf format) recording must be present within each subdirectoryThe Hypnogram and PSG can be named anything, as long as the RegEx is able to properly filter it outThe final MISST directory tree should look as follows:└──data└──raw├───[subdirectory_1]│└───EDF.edf│└───hypnogram.csv├───[subdirectory_2]│└───EDF.edf│└───hypnogram.csv├───[subdirectory_3]│└───EDF.edf│└───hypnogram.csv│...└────[subdirectory_n]└───EDF.edf└───hypnogram.csvEach Hypnogram ".csv" file should follow this format:typestartstopSLEEP-S02021-10-19 10:12:44.0002021-10-19 10:12:54.000SLEEP-S22021-10-19 10:12:54.0002021-10-19 10:13:04.000SLEEP-REM2021-10-19 10:13:04.0002021-10-19 10:13:14.000Disclaimer: MISST is still in development. Johns Hopkins is not liable for any incorrect or misleading predictions outputted by the MISST model.Code CompletionThe following table represents current progress on MISST:ModuleFeatureDescriptionCurrent StatusTrainer"PLAIN" ModeBasic model training mode✅ Finished"TUNER" ModeUses a KerasTuner during training✅ Finished"GUI" ModeProvides a GUI for real-time training visualization🚧 In Progress"DIST" ModeTrains using a distributed computing network🚧 In ProgressPredictorHypnogramsCreate hypnograms from inputted polysomnogram❌ Not StartedAzure WebappInteractive web-app for Hypnogram prediction❌ Not StartedContributorsLead Developer: Hudson Liu • 🖥️ GitHub@hudson-liu• 📧 Emailhudsonliu0@gmail.comMentor/Team Lead:Luu Van Pham, M.D.Team Member: Lenise KimLogo Design:delogodesign&Tomona OishiAcknowledgementsMISST was developed by Hudson Liu over the course of an internship led by Luu Van Pham, M.D. (IT Director of theJohns Hopkins Center for Interdisciplinary Sleep Research and Education). Additionally, this project was made possible thanks to Lenise Kim's gold-standard murine sleep staging data.MISST's logo is the product of a combined effort by bothdelogodesignandTomona Oishi.