There are a few different ways Geneious Prime can be integrated with other systems such as ELN (electronic lab notebook), registry, LIMS or inventory system. Below are some of the best options.
We understand that systems integration can take quite a lot of effort to get right so we recommend contacting us to discuss your needs in advance. We can then help you decide on the best approach to take.
Geneious Cloud REST API (Enterprise Only)
Geneious Enterprise now offers a REST API for direct access to Geneious Cloud data. If you are interested in using this, please contact us to discuss.
URN Linking
If you're already using a Shared Database in Geneious Prime, then the simplest possible integration requires no plugin development. Each document in the shared database has a unique ID, or URN, which can simply be stored in other systems as a reference to the sequence data you have stored in Geneious.
Once URNs are stored in the LIMS, it is then possible to construct hyperlinks that will open data in Geneious Prime when they are clicked in the web browser.
For further instructions on this, refer to the user manual section "Web Linking to Data in Geneious Prime".
Custom Plugin Development
There are a few different ways a plugin can be developed to integrate with other systems detailed below.
Submission Operation
If you are ready to start writing a plugin using our plugin development kit, then we recommend starting by adding an operation (i.e. a menu entry or toolbar button) that takes the selected sequences and submits them to your LIMS. You can either save all of the sequence data to the LIMS or just the unique ID (URN), keeping the sequence data in Geneious.
This is one of the easiest types of plugin to implement and allows you to test out the integration. In the plugin development kit, start with the "BackTranslationPlugin" example as your starting point for this.
Alternatively, we offer an open source LIMS integration example on GitHub that is also a great starting point: https://github.com/Biomatters/geneious-example-lims-connector
Database Service (for retrieval)
Next, if you'd like your users to be able to retrieve sequences from the LIMS directly, then we recommend implementing a "DatabaseService" which allows the user to browse and search for entries in the LIMS in a similar way to NCBI. This allows them to drag and drop sequences to the local/shared database for working on, then they can submit it with the above operation.
For an example of this, refer to the "ExampleGeneiousService" example plugin in the development kit.
Shared Database Listener
An alternative approach to the above is to implement a Geneious plugin that will listen for changes in a pre-designated folder (or folders) in the shared database in Geneious. Whenever a user adds a document to this folder it can then be automatically synced to your LIMS. The same plugin can also watch for changes on the LIMS side and sync those down to the folder in Geneious. LimsListenerPlugin.java provides a very simple example of this structure.
This approach provides the most seamless experience for end users but as with any kind of syncing, you need to manage state very carefully to avoid conflicts etc. This kind of user interface also makes it easier for end users to accidentally modify data in your LIMS.
Writable Database Service (advanced!)
In our experience, the above options are sufficient for most customers. However, if you require a fully integrated experience, then it is possible to implement a "WritableDatabaseService" which would replace the above with a single database that behaves like the local or shared database, except backed by your LIMS.
We do not recommend this option as it is very complicated to implement and there is no publicly available example.