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, in order from least sophisticated (and easiest to implement) through to most sophisticated.
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.
Note: Geneious Prime currently does not provide any form of web API access to its data (such as a REST API). If you require this functionality, please contact us so we can understand your needs better.
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".
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.