Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web API extensions for querying AnalysisResultSet and additional filters for DE and EE #134

Merged
merged 3 commits into from
Jun 22, 2021

Conversation

arteymix
Copy link
Member

The main idea is to add generic services that expose result sets form co-expression and expression analysis to fulfill the requirements from #127. For other issues, we need to take a similar approach by extending the service and DAO routines to accept more parameters to filter.

I've updated Jersey in the process which allow us to register and use parameter converters (yay!), which is much nicer than doing the conversion ourselves every time we pass parameters in the controller layer. I think we could take advantage of Jersy test framework to really test out the API via actual requests, but that will require some setup.

I'm not exactly looking for review, but I would really like to leave some notes here and there because there are some concepts that I really liked from using Spring Boot on another project that would be highly beneficial to our codebase. I took quite a big dive in the codebase to understand these changes.

Relates to #123, #126, #127 and #132

@arteymix arteymix self-assigned this Feb 17, 2021
@@ -40,4 +44,5 @@

ExpressionAnalysisResultSet thawWithoutContrasts( ExpressionAnalysisResultSet resultSet );

ExpressionAnalysisResultSetValueObject loadValueObjectsLimit( int i );
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the main way repository layers are extended with Spring Data to support defining queries via method name. Although load...By is not really a support prefix, find...By is already used for another purpose in BaseDao.

@@ -168,7 +170,7 @@ public void addTestAnalyses( ExpressionExperiment ee ) {

pca.setExperimentAnalyzed( ee );

persisterHelper.persist( pca );
analyses.add( ( Analysis ) persisterHelper.persist( pca ) );
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could make persist routine generic to avoid casting at this stage.

@arteymix arteymix force-pushed the feature-web-api-extensions branch 3 times, most recently from e8246fd to c1d0fb9 Compare February 19, 2021 18:04
@arteymix arteymix force-pushed the feature-web-api-extensions branch 3 times, most recently from 4eb6071 to 523e408 Compare June 9, 2021 18:24
@arteymix
Copy link
Member Author

arteymix commented Jun 9, 2021

Jersey has been updated to 2.25.1. It's the latest version that still has Spring 3 support, so we need to consider #116 if we want to use a newer version.

@arteymix
Copy link
Member Author

I got the filtering by dataset and database entry done.

I had to move the accession (a.k.a. database entry) of an EE up into the BioAssaySet because the experimentAnalyzed by a given expression analysis is not necessarily an EE, but can also be an EE subset. It makes much more sense though because BioAssay have an accession field as well, and having gene expression data is not a prerequisite for GEO series.

I moved on to implement the other generic filtering, offset, limit and sort features.

@arteymix arteymix merged commit 1e06b08 into development Jun 22, 2021
@arteymix arteymix deleted the feature-web-api-extensions branch October 1, 2021 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant