{"id":32570659,"url":"https://github.com/shawntz/fmri","last_synced_at":"2025-10-29T08:19:10.696Z","repository":{"id":275361691,"uuid":"892801422","full_name":"shawntz/fmri","owner":"shawntz","description":"a (work in progress) attempt to transform the stanford memory lab's internal fmri preprocessing scripts into a generalizable template for consistency within and across lab projects","archived":false,"fork":false,"pushed_at":"2025-08-31T20:55:21.000Z","size":491,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-31T22:26:20.937Z","etag":null,"topics":["computing-cluster","fmri","fmri-preprocessing","fmriprep","freesurfer","fsl","reproducible-science","slurm-job-scheduler","stanford","workflows"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/shawntz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2024-11-22T20:04:46.000Z","updated_at":"2025-08-31T20:55:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"8ba1d43c-edd5-44ba-a40a-78870f5bb799","html_url":"https://github.com/shawntz/fmri","commit_stats":null,"previous_names":["shawntz/fmri"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/shawntz/fmri","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Ffmri","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Ffmri/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Ffmri/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Ffmri/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shawntz","download_url":"https://codeload.github.com/shawntz/fmri/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shawntz%2Ffmri/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281585594,"owners_count":26526325,"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","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["computing-cluster","fmri","fmri-preprocessing","fmriprep","freesurfer","fsl","reproducible-science","slurm-job-scheduler","stanford","workflows"],"created_at":"2025-10-29T08:16:59.437Z","updated_at":"2025-10-29T08:19:10.688Z","avatar_url":"https://github.com/shawntz.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003eSML fMRI Preprocessing Template\u003cbr /\u003e(\u003cem\u003eaka, meta fmriprep\u003c/em\u003e)\u003c/h2\u003e\n\n    ███████╗███╗   ███╗██████╗ ██╗\n    ██╔════╝████╗ ████║██╔══██╗██║\n    █████╗  ██╔████╔██║██████╔╝██║\n    ██╔══╝  ██║╚██╔╝██║██╔══██╗██║\n    ██║     ██║ ╚═╝ ██║██║  ██║██║\n    ╚═╝     ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝\n\n    ██████╗ ██╗██████╗ ███████╗██╗     ██╗███╗   ██╗███████╗\n    ██╔══██╗██║██╔══██╗██╔════╝██║     ██║████╗  ██║██╔════╝\n    ██████╔╝██║██████╔╝█████╗  ██║     ██║██╔██╗ ██║█████╗\n    ██╔═══╝ ██║██╔═══╝ ██╔══╝  ██║     ██║██║╚██╗██║██╔══╝\n    ██║     ██║██║     ███████╗███████╗██║██║ ╚████║███████╗\n    ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝╚═╝  ╚═══╝╚══════╝\n\nThis repo is a work in progress intended to transform the [Stanford Memory Lab's](https://memorylab.stanford.edu/) (SML) internal fMRI preprocessing scripts into a generalizable workflow for consistency within and across lab projects.\n\nAs such, this repo is intended to be used as a **GitHub template** for setting up fMRI preprocessing pipelines that handle:\n\n- [x] 1. automated transfer of scanner acquisitions from FlyWheel -\u003e Server\n- [x] 2. Raw -\u003e BIDS format\n- [x] 3. `dcm2niix` DICOM to NIfTI converter,\n- [x] 4. dummy scan removal + setup files for fieldmap-based susceptibility distortion correction in fMRIPrep,\n- [x] 5. Run fMRIPrep anatomical workflows only (if doing manual edits, otherwise skip to step 8)\n- [ ] 6. Download Freesurfer output for manual surface editing\n- [ ] 7. Reupload edited Freesurfer directories\n- [ ] 8. Run remaining fMRIPrep steps\n- [ ] 9. automated tools for HDF5 file management and compression out of the box (i.e., to limit lab inode usage on OAK storage)\n\n\u003e [!NOTE]\n\u003e - [x] indicates workflows that have been finished and validated\n\u003e - [ ] indicates workflows that are still under active development\n\n## Using this Template\n\n1. Click the \"Use this template\" button at the top of this repository\n2. Select \"Create a new repository\"\n3. Choose a name for your repository\n4. Select whether you want it to be public or private\n5. Click \"Create repository from template\"\n\nThis will create a new repository with all the files from this template, allowing you to customize it for your specific preprocessing needs while maintaining the core functionality for handling:\n\n- Fieldmap-based distortion correction\n- Dummy scan removal\n- BIDS-compliance\n- JSON metadata management\n- Quality control checks\n\nThe template provides a standardized structure and validated scripts that you can build upon, while keeping your specific study parameters and paths separate in configuration files.\n\n## What's Included\n\n- Preprocessing scripts for handling fieldmaps and dummy scans\n- Configuration templates and examples\n- Documentation and usage guides\n- Quality control utilities\n- BIDS metadata management tools\n- An interactive terminal user interface (TUI) launcher for triggering pipeline steps\n\n## Getting Started\n\nAfter creating your repository from this template:\n\n1. Clone your new repository\n2. Copy `settings.template.sh` to `settings.sh` and customize parameters\n3. Modify paths and scan parameters for your study\n4. Follow the `configuration guide` in the detailed documentation below\n\n---\n\n# SML fMRI Configuration Guide\n\n## Overview\nThe preprocessing pipeline requires proper configuration of several parameters to handle your study's specific requirements. This guide explains how to set up the `settings.sh` file that controls the pipeline's behavior.\n\n\u003e [!IMPORTANT]\n\u003e ## Submitting Jobs to Slurm Workload Manager\n\u003e\n\u003e There are two approaches you can take to trigger each preprocessing step following proper configuration in the `settings.sh` file:\n\u003e\n\u003e 1) Use the provided TUI `launcher` executable, which provides an interactive popup window with more context and explanations + interactive parameter setting (as needed) for any given step.\n\u003e\n\u003e 2) Manually running each step's sidecar executable, which for each core step directory (e.g., `01-prepare`), there exists an associated sidecar executable (e.g., `01-run.sbatch`).\n\u003e\n\u003e Note: The provided `launcher` mentioned in point 1 above simply calls upon these sidecar executables; the added context and interactivity of this method may be more comfortable for users less familiar with running commands in the terminal.\n\u003e\n\u003e Thus, from the root of your project scripts directory, you can either call:\n\n### graphical TUI `launcher` executable approach\n```bash\n./launch\n```\n\n#### `launcher` welcome screen:\n![TUI Welcome Screen](screenshots/welcome_screen.png)\n\n#### `launcher` workflow selector:\n![TUI Workflow Selector](screenshots/workflow_selector.png)\n\n#### `launcher` example parameter selector for the `fmriprep` step:\n![TUI Example Parameter Selector Screen](screenshots/example_param.png)\n\n##### or\n\n### manually calling upon each sidecar executable\n```bash\n# example: running step 1\n./01-run.sbatch\n\n# example: running step 2\n# here, --anat-only is an optional flag that is passed directly to fMRIPrep\n# use this if you only want to run anatomical workflows:\n./02-run.sbatch --anat-only\n#\n# otherwise, to run both anatomical and functional workflows, use this:\n./02-run.sbatch\n```\n\n## Configuration Steps\n\n### 1. Copy Settings Template\n```bash\ncp settings.template.sh settings.sh\n```\n\n### 2. Modify Paths\n- Set `BASE_DIR` to your study's root directory\n- Ensure `RAW_DIR` points to your BIDS-formatted data\n- Verify `TRIM_DIR` location for trimmed BIDS-compliant outputs that will later be used for fmriprep\n- Set `WORKFLOW_LOG_DIR` for fMRIPrep workflow logs\n- Set `TEMPLATEFLOW_HOST_HOME` for templateflow local cache\n- Set `FMRIPREP_HOST_CACHE` for fmriprep local cache\n- Set `FREESURFER_LICENSE` to the location of your `freesurfer` license\n\n### 3. Set Study Parameters\n- Update `task_id` to match your BIDS task name\n- Set `new_task_id` if task renaming is needed\n- Modify `run_numbers` to match your scan sequence / number of task runs\n- Adjust `n_dummy` based on your scanning protocol\n\n### 4. Configure Validation Values\n- Set `EXPECTED_FMAP_VOLS` to match your fieldmap acquisition\n- Set `EXPECTED_BOLD_VOLS` to match your BOLD acquisition\n\n### 5. Map Fieldmaps\n- Update `fmap_mapping` to reflect your fieldmap/BOLD correspondence\n- Ensure each BOLD run has a corresponding fieldmap entry\n\n### 6. Specify Subject IDs\n- Copy `all-subjects.template.txt` to `all-subjects.txt` and list all subject ids (just the numbers, not the \"sub-\" part)\n\n### 7. Set Permissions\n- Adjust `DIR_PERMISSIONS` and `FILE_PERMISSIONS` based on your system requirements\n\n### 8. Setup General Slurm Job Manager Parameters\n\n### 9. Setup `fMRIPrep` Pipeline Paths\n\n### 10. Setup fMRIPrep-specific Slurm Parameters\n\n### 11. Setup `fMRIPrep` Command Prompt\n\n### 12. Miscellaneous Settings\n- Enable `DEBUG` mode (for testing)\n\n---\n\n## Required Settings\n\n### Path Configuration\n```bash\n# ============================================================================\n# (1) SETUP DIRECTORIES\n# ============================================================================\nBASE_DIR=\"/my/project/dir\"           # ROOT DIR FOR THE STUDY\nSCRIPTS_DIR=\"${BASE_DIR}/scripts\"    # PATH OF CLONED FMRI REPO\nRAW_DIR=\"${BASE_DIR}/bids\"           # RAW BIDS-COMPLIANT DATA LOCATION\nTRIM_DIR=\"${BASE_DIR}/bids_trimmed\"  # DESIRED DESTINATION FOR PROCESSED DATA\nWORKFLOW_LOG_DIR=\"${BASE_DIR}/logs/workflows\"\nTEMPLATEFLOW_HOST_HOME=\"${HOME}/.cache/templateflow\"\nFMRIPREP_HOST_CACHE=\"${HOME}/.cache/fmriprep\"\nFREESURFER_LICENSE=\"${HOME}/freesurfer.txt\"\n```\n\n### Email Update Preference\n```bash\n# ============================================================================\n# (2) USER EMAIL (for slurm report updates)\n# ============================================================================\nUSER_EMAIL=\"hello@stanford.edu\"\n```\n\n### Study Parameters\n```bash\n# ============================================================================\n# (3) TASK/SCAN PARAMETERS\n# ============================================================================\ntask_id=\"SomeTaskName\"   # ORIGINAL TASK NAME IN BIDS FORMAT\nnew_task_id=\"cleanname\"  # NEW TASK NAME (IF RENAMING IS NEEDED), OTHERWISE SET SAME VALUE AS $task_id\nn_dummy=5                # NUMBER OF \"DUMMY\" TRs to remove\nrun_numbers=(\"01\" \"02\" \"03\" \"04\" \"05\" \"06\" \"07\" \"08\")  # ALL TASK BOLD RUN NUMBERS\n```\n\n### Data Validation\n```bash\n# ============================================================================\n# (4) DATA VALIDATION VALUES FOR UNIT TESTS\n# ============================================================================\nEXPECTED_FMAP_VOLS=12   # EXPECTED NUMBER OF VOLUMES IN ORIGINAL FIELDMAP SCANS\nEXPECTED_BOLD_VOLS=220  # EXPECTED NUMBER OF VOLUMES IN BOLD SCANS\n```\n\n### Fieldmap (fmap) Mapping\n```bash\n# ============================================================================\n# (5) FIELDMAP \u003c-\u003e TASK BOLD MAPPING\n# ============================================================================\n# example: here, each fmap covers two runs,\n#  so define the mapping as such:\ndeclare -A fmap_mapping=(\n    [\"01\"]=\"01\"  # TASK BOLD RUN 01 USES FMAP 01\n    [\"02\"]=\"01\"  # TASK BOLD RUN 02 USES FMAP 01\n    [\"03\"]=\"02\"  # TASK BOLD RUN 03 USES FMAP 02\n    [\"04\"]=\"02\"  # TASK BOLD RUN 04 USES FMAP 02\n    [\"05\"]=\"03\"  # ...\n    [\"06\"]=\"03\"\n    [\"07\"]=\"04\"\n    [\"08\"]=\"04\"\n)\n```\n\n### Specifying Subject IDs\n```bash\n# ============================================================================\n# (6) SUBJECT IDS \u003c-\u003e PER PREPROC STEP MAPPING\n# ============================================================================\n# by default, subjects will be pulled from the master `all-subjects.txt` file\n# however, if you want to specify different subject lists per pipeline step,\n# you may do so here by following this general template:\n#\n# declare -A subjects_mapping=(\n#     [\"01-prepare\"]=\"01-subjects.txt\"  # PREPROC STEP 01 USES \"01-subjects.txt\"\n#     [\"02-fmriprep\"]=\"02-subjects.txt\"\n# )\n#\n# note: keep in mind that we've built in checks at the beginning of each pipeline\n# step that skip a subject if there's already a record of them being preprocessed;\n# thus, you shouldn't necessarily need separate 0x-subjects.txt files per step\n# unless this extra layer of control is useful for your needs.\n```\n\n### Permissions\n```bash\n# ============================================================================\n# (7) DEFAULT PERMISSIONS\n# ============================================================================\nDIR_PERMISSIONS=775   # DIRECTORY LEVEL\nFILE_PERMISSIONS=775  # FILE LEVEL\n```\n\n### Slurm Job Header Configurator\n```bash\n# ============================================================================\n# (8) SLURM JOB HEADER CONFIGURATOR (FOR GENERAL TASKS)\n# ============================================================================\nnum_subjects=$(wc -l \u003c \"all-subjects.txt\")  # count number of subjects\necho \"($(date)) [INFO] Found ${num_subjects} total subjects in dataset\"\narray_range=\"0-$((num_subjects-1))\"  # compute array size (0 to num_subjects-1 since array indices start at 0)\nexport SLURM_EMAIL=\"${USER_EMAIL}\"\nexport SLURM_TIME=\"2:00:00\"\nexport SLURM_MEM=\"8G\"  # memory alloc per cpu\nexport SLURM_CPUS=\"8\"\nexport SLURM_ARRAY_SIZE=\"${array_range}\"  # use computed range\nexport SLURM_ARRAY_THROTTLE=\"10\"  # number of subjects to run concurrently\nexport SLURM_LOG_DIR=\"${BASE_DIR}/logs/slurm\"  # use BASE_DIR from main settings file\nexport SLURM_PARTITION=\"hns,normal\"  # compute resource preferences order\n```\n\n### fMRIPrep Settings\n```bash\n# ============================================================================\n# (9) PIPELINE SETTINGS\n# ============================================================================\nFMRIPREP_VERSION=\"24.0.1\"\nDERIVS_DIR=\"${TRIM_DIR}/derivatives/fmriprep-${FMRIPREP_VERSION}\"\nSINGULARITY_IMAGE_DIR=\"${BASE_DIR}/singularity_images\"\nSINGULARITY_IMAGE=\"fmriprep-${FMRIPREP_VERSION}.simg\"\n#\n# ============================================================================\n# (10) FMRIPREP SPECIFIC SLURM SETTINGS\n# ============================================================================\nFMRIPREP_SLURM_JOB_NAME=\"fmriprep${FMRIPREP_VERSION//.}_${new_task_id}\"\nFMRIPREP_SLURM_ARRAY_SIZE=1\nFMRIPREP_SLURM_TIME=\"12:00:00\"\nFMRIPREP_SLURM_CPUS_PER_TASK=\"16\"\nFMRIPREP_SLURM_MEM_PER_CPU=\"4G\"\n#\n# ============================================================================\n# (11) FMRIPREP SETTINGS\n# ============================================================================\nFMRIPREP_OMP_THREADS=8\nFMRIPREP_NTHREADS=12\nFMRIPREP_MEM_MB=30000\nFMRIPREP_FD_SPIKE_THRESHOLD=0.9\nFMRIPREP_DVARS_SPIKE_THRESHOLD=3.0\nFMRIPREP_OUTPUT_SPACES=\"MNI152NLin2009cAsym:res-2 anat fsnative fsaverage5\"\n```\n\n### Miscellaneous\n\n```bash\n# ============================================================================\n# (12) MISC SETTINGS\n# ============================================================================\n# Debug mode (0=off, 1=on)\nDEBUG=0\n```\n\n---\n\n\u003e [!TIP]\n\u003e ## Before running the pipeline:\n\u003e 1. Verify all paths exist and are accessible\n\u003e 2. Confirm volume counts match your acquisition protocol\n\u003e 3. Test the configuration on a single subject\n\u003e 4. Review logs for any configuration warnings\n\n\n\u003e [!CAUTION]\n\u003e ## Common Issues\n\u003e - Incorrect path specifications\n\u003e - Mismatched volume counts\n\u003e - Incorrect fieldmap mappings\n\u003e - Permission issues\n\n\n\u003e [!NOTE]\n\u003e ### Comments, suggestions, questions, issues?\n\u003e\n\u003e Please use the issues tab (\u003chttps://github.com/shawntz/fmri/issues\u003e) to make note of any bugs, comments, suggestions, feedback, etc… all are welcomed and appreciated, thanks!\n\u003e\n\u003e cheers,\n\u003e shawn\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n## SML fMRI Dev Team\n\n|    | Team Member | Role |\n| :----------: |  :-------------: | :-------------: |\n| \u003cimg src=\"https://memorylab.stanford.edu/sites/memorylab/files/styles/hs_medium_square_360x360/public/media/image/shawn_sf_ggb_2022_square_0.jpg?h=a11293b4\u0026itok=XexnOeUL\" width=\"100\" height=\"100\"\u003e | \u003ca href=\"https://memorylab.stanford.edu/people/shawn-schwartz-ms-ma\" target=\"_blank\"\u003eShawn Schwartz, M.S., M.A.\u003c/a\u003e \u003cbr\u003e (Ph.D. Candidate) | `Lead Developer` \u003cbr\u003e `Maintainer` \u003cbr\u003e `Project Conception` |\n| \u003cimg src=\"https://memorylab.stanford.edu/sites/memorylab/files/styles/hs_medium_square_360x360/public/media/image/jintao_photo_0.jpg?h=5d522a5b\u0026itok=hihL4GJO\" width=\"100\" height=\"100\"\u003e | \u003ca href=\"https://memorylab.stanford.edu/people/jintao-sheng-phd\" target=\"_blank\"\u003eJintao Sheng, Ph.D.\u003c/a\u003e \u003cbr\u003e (Postdoc) | `Core Developer` \u003cbr\u003e `Project Conception` \u003cbr\u003e `Technical Reviewer` |\n| \u003cimg src=\"https://memorylab.stanford.edu/sites/memorylab/files/styles/hs_medium_square_360x360/public/media/image/mostrecent_0.jpg?h=f926125a\u0026itok=fiqkxKMx\" width=\"100\" height=\"100\"\u003e | \u003ca href=\"https://memorylab.stanford.edu/people/haopei-yang-phd\" target=\"_blank\"\u003eHaopei Yang, Ph.D.\u003c/a\u003e \u003cbr\u003e (Postdoc) | `Core Developer` \u003cbr\u003e `Project Conception` \u003cbr\u003e `Technical Reviewer` |\n| \u003cimg src=\"https://memorylab.stanford.edu/sites/memorylab/files/styles/hs_medium_square_360x360/public/media/people/douglas_photo_3.jpg?h=816b21b2\u0026itok=52F62G61\" width=\"100\" height=\"100\"\u003e | \u003ca href=\"https://memorylab.stanford.edu/people/douglas-miller\" target=\"_blank\"\u003eDouglas Miller, B.A.\u003c/a\u003e \u003cbr\u003e (Ph.D. Candidate) | `Core Contributor` \u003cbr\u003e `Code Reviewer` \u003cbr\u003e `Technical Reviewer` |\n| \u003cimg src=\"https://memorylab.stanford.edu/sites/memorylab/files/styles/hs_medium_square_360x360/public/media/image/subbu_photo_0.jpeg?h=2a9f3bd2\u0026itok=eukzENYx\" width=\"100\" height=\"100\"\u003e | \u003ca href=\"https://memorylab.stanford.edu/people/subbulakshmi-s-phd\" target=\"_blank\"\u003eSubbulakshmi S, Ph.D.\u003c/a\u003e \u003cbr\u003e (Postdoc) | `Core Contributor` \u003cbr\u003e `Code Reviewer` \u003cbr\u003e `Technical Reviewer` |\n| \u003cimg src=\"https://memorylab.stanford.edu/sites/memorylab/files/styles/hs_medium_square_360x360/public/media/image/img_1581_0.jpg?h=1f7c1d57\u0026itok=V666sxOZ\" width=\"100\" height=\"100\"\u003e | \u003ca href=\"https://memorylab.stanford.edu/people/mingjian-he-phd\" target=\"_blank\"\u003eMingjian (Alex) He, Ph.D.\u003c/a\u003e \u003cbr\u003e (Postdoc) | `Core Contributor` \u003cbr\u003e `Code Reviewer` \u003cbr\u003e `Technical Reviewer` |\n| \u003cimg src=\"https://memorylab.stanford.edu/sites/memorylab/files/styles/hs_medium_square_360x360/public/media/image/thumbnail_atrelle_0.jpg?h=8234d0a0\u0026itok=lg9VP9wQ\" width=\"100\" height=\"100\"\u003e | \u003ca href=\"https://memorylab.stanford.edu/people/ali-trelle-phd\" target=\"_blank\"\u003eAli Trelle, Ph.D.\u003c/a\u003e \u003cbr\u003e (Instructor, SoM) | `Core Contributor` |\n| \u003cimg src=\"https://memorylab.stanford.edu/sites/memorylab/files/styles/hs_medium_square_360x360/public/media/people/screen_shot_2019-07-23_at_9.19.36_pm_copy.png?h=5fbe367e\u0026itok=N4uE8LH4\" width=\"100\" height=\"100\"\u003e | \u003ca href=\"https://memorylab.stanford.edu/people/anthony-d-wagner-phd\" target=\"_blank\"\u003eAnthony Wagner, Ph.D.\u003c/a\u003e \u003cbr\u003e (PI) | `Lab Director` \u003cbr\u003e `Conceptual Reviewer` |\n\n### Want to Be Listed?\nMake significant contributions to the project and get listed here! \u003cbr\u003e See our [Contributing Guidelines](CONTRIBUTING.md) for how to get involved.\n\n\u003c/div\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshawntz%2Ffmri","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshawntz%2Ffmri","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshawntz%2Ffmri/lists"}