Coder Social home page Coder Social logo

molgenis / molgenis Goto Github PK

View Code? Open in Web Editor NEW
111.0 41.0 99.0 168.83 MB

MOLGENIS - for scientific data: management, exploration, integration and analysis.

Home Page: https://molgenis.org

License: GNU Lesser General Public License v3.0

Java 87.14% CSS 0.40% HTML 2.05% JavaScript 7.24% FreeMarker 3.10% Python 0.02% Shell 0.01% PHP 0.02% PLpgSQL 0.01% Batchfile 0.01%
molgenis java lifescience genetics bioinformatics biobank catalogue javascript freemarker

molgenis's Introduction

THIS MOLGENIS VERSION IS IN ARCHIVE MODE. PLEASE USE NEXT GENERATION AT MOLGENIS-EMX2

Build status Quality Status

Welcome to MOLGENIS

MOLGENIS is a collaborative open source project on a mission to generate great software infrastructure for life science research.

Develop

MOLGENIS has a frontend and a backend. You can develop on them separately. When you want to develop an API and and App simultaneously you need to checkout both.

Useful links

Deploy MOLGENIS

molgenis's People

Contributors

antonak avatar arjandraisma avatar bartcharbon avatar brammiedema avatar burgerm avatar chaopang avatar chinook25 avatar connoratrug avatar connorstroomberg avatar dennishendriksen avatar draismaam avatar erwinwinder avatar fdlk avatar freerkvandijk avatar georgebyelas avatar jelmerveen avatar jjettenn avatar joerivandervelde avatar jvanveen avatar marieke-bijlsma avatar marikaris avatar mark-de-haan avatar maxpostema avatar molgenis-jenkins avatar mswertz avatar patrickdeelen avatar pieterdopheide avatar roankanninga avatar sidohaakma avatar tommydeboer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

molgenis's Issues

After importing for a while the session is invalidated

After the importing is finished this error occurs. This is with big datasets, which take some time before the importing is done.
A white screen is shown in the application.

This is the error message in the catalina.out
org.molgenis.framework.db.DatabaseException: setAttribute: Session [47D91C1DC369AF8117F2A9AB36EB4C5C] has already been invalidated

URL not found always returns 200OK

When a URL can't be mapped to a controller it is send to the molgenis FrontController. When the molgenis FrontController can't map the URL to a controller an empty page with 200OK is returned instead of a 404

Validate DataSet matrix during import

Check values (ObservableValue) of DataSets if they are in the correct format according to the datatype specified in the ObservableFeature and show error if incorrect. Now all values are saved as string and are not validated. This can lead to problems later on for example during indexing for elastic search and viewing in the DataSetViewer

Importer: validator only accepts Excel

UploadWizardPage in molgenis-omx-importer uses ImportWizardExcelPrognosis for input instead of a generic validator based on TableReaderFactory. As a result import of other tabular formats fails.

Mapper createList returns empty list

Generated mappers classes (JDBC, JPA and others) generate createList(int nr) method that returns empty list of entities instead of a list with "nr" entities. Behavior is not documented, but most likely a bug.

Harmonization of datatypes in molgenis

We have FieldType (and MolgenisFieldTypes.FieldTypeEnum) for entities.

For ObservableFeature we have [xref,string,categorical,nominal,ordinal,date,datetime,int,code,image,decimal,bool,file,log,data,exe]. But this is not enforced, DataType is just a string field.

We must have one set of types wich we use everywere and it must be static typed and validated

Data explorer: always show the target identifier

If we select a column in the database we don't know which target it is, so we should have a system that automatically selects the target identifier when 1 or more features are selected in the tree.

Web app redeploy memory leaks

Redeploying a web app results in memory leaks:

0 WARN [org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator] HHH000208: org.hibernate.connection.C3P0ConnectionProvider has been deprecated in favor of org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider; that provider will be used instead.
110 WARN [com.mchange.v2.c3p0.management.ActiveManagementCoordinator] A C3P0Registry mbean is already registered. This probably means that an application using c3p0 was undeployed, but not all PooledDataSources were closed prior to undeployment. This may lead to resource leaks over time. Please take care to close all PooledDataSources.

Due to these memory leaks multiple redeploys will result in out of memory errors, especially inconvenient for nightly deployed applications.

Entity __Type field should be a system field

Copied from molgenis-legacy repository:

The Entity __Type field should be a system field.
At the time of writing applications such as XQTL depend on availability of __Type in the UI. These dependencies need to be resolved before we can make __Type a system field.

Harmonize different methods to store files

Currently you can use the input="file" type to write files as blobs in the database or you can use a MolgenisFile entity which in combination with "a plugin" stores the file meta-data in the database and stores the file outside of the database.

DotDocMinimalGen errors when "dot" not available

Get rid of the following errors during generation:

0 ERROR [org.molgenis.generators.doc.DotDocMinimalGen] Generation of graphical documentation failed: return code Cannot run program "dot": CreateProcess error=2, The system cannot find the file specified. Install GraphViz and put dot.exe on your path.
0 [Thread-4] ERROR org.molgenis.generators.doc.DotDocMinimalGen - Generation of graphical documentation failed: return code Cannot run program "dot": CreateProcess error=2, The system cannot find the file specified. Install GraphViz and put dot.exe on your path.

Importer: updating DataSet does not work

Importing data using the "Add, update existing" option fails when updating a dataset entity:
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]

Reproduce using the following omx data:
identifier name protocolused_identifier dataset_test dataset_test protocol_test

Reintroduce recaptchas in molgenis-omx-auth

During migration of the molgenis authentication modules from the molgenis_apps-legacy to the molgenis repository the recaptcha functionality was removed because the library was not available in the maven repository.

Define cache response headers

Define cache response headers for all resources. Currently the headers are defined in such a way that an explicit browser refresh (for example javascript) might be necesarry).

Remove feature from protocol

When a feature is removed from a protocol, the observedvalues are not removed from the DataSet. They are stil visible in the DataSetViewer.

See: removed 'organism', still visible in the viewer:
Screen Shot 2013-03-19 at 09 09 54
Screen Shot 2013-03-19 at 09 10 20

MolgenisModel dependency resolving incorrect

Entity dependency resolving in MolgenisModel fails in the following case:
Entity A extends B and entity A has field B

Example:

*** Remove field B from entity A
// entities added in import order ENTITIES_IMPORTABLE = new LinkedHashMap<String, EntityImporter>(); ENTITIES_IMPORTABLE.put("institute", new InstituteEntityImporter()); ENTITIES_IMPORTABLE.put("investigation", new InvestigationEntityImporter()); ENTITIES_IMPORTABLE.put("molgenisfile", new MolgenisFileEntityImporter()); ENTITIES_IMPORTABLE.put("runtimeproperty", new RuntimePropertyEntityImporter()); ENTITIES_IMPORTABLE.put("characteristic", new CharacteristicEntityImporter()); ENTITIES_IMPORTABLE.put("observationtarget", new ObservationTargetEntityImporter()); ENTITIES_IMPORTABLE.put("individual", new IndividualEntityImporter()); ENTITIES_IMPORTABLE.put("ontology", new OntologyEntityImporter()); ENTITIES_IMPORTABLE.put("species", new SpeciesEntityImporter()); ENTITIES_IMPORTABLE.put("genome", new GenomeEntityImporter()); ENTITIES_IMPORTABLE.put("chromosome", new ChromosomeEntityImporter()); ENTITIES_IMPORTABLE.put("gene", new GeneEntityImporter()); ENTITIES_IMPORTABLE.put("protein", new ProteinEntityImporter()); ENTITIES_IMPORTABLE.put("proteindomain", new ProteinDomainEntityImporter()); ENTITIES_IMPORTABLE.put("exon", new ExonEntityImporter()); ENTITIES_IMPORTABLE.put("ontologyterm", new OntologyTermEntityImporter()); ENTITIES_IMPORTABLE.put("accession", new AccessionEntityImporter()); ENTITIES_IMPORTABLE.put("person", new PersonEntityImporter()); ENTITIES_IMPORTABLE.put("study", new StudyEntityImporter()); ENTITIES_IMPORTABLE.put("citation", new CitationEntityImporter()); ENTITIES_IMPORTABLE.put("submission", new SubmissionEntityImporter()); ENTITIES_IMPORTABLE.put("contribution", new ContributionEntityImporter()); ENTITIES_IMPORTABLE.put("studydetails", new StudyDetailsEntityImporter()); ENTITIES_IMPORTABLE.put("phenotypeproperty", new PhenotypePropertyEntityImporter()); ENTITIES_IMPORTABLE.put("samplepanel", new SamplePanelEntityImporter()); ENTITIES_IMPORTABLE.put("assayedpanel", new AssayedPanelEntityImporter()); ENTITIES_IMPORTABLE.put("variant", new VariantEntityImporter()); ENTITIES_IMPORTABLE.put("observablefeature", new ObservableFeatureEntityImporter()); ENTITIES_IMPORTABLE.put("protocol", new ProtocolEntityImporter()); ENTITIES_IMPORTABLE.put("phenotypemethod", new PhenotypeMethodEntityImporter()); ENTITIES_IMPORTABLE.put("dataset", new DataSetEntityImporter()); ENTITIES_IMPORTABLE.put("panel", new PanelEntityImporter()); ENTITIES_IMPORTABLE.put("experiment", new ExperimentEntityImporter()); ENTITIES_IMPORTABLE.put("gwasexperiment", new GWASExperimentEntityImporter()); ENTITIES_IMPORTABLE.put("usedmarkerset", new UsedMarkerSetEntityImporter()); ENTITIES_IMPORTABLE.put("frequencycluster", new FrequencyClusterEntityImporter()); <-- field B ENTITIES_IMPORTABLE.put("genotypefrequency", new GenotypeFrequencyEntityImporter()); ENTITIES_IMPORTABLE.put("allelefrequency", new AlleleFrequencyEntityImporter()); ENTITIES_IMPORTABLE.put("significance", new SignificanceEntityImporter()); ENTITIES_IMPORTABLE.put("effectsize", new EffectSizeEntityImporter()); ENTITIES_IMPORTABLE.put("selectioncriteria", new SelectionCriteriaEntityImporter()); ENTITIES_IMPORTABLE.put("category", new CategoryEntityImporter()); ENTITIES_IMPORTABLE.put("observationset", new ObservationSetEntityImporter()); ENTITIES_IMPORTABLE.put("phenotypevalue", new PhenotypeValueEntityImporter()); ENTITIES_IMPORTABLE.put("observedvalue", new ObservedValueEntityImporter()); ENTITIES_IMPORTABLE.put("panelsource", new PanelSourceEntityImporter());

*** Keep field B in entity A
// entities added in import order ENTITIES_IMPORTABLE = new LinkedHashMap<String, EntityImporter>(); ENTITIES_IMPORTABLE.put("institute", new InstituteEntityImporter()); ENTITIES_IMPORTABLE.put("investigation", new InvestigationEntityImporter()); ENTITIES_IMPORTABLE.put("molgenisfile", new MolgenisFileEntityImporter()); ENTITIES_IMPORTABLE.put("runtimeproperty", new RuntimePropertyEntityImporter()); ENTITIES_IMPORTABLE.put("characteristic", new CharacteristicEntityImporter()); ENTITIES_IMPORTABLE.put("observationtarget", new ObservationTargetEntityImporter()); ENTITIES_IMPORTABLE.put("individual", new IndividualEntityImporter()); ENTITIES_IMPORTABLE.put("ontology", new OntologyEntityImporter()); ENTITIES_IMPORTABLE.put("species", new SpeciesEntityImporter()); ENTITIES_IMPORTABLE.put("genome", new GenomeEntityImporter()); ENTITIES_IMPORTABLE.put("chromosome", new ChromosomeEntityImporter()); ENTITIES_IMPORTABLE.put("gene", new GeneEntityImporter()); ENTITIES_IMPORTABLE.put("protein", new ProteinEntityImporter()); ENTITIES_IMPORTABLE.put("proteindomain", new ProteinDomainEntityImporter()); ENTITIES_IMPORTABLE.put("exon", new ExonEntityImporter()); ENTITIES_IMPORTABLE.put("ontologyterm", new OntologyTermEntityImporter()); ENTITIES_IMPORTABLE.put("accession", new AccessionEntityImporter()); ENTITIES_IMPORTABLE.put("person", new PersonEntityImporter()); ENTITIES_IMPORTABLE.put("study", new StudyEntityImporter()); ENTITIES_IMPORTABLE.put("citation", new CitationEntityImporter()); ENTITIES_IMPORTABLE.put("submission", new SubmissionEntityImporter()); ENTITIES_IMPORTABLE.put("contribution", new ContributionEntityImporter()); ENTITIES_IMPORTABLE.put("studydetails", new StudyDetailsEntityImporter()); ENTITIES_IMPORTABLE.put("phenotypeproperty", new PhenotypePropertyEntityImporter()); ENTITIES_IMPORTABLE.put("samplepanel", new SamplePanelEntityImporter()); ENTITIES_IMPORTABLE.put("assayedpanel", new AssayedPanelEntityImporter()); ENTITIES_IMPORTABLE.put("variant", new VariantEntityImporter()); ENTITIES_IMPORTABLE.put("observablefeature", new ObservableFeatureEntityImporter()); ENTITIES_IMPORTABLE.put("protocol", new ProtocolEntityImporter()); ENTITIES_IMPORTABLE.put("phenotypemethod", new PhenotypeMethodEntityImporter()); ENTITIES_IMPORTABLE.put("dataset", new DataSetEntityImporter()); ENTITIES_IMPORTABLE.put("panel", new PanelEntityImporter()); ENTITIES_IMPORTABLE.put("experiment", new ExperimentEntityImporter()); ENTITIES_IMPORTABLE.put("gwasexperiment", new GWASExperimentEntityImporter()); ENTITIES_IMPORTABLE.put("usedmarkerset", new UsedMarkerSetEntityImporter()); ENTITIES_IMPORTABLE.put("significance", new SignificanceEntityImporter()); ENTITIES_IMPORTABLE.put("effectsize", new EffectSizeEntityImporter()); ENTITIES_IMPORTABLE.put("selectioncriteria", new SelectionCriteriaEntityImporter()); ENTITIES_IMPORTABLE.put("category", new CategoryEntityImporter()); ENTITIES_IMPORTABLE.put("panelsource", new PanelSourceEntityImporter()); ENTITIES_IMPORTABLE.put("frequencycluster", new FrequencyClusterEntityImporter()); <-- field B at different position ENTITIES_IMPORTABLE.put("genotypefrequency", new GenotypeFrequencyEntityImporter()); ENTITIES_IMPORTABLE.put("allelefrequency", new AlleleFrequencyEntityImporter()); ENTITIES_IMPORTABLE.put("phenotypevalue", new PhenotypeValueEntityImporter()); ENTITIES_IMPORTABLE.put("observationset", new ObservationSetEntityImporter()); ENTITIES_IMPORTABLE.put("observedvalue", new ObservedValueEntityImporter());

Implement date filter in dataexplorer

Dates are now treated as string, so you can not sort.
Implement date filter with date picker.

In molgenis multiple dat formats are used.
We should have one used everywhere in molgenis

Unique not honored

When i add a unique tag to my entity i can stil add entites with the same value for that field.
No unique key is generated.

Database connection time out exceptions

Database connection errors occur overnight resulting in the web application not working:

595511526 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] SQL Error: 0, SQLState: 08003
595511526 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] No operations allowed after connection closed.
javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: No operations allowed after connection closed.

Capitalization of model field name with underscore

results in Entity.setGdna_Start instead of Entity.setGdna_start (mind the capitalization here). This causes problems when writing generators.

Note: After fixing this bug set generate_rest to true in the omicsconnect app module

App omicsconnect: importing dataset matrix fails

Importing a dataset matrix using the importer using the omicsconnect app results in the following exception while adding a ObservedValue:
"Field 'Identifier' doesn't have a default value"

Importing the same dataset using another application does not cause an exception.

Possible cause is related to the model extensions used in the omicsconnect app and/or the fact that the omicsconnect model results in warnings/errors during generation (cyclic dependencies).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.