{"id":21721387,"url":"https://github.com/informaticsmatters/fragnet","last_synced_at":"2026-04-07T21:31:49.822Z","repository":{"id":54582646,"uuid":"163952153","full_name":"InformaticsMatters/fragnet","owner":"InformaticsMatters","description":"Fragment network tooling","archived":false,"fork":false,"pushed_at":"2025-01-29T16:54:32.000Z","size":14962,"stargazers_count":1,"open_issues_count":21,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-20T21:48:33.062Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/InformaticsMatters.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}},"created_at":"2019-01-03T09:33:10.000Z","updated_at":"2025-01-29T16:54:35.000Z","dependencies_parsed_at":"2025-01-25T18:42:13.788Z","dependency_job_id":"bb8a37d6-1bc3-4296-8098-9e936f2865fd","html_url":"https://github.com/InformaticsMatters/fragnet","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/InformaticsMatters/fragnet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InformaticsMatters","download_url":"https://codeload.github.com/InformaticsMatters/fragnet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260780474,"owners_count":23062041,"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":[],"created_at":"2024-11-26T02:16:12.491Z","updated_at":"2026-04-07T21:31:49.813Z","avatar_url":"https://github.com/InformaticsMatters.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fragnet\n\n![build and push latest](https://github.com/InformaticsMatters/fragnet/workflows/build%20and%20push%20latest/badge.svg)\n![build](https://github.com/InformaticsMatters/fragnet/workflows/build/badge.svg)\n![build and push tag](https://github.com/InformaticsMatters/fragnet/workflows/build%20and%20push%20tag/badge.svg)\n![build and push latest](https://github.com/InformaticsMatters/fragnet/workflows/build%20and%20push%20stable/badge.svg)\n\n[![Build Status](https://travis-ci.com/InformaticsMatters/fragnet.svg?branch=master)](https://travis-ci.com/InformaticsMatters/fragnet)\n\n![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/informaticsmatters/fragnet)\n[![project](https://img.shields.io/badge/Clubhouse%20Project-Fragnet%20Search-5000d2)](https://app.clubhouse.io/informaticsmatters/project/161)\n\n![GitHub](https://img.shields.io/github/license/informaticsmatters/fragnet)\n\nFragment network tooling from Informatics Matters.\nThis is primarily Java based tooling using RDKit and the Neo4j graph database\nand is the underlying service used by the Fragnet UI application.\n\nCurrent components:\n\n1. [fragnet-search](fragnet-search/) - fragment network query REST web service.\n2. [fragnet-depict](fragnet-depict/) - Depicting smiles as SVG.\n3. [orchestration](orchestration/) - legacy orchestration of fragnet-search to AWS.\n\nFor more information see:\n\n* [Talk at 2018 RDKit UGM](https://github.com/rdkit/UGM_2018/blob/master/Lightning/tim_dudgeon_fragment-network.pdf).\n* [Informatics Matters website](https://www.informaticsmatters.com/pages/fragment_network.html)\n* [Fragnet Search application](https://fragnet.informaticsmatters.com/)\n\n## Building and deploying (CI)\nThe project containers are built automatically using GitHub Actions\n(see the project workflows in `.github/workflows` for details of the build).\n\n- `latest` images pushed to Docker Hub for each change on the master branch.\n- Tagged releases are built and pushed to  Docker hub, with `stable` images also\n  produced when the release is _official_ (i.e. of the form `N.N[.N]`).\n\nDeployment to the designated **staging** site is AUTOMATIC and occurs for every\nchange to Master.\n\nDeployment to the designated **production** site is AUTOMATIC and occurs for\nevery _official_ tag (i.e. of the form `N.N[.N]`).\n\n## Building (developer)\nRun the buildDockerImages target  to build the container images `./gradlew buildDockerImages`.\nThis builds two Docker images running Tomcat and deploys the war files\nfor fragnet-search and fragnet-depict. These container images are `squonk/fragnet-search` and `squonk/fragnet-depict`.\nThe `squonk/fragnet-search` image contains the Keycloak jars, but authentication needs to be enabled by modifying the\nweb app.\n\nTest the container using the [docker-compose.yml](docker-compose.yml)\nfile:\n\n    docker-compose up\n\nThis uses a sample Neo4j database with a small amount of data. It takes a short time to initialise.\n\n## Official deployments\nOfficial deployments (to Kubernetes) use AWX and our [fragnet-ansible]\nplaybooks.\n\n## Image versions\nOfficial image versions are defined by and obtained from repository tags,\npassed on the Travis build process through the `FRAGNET_IMAGE_TAG` environment\nvariable. This variable over-rides any built-in default present in the\ngradle build (see below)...\n \nThe application version is defined in `build.gradle`'s `version` string.\n\nDuring active development the version number (on the master branch)\nis typically the next anticipated formal release and **must** have a\n`-SNAPSHOT` suffix.\n\n**BEFORE** making and pushing a *formal* release you **must**: -\n1.  Remove the `-SNAPSHOT` suffix\n1.  Adjust the version number accordingly (if required)\n1.  Commit the change to Git\n1.  Tag the Git repository using the chosen version number\n\n**AFTER** making a formal release your next actions are to: -\n1.  Increment the version number\n1.  Append the `-SNAPSHOT` suffix\n1.  Commit your change to Git\n\n---\n\n[awx server]: https://awx.informaticsmatters.org\n[fragnet-ansible]: https://github.com/InformaticsMatters/fragnet-ansible\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformaticsmatters%2Ffragnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finformaticsmatters%2Ffragnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformaticsmatters%2Ffragnet/lists"}