{"id":20063776,"url":"https://github.com/geometric-intelligence/my28brains","last_synced_at":"2025-05-05T17:33:21.013Z","repository":{"id":189809676,"uuid":"578362182","full_name":"geometric-intelligence/my28brains","owner":"geometric-intelligence","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-21T21:10:12.000Z","size":189722,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-07-12T01:19:49.454Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","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/geometric-intelligence.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}},"created_at":"2022-12-14T21:57:11.000Z","updated_at":"2024-06-21T21:10:16.000Z","dependencies_parsed_at":"2023-09-28T18:23:22.200Z","dependency_job_id":"1e7eeccd-8e99-4f4d-a22e-78714bf23c96","html_url":"https://github.com/geometric-intelligence/my28brains","commit_stats":null,"previous_names":["bioshape-lab/my28brains","geometric-intelligence/my28brains"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geometric-intelligence%2Fmy28brains","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geometric-intelligence%2Fmy28brains/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geometric-intelligence%2Fmy28brains/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geometric-intelligence%2Fmy28brains/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geometric-intelligence","download_url":"https://codeload.github.com/geometric-intelligence/my28brains/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252542516,"owners_count":21764983,"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-13T13:43:47.326Z","updated_at":"2025-05-05T17:33:15.992Z","avatar_url":"https://github.com/geometric-intelligence.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 28 and Me - Shape analysis software for characterization of 3D meshes. #\n\nOfficial implementation of the paper “Geodesic Regression Characterizes 3D Shape Changes in the Female Brain During Menstruation”.\n\n***[[Paper](https://arxiv.org/abs/2309.16662)] published in ICCV proceedings under [[ICCV Workshop Computer Vision for Automated Medical Diagnosis](https://cvamd2023.github.io/)]***\n\n## 🎤 We are developing AI to transform the field of NeuroImaging and Womens' Brain Health: See our Beginner-Friendly Public Talk at Brass Bear Brewing ##\n\n[![BBB Talk](/images/bbb_thumbnail.png)](https://youtu.be/BsdNQUcwb1M)\nVisual on thumbnail slide taken from: Caitlin M Taylor, Laura Pritschet, and Emily G Jacobs. The scientific body of knowledge–whose body does it serve? A spotlight on oral contraceptives and women’s health factors in neuroimaging. Frontiers in neuroendocrinology, 60:100874, 2021.\n\n## 💥 Poster, Presented at the ICCV Workshop: Computer Vision for Automated Medical Diagnosis ##\n![BBB Talk](/images/Adele_Myers_poster.png)\n\n## 🤖 Installing My28Brains\n\n1. Clone a copy of `my28brains` from source:\n```bash\ngit clone https://github.com/bioshape-lab/my28brains\ncd my28brains\n```\n2. Create an environment with python \u003e= 3.10\n```bash\nconda create -n my28brains python=3.10\n```\n3. Install `my28brains` in editable mode (requires pip ≥ 21.3 for [PEP 660](https://peps.python.org/pep-0610/) support):\n```bash\npip install -e .[all]\n```\n4. Install pre-commit hooks:\n```bash\npre-commit install\n```\n\n## 🌎 Bibtex ##\nIf this code is useful to your research, please cite:\n\n```\n@misc{myers2023geodesic,\n      title={Geodesic Regression Characterizes 3D Shape Changes in the Female Brain During Menstruation},\n      author={Adele Myers and Caitlin Taylor and Emily Jacobs and Nina Miolane},\n      year={2023},\n      eprint={2309.16662},\n      archivePrefix={arXiv},\n      primaryClass={cs.CV}\n}\n```\n\n## 🏃‍♀️ How to Run the Code ##\n\nWe use Wandb to keep track of our runs. To launch a new run, follow the steps below.\n\n#### 1. Set up [Wandb](https://wandb.ai/home) logging.\n\nWandb is a powerful tool for logging performance during training, as well as animation artifacts. To use it, simply [create an account](https://wandb.auth0.com/login?state=hKFo2SBNb0U4SjE0ZWN3OGZtbTlJWTRpYkNmU0dUTWZKSDk3Y6FupWxvZ2luo3RpZNkgODhWd254WW1zdG51RTREd0pWOGVKWVVzZkVOZ0dydGqjY2lk2SBWU001N1VDd1Q5d2JHU3hLdEVER1FISUtBQkhwcHpJdw\u0026client=VSM57UCwT9wbGSxKtEDGQHIKABHppzIw\u0026protocol=oauth2\u0026nonce=dEZVS3dvYXFVSjdjZFFGdw%3D%3D\u0026redirect_uri=https%3A%2F%2Fapi.wandb.ai%2Foidc%2Fcallback\u0026response_mode=form_post\u0026response_type=id_token\u0026scope=openid%20profile%20email\u0026signup=true), then run:\n```\nwandb login\n```\nto sign into your account.\n\n#### 2. Create a new project in Wandb.\n\nCreate a new project in Wandb and give it a project name. Then, edit `main_xxx.py` files so that they use this project name.\n\n#### 3. Specify hyperparameters in default_config.py.\n\nMost Important General Paramters in `default_config.py` (see descriptions in `default_config.py`):\n\n- Elastic Metric Parameters: `a0`, `a1`, `b1`, `c1`, `d1`, `a2`\n- `dataset_name`\n- `linear_residuals`\n- `n_X`\n\n#### 4. Run the `main` file that fits your goal.\n\n- `main_1_preprocess.py`: Preprocesses hippocampus data, as described in the notes at the top of the file.\n- `main_2_regression.py`: Runs regression (linear and geodesic) on dataset specified in `default_config.py`. Runs geodesic regression with linear residuals if `linear_residuals = True` in `default_config.py`.\n- `main_3_line_vs_geodesic.py`: Creates synthetic data (data type determined by `dataset_name` in `default_config.py`) that lies in a curved space. Then, computes a line between two synthetic data points and a geodesic between the two synthetic data points and compares how different they are, indicating whether the distance between the points is large or small are compared to the curvature of the manifold. Used to inform \"rules of thumb\" for whether linear regression or geodesic regression with linear residuals can be used to approximate geodesic regression on a particular dataset.\n\nTo run one of the main files, use the command:\n```\npython main_xxx.py\n```\n\nwhere xxx is replaced by the actual name of the file.\n\n### 5. 👀 See Results.\n\nYou can see all of your runs by logging into the Wandb webpage and looking under your project name.\n\n## 👩‍🔧 Authors ##\n[Adele Myers](https://ahma2017.wixsite.com/adelemyers)\n\n[Nina Miolane](https://www.ninamiolane.com/)\n\n## How to Set up Your Environment\n\n```shell\n$ conda create -n my28brains --file conda-linux-64.lock\n$ conda activate my28brains\n$ poetry install --no-root\n```\nWe use `--no-root` because we don't have a module named `my28brains`\nIf you are on Mac, make and use `conda-osx-64.lock` instead.\n\n# Dev\n\nOnly run if changes are made to the environment files.\n\nTo recreate the conda lock, after modifying conda.yaml:\n```shell\npip install conda-lock\nmake conda-linux-64.lock\n```\nNote that you may need to install conda-lock not in your base env.\n\nTo recreate the poetry lock, after modifying pyproject.toml:\n```shell\nmake poetry.lock\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeometric-intelligence%2Fmy28brains","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeometric-intelligence%2Fmy28brains","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeometric-intelligence%2Fmy28brains/lists"}