{"id":44664271,"url":"https://github.com/ifilot/bramble","last_synced_at":"2026-02-15T00:14:55.282Z","repository":{"id":165895160,"uuid":"641289155","full_name":"ifilot/bramble","owner":"ifilot","description":"Common Neighbor Analysis Tool","archived":false,"fork":false,"pushed_at":"2025-02-06T15:43:01.000Z","size":8370,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-05T13:25:10.009Z","etag":null,"topics":["cna","common-neighbor-analysis"],"latest_commit_sha":null,"homepage":"https://ifilot.github.io/bramble/","language":"GLSL","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/ifilot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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-16T07:03:31.000Z","updated_at":"2025-03-17T12:50:22.000Z","dependencies_parsed_at":"2024-05-01T11:15:12.617Z","dependency_job_id":"3b40e184-2cb2-42b5-99ae-5f8ffab18922","html_url":"https://github.com/ifilot/bramble","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/ifilot/bramble","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fbramble","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fbramble/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fbramble/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fbramble/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ifilot","download_url":"https://codeload.github.com/ifilot/bramble/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fbramble/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29398154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cna","common-neighbor-analysis"],"created_at":"2026-02-15T00:14:54.056Z","updated_at":"2026-02-15T00:14:55.273Z","avatar_url":"https://github.com/ifilot.png","language":"GLSL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bramble\n\n![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/ifilot/bramble?label=version)\n[![Build](https://github.com/ifilot/bramble/actions/workflows/build.yml/badge.svg)](https://github.com/ifilot/bramble/actions/workflows/build.yml)\n[![codecov](https://codecov.io/gh/ifilot/bramble/graph/badge.svg?token=25GK2ME5ZV)](https://codecov.io/gh/ifilot/bramble)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![status](https://joss.theoj.org/papers/f6493d619d92bb6d993713b9d1abb38c/status.svg)](https://joss.theoj.org/papers/f6493d619d92bb6d993713b9d1abb38c)\n[![DOI](https://zenodo.org/badge/641289155.svg)](https://zenodo.org/badge/latestdoi/641289155)\n[![Docker pulls](https://img.shields.io/docker/pulls/ivofilot/bramble)](https://hub.docker.com/r/ivofilot/bramble)\n\n## Purpose\n\n\u003e [!TIP]\n\u003e Detailed documentation can be found [here](https://ifilot.github.io/bramble/).\n\nBramble is a single atom pattern recognition algorithm based on the Common\nNeighbor Analysis method. It can efficiently construct CNA fingerprints per\natom and connect these fingerprints to a (customizable) pattern library to add\nlabels to the fingerprints.\n\n![Nanoparticle](./docs/_static/img/nanoparticle_identified_atoms.png)\n\nFor fingerprints that are (still) unknown or for atoms that have a more\namorphous chemical environment, Bramble comes bundled with a similarity\nanalysis tool. Although relatively computationally expensive to execute, it\nyields a powerful similarity metric by which the extent that two chemical\nenvironments are the same can be probed.\n\n![Nanoparticle](./docs/_static/img/similarity_analysis_co1121.png)\n\n## Compilation\n\nEnsure you have the necessary dependencies installed on your system.\n\n```bash\nsudo apt install -y build-essential cmake libboost-all-dev pkg-config libeigen3-dev libtclap-dev\n```\n\nNext, clone the repository and combile Bramble using\n\n```bash\nmkdir build \u0026\u0026 cd build\ncmake ../src\nmake -j\n```\n\nTo test that Bramble is working, run the test suite\n\n```bash\nmake test\n```\n\nFor debugging purposes, one can run\n\n```bash\nCTEST_OUTPUT_ON_FAILURE=TRUE make test\n```\n\n### CUDA support\n\nTo compile `bramble` with CUDA support, run\n\n```bash\ncmake ../src -DMOD_CUDA=1 -DCUDA_ARCH=sm_89\n```\n\nwhere the value for `DCUDA_ARCH` should match the architecture of your graphical\ncard. A nice overview is given [here](https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/).\nFor example, for a `RTX 4090`,  `-DCUDA_ARCH=sm_89`.\n\n## Docker container\n\nRather than compiling Bramble yourself, you can also make direct use of the\n[Bramble docker container](https://hub.docker.com/r/ivofilot/bramble). This\ncontainer is built on top of the [NVidia CUDA container](https://hub.docker.com/r/nvidia/cuda/)\nallowing you to use the CUDA-enabled version of Bramble.\n\nTo use the Docker container, first download it from Docker Hub\n\n```bash\ndocker pull ivofilot/bramble\n```\n\nNext, launch the container and link a volume on your hard drive to interact\nwith. This folder should contain the files you wish to work with.\n\n```bash\ndocker run --name bramble -v \"D:/bramble-data\":/home/bramble/data -d ivofilot/bramble:latest\n```\n\nThis will launch the `bramble` image, which you check using\n\n```bash\ndocker ps\n```\n\nTo execute Bramble, simply log into the container and use the same kind of commands\nyou would normally use for running Bramble.\n\n```bash\ndocker exec -it bramble /bin/bash\n```\n\nGo to the `/home/bramble/data` folder and make sure you have copied \n`patterns.json` and `pa_fcc111.txt` to this folder. \nSince the `bramble` executable is available from the path, you\ncan directly invoke it. To perform a pattern identification, run\n\n```bash\ncd /home/bramble/data\nbramble -p patterns.json -i POSCAR_Rh111 -o pa_fcc111.txt\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifilot%2Fbramble","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fifilot%2Fbramble","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifilot%2Fbramble/lists"}