Challenge Open Access

You Snooze You Win - The PhysioNet Computing in Cardiology Challenge 2018

Published: Feb. 21, 2018. Version: 1.0.0

Please include the standard citation for PhysioNet:

Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PCh, Mark RG, Mietus JE, Moody GB, Peng C-K, Stanley HE. PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals (2003). Circulation. 101(23):e215-e220.


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

  • Click here to download the complete training database (135 GB) using BitTorrent.
  • Click here to download the complete test database (133 GB) using BitTorrent.

If you don't have a BitTorrent client, we recommend Transmission.

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) 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:


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 PhysioNetWorks account (if you don't have one), and go to Entries must be uploaded prior to the deadline in order to be eligible.


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:

Rj = number of arousal samples with predicted probability (j/1000) or greater / total number of arousal samples
Pj = number of arousal samples with predicted probability (j/1000) or greater / total number of samples with predicted probability (j/1000) or greater
AUPRC = ∑j Pj ⁢(Rj − Rj+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.

A Python implementation of the scoring algorithm is available here, and a Matlab/Octave implementation is here.

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

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.


The papers listed below were presented at Computers in Cardiology 2018. Please cite this publication when referencing any of these papers. These papers have been made available under the terms of the Creative Commons Attribution License 3.0 (CCAL). We wish to thank all of the authors for their contributions.

This paper is an introduction to the challenge topic, with a summary of the challenge results and a discussion of their implications:

Mohammad M Ghassemi, Benjamin E Moody, Li-wei H Lehman, Christopher Song, Qiao Li, Haoqi Sun, Roger G Mark, M Brandon Westover, Gari D Clifford. You Snooze, You Win: the PhysioNet/Computing in Cardiology Challenge 2018.

The remaining papers were presented by participants in the Challenge, who describe their approaches to the challenge problem.

Publications Listed Alphabetically By Author

  1. Tanuka Bhattacharjee, Deepan Das, Shahnawaz Alam, Achuth Rao M V, Prasanta Kumar Ghosh, Ayush Ranjan Lohani, Rohan Banerjee, Anirban Dutta Choudhury, Arpan Pal. SleepTight: Identifying Sleep Arousals Using Inter and Intra-Relation of Multimodal Signals
  2. Jia Dongya, Shengfeng Yu, Cong Yan, Wei Zhao, Jing Hu, Hongmei Wang, Tianyuan You. Deep Learning with Convolutional Neural Networks for Sleep Arousal Detection
  3. Runnan He, Kuanquan Wang, Yang Liu, Na Zhao, Yongfeng Yuan, Qince Li, Henggui Zhang. Identification of Arousals With Deep Neural Networks Using Different Physiological Signals
  4. Matthew Howe-Patterson, Bahareh Pourbabaee, Frederic Benard. Automated Detection of Sleep Arousals From Polysomnography Data Using a Dense Convolutional Neural Network
  5. Ivan Lazić, Nikša Jakovljević, Danica Despotović, Tatjana Lončar-Turukalo. Automatic Detection of Respiratory Effort Related Arousals From Polysomnographic Recordings
  6. Haoqi Li, Qineng Cao, Yizhou Zhong, Yun Pan. Sleep Arousal Detection Using End-to-End Deep Learning Method Based on Multi-Physiological Signals
  7. Daniel Miller, Andrew Ward, Nicholas Bambos. Automatic Sleep Arousal Identification From Physiological Waveforms Using Deep Learning
  8. Naimahmed Nesaragi, Shubha Majumder, Ashish Sharma, Kouhyar Tavakolian, Shivnarayan Patidar. Application of Recurrent Neural Network for the Prediction of Target Non-Apneic Arousal Regions in Physiological Signals
  9. Saman Parvaneh, Jonathan Rubin, Ali Samadani, Gajendra Katuwal. Automatic Detection of Arousals During Sleep Using Multiple Physiological Signals
  10. Andrea Patane, Shadi Ghiasi, Enzo Pasquale Scilingo, Marta Kwiatkowska. Automated Recognition of Sleep Arousal Using Multimodal and Personalized Deep Ensembles of Neural Networks
  11. Filip Plesinger, Petr Nejedly, Ivo Viscor, Petr Andrla, Josef Halamek, Pavel Jurak. Automated Sleep Arousal Detection Based on EEG Envelograms
  12. Shahab Rezaei, Sadaf Moharreri, Nader Jafarnia Dabanloo, Saman Parvaneh. Age and Changes in Extracted Features of Lagged Poincare Plot
  13. Nadi Sadr and Philip de Chazal. Automatic Scoring of Non-Apnoea Arousals Using the Polysomnogram
  14. Sven Schellenberger, Kilin Shi, Melanie Mai, Jan Philipp Wiedemann, Tobias Steigleder, Björn Eskofier, Robert Weigel, Alexander Kölpin. Detecting Respiratory Effort-Related Arousals in Polysomnographic Data Using LSTM Networks
  15. Yinghua Shen. Effectiveness of a Convolutional Neural Network in Sleep Arousal Classification Using Multiple Physiological Signals.
  16. Niranjan Sridhar and Ali Shoeb. Evaluating Convolutional and Recurrent Neural Network Architectures for Respiratory-Effort Related Arousal Detection during Sleep.
  17. Sandya Subramanian, Shubham Chamadia, Sourish Chakravarty. Arousal Detection in Obstructive Sleep Apnea using Physiology-Driven Features.
  18. János Szalma, András Bánhalmi, Vilmos Bilicki. Detection of Respiratory Effort-Related Arousals Using a Hidden Markov Model and Random Decision Forest.
  19. Heiðar Már Þráinsson, Hanna Ragnarsdóttir, Guðni Fannar Kristjansson, Bragi Marinósson, Eysteinn Finnsson, Eysteinn Gunnlaugsson, Sigurður Ægir Jónsson, Jón Skírnir Ágústsson, Halla Helgadóttir. Automatic Detection of Target Regions of Respiratory Effort-Related Arousals Using Recurrent Neural Networks.
  20. Edwar Macias Toro, Antoni Morell, Javier Serrano, Jose Lopez Vicario. Knowledge extraction based on wavelets and DNN for classification of physiological signals: Arousals case.
  21. Bálint Varga, Márton Görög, Péter Hajas. Using Auxiliary Loss to Improve Sleep Arousal Detection With Neural Network.
  22. Philip Warrick and Masun Nabhan Homsi. Sleep Arousal Detection From Polysomnography Using the Scattering Transform and Recurrent Neural Networks.
  23. Morteza Zabihi, Ali Bahrami Rad, Simo Särkkä, Serkan Kiranyaz, Aggelos K. Katsaggelos, Moncef Gabbouj. Automatic Sleep Arousal Detection Using Multimodal Biosignal Analysis.




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 on Google Cloud

Click here to view the files in the Google Cloud Console. Login with a Google account is required.

Download Zip from Google


Total uncompressed size: 45.8 MB.Download Zip (45.8 MB)

Folder Navigation: <base>
Name Size Modified
.challenge-2018.torrent (download) 3.0 MB 2019-04-17
SHA256SUMS.txt (download) 5.9 KB 2019-05-17
challenge2018cinc.pdf (download) 180.3 KB 2019-04-17 (download) 26.8 MB 2019-04-17
results.csv (download) 1.4 KB 2019-04-17 (download) 7.4 KB 2019-04-17 (download) 9.3 KB 2019-04-17 (download) 7.4 KB 2019-04-17 (download) 18.7 KB 2019-04-17 (download) 21.2 KB 2019-04-17 (download) 18.7 KB 2019-04-17 (download) 1.7 KB 2019-04-17
score2018.m (download) 4.1 KB 2019-04-17 (download) 8.0 KB 2019-04-17
test.torrent (download) 1.4 MB 2019-04-17
training.torrent (download) 1.5 MB 2019-04-17
unofficial-phase-results.csv (download) 1.5 KB 2019-04-17