Skip to content

Latest commit

 

History

History
168 lines (108 loc) · 7.05 KB

README.md

File metadata and controls

168 lines (108 loc) · 7.05 KB

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