{"id":37702056,"url":"https://github.com/masilab/braid","last_synced_at":"2026-01-16T13:00:56.501Z","repository":{"id":261141293,"uuid":"684682946","full_name":"MASILab/BRAID","owner":"MASILab","description":"BRain Age Identification from Diffusion MRI (BRAID)","archived":false,"fork":false,"pushed_at":"2025-12-12T22:19:00.000Z","size":13982,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-14T12:55:53.019Z","etag":null,"topics":["computer-vision","deep-learning","mri"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MASILab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-08-29T16:34:26.000Z","updated_at":"2025-12-12T22:19:03.000Z","dependencies_parsed_at":"2024-11-04T23:26:55.405Z","dependency_job_id":"b78520e8-8fbc-4cda-be30-f41c15e5d8bb","html_url":"https://github.com/MASILab/BRAID","commit_stats":null,"previous_names":["masilab/braid"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MASILab/BRAID","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MASILab%2FBRAID","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MASILab%2FBRAID/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MASILab%2FBRAID/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MASILab%2FBRAID/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MASILab","download_url":"https://codeload.github.com/MASILab/BRAID/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MASILab%2FBRAID/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["computer-vision","deep-learning","mri"],"created_at":"2026-01-16T13:00:55.399Z","updated_at":"2026-01-16T13:00:56.490Z","avatar_url":"https://github.com/MASILab.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"figures/logo.PNG\" alt=\"braid\" width=\"300\"\u003e\n\u003c/p\u003e\n\n# BRAID: Brain Age Identification from Diffusion MRI\n\nShield: [![CC BY-NC 4.0][cc-by-nc-shield]][cc-by-nc]\n\nThis work is licensed under a\n[Creative Commons Attribution-NonCommercial 4.0 International License][cc-by-nc].\n\n[![CC BY-NC 4.0][cc-by-nc-image]][cc-by-nc]\n\n[cc-by-nc]: https://creativecommons.org/licenses/by-nc/4.0/\n[cc-by-nc-image]: https://licensebuttons.net/l/by-nc/4.0/88x31.png\n[cc-by-nc-shield]: https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg\n\nBRAID estimates brain age from diffusion MRI. \nUnlike its counterparts, which typically use anatomical features (such as volume and shape of brain regions) to assist in the estimation, BRAID deliberately *destroys* anatomical information.\nThrough non-rigid transformations, BRAID minimizes anatomical information to better focus on subtle microstructural changes that predate apparent anatomical changes in neurodegeneration. \nThe goal of BRAID is not to be a perfect chronological age estimator, but to provide an earlier biomarker for neurodegenerative disease prediction.\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"figures/warp_brain.png\" alt=\"warp brain\" width=\"650\"/\u003e\n\u003c/div\u003e\n\nIllustration of the preprocessing, which minimizes anatomical information through non-rigid transformations.\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"figures/preprocessing.png\" alt=\"preprocessing\" width=\"650\"/\u003e\n\u003c/div\u003e\n\n## Citations\nIf you use BRAID in your research, please cite the following papers:\n- Gao et al. \"Brain age identification from diffusion MRI synergistically predicts neurodegenerative disease.\" *Imaging Neuroscience* (2025) [https://doi.org/10.1162/imag_a_00552](https://doi.org/10.1162/imag_a_00552)\n- Gao et al. \"Predicting age from white matter diffusivity with residual learning.\" *Medical Imaging 2024: Image Processing.* (2024) [https://doi.org/10.1117/12.3006525](https://doi.org/10.1117/12.3006525)\n\n\n## How to use BRAID\n### Method 1 (recommended): Use the Singularity container\n\nProvide the inputs and hit the \"run button\". It's that simple! There is no need to install dependencies by yourself. This is the recommended way for users who want to quickly test BRAID on their own datasets.\n\nPlease find the Singularity image and instructions on how to use it on the [Zenodo repository](https://zenodo.org/records/15091613).\n\n### Method 2: Use the source code\n\nFor users who want to play around with the source code.\n\n#### Step 1: Clone the repository\n\n```bash\ngit clone https://github.com/MASILab/BRAID.git\n```\n#### Step 2: Create a virtual environment\n\nInstall python \n\u003e Note: Development was done on Python 3.11.5. Tested on Python 3.12.8 as well. Please use either of the versions (or versions in between) for smoothest user experience.\n\n```bash\ncd BRAID\npython -m venv env\nsource env/bin/activate\n```\n\n#### Step 3: Install dependencies\n\nInstall the (minimal) Python packages required for BRAID:\n```bash\npip install .\n```\n\nInstall other required software dependencies (for preprocessing):\n\n| Package                                          | Tested version |\n|--------------------------------------------------|----------------|\n| [FSL](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSL)| 6.0.4          |\n| [MRtrix](https://www.mrtrix.org/)                | 3.0.3          |\n| [c3d](https://sourceforge.net/projects/c3d/files/c3d/1.0.0/) | 1.0.0  |\n| [ANTs](https://stnava.github.io/ANTs/)           | 2.3.1.dev48-g39ce5 |\n\n#### Step 4: Download model weights from Hugging Face\n\n\u003e Link: [braid-v1.0 weights](https://huggingface.co/chenyugoal/braid-v1.0/tree/main)\n\n```bash\n# if git-lfs is not installed yet\ngit lfs install\n# clone the repository to the current directory\ngit clone https://huggingface.co/chenyugoal/braid-v1.0\n```\n\n#### Example usage: Model inference with one line of command\n\n```bash\nbraid_one_sample_inference -d {path to dwi} -v {path to bval} -c {path to bvec} -t {path to t1 image} -tm {path to t1 brain segmentation or brain mask} -m ./data/template/MNI_152.nii.gz -w {path to the braid-v1.0 directory} -i -o {path to the output directory}\n```\n\nSee descriptions about the arguments by running `braid_one_sample_inference -h`.\n\n\n## FAQ\n- **Q: I saw \"WM age nonlinear\" in some scripts. What is it?**\n- A: The name \"WM age nonlinear\" appears most likely in the legacy scripts created during model development. We had a debate whether we should use \"WM age nonlinear\" or \"WM age nonrigid\" when referring to the brain age estimation made based on the \"warped\" images. At the time point of writing the journal paper, we leaned more  towards \"WM age nonrigid\" and continued using it afterwards.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasilab%2Fbraid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasilab%2Fbraid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasilab%2Fbraid/lists"}