Loculus is a software package to power microbial genomial databases. Major features include:
Loculus targets any group managing sequencing data. It can be used by small public health or research laboratories with a few members for storing their own, internal data as well as by international databases facilitating global pathogen sequence sharing.
The Loculus software is already in a stable stage and used for production systems (see "Known instances" below) and you are welcome to explore this repository and try it out. However, please note that we are planning to revise the configuration files and the APIs before we release the official 1.0. Further, the documentation is so far quite sparse. We plan to release 1.0 with stable APIs and comprehensive documentation by the end of 2024.
If you are looking for a software to manage sequencing data and would like to know whether Loculus might be a suitable tool for you, please feel free to reach out. We would love to hear about your project and take your needs and requirements into consideration when we plan the further development.
Pathoplexus is a new initiative to facilitate open sharing of genetic sequencing data for the ebola virus, the West Nile virus and the CCHF virus. See: https://pathoplexus.org
GenSpectrum uses Loculus internally to store sequencing data and power its interactive dashboards for analyzing and tracking variants and mutations of viruses. It is currently under development and will be released soon.
If you also host a Loculus instance and would like it to be added to this list, please reach out!
Additional documentation for development is available in each folder's README. This file contains a high-level overview of the project and shared development information that is best kept in one place.
If you would like to develop with a full local loculus instance for development you need to:
Note that if you are developing the backend or frontend/website in isolation a full local loculus instance is not required. See the individual READMEs for more information.
architecture_docs/ contains the architecture documentation of Loculus.
TLDR:
backend
, see backend/README.md
website
, see website/README.md
preprocessing
folder, see preprocessing/specification.md
kubernetes
, see kubernetes/README.md
.
Check this for local development setup instructions.keycloak-image
and realm-config
. The keycloak login theme is built with a custom keycloakify build.The following diagram shows a rough overview of the involved software components:
While the documentation is still a work in progress, a look at the .github/workflows
folder might be helpful:
backend.yml
runs the backend tests and builds the backend docker imagewebsite.yml
runs the website tests and builds the website docker imagee2e-k3d.yml
runs the end-to-end testsWe use Keycloak for authentication. The Keycloak instance is deployed in the loculus
namespace and exposed to the outside either under localhost:8083
or authentication-[your-argo-cd-path]
. The Keycloak instance is configured with a realm called loculus
and a client called backend-client
. The realm is configured to use the exposed URL of Keycloak as a frontend URL.
For testing we added multiple users to the realm. The users are:
admin
with password admin
(login under your-exposed-keycloak-url/admin/master/console/
)testuser:testuser
(read as username: testuser
, password testuser
) and superuser:superuser
(login under your-exposed-keycloak-url/realms/loculus/account/
)testuser_[processId]_[browser]:testuser_[processId]_[browser]
testGroup
in the setup for e2e tests. If you change the number of browsers in the e2e test, you need to adapt website/tests/playwrightSetup.ts
accordingly.backend
and password backend
. The technical user is authorized to view users and submitting groups and in principle to manage its own account.For testing we added all users declared above to the group testGroup
.
Contributions are very welcome!
Please see CONTRIBUTING.md
for more information or ping us in case you need help.