{"id":24508461,"url":"https://github.com/aplbrain/motifstudio","last_synced_at":"2025-10-09T14:49:59.740Z","repository":{"id":243147130,"uuid":"638492765","full_name":"aplbrain/motifstudio","owner":"aplbrain","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-26T18:06:57.000Z","size":337,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-02T03:05:22.264Z","etag":null,"topics":["bossdb","grand-graphs","grandiso","motifs","subgraph-isomorphism"],"latest_commit_sha":null,"homepage":"https://motifstudio.bossdb.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aplbrain.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}},"created_at":"2023-05-09T13:27:39.000Z","updated_at":"2025-06-26T18:16:56.000Z","dependencies_parsed_at":"2025-05-28T17:42:08.882Z","dependency_job_id":"97f17ca4-1cba-4e04-b59a-77234fcdfbfb","html_url":"https://github.com/aplbrain/motifstudio","commit_stats":null,"previous_names":["aplbrain/motifstudio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aplbrain/motifstudio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fmotifstudio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fmotifstudio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fmotifstudio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fmotifstudio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aplbrain","download_url":"https://codeload.github.com/aplbrain/motifstudio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fmotifstudio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001504,"owners_count":26083118,"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-09T02:00:07.460Z","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":["bossdb","grand-graphs","grandiso","motifs","subgraph-isomorphism"],"created_at":"2025-01-22T00:16:22.698Z","updated_at":"2025-10-09T14:49:59.726Z","avatar_url":"https://github.com/aplbrain.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=center\u003e\n\u003cimg src='https://github.com/aplbrain/motifstudio-server/assets/693511/30a42349-c794-4a32-88c5-c96cae449936' alt=\"Motif Studio\" width=600 /\u003e\n\u003c/h1\u003e\n\u003cp align=center\u003eMotif Studio is a browser-based tool for querying connectomes with the \u003ca href=\"https://github.com/aplbrain/dotmotif\"\u003eDotMotif\u003c/a\u003e motif query language.\u003c/p\u003e\n\n![image](https://github.com/aplbrain/motifstudio-web/assets/693511/d6223400-6089-4da9-892c-0e12ae83ff9f)\n\n---\n\n## Installation and Setup\n\nThis repository holds dependencies and dev-dependencies in `requirements/`. To install dependencies, run:\n\n```bash\npip install -r requirements/requirements.in\n```\n\nTo install dev-dependencies, run:\n\n```bash\npip install -r requirements/dev-requirements.in\n```\n\n## Configuring the Server\n\nThe server is configured using a `config.json` file in `src/server`. An example configuration file is provided in `src/server/config.example.json`.\n\nYou can optionally configure resource limits for queries to prevent long-running or memory-intensive queries from impacting server stability. Add a `query_limits` section with the following fields:\n\n```json\n\"query_limits\": {\n  \"max_ram_pct\": 0.5,\n  \"max_ram_bytes\": 1073741824,\n  \"max_duration_seconds\": 120\n}\n```\n\n`max_ram_pct` is a fraction of total system memory (default: 0.5), `max_ram_bytes` is an absolute memory limit in bytes (optional; if set, overrides `max_ram_pct`), and `max_duration_seconds` is the maximum wall-clock time in seconds for a query (default: 120).\n\nNote: On non-Linux/Darwin systems, install `psutil` to enable memory limit detection.\n\n## Running the Server\n\nTo run the server in \"development\" mode, run:\n\n```bash\nuvicorn src.server:app --reload\n```\n\nTo run the server in \"production\" mode, run:\n\n```bash\nuvicorn src.server:app\n```\n\n## Running the Tests\n\nTo run the tests in \"development\" watch mode, run:\n\n```bash\nptw\n```\n\nThis will run the test suite and then wait for changes to the codebase. When changes are detected, the test suite will be run again.\n\nTo run the tests once, run:\n\n```bash\npytest\n```\n\n## Running the web application\n\n\nThis is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\n## Getting Started\n\nFirst, run the development server:\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n\n---\n\n## Citation\n\nIf this work is useful to your research, please cite the following paper:\n\n[Scalable graph analysis tools for the connectomics community](https://www.biorxiv.org/content/10.1101/2022.06.01.494307v1.abstract)\nMatelsky et al., 2022\n\n```bibtex\n@article{matelsky2022scalable,\n  title={Scalable graph analysis tools for the connectomics community},\n  author={Matelsky, Jordan K and Johnson, Erik C and Wester, Brock and Gray-Roncal, William},\n  journal={bioRxiv},\n  pages={2022--06},\n  year={2022},\n  publisher={Cold Spring Harbor Laboratory}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faplbrain%2Fmotifstudio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faplbrain%2Fmotifstudio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faplbrain%2Fmotifstudio/lists"}