Challenge Open Access

You Snooze You Win: The PhysioNet/Computing in Cardiology Challenge 2018

Mohammad Ghassemi Benjamin Moody Li-wei Lehman Roger Mark Gari D. Clifford

Published: Feb. 21, 2018. Version: 1.0.0


When using this resource, please cite the original publication:

Ghassemi MM, Moody BE, Lehman LW, Song C, Li Q, Sun H, Mark RG, Westover MB, Clifford GD. You snooze, you win: the physionet/computing in cardiology challenge 2018. In 2018 Computing in Cardiology Conference (CinC) 2018 Sep 23 (Vol. 45, pp. 1-4). IEEE. doi: 10.22489/CinC.2018.049.

Please include the standard citation for PhysioNet: (show more options)
Goldberger, A., Amaral, L., Glass, L., Hausdorff, J., Ivanov, P. C., Mark, R., ... & Stanley, H. E. (2000). PhysioBank, PhysioToolkit, and PhysioNet: Components of a new research resource for complex physiologic signals. Circulation [Online]. 101 (23), pp. e215–e220.

Introduction

At the end of last year, American scientists Jeffrey Hall, Michael Rosbash and Michael Young received a Nobel Prize in Physiology “for their discoveries of molecular mechanisms controlling the circadian rhythm"— the mechanism that regulates sleep (Osborn, 2017). The precise reasons why humans sleep (and even how much sleep we need) remains a topic of scientific inquiry. Contemporary theorists indicate that sleep may be responsible for learning and/or the clearing of neural waste products (Ogilvie and Patel, 2017).

While the precise reasons why we sleep are not perfectly understood, there is consensus on the importance of sleep for our overall health, and well-being. Inadequate sleep is associated with a wide range of negative outcomes including: impaired memory and learning, obesity, irritability, cardiovascular dysfunction, hypotension, diminished immune function (Harvard Medical School, 2006), depression (Nutt et al, 2008), and quality of life (Lee, 2009). Further studies even suggest causal links between quality of sleep, and important outcomes including mental health.

It follows that improving the quality of sleep could be used to improve a range of societal health outcomes, more generally. Of course, the treatment of sleep disorders is necessarily preceded by the diagnosis of sleep disorders. Traditionally, such diagnoses are developed in sleep laboratory settings, where polysomnography, audio, and videography of sleeping subject may be carefully inspected by sleep experts to identify potential sleep disorders.

One of the more well-studied sleep disorders is Obstructive Sleep Apnea Hypopnea Syndrome (or simply, apnea). Apneas are characterized by a complete collapse of the airway, leading to awakening, and consequent disturbances of sleep. While apneas are arguably the best understood of sleep disturbances, they are not the only cause of disturbance. Sleep arousals can also be spontaneous, result from teeth grinding, partial airway obstructions, or even snoring. In this year's PhysioNet Challenge we will use a variety of physiological signals, collected during polysomnographic sleep studies, to detect these other sources of arousal (non-apnea) during sleep.

Challenge Data

Data for this challenge were contributed by the Massachusetts General Hospital’s (MGH) Computational Clinical Neurophysiology Laboratory (CCNL), and the Clinical Data Animation Laboratory (CDAC). The dataset includes 1,985 subjects which were monitored at an MGH sleep laboratory for the diagnosis of sleep disorders. The data were partitioned into balanced training (n = 994), and test sets (n = 989).

The sleep stages of the subjects were annotated by clinical staff at the MGH according to the American Academy of Sleep Medicine (AASM) manual for the scoring of sleep. More specifically, the following six sleep stages were annotated in 30 second contiguous intervals: wakefulness, stage 1, stage 2, stage 3, rapid eye movement (REM), and undefined.

Certified sleep technologists at the MGH also annotated waveforms for the presence of arousals that interrupted the sleep of the subjects. The annotated arousals were classified as either: spontaneous arousals, respiratory effort related arousals (RERA), bruxisms, hypoventilations, hypopneas, apneas (central, obstructive and mixed), vocalizations, snores, periodic leg movements, Cheyne-Stokes breathing or partial airway obstructions.

The subjects had a variety of physiological signals recorded as they slept through the night including: electroencephalography (EEG), electrooculography (EOG), electromyography (EMG), electrocardiology (EKG), and oxygen saturation (SaO2). Excluding SaO2, all signals were sampled to 200 Hz and were measured in microvolts. For analytic convenience, SaO2 was resampled to 200 Hz, and is measured as a percentage.

Objective of the Challenge

The goal of the challenge is use information from the available signals to correctly classify target arousal regions. For the purpose of the Challenge, target arousals are defined as regions where either of the following conditions were met:

  • From 2 seconds before a RERA arousal begins, up to 10 seconds after it ends or,
  • From 2 seconds before a non-RERA, non-apnea arousal begins, up to 2 seconds after it ends.

Please note that regions falling within 10 seconds before or after a subject wakes up, has an apnea arousal, or a hypopnea arousal will not be scored for the Challenge.

We have pre-computed the target arousals for you. They are contained in a sample-wise vector (described below in “Accessing the Data”), marked by “1”. Regions that will not be scored are marked by a “-1”, and regions that will be penalized if marked by your algorithm are marked by “0”. You do not need to recompute these scores.

Accessing the Data

The Challenge data repository contains two directories (training and test) which are each approximately 135 GB in size. Each directory contains one subdirectory per subject (e.g. training/tr03-0005). Each subdirectory contains signal, header, and arousal files; for example:

  1. tr03-0005.mat: a Matlab V4 file containing the signal data.
  2. tr03-0005.hea: record header file - a text file which describes the format of the signal data.
  3. tr03-0005.arousal: arousal and sleep stage annotations, in WFDB annotation format.
  4. tr03-0005-arousal.mat: a Matlab V7 structure containing a sample-wise vector with three distinct values (+1, 0, -1) where:
    • +1: Designates arousal regions
    • 0: Designates non-arousal regions
    • -1: Designates regions that will not be scored

Table 1 lists functions that can be used to import the data into Python, Matlab, and C programs.

Table 1: Functions that can be used to import Challenge data.
File type Python Matlab C / C++
Signal (.mat) and header (.hea) files wfdb.rdrecord rdmat isigopen
Arousal annotation files (.arousal) wfdb.rdann rdann annopen
Arousal files (.mat) scipy.io.loadmat load libmatio

Submitting your Entry

Participants should use the provided signal and arousal data to develop a model that classifies test-set subjects. More specifically, for each subject in /test, participants must generate a .vec text file that describes the probability of arousal at each sample, such as:

0.001
0.000
0.024
0.051

The names of the generated annotation files should match the name of the test subject. For instance, test/te09-0094.mat should have a corresponding file named annotations/te09-0094.vec.

Entries must be submitted as a zip file containing:

  • All of the code and data files needed to train and run your algorithm
  • An AUTHORS.txt file containing the list of authors
  • A LICENSE.txt file containing the license for your code
  • The .vec files described above

To upload your entry, create a PhysioNet account (if you don't have one), and go to challenge.physionet.org. Entries must be uploaded prior to the deadline in order to be eligible.

Scoring

Your final algorithm will only be graded for its binary classification performance on target arousal and non-arousal regions (designated by +1 and 0 in teNN-NNNN-arousals.mat), measured by the area under the precision-recall curve. The area is defined as follows:

R j = n u m b e r o f a r o u s a l s a m p l e s w i t h p r e d i c t e d p r o b a b i l i t y ( j / 1000 ) o r g r e a t e r t o t a l n u m b e r o f a r o u s a l s a m p l e s R_j = \frac{number\,of\,arousal\,samples\,with\,predicted\,probability\,(j/1000)\,or\,greater}{total\,number\,of\,arousal\,samples}

P j = n u m b e r o f a r o u s a l s a m p l e s w i t h p r e d i c t e d p r o b a b i l i t y ( j / 1000 ) o r g r e a t e r t o t a l n u m b e r o f s a m p l e s w i t h p r e d i c t e d p r o b a b i l i t y ( j / 1000 ) o r g r e a t e r P_j = \frac{number\,of\,arousal\,samples\,with\,predicted\,probability\,(j/1000)\,or\,greater}{total\,number\,of\,samples\,with\,predicted\,probability\,(j/1000)\,or\,greater}

A U P R C = j P j ( R j R j + 1 ) AUPRC = \sum_{j} P_j(R_j -R_{j+1})

Note that this is the gross AUPRC (i.e., for each possible value of j, the precision and recall are calculated for the entire test database), which is not the same as averaging the AUPRC for each record.

Python (score2018.py) and Matlab/Octave (score2018.m) implementations of the scoring algorithm are available in the challenge files.

Sample Submission

Two simple example algorithms are provided and may be used as a template for your own submission:

Rules and Deadlines

Entrants may have an overall total of up to three submitted entries over both the unofficial and official phases of the competition (see Table 2). Following submission, entrants will receive an email confirming their submission and reporting how well their arousal annotations match those of the held-out test set.

All deadlines occur at noon GMT (UTC) on the dates mentioned below. If you do not know the difference between GMT and your local time, find out what it is before the deadline!

Table 2: Rules and deadlines.
Start at noon GMT on Entry limit End at noon GMT on
Unofficial Phase 15 February 1 13 April
[Hiatus] 13 April 0 22 April
Official Phase 23 April 2 1 September
* Wildcard submissions due 15 July

All official entries must be received no later than noon GMT on Saturday, 1 September 2018. In the interest of fairness to all participants, late entries will not be accepted or scored. Entries that cannot be scored (because of missing components, improper formatting, or excessive run time) are not counted against the entry limits.

To be eligible for the open-source award, you must do all of the following:

  1. Submit at least one open-source entry that can be scored before the Phase I deadline (noon GMT on Monday, 9 April 2018).
  2. Submit at least one entry during the second phase (between noon GMT on Monday, 16 April 2018 and noon GMT on Saturday, 1 September 2018). Only your final entry will count for ranking.
  3. Entering an Abstract to CinC: Submit an acceptable abstract (about 299 words) on your work on the Challenge to Computing in Cardiology no later than 15 April 2018. Include the overall score for your Phase I entry in your abstract. Please select “PhysioNet/CinC Challenge” as the topic of your abstract, so it can be identified easily by the abstract review committee. You will be notified if your abstract has been accepted by email from CinC during the first week in June.
  4. Wildcard submissions: For teams who did not submit an abstract in time, or whose abstracts were not accepted, the team who submits the highest-scoring entry before 15 July 2018 will have another chance to compete, if they submit a high-quality abstract and present their work at the CinC conference. We will contact the winners in July with more information.
  5. Submit a full (4-page) paper on your work on the Challenge to CinC no later than the deadline of conference paper submission.
  6. Attend CinC 2018 (23-26 September 2018) in Maastricht and present your work there.

Please do not submit analysis of this year’s Challenge data to other Conferences or Journals until after CinC 2018 has taken place, so the competitors are able to discuss the results in a single forum. We expect a special issue from the journal Physiological Measurement to follow the conference and encourage all entrants (and those who missed the opportunity to compete or attend CinC 2018) to submit extended analysis and articles to that issue, taking into account the publications and discussions at CinC 2018.

Attending the Conference

If your abstract is accepted, you must log in to the conference site and agree that you will attend. Then, you must submit a full article describing your results and mark it as a preprint (for others to read) by September 15th. (Don't forget that the competition deadline is noon GMT on the 1st September - this deadline will *not* be extended.)

After agreeing to attend, you must register for the conference, pay the conference fee (prices go up after July ends), and secure a visa if you need one. See the Computing in Cardiology site for more information.

If you need a visa, we strongly suggest you register this week and begin the process. Visas can take months to issue and attendance is mandatory - you cannot receive a prize if you do not attend because defending your work is part of the Challenge. The conference (not PhysioNet) will supply you with a letter for your visa. Please see the CinC 2018 site for details on how to obtain that letter and who to contact. If you have any questions about this process, or are concerned about paying the conference fee before securing a visa, please contact the conference organizers, not PhysioNet.

If your abstract is rejected, then you have one more chance! This year we are introducing a 'wildcard' submission. On July the 15th, the top scoring entry that has not so far been accepted to CinC will be offered the opportunity to submit another (or a new) abstract to the conference system (containing full results). If the team can submit a quality abstract (with performance results) and register for the conference then it's members will be eligible for a prize (assuming they also attend the conference and present a poster). Don't forget, your abstract was probably rejected because it didn't contain any useful results (even on training data) and/or did not describe your methods well. So please pay attention to the abstract when submitting - it won't be automatic. We strongly believe that if you are unable to explain what you did and why, then the code is of very limited value.

We hope this is a suitable encouragement for teams that are either late to the Challenge or failed to secure a place at the conference to continue with their efforts in the competition. It would be a shame not to see potentially great works at the conference.

Look out for future announcements via the community discussion forum.

After the Challenge

As is customary, we hope to run a special issue in Physiological Measurement with a closing date of 31 January 2019. We will therefore encourage competitors (and non-competitors) to submit updates and further reworks based on the Challenge after the award ceremony at the Computing in Cardiology Conference in Maastricht in September.

Obtaining complimentary MATLAB licenses

The MathWorks has kindly decided to sponsor Physionet’s 2018 Challenge providing licenses. The MathWorks is offering to all teams that wish to use MATLAB, complimentary licenses. User can apply for a license and learn more about MATLAB support through The Mathworks’ PhysioNet Challenge link. If you have questions or need technical support, please contact The MathWorks at studentcompetitions@mathworks.com.

Challenge Results

Official results, as well as a paper describing the Challenge, are now available. Top scores were achieved by

  1. Matthew Howe-Patterson, Bahareh Pourbabaee, and Frederic Benard (0.54)
  2. Guðni Fannar Kristjansson, Heiðar Már Þráinsson, Hanna Ragnarsdóttir, Bragi Marinósson, Eysteinn Gunnlaugsson, Eysteinn Finnsson, Sigurður Ægir Jónsson, Halla Helgadóttir, and Jón Skírnir Ágústsson (0.45)
  3. Runnan He, Kuanquan Wang, Yang Liu, Na Zhao, Yongfeng Yuan, Qince Li, and Henggui Zhang (0.43)

An unofficial entry from Hongyang Li and Yuanfang Guan (who unfortunately missed the deadline to submit an abstract) achieved a score of 0.55.

Papers

The following paper is an introduction to the challenge topic, with a summary of the challenge results and a discussion of their implications. Please cite this publication when referencing the Challenge.

Ghassemi MM, Moody B, Lehman L, Song C, Li Q, Sun H, Westover M, Clifford GD., "You Snooze, You Win: the PhysioNet/Computing in Cardiology Challenge 2018," 2018 Computing in Cardiology Conference (CinC), 2018, pp. 1-4, doi: 10.22489/CinC.2018.049.

Over 20 papers were presented at Computers in Cardiology 2018. These papers have been made available under the terms of the Creative Commons Attribution License 3.0 (CCAL). See this page for details. We wish to thank all of the authors for their contributions.


Share
Access

Access Policy:
Anyone can access the files, as long as they conform to the terms of the specified license.

License (for files):
Open Data Commons Attribution License v1.0

Corresponding Author
You must be logged in to view the contact information.

Files

Total uncompressed size: 266.6 GB.

Access the files
Folder Navigation: <base>/sample
Name Size Modified
Parent Directory
AUTHORS.txt (download) 0 B 2019-04-17
LICENSE.txt (download) 34.3 KB 2019-04-17
Prepare_Entry.py (download) 3.9 KB 2019-04-17
dependencies.txt (download) 422 B 2019-04-17
next.sh (download) 820 B 2019-04-17
physionetchallenge2018_lib.py (download) 4.0 KB 2019-04-17
run_my_classifier.py (download) 2.6 KB 2019-04-17
score2018.py (download) 8.0 KB 2019-04-17
setup.sh (download) 329 B 2019-04-17
train_classifier.py (download) 2.8 KB 2019-04-17