Challenge Open Access

AF Classification from a Short Single Lead ECG Recording - The PhysioNet Computing in Cardiology Challenge 2017

Published: Feb. 1, 2017. 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.


The 2017 PhysioNet/CinC Challenge aims to encourage the development of algorithms to classify, from a single short ECG lead recording (between 30 s and 60 s in length), whether the recording shows normal sinus rhythm, atrial fibrillation (AF), an alternative rhythm, or is too noisy to be classified.

There are various types of cardiac arrhythmias that may be classified by:

  • Origin: atrial arrhythmia, junctional arrhythmia, or ventricular arrhythmia.
  • Rate: tachycardia ( > 100 beats per minute (bpm) in adults) or bradycardia ( < 60 bpm in adults).
  • Mechanism: automaticity, re-entry, triggered.
  • AV Conduction: normal, delayed, blocked.
  • Duration: non-sustained (less than 30 s) or sustained (30 s or longer).

AF is defined as a “tachyarrhythmia characterized by predominantly uncoordinated atrial activation with consequent deterioration of atrial mechanical function” by the American College of Cardiology (ACC), the American Heart Association (AHA) and the European Society of Cardiology (ESC) [1]. AF is the most common sustained cardiac arrhythmia, occurring in 1-2% of the general population [2; 3] and is associated with significant mortality and morbidity through association of risk of death, stroke, hospitalization, heart failure and coronary artery disease, etc. [3; 4]. More than 12 million Europeans and North Americans are estimated to suffer from AF, and its prevalence will likely triple in the next 30-50 years [5]. More importantly, the incidence of AF increases with age, from less than 0.5% at 40-50 years of age, to 5-15% for 80 year olds [6].

Despite the enormity of this problem, AF detection remains problematic, because it may be episodic. AF detectors can be thought of belonging to one of two categories: atrial activity analysis-based or ventricular response analysis-based methods. Atrial activity analysis-based AF detectors are based on the analysis of the absence of P waves or the presence of fibrillatory f waves in the TQ interval. Published methods to do this include: an echo state neural network [7], P-wave absence (PWA) based detection [8], analysis of the average number of f waves [9], P-wave-based insertable cardiac monitor application [10], wavelet entropy [11] [12] and wavelet energy [13]. Atrial activity analysis-based AF detectors can achieve high accuracy if the recorded ECG signals have little noise contamination and high resolution, but tend to suffer disproportionately from noise contamination [4]. In contrast, ventricular response analysis is based on the predictability of the inter-beat timing (‘RR intervals’) of the QRS complexes in the ECG. RR intervals are derived from the most obvious large amplitude feature in the ECG, the R-peak, the detection of which can be far more noise resistant. This approach may therefore be more suitable for automatic, real-time AF detection [14]. Published methods include: Poincaré plot analysis [15], Lorenz plot analysis [16], analysis of cumulative distribution functions [17], thresholding on the median absolute deviation (MAD) of RR intervals [18], histogram of the first difference of RR intervals [19], minimum of the corrected conditional entropy of RR interval sequence [20], 8-beat sliding window RR interval irregularity detector [21], symbolic dynamics and Shannon entropy [22], sample entropy of RR intervals [23; 24; 25], and normalized fuzzy entropy of RR intervals [26].

It is worth noting that AF detectors that combine both atrial activity and ventricular response could provide an enhanced performance by combining independent data from each part of the cardiac cycle. Such detection approaches have included: RR interval Markov modeling combined with PR interval variability and a P wave morphology similarity measure [27] and a fuzzy logic classification method which uses the combination of RR interval irregularity, P-wave absence, f-wave presence, and noise level [28]. It is also worth noting that multivariate approaches based on machine learning that combines several of the above single features can also provide enhanced AF detection [29; 30; 31].

Previous studies concerning AF classification are generally limited in applicability because 1) only classification of normal and AF rhythms were performed, 2) good performance was shown on carefully-selected often clean data, 3) a separate out of sample test dataset was not used, or 4) only a small number of patients were used. It is challenging to reliably detect AF from a single short lead of ECG, and the broad taxonomy of rhythms makes this particularly difficult. In particular, many non-AF rhythms exhibit irregular RR intervals that may be similar to AF. In this Challenge, we treat all non-AF abnormal rhythms as a single class and require the Challenge entrant to classify the rhythms as 1) Normal sinus rhythm, 2) AF, 3) Other rhythm, or 4) Too noisy to classify.

Quick Start

  1. Download the training set: and the sample MATLAB entry:
  2. Create a free PhysioNetWorks account and join the PhysioNet/CinC Challenge 2017 project.
  3. Develop your entry by making the following edits to
    • Modify the sample entry source code file challenge.m with your changes and improvements. For additional information, see the Preparing an Entry for the Challenge section.
    • Modify the AUTHORS.txt file to include the names of all the team members.
    • Unzip and move all its files to the top directory of your entry directory (where challenge.m is located).
    • Run your modified source code file on the validation records in the training set by executing the script generateValidationSet.m. This will also build a file called
    • Optional: Include a file named DRYRUN in the top directory of your entry (where the AUTHORS.txt file is located) if you do not wish your entry to be scored and counted against your limit. This is useful in cases where you wish to make sure that the changes made do not result in any error.
  4. Submit your for scoring through the PhysioNet/CinC Challenge 2017 project. The contents of must be laid out exactly as in the sample entry. Improperly-formatted entries will not be scored.

For those wishing to compete officially, please follow the additional four steps described in the Rules and Deadlines.

Join our community Community Discussion Forum to get the latest challenge news, technical help, or if you would like to find partners to collaborate with.

Rules and Deadlines

Participants are asked to classify one lead ECG recordings as normal rhythm, AF, other rhythm or noisy recordings.

Entrants may have an overall total of up to 15 submitted entries over both the unofficial and official phases of the competition (see Table 1). Each participant may receive scores for up to five entries submitted during the unofficial phase and ten entries at the end of the official phase. Unused entries may not be carried over to later phases. Entries that cannot be scored (because of missing components, improper formatting, or excessive run time) are not counted against the entry limits.

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 1: Rules and deadlines.
  Start at noon GMT on Entry limit End at noon GMT on
Unofficial Phase 1 February 5 9 April
[Hiatus] 9 April 0 16 April
Official Phase 16 April 10 1 September

All official entries must be received no later than noon GMT on Friday, 1 September 2017. 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 Sunday, 9 April 2017).
  2. Submit at least one entry during the second phase (between noon GMT on Sunday, 16 April 2017 and noon GMT on Friday, 1 September 2017). 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 2017. Include the overall score for at least one 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. Submit a full (4-page) paper on your work on the Challenge to CinC no later than the deadline of conference paper submission.
  5. Attend CinC 2017 (24–27 September 2017) in Rennes, France and present your work there.

Please do not submit analysis of this year’s Challenge data to other Conferences or Journals until after CinC 2017 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 2017) to submit extended analysis and articles to that issue, taking into account the publications and discussions at CinC 2017.

Challenge Data

ECG recordings, collected using the AliveCor device, were generously donated for this Challenge by AliveCor. The training set contains 8,528 single lead ECG recordings lasting from 9 s to just over 60 s (see Table 2) and the test set contains 3,658 ECG recordings of similar lengths. The test set is unavailable to the public and will remain private for the purpose of scoring for the duration of the Challenge and for some period afterwards.

ECG recordings were sampled as 300 Hz and they have been band pass filtered by the AliveCor device. All data are provided in MATLAB V4 WFDB-compliant format (each including a .mat file containing the ECG and a .hea file containing the waveform information). More details of the training set can be seen in Table 2. Figure 1 shows the examples of the ECG waveforms (lasting for 20 s) for the four classes in this Challenge. From top to bottom, they are ECG waveforms of normal rhythm, AF rhythm, other rhythm and noisy recordings.

Please note, since all the classification was performed by a single expert, we are currently in the process of re-scoring a subset where our trust of the data is lowest. We will almost certainly update labels on some of data in both the training and test databases. We may also add new data in the future, although this is unlikely to change after we begin the official phase of the competition.

Please also note that the scoring system currently treats all classes equally. It is likely we will update this for the official phase also. The point of the unnofficial phase is for us to iron out bugs in the competition, and you are a vital part of that. Please send us suggestions/queries to We welcome suggestions for reclassifying a file, but please provide your reasoning.

We strongly suggest you use the Google group public forum to ask questions unless you are asking us a question that is specific to your entry only and would reveal your methods to others. In general we post answers to the Google group to provide a level playing field.

Please note that we are all volunteers with finite bandwidth, so we prioritize our responses and often discuss them as a group first. Inevitably some emails will have a response delay or may even slip through the net.

Table 2: Data profile for the training set.
Type # recording Time length (s)
Mean SD Max Median Min
Normal 5154 31.9 10.0 61.0 30 9.0
AF 771 31.6 12.5 60 30 10.0
Other rhythm 2557 34.1 11.8 60.9 30 9.1
Noisy 46 27.1 9.0 60 30 10.2
Total 8528 32.5 10.9 61.0 30 9.0

Figure 1. Examples of the ECG waveforms.

Sample Submission

As a starting point we have provided an example entry (post here: which provides a state of the art detector based upon the method described by Sarkar et al [16]. We note that this detector provides a classification of only Normal or AF rhythms. We leave it to the Challengers to add the other classes.

You may want to begin with the sample detector, or discard it completely and start from scratch using more data-driven or physiological model-based approaches. Please note that the sample entry has been patented by their original authors and, although we provide an open source version of it for benchmarking, you should not hope to create intellectual property from derivatives of it. We therefore suggest you concentrate on developing alternative methods to this benchmark.

NOTE: You do not need any additional software, apart from Matlab or GNU Octave, to run the sample entry. You can use any programming languages or libraries you like when implementing your own submission.

Preparing an entry for the challenge

To participate in the challenge, you will need to create software that is able to read the test data and output the final classification result without user interaction in our test environment. One sample entry (, written in MATLAB) is available to help you get started. In addition to MATLAB, you may use any programming language (or combination of languages) supported using open source compilers or interpreters on GNU/Linux, including C, C++, Fortran, Haskell, Java, Octave, Perl, Python, and R.

If your entry requires software that is not installed in our sandbox environment, we will work with you during Phase I to try to ensure your code can run. We will not modify the test environment after the start of Phase II of the challenge.

Participants should download the sample entry ( Entries should have the exact layout of the sample entry; specifically, they must contain:

  •, a bash script runs once before any other code from the entry; use this to compile your code as needed.
  •, a bash script runs once per training or test record; it should analyze the record using your code, saving the results as a text file for each record.
  • dependencies.txt, a text file that lists additional Debian packages that must be installed prior to running your entry’s and scripts.
  • answers.txt, a text file containing the results of running your program on each record in the validation set (part of training set, see below for details). These results are used for validation only, not for ranking entries.
  • AUTHORS.txt, a plain text file listing the members of your team who contributed to your code, and their affiliations.
  • LICENSE.txt, a text file containing the license for your software (the default is the GPL). All entries are assumed to be open source and will eventually be released on PhysioNet (for closed source entries please see below).

See the comments in the sample entry’s and if you wish to learn how to customize these scripts for your entry.

We verify that your code is working as you intended, by running it on a small subset (validation set, 300 recordings) of the training set, then comparing the answers.txt file that you submit with your entry with answers produced by your code running in our test environment using the same records. Using a small portion of the training set means you will know whether your code passed or failed to run within a small time. If your code passes this validation test, it is then evaluated and scored using the hidden test set. The score in the hidden test set determines the ranking of the entries and the final outcome of the Challenge. Note that in the Official Phase of the challenge, more data may be added to both training and hidden test set. Your final entry in the Official Phase of the competition will be run on the entire test set, and so may take much longer than earlier entries.

In addition to the required components, your entry may include a file named DRYRUN. If this file is present, your entry is not evaluated using the hidden test data, and it will not be counted against your limit of entries per phase; you will receive either a confirmation of success or a diagnostic report, but no scores. Use this feature to verify that none of the required components are missing, that your script works in the test environment, and that your script produces the expected output for the training data within the time limits.

Closed Source Entries

Although the competition is only for open source entries, we also accept the submission of closed-source entries from industry or from individuals. If you enter closed source, we will not publish your code or score (unless you specifically request that we do so). However, the default entry is open source (GPL), so you must explicitly indicate that your entry is closed source by including with your entry a file called CLOSEDSOURCE.txt and modifying LICENSE.txt accordingly. If you submit an executable, it must be compiled to run in our testing environment (Debian 8.7, amd64.)

Open source entry scores will not be posted until after the close of the Official Phase, and closed source entries will not be posted. You may choose to swap between being open source or closed source at any time up to the end of the Unofficial Phase by inserting or removing the CLOSEDSOURCE.txt file with your final entry prior to the end of the Unofficial Phase.

More on Licences and IP

We would like to note that the competition does not give the company donating the data any rights to algorithms or ideas developed by competitors. Any entity is free to contact a competitor to request a license to use their code for commercial purposes. Since the competitor must use an open source license to be eligible for a prize, it may be necessary for the competitor to produce another version of the code with a different license (as copyright holders they are at liberty to do so). This would in no way influence the posting of the open source code for the Challenge or its use for research purposes.


If your entry is properly formatted, and nothing is missing, it is tested and scored automatically, and you will receive your scores when the test is complete (depending on your entry’s run time, this may take an hour or more). If you receive an error message instead, read it carefully and correct the problem(s) before resubmitting. Missing answers are treated as noise labels.

The scoring for this challenge uses a F1 measure, which is an average of the four F1 values from each classification type. The counting rules for the numbers of the variables are defined in Table 3 as below:

Table 3. Counting rules for the numbers of the variables.
  Predicted Classification
Normal AF Other Noisy Total
Normal Nn Na No Np ∑N
AF An Aa Ao Ap ∑A
Other On Oa Oo Op ∑O
Noisy Pn Pa Po Pp ∑P
Total ∑n ∑a ∑o ∑p  

For each of the four types, F1 is defined as:

  • Normal rhythm: F1n = 2 × Nn / (∑N + ∑n)
  • AF rhythm: F1a = 2 × Aa / (∑A + ∑a)
  • Other rhythm: F1o = 2 × Oo / (∑O + ∑o)
  • Noisy: F1p = 2 × Pp / (∑P + ∑p)

The script score2017Challenge.m in the sample entry,, generates the final challenge score as follows:

F1 = (F1n + F1a + F1o + F1p) / 4

The score on the hidden data represents your algorithm’s performance on a subset of the data. We will assess your performance on all of the hidden data only on your final entry in the official phase of the competition. The reason we do this is to prevent you over training on the hidden data. To improve your algorithm, you must assess your algorithm’s performance on the training data using cross validation.

We are arbitrarily following the olympic model (for swimming events). Anyone with exactly the same score would split the 'medals' as normal. If two tie for gold (1st place) then we skip silver and the prize money for first and second place are divided equally between the 1st place winners. The 3rd place is awarded as normal. If three or more tie for gold then we award no other places and the entire cash prize for all three places is split equally. If any number tie for silver we skip bronze and split the silver and bronze cash prizes equally between all the 2nd place teams. If several tie for bronze then they all are awarded 3rd place share the 3rd place prize money equally.

So if a team scored 0.95 and then two teams scored 0.91, and others scored 0.85 (say) the first prize would go to the team with 0.95 and the second place would be equally awarded to the two teams scoring 0.91. No 'third place' team would be identified.

Note that the third decimal place in the scoring system probably isn't statistically significant, which is why our leader board doesn't show it beyond two decimal places (like they do in olympic swimming events).

Abstract Submission

Don't forget you must also submit an abstract to Computing in Cardiology before the imminent deadline on the 15th of April and attend the conference in September where we will announce the winner. See Note that your methods and score, and therefore your abstract, will most likely change by the end of summer. That is acceptable and expected. If you don't submit now though, you won't reserve your place to discuss your methods at the conference. Please note that abstracts should include your current methods and score. We encourage you to include cross validation stats on the training data too to show the reviewers you know what you are doing. In many ways toys is far more important than your test set score we give you at this stage, so if you have a poor challenge score but a great cross validated score then you are well on your way!

Incoherent or information poor abstracts are unlikely to be accepted as they indicate low quality approaches and an inability to communicate ideas. A well thought out abstract indicates a high likelihood of a good presentation and high quality scientific approach. Do not include a description of the competition in the abstract (it's very clear what the competition is about) ... focus on your methods and results.

Please make sure you select the Physionet Challenge category in the abstract submission. If you don't it may get reviewed outside of the challenge track and get rejected.

Also, please do not title your paper something similar to the challenge itself .... I'll ask you to change your title and it wastes both of our time. To be clear, our paper will be called:

AF classification from a short single lead ECG recording: The Physionet Computing in Cardiology Challenge 2017.

... so please do not include the phrases Physionet, Computing in Cardiology, or Challenge 2017 in your title. Please make your title specific to your technique. E.g.: "AF detection using cepstral coefficients, higher order moments and an SVM" would be fine .... but "deep learning for AF detection" is too general and will make your title indistinguishable from half the entries. Think about what makes your approach different.

Final Entry

All competitors are required to identify which of their entries they believe is their best performing entry by September 6 at 11am UTC. We will then assess this code on the entire hidden data. Please make your selection by visiting and clicking the "Select final entry" button next to your chosen entry. You will be able to change your selection at any time before September 6. If you do not designate a final entry by September 6 at 11:00 AM, we will use your last successfully-submitted entry.

Papers, Presentations and Posters for CinC

Creating your conference paper

You should post a 99% complete version of your paper at least one week before the conference and mark it openly available for others to read. You obviously can’t insert your final score in there until after the conference, and so you will have 3–4 days after the conference to update your paper. However, you must submit an acceptable and ostensibly complete 4 page paper that will not undergo any revisions after the conference, except to add the final score. Why? Well we don’t want you spending time addressing other groups entries. You don’t have the time to do it, nor will you have enough detailed information to do so. The time to do that is in the follow-on Physiological Measurement special issue, where we expect you to submit a full paper (as long as you like, as long as it’s all pertinent) where you can revisit your algorithm in light of the feedback at the conference, or even improve it by using other competitor’s ideas! It would be unfair to do so in the conference article. However, this is exactly how science progresses (after the conference) , and indeed, we hope that this conference facilitates you to swap ideas, question each other, improve, collaborate, compete if you wish (in a kind spirited manner), publish and share.

We strongly advise you to click the box requesting that your article be pushed to the preprint site for the conference—it will help others understand more clearly what you did, and why you did it (10 minutes or a poster is rarely long enough to explain yourself). Please dedicate your article almost entirely to your methods, including the preprocessing, feature extraction, model pruning, data relabelling, external data sets used, and training cross validation. There is absolutely no need to describe the competition—we will do that in detail and you can directly reference the challenge website and the article we will publish:

Gari Clifford, Chengyu Liu, Benjamin Moody, Li-wei H. Lehman, Ikaro Silva, Qiao Li, Alistair Johnson, Roger G. Mark. AF Classification from a Short Single Lead ECG Recording: the PhysioNet Computing in Cardiology Challenge 2017. Computing in Cardiology (Rennes: IEEE), Vol 44, 2017 (In Press).

We strongly encourage you to reference this article, because it will provide the reader of your article with details missing from the website. We will post a pre-print of this in mid September (at least a week before the conference and possibly two). It will not include the list of winners and the final rankings, although we will add this in the final version immediately after the conference.

Since you do not know who the winner will be, and what your final ranking will be, please do not indicate your position in the rankings until after the competition when the final scores are known. It is misleading to include your rankings either in the unofficial phase or at any time in the official phase. Only the final scores are meaningful, as they will have been assessed on the most accurate version of the (entire) hidden test data.

When creating your 4 page conference article please use this latex example as a template, or download the template from which also includes a Word template (if you feel the need to use that). Further instructions can be found at that URL, and include details such as capitalization of subheadings, etc. Do not play with the margins, font or other parameters. The PDF generated from the source will be auto-checked for format conformity and rejected if the margins are wrong, it is too long or otherwise contravenes the instructions.

Creating your conference presentation

If you have been selected for a 10 minute talk, then please create something like this.

Be concise—no-one should discuss the aims of the competition or the databases. The challenge organizers will have done that in the first presentation of each session. Instead, focus on what you did—how you trained your algorithm, what features you selected, which open source algorithms you used, and how you stratified the data. Make sure you present cross fold validation results from the training data (as well as your overall ranking in the official competition). Stratify by patient and by database (if you have used external databases). Do not include the scores from the unofficial phase; these are unimportant. Be sure to indicate if your algorithm is open source or not.

Do compare your results to others and be realistic about your performance on the test data. Explain what was novel in your algorithm and what made it work, and also what didn’t work too well.

Use pictures on each slide to draw the eye; please don’t list a series of bullet points and repeat them verbatim. They should be short sentences—just enough to remind you what you wanted to say. The fewer words the better.

Diagrams are beautiful, so do include them ... but please make sure we can read all the captions from the back of the room. Use high contrast thick lines; it’s usually a long room. Try it out in your biggest auditorium before coming to the conference.

Above all, don’t run over; you will look unprofessional and fail to convey your message. Keep it down to 7 slides at most—you only have 10 minutes and you will be cut off after that. (It’s unfair to use up other people’s time, and you must allow a few minutes for questions). You can add slides afterwards to answer questions, or add a postscript if you want.

So—make sure you practice your presentation content and timing before you come! Ask your colleagues to listen to you and critique the slides—if they don’t understand you, we probably won’t.

More information can be found here. Please read that carefully.

Creating your poster presentation

If you were selected for a poster presentation, don’t worry—you still have to write a paper which is listed with IEEE Explore and Google Scholar, and it counts as much as if you had presented in an oral session. (There’s no way to retrospectively find out if your 4 page paper was presented orally or as a poster).

The maximum size was 85 cm (33") wide by 115 cm (45") tall for CinC 2016. Note that poster dimensions vary from year to year so don’t assume that a size that fit last year will fit this year. You will receive email instructions from the conference organizers explaining this year’s restrictions. Please make every attempt to build a visually appealing presentation, which conveys the right points.

More information can be found here: You may want to read these resources from researchers at Cornell and Oxford.

There is a prize for the best poster, so do take it seriously, and make sure you stand by it during your session if you want to be in the running!

Again, more information can be found here. Please read that carefully.

After the Challenge

As is customary, we hope to run a special issue in Physiological Measurement with a closing date of 31 January 2018. 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 Rennes in September.

Obtaining complimentary MATLAB licenses

The MathWorks has kindly decided to sponsor Physionet’s 2017 Challenge providing both prize money and 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 Mathwork’s PhysioNet Challenge link. If you have questions or need technical support, please contact The MathWorks at


V. Fuster, L.E. Ryden, R.W. Asinger, D.S. Cannom, H.J. Crijns, R.L. Frye, J.L. Halperin, N.G. Kay, W.W. Klein, S. Lévy, R.L. McNamara, E.N. Prystowsky, L.S. Wann, D.G. Wyse, R.J. Gibbons, E.M. Antman, J.S. Alpert, D.P. Faxon, V. Fuster, G. Gregoratos, L.F. Hiratzka, A.K. Jacobs, R.O. Russell, S.C. Smith, W.W. Klein, A. Alonso-Garcia, C. Blomström-Lundqvist, G. De Backer, M. Flather, J. Hradec, A. Oto, A. Parkhomenko, S. Silber, A. Torbicki, ACC/AHA/ESC guidelines for the management of patients with atrial fibrillation: executive summary, J Am Coll Cardiol 38 (4) (2001) 1231–1265.
G.Y.H. Lip, L. Fauchier, S.B. Freedman, I. Van Gelder, A. Natale, C. Gianni, S. Nattel, T. Potpara, M. Rienstra, H. Tse, D.A. Lane, Atrial fibrillation, Nature Reviews Disease Primers 2 (2016) 16016.
A.J. Camm, P. Kirchhof, G.Y. Lip, U. Schotten, I. Savelieva, S. Ernst, I.C. Van Gelder, N. Al-Attar, G. Hindricks, B. Prendergast, H. Heidbuchel, O. Alfieri, A. Angelini, D. Atar, P. Colonna, R. De Caterina, J. De Sutter, A. Goette, B. Gorenek, M. Heldal, S.H. Hohloser, P. Kolh, J.Y. Le Heuzey, P. Ponikowski, F.H. Rutten, Guidelines for the management of atrial fibrillation: the Task Force for the Management of Atrial Fibrillation of the European Society of Cardiology (ESC), Eur Heart J 31 (19) (2010) 2369–2429.
R. Colloca. (Sup. by L. Minardi & G. D. Clifford) Implementation and testing of atrial fibrillation detectors for a mobile phone application. M.Sc. Thesis, Politecnico di Milano and University of Oxford, 2013.
I. Savelieva, J. Camm, Update on atrial fibrillation: part I, Clin Cardiol 31 (2) (2008) 55–62.
G.V. Naccarelli, H. Varker, J. Lin, K.L. Schulman, Increasing prevalence of atrial fibrillation and flutter in the United States, Am J Cardiol 104 (11) (2009) 1534–1539.
A. Petrėnas, V. Marozas, L. Sörnmo, A. Lukosevicius, An echo state neural network for QRST cancellation during atrial fibrillation, IEEE Trans Biomed Eng 59 (10) (2012) 2950–2957.
S. Ladavich, B. Ghoraani, Rate-independent detection of atrial fibrillation by statistical modeling of atrial activity, Biomed Signal Process Control 18 (4) (2015) 274–281.
X. Du, N. Rao, M. Qian, D. Liu, J. Li, W. Feng, L. Yin, X. Chen, A novel method for real-time atrial fibrillation detection in electrocardiograms using multiple parameters, Ann Noninvasive Electrocardiol 19 (3) (2014) 217–225.
H. Pürerfellner, E. Pokushalov, S. Sarkar, J. Koehler, R. Zhou, L. Urban, G. Hindricks, P-wave evidence as a method for improving algorithm to detect atrial fibrillation in insertable cardiac monitors, Heart Rhythm 11 (9) (2014) 1575–1583.
R. Alcaraz, C. Vaya, R. Cervigon, C. Sanchez, J.J. Rieta. Wavelet sample entropy: A new approach to predict termination of atrial fibrillation. In: Computing in Cardiology, ed A Murray: IEEE) 2006, pp. 597–600.
J. Ródenas, M. García, R. Alcaraz, J.J. Rieta, Wavelet entropy automatically detects episodes of atrial fibrillation from single-lead electrocardiograms, Entropy 17 (9) (2015) 6179–6199.
M. García, J. Ródenas, R. Alcaraz, J.J. Rieta, Application of the relative wavelet energy to heart rate independent detection of atrial fibrillation, Comput Methods Programs Biomed 131 (7) (2016) 157–168.
M. Carrara, L. Carozzi, T.J. Moss, M. De Pasquale, S. Cerutti, M. Ferrario, D.E. Lake, J.R. Moorman, Heart rate dynamics distinguish among atrial fibrillation, normal sinus rhythm and sinus rhythm with frequent ectopy, Physiol Meas 36 (9) (2015) 1873–1888.
J. Park, S. Lee, M. Jeon, Atrial fibrillation detection by heart rate variability in Poincare plot, Biomed Eng Online 8 (2009) 38.
S. Sarkar, D. Ritscher, R. Mehra, A detector for a chronic implantable atrial tachyarrhythmia monitor, IEEE Trans Biomed Eng 55 (3) (2008) 1219–1224.
K. Tateno, L. Glass, Automatic detection of atrial fibrillation using the coefficient of variation and density histograms of RR and deltaRR intervals, Med Biol Eng Comput 39 (6) (2001) 664–671.
D.T. Linker, Accurate, Automated Detection of Atrial Fibrillation in Ambulatory Recordings, Cardiovasc Eng Technol 2016 Jun;7(2):182-9. doi: 10.1007/s13239-016-0256-z. Epub 2016 Feb 5.
C. Huang, S. Ye, H. Chen, D. Li, F. He, Y. Tu, A novel method for detection of the transition between atrial fibrillation and sinus rhythm, IEEE Trans Biomed Eng 58 (4) (2011) 1113–1119.
S. Cerutti, L. Mainardi, L. Sörnmo. Understanding atrial fibrillation: the signal processing contribution.2008: Morgan and Claypool Publishers).
A. Petrėnas, V. Marozas, L. Sörnmo, Low-complexity detection of atrial fibrillation in continuous long-term monitoring, Comput Biol Med 65 (10) (2015) 184–191.
X. Zhou, H. Ding, B. Ung, E. Pickwell-MacPherson, Y.T. Zhang, Automatic online detection of atrial fibrillation based on symbolic dynamics and Shannon entropy, Biomed Eng Online 13 (1) (2014) 18.
R. Alcaraz, D. Abásolo, R. Hornero, J.J. Rieta, Optimal parameters study for sample entropy-based atrial fibrillation organization analysis, Comput Methods Programs Biomed 99 (1) (2010) 124–132.
D.E. Lake, J.R. Moorman, Accurate estimation of entropy in very short physiological time series: the problem of atrial fibrillation detection in implanted ventricular devices, Am J Physiol Heart Circ Physiol 300 (1) (2011) H319-H325.
D. DeMazumder, D.E. Lake, A. Cheng, T.J. Moss, E. Guallar, R.G. Weiss, S.R. Jones, G.F. Tomaselli, J.R. Moorman, Dynamic analysis of cardiac rhythms for discriminating atrial fibrillation from lethal ventricular arrhythmias, Circ Arrhythm Electrophysiol 6 (3) (2013) 555–561.
S. Babaeizadeh, R.E. Gregg, E.D. Helfenbein, J.M. Lindauer, S.H. Zhou, Improvements in atrial fibrillation detection for real-time monitoring, J Electrocardiol 42 (6) (2009) 522–526.
A. Petrėnas, L. Sörnmo, A. Lukoševicius, V. Marozas, Detection of occult paroxysmal atrial fibrillation, Med Biol Eng Comput 53 (4) (2015) 287–297.
J. Oster, G.D. Clifford, Impact of the presence of noise on RR interval-based atrial fibrillation detection, J Electrocardiol 48 (6) (2015) 947–951.
R. Colloca, A.E.W. Johnson, L. Mainardi, G.D. Clifford. A support vector machine approach for reliable detection of atrial fibrillation events. In: Computing in Cardiology, ed A Murray (Zaragoza, Spain 2013, 1047–1050.
Q. Li, C.Y. Liu, J. Oster, G.D. Clifford. Signal processing and feature selection preprocessing for classification in noisy healthcare data. In: Machine Learning for Healthcare Technologies. ed D.A. Clifton (London: The Institution of Engineering and Technology, 2016), 33-58.

 Challenge Results

Listed below are the top-scoring programs submitted in the PhysioNet/Computing in Cardiology Challenge 2017. Please refer to the AUTHORS.txt and LICENSE.txt file included with each entry for information about attribution and licensing. For more information about the details of these algorithms, see the corresponding papers.

2017 Challenge Entries

Score Authors
0.83 Shreyasi Datta, Chetanya Puri, Ayan Mukherjee, Rohan Banerjee, Anirban Dutta Choudhury, Arijit Ukil, Soma Bandyopadhyay, Rituraj Singh, Arpan Pal, Sundeep Khandelwal
0.83 Shenda Hong, Yuxi Zhou, Qingyun Wang, Meng Wu, Junyuan Shang
0.83 Tomás Teijeiro, Constantino A. García, Paulo Félix, Daniel Castro
0.83 Morteza Zabihi, Ali Bahrami Rad
0.83 Ruhi Mahajan, Oguz Akbilgic, Rishikesan Kamaleswaran, J. Andrew Howe
0.82 Mohammed Baydoun, Lise Safatly, Hassan Ghaziri, Ali El-Hajj
0.82 Guangyu Bin, Minggang Shao, Jiao Huang, Guanghong Bin
0.82 Zhaohan Xiong, Dr Jichao Zhao
0.82 Martin Zihlmann, Michael Tschannen, Dmytro Perekrestenko
0.81 Sebastian D. Goodfellow, Dr. Danny Eytan, Andrew Goodwin, Robert Greer, Dr. Peter Laussen, Dr. Mjaye Mazwi
0.81 Martin Kropf, Dieter Hayn, Günter Schreier
0.81 Filip Plesinger, Petr Nejedly, Josef Halamek, Ivo Viscor, Pavel Jurak
0.81 Ashish Sharma, Dr Shivnarayan Patidar
0.81 Dawid Smoleń
0.81 Marcus Vollmer, Philipp Sodmann, Neetika Nath, Leonard Caanitz
0.81 Chen Yao, Liu Dayiheng, Cheng dongdong, Hu Wei, Xu Kun, Yang Kexin, Wang Jian, Jiang Zhe
0.81 * Radovan Smíšek, Lukáš Smital, Martin Vítek, Marina Ronzhina, Jakub Hejč, Andrea Němcová, Lucie Maršánová, Jiří Chmelík, Jana Kolářová, Ivo Provazník
0.81 * Maurizio Varanini, Lucia Billeci
0.80 Joachim A. Behar, Aviv Rosenberg, Yael Yaniv, Julien Oster
0.80 Ivaylo Christov, Vessela Krasteva, Iana Simova, Tatyana Neycheva, Ramun Schmid
0.80 Chen Jiayu, Nigel Lovell, Stephen Redmond, Heba Khamis
0.80 Jonathan Rubin, Saman Parvaneh, Asif Rahman, Saeed Babaeizadeh, Bryan Conroy
0.80 Dionisije Sopic, Elisabetta De Giovanni, Amir Aminifar, David Atienza
0.80 Gliner Vadim, Yaniv Yael
0.80 Philip A. Warrick, Masun Nabhan Homsi
0.80 Na Liu
0.79 Fernando Andreotti, Oliver Carr, Marco A. F. Pimentel, Adam Mahdi, Maarten De Vos
0.79 Csaba Botos, Márton Áron Goda, Tamás Hakkel, Szilvia Herczeg, István Osztheimer, András Horváth
0.79 Marco Delai, Gaetano Scebba, Patrick Schwab, Jia Zhang
0.79 Sasan Yazdani, Jean-Marc Vesin
0.78 Christoph Hoog Antink, Anne Kristin Braczynski, Steffen Leonhardt, Marian Walter
0.78 Runnan He, Yang Liu
0.78 Vykintas Maknickas, Algirdas Maknickas
0.78 Nadi Sadr, Thuy Pham, Madhuka Jayawardhana, Asghar Balaie, Rui Tang, Philip de Chazal
0.78 *† Ruhi Mahajan, Oguz Akbilgic, Rishikesan Kamaleswaran, J. Andrew Howe
0.77 Mohamed Limam, Frederic Precioso
0.77 Miguel Lozano, Viktor Kifer, Francisco Martinez-Gil
0.77 Elena Simarro Mondéjar, Santiago Jiménez Serrano, Jaime Yagüe Mayans, Conrado J. Calvo, Paco Castells, José Millet Roig
0.77 Bradley M Whitaker, Muhammed Rizwan, V Burak Aydemir, David V Anderson
0.76 Teo Soo-Kng, Yang Xulei, Nguyen Phu Binh, Gabriel Tjio, Feng Ling, Su Yi, Lim Toon Wei
0.75 Joel Karel, Pietro Bonizzi, Kurt Driessens
0.75 Zhenning Mei, Hongyu Chen, Xiao Gu, Wei Chen
0.75 Rymko, Perka, Solinski, Rosinski, Lepek
0.75 Katarzyna Stepien, Iga Grzegorczyk
0.74 Griet Goovaerts, Martijn Boussé, Otto Debals, Lieven De Lathauwer, Sabine Van Huffel
0.73 Pedro Álvarez, Andreu M. Climent, María S. Guillem
0.73 Javier de la Torre Costa, Alfredo Torregrosa Lloret, Aitana Pascual Belda, Gabriel García Pardo
0.73 Victor Manuel José Ocoa
0.73 Heikki Väänänen, Jarno Mäkelä
0.72 Vignesh Kalidas
0.71 Kamran Kiani, Shadi Ghiasi, Mostafa Abdollahpur, Nasim Madani
0.71 Jos van der Westhuizen
0.71 B S Chandra
0.71 Yonghan Jung, Mohammad Adibuzzaman, Yao Chen, Yuehwern Yih
0.71 Ludi Wang
0.69 Ahmad B. A. Hassanat, Ghada Awad Altarawneh
0.64 Irena Jekova, Todor Stoyanov, Ivan Dotsinsky
0.63 Lluís Borràs Ferrís, Ignacio José Pascual Fernández, Julio José Silva Rodríguez, Roberto Zazo Manzaneque
0.61 Ruhallah Amandi M, Mohammad Farhadi, A.J. Zarrin
0.61 Ilya Potapov, Otto Pulkkinen, Esa Räsänen
0.58 Matthieu Da Silva-Filarder, Faezeh Marzbanrad
0.56 María Rebeca Lliguin León, Marta Mares García, Juliana Andrea Suárez Hernández
0.55 Erin Coppola
0.53 Octavian-Lucian Hasna, Rodica Potolea
0.53 Carlos Fambuena Santos, Carlos Lopez Gomez, Pablo Abad Martinez, Gonzalo Collantes Pablo, Jose Millet Roig, Francisco Sales Castells Ramon
0.51 Ines Chavarria Marques, Irene Cuenca Ortola, Laura Ferrero Montes, Eva Gil San Antonio
0.50 Mihalis Nicolaou, Hooman Oroojeni Mohamad Javad
0.25 Raviteja Mullapudi, Rajarao Mullapudi, Phanikiran Chintalapati

* These entries were disqualified because they included code that was not freely licensed, contrary to the Challenge rules. The code in question has been removed from the archives linked above.

† These entries were disqualified because their authors submitted more than ten entries in total, contrary to the Challenge rules.


The papers listed below were presented at Computers in Cardiology 2017. Please cite this publication when referencing any of these papers. These papers have been made available by their authors 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:

Gari Clifford, Chengyu Liu, Benjamin Moody, Li-Wei Lehman, Ikaro Silva, Qiao Li, Alistair Johnson, Roger Mark. AF Classification from a Short Single Lead ECG Recording: the Physionet Computing in Cardiology Challenge 2017.

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

Publications listed alphabetically by author

  1. Fernando Andreotti, Oliver Carr, Marco A F Pimentel, Adam Mahdi, Maarten De Vos. Comparing Feature Based Classifiers and Convolutional Neural Networks to Detect Arrhythmia from Short Segments of ECG.
  2. Joachim A. Behar, Aviv Rosenberg, Yael Yaniv, Julien Oster. Rhythm and Quality Classification from Short ECGs Recorded using a Mobile Device.
  3. Lucia Billeci, Franco Chiarugi, Magda Costi, David Lombardi, Maurizio Varanini. Detection of AF and Other Rhythms Using RR Variability and ECG Spectrum Measures.
  4. Guangyu Bin, Minggang Shao, Guanghong Bin, Jiao Huang, Dingchang Zheng, Shuicai Wu. Detection of Atrial Fibrillation Using Decision Tree Ensemble.
  5. Pietro Bonizzi, Kurt Driessens, Joel Karel. Detection of Atrial Fibrillation Episodes from Short Single Lead Recordings by Means of Ensemble Learning.
  6. Sandeep Chandra Bollepalli, S Sastry Challa, Soumya Jana, Shivnarayan Patidar. Atrial Fibrillation Detection Using Convolutional Neural Networks.
  7. Ivaylo Christov, Vessela Krasteva, Iana Simova, Tatyana Neycheva, Ramun Schmid. Multi-parametric Analysis for Atrial Fibrillation Classification in the ECG.
  8. Erin Coppola, Prashnna Gyawali, Nihar Vanjara, Daniel Giaime, Linwei Wang. Atrial Fibrillation Classification from a Short Single Lead ECG Recording Using Hierarchical Classifier.
  9. Matthieu Da Silva-Filarder, Faezeh Marzbanrad. Combining Template-based and Feature-based Classification to Detect Atrial Fibrillation from a Short Single Lead ECG Recording.
  10. Shreyasi Datta, Chetanya Puri, Ayan Mukherjee, Rohan Banerjee, Anirban Dutta Choudhury, Rituraj Singh, Arijit Ukil, Soma Bandyopadhyay, Arpan Pal, Sundeep Khandelwal. Identifying Normal, AF and other Abnormal ECG Rhythms using a Cascaded Binary Classifier.
  11. Manuel García, Juan Ródenas, Raul Alcaraz, José J Rieta. Atrial Fibrillation Screening through Combined Timing Features of Short Single-Lead Electrocardiograms.
  12. Shadi Ghiasi, Mostafa Abdollahpur, nasimalsadat madani, kamran kiyani, ali ghaffari. Atrial Fibrillation Detection Using Feature Based Algorithm and Deep Conventional Neural Network.
  13. Vadim Gliner, Yael Yaniv. Identification of Features for Machine Learning Analysis for Automatic Arrhythmogenic Event Classification.
  14. Andrew Goodwin, Sebastian Goodfellow, Danny Eytan, Robert Greer, Mjaye Mazwi, Peter Laussen, Sebastian Goodfellow. Classification of Atrial Fibrillation Using Multidisciplinary Features and Gradient Boosting.
  15. Shenda Hong, Meng Wu, Yuxi Zhou, Qingyun Wang, Junyuan Shang, Hongyan Li, Junqing Xie. ENCASE: an ENsemble ClASsifiEr for ECG Classification Using Expert Features and Deep Neural Networks.
  16. Christoph Hoog Antink, Steffen Leonhardt, Marian Walter. Fusing QRS Detection, Waveform Features, and Robust Interval Estimation with a Random Forest to Classify Atrial Fibrillation.
  17. Irena Jekova, Todor Stoyanov, Ivan Dotsinsky. Arrhythmia Classification via Time and Frequency Domain Analyses of Ventricular and Atrial Contractions.
  18. Santiago Jiménez-Serrano, Jaime Yagüe-Mayans, Elena Simarro-Mondejar, Conrado J. Calvo, Francisco Castells, José Millet Roig. Atrial Fibrillation Detection Using Feedforward Neural Networks and Automatically Extracted Signal Features.
  19. Martin Kropf, Dieter Hayn, Günter Schreier. ECG Classification Based on Time and Frequency Domain Features Using Random Forrests.
  20. Mohamed Limam, Frederic Precioso. AF Detection and ECG Classification based on Convolutional Recurrent Neural Network.
  21. Chengyu Liu, Qiao Li, Pradyumna B Suresha, Gari Clifford. Combining Multi-source Features and Support Vector Machine for Heart Rhythm Classification.
  22. Yang Liu, Kuanquan Wang, Qince Li, Runnan He, Yong Xia, Zhen Li, Hao Liu, Henggui Zhang. Diagnosis of AF Based on Time and Frequency Features by using a Hierarchical Classifier.
  23. Octavian Lucian Hasna, Rodica Potolea. Robust Feature Extraction from Noisy ECG for Atrial Fibrillation Detection.
  24. Ruhi Mahajan, Rishikesan Kamaleswaran, John Andrew Howe, Oguz Akbilgic. Cardiac Rhythm Classification from a Short Single Lead ECG Recording via Random Forest.
  25. Vykintas Maknickas, Algirdas Maknickas. Atrial Fibrillation Classification Using QRS Complex Features and LSTM.
  26. Saman Parvaneh, Jonathan Rubin, Rahman Asif, Bryan Conroy, Saeed Babaeizadeh. Densely Connected Convolutional Networks and Signal Quality Analysis to Detect Atrial Fibrillation Using Short Single-Lead ECG Recordings.
  27. Shivnarayan Patidar, Ashish Sharma, Niranjan Garg. Automated Detection of Atrial Fbrillation using Fourier-Bessel expansion and Teager Energy Operator from Electrocardiogram Signals.
  28. Filip Plesinger, Petr Nejedly, Ivo Viscor, Josef Halamek, Pavel Jurak. Automatic Detection of Atrial Fibrillation and Other Arrhythmias in Holter ECG Recordings using PQRS Morphology and Rhythm Features.
  29. Patrick Schwab, Gaetano Claudio Scebba, Jia Zhang, Marco Delai, Walter Karlen. Beat by Beat: Classifying Cardiac Arrhythmias with Recurrent Neural Networks.
  30. Radovan Smíšek, Jakub Hejc, Marina Ronzhina, Andrea Nemcová, Lucie Maršánová, Jirí Chmelík, Jana Kolárová, Ivo Provazník, Lukáš Smital, Martin Vítek. SVM Based ECG Classification Using Rhythm and Morphology Features, Cluster Analysis and Multilevel Noise Estimation.
  31. Dawid Smolen. Atrial Fibrillation Detection Using Boosting and Stacking Ensemble.
  32. Dionisije Sopic, Elisabetta De Giovanni, Amir Aminifar, David Atienza. A Hierarchical Cardiac Rhythm Classification Methodology Based on Electrocardiogram Fiducial Points.
  33. Katarzyna Stepien, Iga Grzegorczyk. Classification of ECG Recordings with Neural Networks Based on Specific Morphological Features and Regularity of the Signal.
  34. Tomas Teijeiro, Constantino A. Garcia, Daniel Castro, Paulo Félix. Arrhythmia Classification from the Abductive Interpretation of Short Single-Lead ECG Records.
  35. Maria Tziakouri, Costas Pitris, Christina Orphanidou. Identification of AF and Other Cardiac Arrhythmias from a Single-lead ECG Using Dynamic Time Warping.
  36. Heikki Väänänen, Jarno Mäkelä. Electrocardiogram Classification -- a Human Expert Way.
  37. Marcus Vollmer, Philipp Sodmann, Leonard Caanitz, Neetika Nath, Lars Kaderali. Can Supervised Learning Be Used to Classify Cardiac Rhythms?.
  38. Philip Warrick, Masun Nabhan Homsi. Cardiac Arrhythmia Detection from ECG Combining Convolutional and Long Short-Term Memory Networks.
  39. Bradley Whitaker, Muhammed Rizwan, Burak Aydemir, James Rehg, David Anderson. AF Classification from ECG Recording Using Feature Ensemble and Sparse Coding.
  40. Zhaohan Xiong, Martin Stiles, Jichao Zhao. Robust ECG Signal Classification for the Detection of Atrial Fibrillation Using Novel Neural Networks.
  41. Sasan Yazdani, Priscille Laub, Adrian Luca, Jean-Marc Vesin. Heart Rhythm Classification using Short-term ECG Atrial and Ventricular Activity Analysis.
  42. Morteza Zabihi, Ali Bahrami Rad, Aggelos K. Katsaggelos, Serkan Kiranyaz, Susanna Narkilahti, Moncef Gabbouj. Detection of Atrial Fibrillation in ECG Hand-held Devices Using a Random Forest Classifier.
  43. Martin Zihlmann, Dmytro Perekrestenko, Michael Tschannen. Convolutional Recurrent Neural Networks for Electrocardiogram Classification.



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: 0 B.Download Zip (1.4 GB)

     Folder Navigation: <base>