{"id":34577263,"url":"https://github.com/josttim/alyx-local-connector","last_synced_at":"2026-05-29T04:31:19.879Z","repository":{"id":290336150,"uuid":"974067055","full_name":"JostTim/alyx-local-connector","owner":"JostTim","description":"Python connector to Alyx-Local instances","archived":false,"fork":false,"pushed_at":"2026-04-13T14:37:53.000Z","size":6347,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"docker-compatible","last_synced_at":"2026-04-13T15:32:18.936Z","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/JostTim.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":"2025-04-28T07:54:52.000Z","updated_at":"2026-02-16T21:54:35.000Z","dependencies_parsed_at":"2025-04-28T09:59:51.711Z","dependency_job_id":"e9ae7819-177d-4606-906f-fff14c12777e","html_url":"https://github.com/JostTim/alyx-local-connector","commit_stats":null,"previous_names":["josttim/alyx-local-connector"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JostTim/alyx-local-connector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JostTim%2Falyx-local-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JostTim%2Falyx-local-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JostTim%2Falyx-local-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JostTim%2Falyx-local-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JostTim","download_url":"https://codeload.github.com/JostTim/alyx-local-connector/tar.gz/refs/heads/docker-compatible","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JostTim%2Falyx-local-connector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33637485,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"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":[],"created_at":"2025-12-24T09:56:25.601Z","updated_at":"2026-05-29T04:31:19.860Z","avatar_url":"https://github.com/JostTim.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Connector to Alyx-Local instance(s)\n\n## Install \n\nInstall with\n\n```bash\npip install alyx-connector\n```\n\nor\n\n```bash\npip install git+https://github.com/JostTim/alyx-local-connector.git@docker-compatible\n```\n\n## First use\n\nYou need to create a connector object to the alyx_instance that you are using.\nThe easyest way to create one at the beginning, or for any other new connection with a different username or to a different instance, you can use the `Connector.setup()` class function :\n\n```python\nfrom alyx_connector import Connector\n\nconnector = Connector.setup()\n```\n\nYou will be prompted to enter informations for setting the new connection.\n\nFirst, the address of the server : \n![Enter address](./docs/documentation_files/.assets/images/first_connection/Capture%20d'écran%202025-04-28%20100132.png)\n\nSecond, the username to use : \n![Enter username](./docs/documentation_files/.assets/images/first_connection/Capture%20d'écran%202025-04-28%20100400.png)\n\nOptionally, decide wether to make this the default address and username combo, when you call `Connector()` without arguments, at later times :\n![Enter set default](./docs/documentation_files/.assets/images/first_connection/Capture%20d'écran%202025-04-28%20100309.png)\n\nLastly, the password to use with that address / username combo : (if successfull, the server will provide a token that will be saved by the connector for that adress/username combo, so that you don't need to retype the password again, but the pasword itself is not saved for security reasons)\n![Enter password](./docs/documentation_files/.assets/images/first_connection/Capture%20d'écran%202025-04-28%20103000.png)\n\nIf the connection succeeds, you will get a connector object :\n![connector obtained](./docs/documentation_files/.assets/images/first_connection/Capture%20d'écran%202025-04-28%20100459.png)\n\n\n## Subsequent uses\n\nAfter setting up at least a first connection, you can use the connector at later times (even after restarting python) using several ways :\n\n\n### Using the default server / username :\n```python\nfrom alyx_connector import Connector\nconnector = Connector()\n```\n\n### Using a specific server, but the default username for that server :\n```python\nfrom alyx_connector import Connector\nconnector = Connector(url=\"127.0.0.1\")\n```\n\n### Using a specific server and username :\n```python\nfrom alyx_connector import Connector\nconnector = Connector(url=\"127.0.0.1\", username=\"myname\")\n```\n\nAt any time, you can check the server and username used by the connect, by typing `connector.url` or `connector.username`\n\n\n## Accessing experimental data using the connector\n\n\n### Searching for a session \n\nThe main use of the connector is usually to search experimental sessions data, based on some filter.\n\nTo get a table of session when the animal used is for example named ``ea04``, you can type :\n\n```python\nsessions = connector.search(subject = \"ea04\")\n```\n\nyou will get a ``pandas.DataFrame`` where each row is corresponding to a session, and each column to some information relative to that session, as available on the alyx-local website.\n\nExample :\n![session_table](./docs/documentation_files/.assets/images/search_sessions/Capture%20d'écran%202025-04-28%20104158.png)\n\n\nYou can get the session infos ``narrative`` for example, for the third session that you obtained here, by doing : \n\n```python\nsession = sessions.iloc[3] # get the third session in the table, by index order\nprint(session.narrative) # print the narrative\n```\n\n![session_narrative](./docs/documentation_files/.assets/images/search_sessions/Capture%20d'écran%202025-04-28%20115001.png)\n\nYou can also access the json based fields : `session.json` and `session.extended_qc`, which are standard python dictionnaries. (containing potentially nested data that you entered)\n\n```python\nsession.json\n```\n\n![session_json](./docs/documentation_files/.assets/images/search_sessions/Capture%20d'écran%202025-04-28%20114948.png)\n![session_json_getitem](./docs/documentation_files/.assets/images/search_sessions/Capture%20d'écran%202025-04-28%20114932.png)\n\nThe ``json`` field is meant as a way to store additionnal metadata that you cannot enter inside the regular session table fields. (as different experiments may need different fields)\n\nThe ``extended_qc`` field is meant as a way to store detailed ``Quality Check`` information, that you can use to get only the sessions that passed particular criterias after checking the data. (non exhaustive examples : a noise level in the electrophy recordings, etc...)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosttim%2Falyx-local-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosttim%2Falyx-local-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosttim%2Falyx-local-connector/lists"}