Skip to content

Releases: PavlidisLab/Gemma

1.30.2

19 Sep 23:30
Compare
Choose a tag to compare
  • better formatting for numbers in our flat files
  • improve performance of retrieval and thawing of vectors
  • workaround for inferring parents/children when a limited reasoner is used
  • fix substitution of placeholders when using @Value
  • revert some of the multiple hilo ID generator as it caused some issues with duplicated PKs
  • always order null GEEQ scores last in the REST API

1.30.1

14 Sep 16:58
Compare
Choose a tag to compare

Highlights

  • eliminate quantitationType for the processed vectors
  • highlights from multiple sources are now merged
  • preserve scope when generating a link in the search results
  • add audit events for mean-variance update and sample correlation analysis
  • fix query to retrieve the latest audit event of a given type
  • insert analysis results and contrasts with JDBC to make saving analysis fast
  • fix status codes for error pages in Gemma Web
  • add rewriteBatchedStatements=true in our defaults for MySQL
  • allow mentioned terms to bypass a category exclusion from the getDatasetsAnnotationsUsageStatistics() endpoint
  • harmonize some ontology terms

Migration to Hibernate Search

This release replaces the decade-old Compass fork we've been using with Hibernate Search.

1.30.0

14 Aug 23:45
Compare
Choose a tag to compare

Highlights

  • major additions to our REST API
  • revamped UI for monitoring caches
  • cache for ontology inference
  • filterable properties are enumerated in the REST API docs
  • formal syntax for filtering with ANTLR4
  • multiple performance improvements for the database queries performed through the REST API
  • Groovy Support is now in a separate Maven artefact
  • HikariCP for database pooling
  • Micrometer integration
  • GA4 integration
  • dependency update

REST API overhaul

In coordination with our work on our the new Gemma Browser, we are releasing numerous additions to the REST API. We now have endpoints for counting usage of platforms, technology types, categories and annotations with a given full-text query of formal filter.

We now use subqueries for filters that apply to one-to-many relations (i.e. the tags of a dataset). This makes it possible to query for datasets that have a tag A and tag B.

The getDatasets() endpoint now accept a full-text query, allowing one to search and browse in a single API call.

There are endpoints for counting platforms, datasets and result sets matching a given filter.

Paginated and filtered endpoint now include the filter used for retrieving relevant entities. This is giving you more transparency, since our backend might add additional clauses to your expression. We also added a groupBy to make it crystal clear what constitute a business key in the payload.

image

Filterable properties are now exposed in the RESTful API docs

image

Cache for ontology inference

In order to accelerate ontology inference and still benefit from Apache Jena's transitive inference capabilities, we've implemented a caching strategy that seeks cached subsets of queried terms.

Groovy Support

The Groovy support has been moved to a different module and is now part of our packaging process.

To include Groovy support, add the following to your pom.xml:

<dependency>
  <groupId>ubic.pavlab.gemma</groupId>
  <artifactId>gemma-groovy-support</artifactId>
  <version>1.30.0</version>
</dependency>

The SpringSupport object now accepts profiles, allowing you to switch between production and testing environment at a glance:

import ubic.gemma.groovy.framework.*;
var username, password;
var springSupport = new SpringSupport(username, password, [SpringSupport.PRODUCTION]);
var eeService = springSupport.getBean(ExpressionExperimentService.class);
var datasets = eeService.loadAll();

GA4 integration

In the 1.29 series, we migrated our frontend to GA4. In the 1.30, we go one step further by integrating GA4 in the backend of our API, allowing us to relate how the GUI clients interact with the REST API. This works by passing a X-Gemma-Client-ID header in the HTTP request.

Dependencies Update

  • gsec 0.0.14
  • Apache Velocity 2.3
  • Commons IO 2.13
  • Commons Collection 4 (Commons Collection 3 was fully retired)

1.29.15

05 Jul 20:58
Compare
Choose a tag to compare
  • fix a bug when listing switched EEs in a merged platform
  • decouple troubled flags for datasets and platforms (see #764)
  • prevent already troubled curatables from being marked as troubled (and non-troubled as non-troubled)
  • check for cycles when building Phenocarta ontology tree
  • update baseCode to 1.1.18 which contains a fix for ontologies that redefine certain classes as individuals
  • update the last updated moment when a dataset goes through an update intercepted by the audit advice

1.29.13

30 May 20:34
Compare
Choose a tag to compare
  • finish the migration from DO to MONDO
  • fix factor values disappearing when calculating GEEQ scores #333

1.29.12

30 May 20:38
Compare
Choose a tag to compare
  • replace DO with MONDO
  • fix display of blacklisted terms in search results #688
  • fix counting of troubled platforms
  • fix label generation for term URIs that contain fragments
  • fix LazyInitializationException when updating primary publication #694
  • fix batch correction when a DE exclude/include factor is present #678
  • eliminate ga.domain and its associated warning now that we switched to GA4

1.29.11

27 Apr 00:16
Compare
Choose a tag to compare

This is a small patch release with a few critical issues being addressed.

  • Use a more efficient cache strategy for raw and processed vectors.
  • Require at least GROUP_AGENT authority for adding update audit events
  • Fix search for deprecated/removed ontology terms
  • Allow groups to be updated in the user manager interface

1.29.6

03 Mar 20:09
Compare
Choose a tag to compare

This is a small patch release that backports a number of fixes from the 1.30 series.

  • Fix ArrayDesign proxy class leaking in search results (a more definitive fix is scheduled for the 1.30 series)
  • Fix additivity for Jersey logging to prevent annoying logs to reach Slack
  • Fix numerous potential NPEs with loadValueObject and loadValueObjectById
  • Cancel ontology loading threads when the OntologyService is disposed
  • Move experiment-related routines from AnalysisDao into SingleExperimentAnalysisDao and make those type-safe
  • Update dependencies

1.29.5

13 Feb 17:05
Compare
Choose a tag to compare
Tag hotfix

1.29.3

13 Jan 19:57
Compare
Choose a tag to compare
  • use native Hibernate enum types, eliminating about 4 KLOC of boilerplate
  • fix tons of potential NullPointerExceptions and produce useful error messages when an entity cannot be loaded
  • fix DWR converter for SequenceTypeValueObject
  • use Log4j JUL and JCL artifacts to intercept more logs
  • fix NPE when biomaterials cannot be ordered properly