{"id":13592943,"url":"https://github.com/marksgraham/OCT-Converter","last_synced_at":"2025-04-09T02:31:45.702Z","repository":{"id":37358112,"uuid":"183662872","full_name":"marksgraham/OCT-Converter","owner":"marksgraham","description":"Tools for extracting the raw optical coherence tomography (OCT) and fundus data from proprietary file formats.","archived":false,"fork":false,"pushed_at":"2025-02-18T20:37:51.000Z","size":98785,"stargazers_count":211,"open_issues_count":10,"forks_count":73,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-03-31T14:07:00.205Z","etag":null,"topics":["biobank","dicom","e2e","fda","fundus","heidelberg","oct","python","topcon","zeiss"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/oct-converter/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marksgraham.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-26T16:39:45.000Z","updated_at":"2025-03-28T23:12:24.000Z","dependencies_parsed_at":"2022-08-08T20:01:19.693Z","dependency_job_id":"c8cace55-0e1d-424f-b015-232d712d62b9","html_url":"https://github.com/marksgraham/OCT-Converter","commit_stats":{"total_commits":278,"total_committers":22,"mean_commits":"12.636363636363637","dds":"0.44244604316546765","last_synced_commit":"1de10a10205bb6e7a2579e54cf2443428a0b402c"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marksgraham%2FOCT-Converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marksgraham%2FOCT-Converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marksgraham%2FOCT-Converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marksgraham%2FOCT-Converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marksgraham","download_url":"https://codeload.github.com/marksgraham/OCT-Converter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675597,"owners_count":20977376,"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":["biobank","dicom","e2e","fda","fundus","heidelberg","oct","python","topcon","zeiss"],"created_at":"2024-08-01T16:01:14.931Z","updated_at":"2025-04-09T02:31:45.661Z","avatar_url":"https://github.com/marksgraham.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003eOCT Converter\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n Python-based tools for reading OCT and fundus data.\n\u003c/p\u003e\n\n\n\u003cp align=\"center\"\u003e\n    \u003cimg width=\"320\" height=\"320\" src=\"https://user-images.githubusercontent.com/7947315/202814956-6e7e6702-82f4-4250-8625-ec23c1727e4f.jpg\"\u003e\n    \u003cimg width=\"320\" height=\"320\" src=\"https://user-images.githubusercontent.com/7947315/202814575-9f18b7ca-3028-4d23-9b82-015995c44eab.gif\"\u003e\n\u003c/p\u003e\n\n## Description\nIn ophthalmology, data acquired from the scanner is often exported in the manufacturer's proprietary file format. OCT-Converter provides python-based tools for extracting images (optical coherence tomography and fundus), as well as associated metadata, from these files.\n\n## Supported file formats\n* .fds (Topcon)\n* .fda (Topcon)\n* .e2e (Heidelberg)\n* .img (Zeiss)\n* .oct (Bioptigen)\n* .OCT (Optovue)\n* .dcm\n\n## Installation\nRequires python 3.7 or higher.\n\n```bash\npip install oct-converter\n```\n\n\n## Usage\nA number of example usage scripts are included in `examples/`.\n\nHere is an example of reading a .fds file:\n\n```python\nfrom oct_converter.dicom import create_dicom_from_oct\nfrom oct_converter.readers import FDS\n\n# An example .fds file can be downloaded from the Biobank website:\n# https://biobank.ndph.ox.ac.uk/showcase/refer.cgi?id=30\nfilepath = '/home/mark/Downloads/eg_oct_fds.fds'\nfds = FDS(filepath)\n\noct_volume = fds.read_oct_volume()  # returns an OCT volume with additional metadata if available\noct_volume.peek(show_contours=True) # plots a montage of the volume, with layer segmentations is available\noct_volume.save('fds_testing.avi')  # save volume as a movie\noct_volume.save('fds_testing.png')  # save volume as a set of sequential images, fds_testing_[1...N].png\noct_volume.save_projection('projection.png') # save 2D projection\n\nfundus_image = fds.read_fundus_image()  # returns a  Fundus image with additional metadata if available\nfundus_image.save('fds_testing_fundus.jpg')\n\nmetadata = fds.read_all_metadata(verbose=True) # extracts all other metadata\nwith open(\"fds_metadata.json\", \"w\") as outfile:\n    outfile.write(json.dumps(metadata, indent=4))\n\n# create and save a DICOM\ndcm = create_dicom_from_oct(filepath)\n```\n\n## Contributions\nAre welcome! Here is a [development roadmap](https://github.com/marksgraham/OCT-Converter/issues/86), including some easy first issues. Please open a [new issue](https://github.com/marksgraham/OCT-Converter/issues/new) to discuss any potential contributions.\n\n## Updates\n9 November 2023\n- Can now save .e2e, .img, .oct, and .OCT files as DICOMs with correct headers.\n\n22 September 2023\n- DICOM support: can now save .fda/.fds files as DICOMs with correct headers.\n- Much more complete extraction of .fda/.fds metadata.\n\n28 March 2023\n- Metadata extraction for .fds expanded to match that of .fda file.\n\n31 January 2023\n- Greatly extended support for extracting metadata from .fda files.\n\n7 August 2022\n- Contours (layer segmentations) are now extracted from .e2e files.\n- Acquisition date is now extracted from .e2e files.\n\n16 June 2022\n- Initial support for reading Optovue OCTs.\n- Laterality is now extracted separately for each OCT/fundus image for .e2e files.\n- More patient info extracted from .e2e files (name, sex, birthdate, patient ID).\n\n24 Aug 2021\n- Reading the Bioptigen .OCT format is now supported.\n\n11 June 2021\n- Can now specify whether Zeiss .img data needs to be de-interlaced during reading.\n\n14 May 2021\n- Can save 2D projections of OCT volumes.\n\n30 October 2020\n- Extract fundus and laterality data from .e2e\n- Now attempts to extract additional volumetric data from .e2e files that was previously missed.\n\n22 August 2020\n- Experimental support for reading OCT data from .fda files.\n\n14 July 2020\n- Can now read fundus data from .fda files.\n\n## Related projects\n- [uocte](https://bitbucket.org/uocte/uocte/wiki/Home) inspired and enabled this project\n- [LibE2E](https://github.com/neurodial/LibE2E) and [LibOctData](https://github.com/neurodial/LibOctData) provided some additional descriptions of the .e2e file spec\n- [eyepy](https://github.com/MedVisBonn/eyepy) for python-based import, visualisation, and analysis of OCT data\n- [eyelab](https://github.com/MedVisBonn/eyelab) is a tool for annotating this data\n\n## Clinical use\nWe can't guarantee images extracted with OCT-Converter will match those extracted or viewed with the manufacturer's software. Any use in clinical settings is at the user's own risk.\n","funding_links":[],"categories":["Imaging phenotypes"],"sub_categories":["Optical coherence tomography and fundus"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarksgraham%2FOCT-Converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarksgraham%2FOCT-Converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarksgraham%2FOCT-Converter/lists"}