{"id":24844285,"url":"https://github.com/esther-poniatowski/multitask-context-dependent-behavior","last_synced_at":"2025-03-26T07:43:54.238Z","repository":{"id":240559794,"uuid":"802965950","full_name":"esther-poniatowski/multitask-context-dependent-behavior","owner":"esther-poniatowski","description":"Data analysis of neuronal recordings in naive and trained animals performing multiple tasks in active and passive attentional states","archived":false,"fork":false,"pushed_at":"2025-02-18T08:14:29.000Z","size":44066,"stargazers_count":0,"open_issues_count":55,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-18T09:25:28.674Z","etag":null,"topics":["cognitive-neuroscience","computational-neuroscience","data-analysis","data-visualization","information-processing"],"latest_commit_sha":null,"homepage":"https://esther-poniatowski.github.io/multitask-context-dependent-behavior/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esther-poniatowski.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":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-19T18:26:23.000Z","updated_at":"2025-02-18T08:14:33.000Z","dependencies_parsed_at":"2024-09-06T19:18:52.752Z","dependency_job_id":"33d8f553-c736-4385-b9be-786a3cbadf6e","html_url":"https://github.com/esther-poniatowski/multitask-context-dependent-behavior","commit_stats":null,"previous_names":["esther-poniatowski/multitask-context-dependent-behavior"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esther-poniatowski%2Fmultitask-context-dependent-behavior","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esther-poniatowski%2Fmultitask-context-dependent-behavior/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esther-poniatowski%2Fmultitask-context-dependent-behavior/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esther-poniatowski%2Fmultitask-context-dependent-behavior/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esther-poniatowski","download_url":"https://codeload.github.com/esther-poniatowski/multitask-context-dependent-behavior/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245614994,"owners_count":20644376,"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":["cognitive-neuroscience","computational-neuroscience","data-analysis","data-visualization","information-processing"],"created_at":"2025-01-31T09:17:25.489Z","updated_at":"2025-03-26T07:43:54.210Z","avatar_url":"https://github.com/esther-poniatowski.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-Task Context-Dependent Decision Making\n\n- [Description](#description)\n- [Authors](#authors)\n- [Acknowledgments](#acknowledgments)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Contributing](#contributing)\n\n\n## Description\n\n**Full Documentation**: [multitask-context-dependent-behavior](https://esther-poniatowski.github.io/multitask-context-dependent-behavior/)\n\n## Authors\n\n**Esther Poniatowski** | @esther-poniatowski | esther.poniatowski@ens.psl.eu\n\n\n## Acknowledgments\n\n...\n\n\n## Installation\n\n\u003e [!IMPORTANT]\n\u003e **Prerequisites**  \n\u003e Ensure that the following tools are available on the local machine:\n\u003e - git\n\u003e - conda\n\u003e - Visual Studio Code (recommended)\n\nTo set up this project on a local machine, follow the steps below:\n\n### Initialize a local copy of the repository\n\n1. Navigate to the local directory where the root folder of the repository should reside.\n  \n2. Clone the repository:\n```bash\ngit clone git@github.com:esther-poniatowski/multitask-context-dependent-behavior.git\n```\n\n\u003e [!NOTE]\n\u003e The repository files are installed into a new directory named `multitask-context-dependent-behavior`.\n\n\n### Create a virtual environment\n\n1. Create an dedicated conda environment including all the dependencies for using the project:\n```\nconda env create -f environment.yml\n```\n\n\u003e [!NOTE]\n\u003e The new conda environment is named `mtcdb`. \n\n2. Register the current packages in the environment:\n\na. Check and copy the path to the site-packages directory of the environment:\n```bash\nconda activate mtcdb\npython -c \"import site; print(site.getsitepackages()[0])\"\n```\nUsually: `∼/miniconda3/envs/mtcdb/lib/pythonX.Y/site-packages`\n\nb. Register the source directory of the project in a `mtcdb.pth` file:\n```bash\necho \"/path/to/mtcdb/src\" \u003e \"path/to/conda/site-packages/mtcbd.pth\"\n```\nReplace `\"/path/to/mtcdb\"` and `\"path/to/conda/site-packages\"` by the actual paths.\n\n## Usage\n\n...\n\n\n## Contributing\n\n\u003e [!IMPORTANT]\n\u003e To contribute effectively, please conform to those guidelines and use the provided templates.  \n\u003e To suggest improvements, use **issues**.\n\u003e To actively implement improvements, **commit** in the local version and **push** changes to the remote branches. \n\n### Sumbitting Issues\n\nTo submit an issue on the GitHub page of the repository:\n\n1. Navigate to the \"Issues\" tab and click on \"New Issue\".\n2. Select and fill the issue template.\n3. Add relevant labels, assignees, and milestone if applicable.\n\n### Committing changes\n\n#### Configure the repository\n\n1. Navigate to the root directory of the local repository.\n  \n2. Specify the user profile (recorded in commits' metadata):\n```bash\ngit config user.name \"Example Name\"\ngit config user.email \"exampleemail@domain.com\"\n```\nReplace `\"Example Name\"` and `\"exampleemail@domain.com\"` by the actual name and email corresponding to the GitHub user.\n\n3. Configure the commit template (`.gitmessage` file):\n```\ngit config commit.template .gitmessage\n```\n\n\u003e [!TIP]\n\u003e **Format of the Commit Message**\n\u003e - Limit the subject line to 50 characters and the body at 72 characters per line, indicated by the delimiters in the template (`####`).\n\u003e - Separate the subject from the body with a blank line.\n\u003e \n\u003e **Contents**\n\u003e - Subject: Indicate a prefix (see the options in the comments of the template), a scope (in parentheses) and a title after a colon (`:` character).\n\u003e - Title: Use the imperative mood and capitablize.\n\u003e - Body: Explain what and why (not how).\n\u003e - References: Mention issues or other commits using [GitHub keywords](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests)\n\n#### Set up credentials\n\n1. Ask the author to share the Personal Access Token of the repository.\n\n2. Create a plaintext file located at `.git/credentials`:\n\n3. Add authentication data in this file under the form of a URL address:\n```plaintext\nhttps://\u003cusername\u003e:\u003cpersonal-access-token\u003e@github.com\n```\nReplace `\u003cusername\u003e` and `\u003cpersonal-access-token\u003e` by the actual user name indicated before for the Git repository and the personal access token provided by the author.\n\n4. Configure the credential helper to use the credentials file:\n```bash\ngit config credential.helper 'store --file=.git/credentials'\n```\n\n---\n\n\n## Directory Structure\n\n```plaintext\n    multitask-context-dependent-behavior/\n    ├── README.md                   # Overall description and instructions\n    ├── ROADMAP.md                  # Roadmap to track progress (goals, tasks, open questions)\n    ├── mtcdb.code-workspace        # VS Code workspace settings\n    ├── meta.env                    # Workspace metadata (environment variables)\n    ├── paths.env                   # Central path manager (environment variables)\n    ├── setup/                      # Setup scripts and utilities\n    │   ├── init.sh                 # Initialization script for Conda environment\n    │   ├── post_activate.sh        # Post-activation script for Conda environment\n    │   ├── environment.yml         # Conda environment configuration\n    │   ├── python.pth              # Paths to Python packages to add to PYTHONPATH (editable mode)\n    │   └── bin.pth                 # Paths to binary directories to add to system PATH\n    ├── config/                     # Configuration files\n    │   ├── dictionaries/           # Dictionaries for spell checking\n    │   ├── credentials/            # Credentials for servers\n    │   └── tools/                  # Settings for tools and extensions\n    ├── src/                        # Source code for Logic/Functionalities/\"How\" (imported)\n    │   ├── core/                   # Main package for analysis, modeling, visualization\n    │   ├── ingest/                 # Data ingestion and preprocessing (to perform on the remote hub)\n    │   ├── tasks/                  # Administration tasks\n    │   │   ├── network/            # Networking tasks (connections, deployment, transfer...)\n    │   │   └── ...\n    │   └── utils/                  # Helper utilities\n    │       ├── io/                 # Input/output functionalities, path management\n    │       └── misc/               # Miscellaneous (handling data structures, collections...)\n    ├── ops/                        # Entry points for Operations/Execution/\"What\"-\"When\"\n    │   ├── analysis/               # (organized by types of tasks)\n    │   │   ├── preprocess.sh\n    │   │   ├── validate.py\n    │   │   ├── model.py\n    │   │   └── ...\n    │   ├── testing/\n    │   │   ├── run.sh\n    │   │   └── ...\n    │   ├── documentation/\n    │   │   ├── build.sh\n    │   │   └── ...\n    │   ├── transfer/\n    │   │   ├── connect.sh\n    │   │   ├── deploy.sh\n    │   │   ├── fetch.sh\n    │   │   └── ...\n    │   └── maintenance/\n    │       ├── inspect.sh\n    │       ├── clean.sh\n    │       ├── update.sh\n    │       └── ...\n    ├── tests/                      # Unit tests\n    │   └── ...                     # (mirror the structure of the `src/` directory)\n    ├── docs/                       # Documentation\n    │   ├── build/                  # Output files\n    │   ├── source/                 # Source files and configuration\n    │   └── reports/                # Reports and summaries\n    ├── notebooks/                  # Jupyter notebooks for exploration and visualization\n    │   └── ...\n    ├── data/                       # Datasets (input and output)\n    │   └── ...\n    ├── .git/                       # Git workspace\n    ├── .gitignore                  # Git ignore file\n    ├── .github/                    # GitHub settings and workflows\n    ├── archive/                    # Old files kept for reference\n    └── ...\n```\n\nThis structure separates the functionality/logic (\"how\") from the execution/task runners (\"what\" and \"when\"). For chore tasks, if these are complex or involve multiple steps, they can be encapsulated in separate modules/classes within the `tasks/` directory. This way, the `ops/` scripts can import and execute these tasks without mingling the concerns of task execution and task definition.\n\n\n### Data Storage\n\n```plaintext\n    data/\n    ├── samples/                    # Sample data for tests and examples\n    ├── raw/                        # Raw data (immutable)\n    │   ├── ath011b-c1/             # Data from one unit (neuron)\n    │   └── ...\n    ├── meta/                       # Metadata about experimental events, trials, units\n    ├── interim/                    # Intermediate data which has been transformed\n    └── processed/                  # Final data sets for modeling\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Festher-poniatowski%2Fmultitask-context-dependent-behavior","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Festher-poniatowski%2Fmultitask-context-dependent-behavior","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Festher-poniatowski%2Fmultitask-context-dependent-behavior/lists"}