{"id":13688793,"url":"https://github.com/aplbrain/dotmotif","last_synced_at":"2025-03-17T16:12:35.784Z","repository":{"id":38237360,"uuid":"130893259","full_name":"aplbrain/dotmotif","owner":"aplbrain","description":"A performant, powerful query framework to search for network motifs","archived":false,"fork":false,"pushed_at":"2024-08-21T17:09:13.000Z","size":909,"stargazers_count":84,"open_issues_count":4,"forks_count":9,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-02T13:12:26.910Z","etag":null,"topics":["aplbrain","bossdb","connectome","connectomics","dotmotif","graph","graph-database","graph-matching","motif-discovery","motifs","neo4j","networkx","python","query-language","subgraph-isomorphism","vf2"],"latest_commit_sha":null,"homepage":"https://bossdb.org/tools/dotmotif","language":"Python","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":"CHANGELOG.md","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":"2018-04-24T17:51:51.000Z","updated_at":"2025-01-30T21:10:11.000Z","dependencies_parsed_at":"2024-08-28T20:38:15.745Z","dependency_job_id":null,"html_url":"https://github.com/aplbrain/dotmotif","commit_stats":{"total_commits":156,"total_committers":4,"mean_commits":39.0,"dds":"0.41666666666666663","last_synced_commit":"08fd3f7da8067711a9c8e19b95c79aa4dcd03bc9"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fdotmotif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fdotmotif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fdotmotif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fdotmotif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aplbrain","download_url":"https://codeload.github.com/aplbrain/dotmotif/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244066189,"owners_count":20392406,"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":["aplbrain","bossdb","connectome","connectomics","dotmotif","graph","graph-database","graph-matching","motif-discovery","motifs","neo4j","networkx","python","query-language","subgraph-isomorphism","vf2"],"created_at":"2024-08-02T15:01:22.841Z","updated_at":"2025-03-17T16:12:35.758Z","avatar_url":"https://github.com/aplbrain.png","language":"Python","funding_links":[],"categories":["Python","Network Analysis and Statistics"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg align=\"center\" src=\"https://user-images.githubusercontent.com/693511/117350563-b58b9900-ae7a-11eb-83ce-9f5f9213145e.png\" / width=\"25%\"\u003e\n  \u003ch1 align=\"center\" fontsize=\"2em\"\u003ed o t m o t i f\u003c/h1\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003eFind graph motifs using intuitive notation\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://pypi.org/project/dotmotif/\"\u003e\u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/dotmotif?style=for-the-badge\"\u003e\u003c/a\u003e\n\u003ca href=\"https://bossdb.org/tools/DotMotif\"\u003e\u003cimg src=\"https://img.shields.io/badge/Pretty Dope-👌-00ddcc.svg?style=for-the-badge\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://bossdb.org/tools/DotMotif\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg?style=for-the-badge\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://codecov.io/gh/aplbrain/dotmotif\"\u003e\u003cimg alt=\"Codecov\" src=\"https://img.shields.io/codecov/c/github/aplbrain/dotmotif?style=for-the-badge\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nDotMotif is a library that identifies subgraphs or motifs in a large graph. It looks like this:\n\n```py\n# Look for all motifs of the form,\n\n# Neuron A synapses on Neuron B:\nA -\u003e B\n# ...and B inhibits C:\nB -\u003e C [type = \"inhibitory\"]\n```\n\n# Examples\n\n| Notebook | Description |\n|----------|-------------|\n| \u003ca href=\"https://colab.research.google.com/gist/j6k4m8/7c5cf55e7feb24685bd13a217cedda1d/dotmotif-search-in-pinky100.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e | Looking for motifs in the IARPA MICrONS Pinky100 Dataset |\n| \u003ca href=\"https://colab.research.google.com/gist/j6k4m8/d02259dfedc2321973be4d2e665653f4/dotmotif-search-in-custom-networkx.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e | Motif search in a custom graph |\n| \u003ca href=\"https://colab.research.google.com/gist/j6k4m8/919cc1a8162289dd4a6aeb965e800322/dotmotif-search-in-custom-networkx.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e | Subgraph search in the Janelia Hemibrain dataset |\n\n\n# Get Started\n\nIf you have [DotMotif](https://github.com/aplbrain/dotmotif/wiki/Installation), a NetworkX graph, and a curious mind, you already have everything you need to start using DotMotif:\n\n```python\nfrom dotmotif import Motif, GrandIsoExecutor\n\nexecutor = GrandIsoExecutor(graph=my_networkx_graph)\n\ntriangle = Motif(\"\"\"\nA -\u003e B\nB -\u003e C\nC -\u003e A\n\"\"\")\n\nresults = executor.find(triangle)\n```\n\n# Parameters\n\nYou can also pass optional parameters into the constructor for the `dotmotif` object. Those arguments are:\n\n| Argument                | Type, Default   | Behavior                                                                                                                                                                       |\n| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `ignore_direction`      | `bool`: `False` | Whether to disregard direction when generating the database query                                                                                                              |\n| `limit`                 | `int`: `None`   | A limit (if any) to impose on the query results                                                                                                                                |\n| `enforce_inequality`    | `bool`: `False` | Whether to enforce inequality; in other words, whether two nodes should be permitted to be aliases for the same node. For example, in `A-\u003eB-\u003eC`; if `A!=C`, then set to `True` |\n| `exclude_automorphisms` | `bool`: `False` | Whether to return only a single example for each detected automorphism. See more in [the documentation](https://github.com/aplbrain/dotmotif/wiki/Automorphisms)               |\n\nFor more details on how to write a query, see [Getting Started](https://github.com/aplbrain/dotmotif/wiki/Getting-Started).\n\n---\n\n# Citing\n\nIf this tool is helpful to your research, please consider citing it with:\n\n```bibtex\n# https://doi.org/10.1038/s41598-021-91025-5\n@article{Matelsky_Motifs_2021, \n    title={{DotMotif: an open-source tool for connectome subgraph isomorphism search and graph queries}},\n    volume={11}, \n    ISSN={2045-2322}, \n    url={http://dx.doi.org/10.1038/s41598-021-91025-5}, \n    DOI={10.1038/s41598-021-91025-5}, \n    number={1}, \n    journal={Scientific Reports}, \n    publisher={Springer Science and Business Media LLC}, \n    author={Matelsky, Jordan K. and Reilly, Elizabeth P. and Johnson, Erik C. and Stiso, Jennifer and Bassett, Danielle S. and Wester, Brock A. and Gray-Roncal, William},\n    year={2021}, \n    month={Jun}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faplbrain%2Fdotmotif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faplbrain%2Fdotmotif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faplbrain%2Fdotmotif/lists"}