Skip to content

Heart Murmur Detection from Phonocardiogram Recordings: The George B. Moody PhysioNet Challenge 2022

License

Notifications You must be signed in to change notification settings

DeepPSP/cinc2022

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CinC2022

docker-ci-and-test format-check

Heart Murmur Detection from Phonocardiogram Recordings: The George B. Moody PhysioNet Challenge 2022

Knowledge about Heart Murmur

utils/HeartMurmur.md contains knowledge about heart murmur collected from various sources.

The Conference

Conference Website

Conference Program

Conference Paper

GitHub

IEEE Xplore

CinC Papers On-line

Preprint

Conference Poster

Poster created with baposter using the Overleaf template

Click to view! poster

Final Scores

Final scores are released in https://physionetchallenges.org/2022/results/ in 5 .tsv files.

These files were gathered in one .xlsx file, which was uploaded into Google Sheets.

Click to expand!

Final score files would keep on changing for some time as unofficial teams are having their rebuttals against the organizers.

Final score files were frozen from 2022/09/18 (Updated again....).

One can load the 5 tables all at once via

pd.read_excel("./results/final_scores.xlsx", engine="openpyxl", sheet_name=None)

One can get a digest of the scores and rankings of all metrics (Weighted Accuracy, Cost, etc.) for the murmur task and the outcome task via

from utils._final_results import get_team_digest

get_team_digest("Revenger", fmt="pd", latest=True)  # pandas DataFrame format
get_team_digest("Revenger", fmt="tex", latest=True)  # latex format (string)

Top Team Papers

Click to view!

Official Phase Leaderboards

Murmur

Outcome

Click to expand!

The leaderboards can be loaded via

# beautifulsoup4 and html5lib required
import pandas as pd

outcome_url = "https://docs.google.com/spreadsheets/u/0/d/e/2PACX-1vRNBATogMRsfio3938bU4r6fcAad85jNzTbSRtRhQ74xHw9shuYoP4uxkK6uKV1zw8CKjPC3AMm33qn/pubhtml/sheet?headers=false&gid=1883863848"
murmur_url = "https://docs.google.com/spreadsheets/u/0/d/e/2PACX-1vRNBATogMRsfio3938bU4r6fcAad85jNzTbSRtRhQ74xHw9shuYoP4uxkK6uKV1zw8CKjPC3AMm33qn/pubhtml/sheet?headers=false&gid=0"

df_outcome = pd.read_html(outcome_url, flavor="bs4", header=[1], index_col=[0])[0].reset_index(drop=True).dropna()
df_outcome.Rank = df_outcome.Rank.astype(int)
# df_outcome.set_index("Rank", inplace=True)  # Rank has duplicates
df_murmur = pd.read_html(murmur_url, flavor="bs4", header=[1], index_col=[0])[0].reset_index(drop=True).dropna()
df_murmur.Rank = df_murmur.Rank.astype(int)
# df_murmur.set_index("Rank", inplace=True)  # Rank has duplicates

pattern for the content of email announcing the submission scores:

from string import punctuation

team_name_pattern = f"""[\\w\\s{punctuation}]+"""
email_pattern = (
    f"""We processed an entry from Team (?P<team_name>{team_name_pattern}) """
    """for the Official phase of the George B\\. Moody PhysioNet Challenge 2022\\. """
    """This entry was submitted on (?P<submission_time>[\\d]{1,2}/[\\d]{1,2}/2022 [\\d]{1,2}:[\\d]{1,2}:[\\d]{1,2} ET) """
    f"""with ID (?P<submission_id>{team_name_pattern}_[\\d]{{1,5}}_[\\d]{{1,3}})\\.[\\n]+"""
    """We successfully evaluated your entry, which received the score (?P<outcome_cost>[\\d\\.]+) and """
    """(?P<murmur_weighted_accuracy>[\\d\\.]+) using the Challenge evaluation metric on the validation set\\. """
    """This entry was your team's (?P<submission_number>[\\d]{1,2})/10 entry for the Official phase\\."""
)
# usage:
# list(re.finditer(email_pattern, email_content))[0].groupdict()

Miscellaneous

Click to view!

Test Files

The file test_docker.py along with the docker CI and Test action can almost guarantee that the Challenge submissions won't raise errors, except for CUDA (GPU) errors. For possible CUDA errors, detect with test_local.py.

Python Re-Implementation of Springer's PCG Features Extractor

pcg_springer_features re-implements the feature extraction part of David Springer's logistic regression-HSMM-based reart sound segmentation algorithm.

Inside utils there's also a copy of pcg_springer_features.

docker-ci

A Docker image was built and pushed to Docker Hub using GitHub Action.

CinC2020 | CinC2021 | CinC2023

About

Heart Murmur Detection from Phonocardiogram Recordings: The George B. Moody PhysioNet Challenge 2022

Resources

License

Stars

Watchers

Forks

Packages

No packages published