{"id":18365329,"url":"https://github.com/mit-lcp/metaann","last_synced_at":"2025-08-13T18:34:55.098Z","repository":{"id":142803935,"uuid":"543257572","full_name":"MIT-LCP/metaann","owner":"MIT-LCP","description":"Collaborative labelling of events in physiological waveforms","archived":false,"fork":false,"pushed_at":"2022-09-29T18:06:38.000Z","size":156,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-15T19:51:16.934Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MIT-LCP.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-29T18:05:07.000Z","updated_at":"2022-09-29T18:05:58.000Z","dependencies_parsed_at":"2023-04-04T07:48:01.431Z","dependency_job_id":null,"html_url":"https://github.com/MIT-LCP/metaann","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-LCP%2Fmetaann","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-LCP%2Fmetaann/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-LCP%2Fmetaann/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-LCP%2Fmetaann/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MIT-LCP","download_url":"https://codeload.github.com/MIT-LCP/metaann/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225656,"owners_count":21068078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T23:13:11.321Z","updated_at":"2025-04-10T13:18:15.957Z","avatar_url":"https://github.com/MIT-LCP.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# metaann\n\n![Screenshot](example.png)\n\nmetaann is a system for reviewing and labelling events in\nphysiological waveforms.  This system was built and used from about\n2013 to 2017, to annotate several large collections of waveform data\nat the MIT Laboratory for Computational Physiology.\n\nThis system was built to solve a very specific problem.  We have a\ncollection of long-duration, multi-channel waveform recordings (ECG,\nPPG, blood pressure, etc.)  And for each of those recordings, we have\na list of events that were detected by some automated classifier.  We\nhave thousands of these events, and we want to group the events into\nbuckets (e.g. \"ventricular arrhythmia\" versus \"motion artifact\") for\nlater study.  We also wanted to have several people review each event\nindependently, to be sure they agreed.\n\nAs such, we needed a process that would allow a person to quickly\nreview each event.  It needed to allow the reviewer to focus on their\ntask, which meant that the UI needed to load and display data without\nany perceptible delay, require only one click to submit an answer, and\nsave the answers to a central server automatically.\n\nThe metaann client is a heavily modified, stripped-down version of\nWAVE.  It uses GTK+ 2.24 (because that made it easy to port WAVE's\nXlib display code to work natively on Windows and Mac OS.)  Naturally,\nit uses WFDB, and libcurl.\n\nThe metaann server is implemented using CGI.pm.  It relies on the\nPhysioNetWorks user authentication system.  If you want to deploy it\nyourself, you'll have to provide your own authentication system and\nmodify the scripts to work with it.  Or write your own server; the\nHTTP API is not terribly complicated.\n\nOne significant issue we discovered - obvious in retrospect - is that\nnot everyone works at the same speed.  Some reviewers are highly\nproductive and motivated, and can routinely review hundreds of events\nper week, while other reviewers will only review a handful of events\nnow and again.  If you have a specific target to achieve (e.g.,\nmaximizing the number of events that have at least two independent\nreviews), you can't simply divide up the database evenly among all the\nreviewers.  The metaann system has no mechanism for addressing this\nsituation, and required active involvement from the administrator\n(manually re-partitioning and re-shuffling the record assignment\nlists) in order to make effective use of everyone's time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmit-lcp%2Fmetaann","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmit-lcp%2Fmetaann","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmit-lcp%2Fmetaann/lists"}