├── sc ├── src │ ├── test │ │ ├── resources │ │ │ └── fixtures │ │ │ │ ├── scxa_tsne-delete.sql │ │ │ │ ├── scxa_analytics-delete.sql │ │ │ │ ├── scxa_cell_clusters-delete.sql │ │ │ │ ├── scxa_experiment-delete.sql │ │ │ │ ├── scxa_marker_genes-delete.sql │ │ │ │ └── scxa_marker_gene_stats-delete.sql │ │ └── java │ │ │ └── uk │ │ │ └── ac │ │ │ └── ebi │ │ │ └── atlas │ │ │ └── configuration │ │ │ └── TestConfig.java │ └── main │ │ ├── javascript │ │ ├── .eslintrc.json │ │ ├── .eslintignore │ │ └── bundles │ │ │ ├── experiment-page │ │ │ ├── .babelrc │ │ │ ├── src │ │ │ │ └── supplementary-information │ │ │ │ │ ├── icons │ │ │ │ │ ├── r-button.png │ │ │ │ │ ├── ae-logo-64.png │ │ │ │ │ ├── gsea_go-icon.png │ │ │ │ │ ├── ma-plot-icon.png │ │ │ │ │ ├── gsea_interpro-icon.png │ │ │ │ │ ├── gsea_reactome-icon.png │ │ │ │ │ ├── download_blue_small.png │ │ │ │ │ └── experiment_design_icon.png │ │ │ │ │ └── AnalysisMethodsTable.js │ │ │ └── index.js │ │ │ ├── gene-search │ │ │ ├── .babelrc │ │ │ ├── index.js │ │ │ └── src │ │ │ │ └── GeneSearchRouter.js │ │ │ ├── gene-search-form │ │ │ ├── index.js │ │ │ └── package.json │ │ │ ├── autocomplete │ │ │ ├── index.js │ │ │ └── package.json │ │ │ ├── homepage-cards │ │ │ ├── package.json │ │ │ └── index.js │ │ │ ├── homepage-species-summary-panel │ │ │ ├── index.js │ │ │ └── package.json │ │ │ └── homepage-experiments-summary-panel │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── webapp │ │ ├── WEB-INF │ │ │ ├── jsp │ │ │ │ ├── index.jsp │ │ │ │ ├── error.jsp │ │ │ │ └── tiles │ │ │ │ │ ├── global-footer.jsp │ │ │ │ │ ├── global-masthead.jsp │ │ │ │ │ └── views │ │ │ │ │ ├── static-page.jsp │ │ │ │ │ └── home.jsp │ │ │ └── tiles │ │ │ │ └── errors.xml │ │ └── resources │ │ │ ├── images │ │ │ ├── home │ │ │ │ └── hero_cell.png │ │ │ ├── logos │ │ │ │ ├── czi_logo.gif │ │ │ │ ├── embl_ebi_logo.png │ │ │ │ ├── hca_cell_logo.png │ │ │ │ ├── sc_atlas_logo.png │ │ │ │ ├── broad_institute.png │ │ │ │ ├── human_cell_atlas.png │ │ │ │ ├── sanger_institute.png │ │ │ │ ├── logo_atlas_transparent.png │ │ │ │ └── wellcome_trust_logo_black.png │ │ │ ├── cells_background.png │ │ │ └── help │ │ │ │ ├── home_search.png │ │ │ │ ├── HCA_headerpage.png │ │ │ │ ├── experiment_design.png │ │ │ │ ├── experiments_table.png │ │ │ │ ├── latest_experiments.png │ │ │ │ ├── search_results_page.png │ │ │ │ ├── tsne_gene_expression.png │ │ │ │ ├── HCA_heatmap_annotated.png │ │ │ │ ├── tsne_colour_by_metadata.png │ │ │ │ ├── supplementary_information.png │ │ │ │ └── experiments_page_update_annotated.png │ │ │ ├── js-bundles │ │ │ ├── 1cb70599fbc0a2c43f46222abcc00fc3.png │ │ │ ├── 273e9456f9eaf449a1b0a1d139017363.png │ │ │ ├── 2cd93f71209c5c96399750432f39ff01.png │ │ │ ├── 38cd71b96376bd1174649cbc79dc7ad5.png │ │ │ ├── 3dfbf3c1a14a83ebcf54eab825f25c07.png │ │ │ ├── c44655d6c81f82b0d4ab9f7295a4098e.png │ │ │ ├── c51939cffed0847525df454aa13b9318.png │ │ │ ├── fd2722b5765c2179da9d410f5aadef74.png │ │ │ ├── geneSearchForm.bundle.js │ │ │ ├── atlasAutocomplete.bundle.js │ │ │ └── homepageCards.bundle.js │ │ │ ├── html │ │ │ └── release-notes.html │ │ │ └── css │ │ │ ├── experiments-table.css │ │ │ └── theme-atlas.css │ │ ├── resources │ │ ├── dev │ │ │ ├── solr.properties │ │ │ ├── jdbc.properties │ │ │ └── logback.xml │ │ └── configuration.properties │ │ └── java │ │ └── uk │ │ └── ac │ │ └── ebi │ │ └── atlas │ │ ├── experiments │ │ └── ScExperimentSearchService.java │ │ ├── experimentimport │ │ └── SingleCellExperimentChecker.java │ │ ├── download │ │ └── IconType.java │ │ ├── trader │ │ └── cache │ │ │ └── loader │ │ │ └── SingleCellRnaSeqBaselineExperimentFactory.java │ │ ├── search │ │ └── FacetsToTooltipMapping.java │ │ ├── configuration │ │ └── AppConfig.java │ │ └── home │ │ └── JsonSpeciesSummaryController.java └── README.md ├── base └── src │ ├── test │ ├── resources │ │ ├── fixtures │ │ │ ├── experiment-delete.sql │ │ │ ├── arraydesign-delete.sql │ │ │ ├── scxa_experiment-delete.sql │ │ │ └── designelement_mapping-delete.sql │ │ ├── solr.properties │ │ ├── configuration.properties │ │ ├── jdbc.properties │ │ └── uk │ │ │ └── ac │ │ │ └── ebi │ │ │ └── atlas │ │ │ ├── commons │ │ │ └── readers │ │ │ │ └── empty_matrix.mtx │ │ │ └── species │ │ │ └── species-tyrannosaurus-rex.json │ └── java │ │ └── uk │ │ └── ac │ │ └── ebi │ │ └── atlas │ │ ├── experimentimport │ │ └── coexpression │ │ │ └── BaselineCoexpressionTest.java │ │ ├── model │ │ ├── experiment │ │ │ ├── differential │ │ │ │ ├── RegulationTest.java │ │ │ │ └── rnaseq │ │ │ │ │ └── RnaSeqProfileTest.java │ │ │ └── baseline │ │ │ │ ├── CellTest.java │ │ │ │ └── ExpressionTest.java │ │ ├── arraydesign │ │ │ └── ArrayDesignTest.java │ │ └── XmlReaderMock.java │ │ ├── web │ │ ├── RnaSeqBaselineRequestPreferencesTest.java │ │ └── BaselineRequestPreferencesTest.java │ │ ├── solr │ │ ├── BioentityPropertyNameTest.java │ │ ├── analytics │ │ │ └── query │ │ │ │ └── AnalyticsSolrQueryTreeTest.java │ │ ├── bioentities │ │ │ └── admin │ │ │ │ └── monitor │ │ │ │ └── BioentityIndexMonitorTest.java │ │ └── cloud │ │ │ ├── collections │ │ │ └── AnalyticsCollectionProxyTest.java │ │ │ └── SolrCloudCollectionProxyFactoryIT.java │ │ ├── experimentpage │ │ └── baseline │ │ │ └── genedistribution │ │ │ └── CutoffScaleTest.java │ │ ├── search │ │ └── baseline │ │ │ └── BaselineExperimentProfileTest.java │ │ ├── bioentity │ │ └── properties │ │ │ └── PropertyLinkTest.java │ │ └── profiles │ │ └── IsGeneIdMatchTest.java │ └── main │ ├── java │ └── uk │ │ └── ac │ │ └── ebi │ │ └── atlas │ │ ├── model │ │ ├── card │ │ │ └── CardIconType.java │ │ ├── experiment │ │ │ ├── summary │ │ │ │ └── ContrastPropertyType.java │ │ │ ├── differential │ │ │ │ ├── DifferentialExpressionLimits.java │ │ │ │ ├── DifferentialProfilesList.java │ │ │ │ ├── rnaseq │ │ │ │ │ └── RnaSeqProfile.java │ │ │ │ ├── Regulation.java │ │ │ │ └── microarray │ │ │ │ │ └── MicroarrayExperimentConfiguration.java │ │ │ └── baseline │ │ │ │ ├── BaselineProfile.java │ │ │ │ ├── FactorGroup.java │ │ │ │ ├── Cell.java │ │ │ │ └── BaselineExpressionPerReplicateProfile.java │ │ ├── Expression.java │ │ ├── arraydesign │ │ │ └── ArrayDesign.java │ │ ├── resource │ │ │ ├── ExtraInfoImage.java │ │ │ ├── ExternalResource.java │ │ │ ├── MatrixMarketFile.java │ │ │ └── ResourceType.java │ │ ├── ExpressionUnit.java │ │ ├── GeneProfilesList.java │ │ ├── analyticsindex │ │ │ └── MicroarrayExperimentDataPoint.java │ │ └── SampleCharacteristic.java │ │ ├── testutils │ │ ├── readme.txt │ │ ├── SpeciesUtils.java │ │ └── AssayGroupFactory.java │ │ ├── profiles │ │ ├── GeneProfilesListBuilder.java │ │ ├── differential │ │ │ ├── microarray │ │ │ │ └── MicroarrayProfileStreamOptions.java │ │ │ ├── ProfileStreamOptions.java │ │ │ ├── DifferentialProfileStreamOptions.java │ │ │ └── DifferentialProfilesListBuilder.java │ │ ├── SelectProfiles.java │ │ ├── baseline │ │ │ └── BaselineProfileStreamOptions.java │ │ ├── writer │ │ │ └── RnaSeqDifferentialProfilesWriterFactory.java │ │ ├── ProfileStreamFilter.java │ │ └── stream │ │ │ └── CreatesProfileStream.java │ │ ├── experimentimport │ │ ├── ExperimentChecker.java │ │ ├── analytics │ │ │ └── differential │ │ │ │ ├── DifferentialAnalytics.java │ │ │ │ └── rnaseq │ │ │ │ └── RnaSeqDifferentialAnalyticsInputStreamFactory.java │ │ ├── coexpression │ │ │ └── BaselineCoexpression.java │ │ ├── admin │ │ │ └── ExperimentOpsExecutionService.java │ │ └── experimentdesign │ │ │ └── ExperimentDesignFileWriterService.java │ │ ├── solr │ │ └── cloud │ │ │ ├── SchemaField.java │ │ │ └── collections │ │ │ └── Gene2ExperimentCollectionProxy.java │ │ ├── controllers │ │ ├── SpeciesUnknownException.java │ │ ├── BioentityNotFoundException.java │ │ ├── NoStatisticalSignificanceException.java │ │ ├── UnparseableSemanticQueryException.java │ │ └── ResourceNotFoundException.java │ │ ├── species │ │ ├── AtlasInformationDataType.java │ │ └── SpeciesFactory.java │ │ ├── experimentpage │ │ ├── json │ │ │ └── JsonExperimentController.java │ │ ├── LinkToGene.java │ │ ├── context │ │ │ └── RnaSeqRequestContext.java │ │ └── baseline │ │ │ └── genedistribution │ │ │ └── HistogramAcrossGenes.java │ │ ├── trader │ │ └── cache │ │ │ ├── loader │ │ │ └── ExperimentFactory.java │ │ │ └── ExperimentsCache.java │ │ ├── search │ │ ├── diffanalytics │ │ │ └── DiffAnalyticsList.java │ │ ├── baseline │ │ │ └── BaselineExperimentProfilesList.java │ │ └── DatabaseQuery.java │ │ ├── home │ │ └── SpeciesSummaryDao.java │ │ ├── commons │ │ ├── streams │ │ │ ├── ObjectInputStream.java │ │ │ └── ObjectInputStreams.java │ │ └── writers │ │ │ ├── FileTsvWriterBuilder.java │ │ │ └── TsvWriter.java │ │ ├── web │ │ ├── MicroarrayRequestPreferences.java │ │ ├── BaselineRequestPreferences.java │ │ ├── ProteomicsBaselineRequestPreferences.java │ │ └── interceptors │ │ │ └── AdminInterceptor.java │ │ ├── utils │ │ ├── ResourceUtils.java │ │ ├── GsonProvider.java │ │ └── StringUtil.java │ │ └── bioentity │ │ └── properties │ │ └── PropertyLink.java │ └── resources │ └── solr-queries │ ├── experimentType.query.json │ ├── bioentityIdentifier.query.json │ └── differential.facets.query.json ├── gxa └── src │ ├── test │ ├── resources │ │ ├── fixtures │ │ │ └── experiment-delete.sql │ │ └── keystore │ └── java │ │ └── uk │ │ └── ac │ │ └── ebi │ │ └── atlas │ │ ├── solr │ │ └── analytics │ │ │ └── differential │ │ │ └── ExperimentsTypeMapConverterTest.java │ │ └── web │ │ └── ExperimentPageRequestPreferencesTest.java │ └── main │ ├── javascript │ ├── modules │ │ └── expression-atlas-disclaimers │ │ │ ├── __mocks__ │ │ │ ├── fileMock.js │ │ │ └── styleMock.js │ │ │ ├── .babelrc │ │ │ ├── .npmignore │ │ │ ├── __test__ │ │ │ └── disclaimers.test.js │ │ │ ├── README.md │ │ │ └── html │ │ │ ├── index.html │ │ │ └── render.js │ └── bundles │ │ ├── baseline-expression │ │ ├── .babelrc │ │ ├── src │ │ │ └── facets-tree │ │ │ │ └── FacetItem.js │ │ ├── package.json │ │ └── index.js │ │ ├── differential-expression │ │ ├── .babelrc │ │ ├── index.js │ │ ├── src │ │ │ ├── tooltip │ │ │ │ └── ReactTooltipStyleClass.js │ │ │ ├── DisplayLevelsButton.js │ │ │ └── facets-tree │ │ │ │ └── propTypes.js │ │ ├── package.json │ │ └── html │ │ │ └── index.html │ │ ├── homepage-species-summary-panel │ │ ├── index.js │ │ └── package.json │ │ └── homepage-experiments-summary-panel │ │ ├── index.js │ │ └── package.json │ ├── webapp │ ├── WEB-INF │ │ ├── jsp │ │ │ ├── index.jsp │ │ │ ├── error.jsp │ │ │ └── tiles │ │ │ │ ├── views │ │ │ │ ├── home │ │ │ │ │ └── twitter-timeline.jsp │ │ │ │ ├── search-results │ │ │ │ │ └── bioentity-information.jsp │ │ │ │ └── static-page.jsp │ │ │ │ ├── global-footer.jsp │ │ │ │ ├── global-masthead.jsp │ │ │ │ └── errors │ │ │ │ └── no-results.jsp │ │ └── tiles │ │ │ ├── layout.xml │ │ │ └── errors.xml │ ├── resources │ │ ├── gsa_apispec.pdf │ │ ├── images │ │ │ ├── faq │ │ │ │ ├── tpm.png │ │ │ │ ├── fpkm.png │ │ │ │ ├── ae-logo.png │ │ │ │ ├── liver-heart.png │ │ │ │ ├── display-log2-fc.png │ │ │ │ ├── total-number-mapped-reads.png │ │ │ │ ├── download-all-results-button.png │ │ │ │ ├── ensembl-genome-browser-button.png │ │ │ │ ├── gramene-genome-browser-button.png │ │ │ │ └── wormbase-genome-browser-button.png │ │ │ ├── loading.gif │ │ │ ├── gramene_logo.png │ │ │ ├── about │ │ │ │ ├── Figure1.png │ │ │ │ ├── Figure2.png │ │ │ │ ├── Figure3.png │ │ │ │ ├── Figure4.png │ │ │ │ └── SectionDivider.png │ │ │ ├── download │ │ │ │ ├── r-object.png │ │ │ │ ├── download-fc.png │ │ │ │ ├── download-tsv.png │ │ │ │ ├── download-analytics.png │ │ │ │ ├── download-raw-counts.png │ │ │ │ └── download-normalized-expression.png │ │ │ ├── expression-atlas.png │ │ │ ├── help │ │ │ │ ├── Rhelp_malist.png │ │ │ │ ├── Rhelp_startR.png │ │ │ │ ├── Rhelp_sumExp.png │ │ │ │ ├── Rhelp_exprSet.png │ │ │ │ ├── Rhelp_loadData.png │ │ │ │ ├── Rhelp_exprSet_exprs.png │ │ │ │ ├── Rhelp_exprSet_pdata.png │ │ │ │ ├── Rhelp_sumExp_counts.png │ │ │ │ ├── Rhelp_exprSet_preproc.png │ │ │ │ ├── Rhelp_exptPage_buttons.png │ │ │ │ ├── Rhelp_multiArrayNames.png │ │ │ │ ├── Rhelp_sumExp_coldata.png │ │ │ │ └── Rhelp_sumExp_exptdata.png │ │ │ ├── ae-autocomplete │ │ │ │ ├── busy.gif │ │ │ │ └── ac_minmax.gif │ │ │ ├── dots-matrix-background.png │ │ │ ├── help-page │ │ │ │ ├── boxplot_view.png │ │ │ │ ├── co-expression.png │ │ │ │ ├── homepage_help.png │ │ │ │ ├── homepage_query.png │ │ │ │ ├── most_specific.png │ │ │ │ ├── search_with_gene.png │ │ │ │ ├── enrichment_analysis.png │ │ │ │ ├── baseline_multiexperiment.png │ │ │ │ ├── multi-factor_experiment.png │ │ │ │ ├── specify_expression_level.png │ │ │ │ ├── anatomical_systems_filter.png │ │ │ │ ├── plant_baseline_experiment.png │ │ │ │ ├── transcript_quantification.png │ │ │ │ ├── differential_experiment_page.png │ │ │ │ └── differential_expression_results.png │ │ │ ├── experiments-summary │ │ │ │ ├── ccle.png │ │ │ │ ├── gtex.png │ │ │ │ ├── hdbr.png │ │ │ │ ├── encode.png │ │ │ │ ├── fantom.png │ │ │ │ ├── gramene.png │ │ │ │ ├── hipsci.png │ │ │ │ ├── pcawg.png │ │ │ │ ├── baseline.png │ │ │ │ ├── blueprint.png │ │ │ │ ├── human_protein_atlas.png │ │ │ │ └── wtsi_mgh_cancerrxgene.png │ │ │ ├── foundation │ │ │ │ └── heatmap-hero.png │ │ │ └── experiments-table │ │ │ │ ├── baseline.png │ │ │ │ └── differential.png │ │ ├── favicons │ │ │ ├── favicon.ico │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── mstile-144x144.png │ │ │ ├── mstile-150x150.png │ │ │ ├── apple-icon-57x57.png │ │ │ ├── apple-icon-72x72.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── apple-icon-114x114.png │ │ │ ├── apple-icon-144x144.png │ │ │ ├── android-chrome-192x192.png │ │ │ ├── android-chrome-512x512.png │ │ │ ├── browserconfig.xml │ │ │ └── manifest.json │ │ ├── test │ │ │ └── widget │ │ │ │ └── showcase │ │ │ │ └── showcase.css │ │ ├── js-bundles │ │ │ ├── 07748562e0c26dd439701fa95289bb2c.png │ │ │ ├── 269274763eff686d3c27aece90a0c026.png │ │ │ ├── 3399d604b656023383db95baf7484d1e.png │ │ │ ├── 56dead191b30819b7602027732bfa5e0.png │ │ │ ├── 582c3f6d2f6e59c501473289851075dd.png │ │ │ ├── 5aad6781bf1842d768e7d728adcf31a2.png │ │ │ ├── 5b5bf07480f75ad459c6efc779b72564.png │ │ │ ├── 5b8007512579bbcc4f34d45ac6349992.png │ │ │ ├── 5c2c5acc8ec3d1e07288b9779bf83841.png │ │ │ ├── 627d5a6a468559ecffd6fa7143f1a1c3.png │ │ │ ├── 65d1dfa92b91b487f27bbecbf49b60c0.png │ │ │ ├── 941e42cd1f490bd02ae2a7512ca8c0bf.png │ │ │ ├── 9c1a3a82d5ca508b8991a842f7cef37c.png │ │ │ ├── a906d55d10098f1783ff3953160400b2.png │ │ │ ├── a9cbc6e400cd961706ef5e528563fe6d.png │ │ │ ├── b483036de9b373e542dbd693cb14acf5.png │ │ │ ├── bc6cb140072af5b41e6dc150228f8735.png │ │ │ ├── bc6e43975ef2921700708a5919ec2704.png │ │ │ ├── cbe297d1ea7bf5aac3cfcd540c8be570.png │ │ │ ├── d0d56ff8bdb244712e9e483c6a639080.png │ │ │ ├── e7fdc18561432a71a0b1b69c1c6bb8b3.png │ │ │ ├── ebb5550cbb69078741e8b26182f6b513.png │ │ │ ├── fb2e5462a9eeba224e50f4a2e0560db6.png │ │ │ └── fe374fbbda778cc8600ca3d2bbf49074.png │ │ ├── js │ │ │ └── lib │ │ │ │ ├── jquery-ui-1.12.1.custom │ │ │ │ └── images │ │ │ │ │ ├── ui-icons_000000_256x240.png │ │ │ │ │ ├── ui-icons_222222_256x240.png │ │ │ │ │ ├── ui-icons_228ef1_256x240.png │ │ │ │ │ ├── ui-icons_444444_256x240.png │ │ │ │ │ ├── ui-icons_555555_256x240.png │ │ │ │ │ ├── ui-icons_777620_256x240.png │ │ │ │ │ ├── ui-icons_777777_256x240.png │ │ │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ │ │ ├── ui-icons_ffffff_256x240.png │ │ │ │ │ ├── ui-bg_highlight-soft_75_2f5767_1x100.png │ │ │ │ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png │ │ │ │ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png │ │ │ │ │ └── ui-bg_highlight-soft_100_eeeeee_1x100.png │ │ │ │ └── jquery-json-tag-editor │ │ │ │ ├── tag-editor.jquery.json │ │ │ │ └── bower.json │ │ ├── css │ │ │ ├── baseline_plant-experiments.css │ │ │ ├── experiment.css │ │ │ ├── bioentities-search-results.css │ │ │ ├── quality-metrics.css │ │ │ ├── foundation │ │ │ │ └── theme-atlas.css │ │ │ └── experiments-table.css │ │ └── html │ │ │ └── release-notes.html │ └── versioned-resources │ │ └── README.txt │ ├── resources │ ├── dev │ │ ├── solr.properties │ │ ├── jdbc.properties │ │ ├── log4j.properties │ │ └── logback.xml │ ├── configuration.properties │ └── prod │ │ └── log4j.properties │ └── java │ └── uk │ └── ac │ └── ebi │ └── atlas │ ├── profiles │ └── writer │ │ └── CsvWriterFactory.java │ ├── controllers │ └── RequestDiagnosticsController.java │ ├── search │ └── diffanalytics │ │ └── DiffAnalyticsSearchService.java │ ├── utils │ └── ImageIoUtils.java │ ├── trader │ ├── cache │ │ ├── RnaSeqBaselineExperimentsCache.java │ │ ├── MicroarrayExperimentsCache.java │ │ ├── loader │ │ │ ├── RnaSeqBaselineExperimentFactory.java │ │ │ └── ProteomicsBaselineExperimentFactory.java │ │ ├── RnaSeqDiffExperimentsCache.java │ │ └── ProteomicsBaselineExperimentsCache.java │ └── ContrastTrader.java │ ├── experimentpage │ ├── baseline │ │ └── grouping │ │ │ └── ColumnGroup.java │ └── qc │ │ └── QcReportUtil.java │ ├── configuration │ ├── PathsConfig.java │ └── AppConfig.java │ └── home │ └── JsonSpeciesSummaryController.java ├── atlas-misc ├── assets │ ├── SCEA help pages.pptx │ ├── expression-atlas.png │ ├── logo_atlas_transparent.png │ └── Download buttons - Release icon.key ├── scripts │ ├── db_updates │ │ └── scxa │ │ │ ├── 20180426-add-doi-column-experiment-table.sql │ │ │ ├── 20180413-create-clustering-table.sql │ │ │ ├── 20170607-create-analytics-table.sql │ │ │ ├── 20180130-create-tsne-table.sql │ │ │ ├── 20170607-create-markergenes-table.sql │ │ │ └── 20171127-create-experiment-table.sql │ ├── web_monitoring │ │ └── web_monitoring.sh │ ├── warm_experiment_cache.sh │ └── sc_database │ │ └── generate_scexpressionTSV.js └── m2 │ ├── settings-security.xml │ └── settings.xml ├── tests_suppressions.xml └── .gitignore /sc/src/test/resources/fixtures/scxa_tsne-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM scxa_tsne; 2 | -------------------------------------------------------------------------------- /base/src/test/resources/fixtures/experiment-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM experiment; 2 | -------------------------------------------------------------------------------- /gxa/src/test/resources/fixtures/experiment-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM experiment; 2 | -------------------------------------------------------------------------------- /sc/src/test/resources/fixtures/scxa_analytics-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM scxa_analytics; -------------------------------------------------------------------------------- /base/src/test/resources/fixtures/arraydesign-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM arraydesign; 2 | -------------------------------------------------------------------------------- /base/src/test/resources/fixtures/scxa_experiment-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM scxa_experiment; 2 | -------------------------------------------------------------------------------- /sc/src/main/javascript/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "eslint-config-gene-expression" 3 | } -------------------------------------------------------------------------------- /sc/src/test/resources/fixtures/scxa_cell_clusters-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM scxa_cell_clusters; -------------------------------------------------------------------------------- /sc/src/test/resources/fixtures/scxa_experiment-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM scxa_experiment; 2 | -------------------------------------------------------------------------------- /sc/src/test/resources/fixtures/scxa_marker_genes-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM scxa_marker_genes; -------------------------------------------------------------------------------- /sc/src/test/resources/fixtures/scxa_marker_gene_stats-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM scxa_marker_gene_stats; -------------------------------------------------------------------------------- /base/src/test/resources/fixtures/designelement_mapping-delete.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM designelement_mapping; 2 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/modules/expression-atlas-disclaimers/__mocks__/fileMock.js: -------------------------------------------------------------------------------- 1 | module.exports = {} 2 | -------------------------------------------------------------------------------- /sc/src/main/javascript/.eslintignore: -------------------------------------------------------------------------------- 1 | bundles/**/node_modules 2 | bundles/**/webpack.config.js 3 | webpack.config.js -------------------------------------------------------------------------------- /gxa/src/main/javascript/modules/expression-atlas-disclaimers/__mocks__/styleMock.js: -------------------------------------------------------------------------------- 1 | module.exports = 'test-file-stub' 2 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-react", "@babel/preset-env"] 3 | } -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/gene-search/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-react", "@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /gxa/src/test/resources/keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/test/resources/keystore -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/baseline-expression/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-react", "@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/differential-expression/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-react", "@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/jsp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 2 | -------------------------------------------------------------------------------- /sc/src/main/webapp/WEB-INF/jsp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 2 | -------------------------------------------------------------------------------- /atlas-misc/assets/SCEA help pages.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/atlas-misc/assets/SCEA help pages.pptx -------------------------------------------------------------------------------- /atlas-misc/assets/expression-atlas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/atlas-misc/assets/expression-atlas.png -------------------------------------------------------------------------------- /gxa/src/main/javascript/modules/expression-atlas-disclaimers/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-react", "@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /atlas-misc/scripts/db_updates/scxa/20180426-add-doi-column-experiment-table.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE scxa_experiment 2 | ADD COLUMN dois VARCHAR(255); -------------------------------------------------------------------------------- /base/src/test/resources/solr.properties: -------------------------------------------------------------------------------- 1 | zk.host = ${zk.host} 2 | zk.port = ${zk.port} 3 | solr.host = ${solr.host} 4 | solr.port = ${solr.port} 5 | -------------------------------------------------------------------------------- /base/src/test/resources/configuration.properties: -------------------------------------------------------------------------------- 1 | data.files.location = ${data.files.location} 2 | experiment.files.location = ${data.files.location} 3 | -------------------------------------------------------------------------------- /gxa/src/main/resources/dev/solr.properties: -------------------------------------------------------------------------------- 1 | zk.host = ${zk.host} 2 | zk.port = ${zk.port} 3 | solr.host = ${solr.host} 4 | solr.port = ${solr.port} 5 | -------------------------------------------------------------------------------- /sc/src/main/resources/dev/solr.properties: -------------------------------------------------------------------------------- 1 | zk.host = ${zk.host} 2 | zk.port = ${zk.port} 3 | solr.host = ${solr.host} 4 | solr.port = ${solr.port} 5 | -------------------------------------------------------------------------------- /atlas-misc/assets/logo_atlas_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/atlas-misc/assets/logo_atlas_transparent.png -------------------------------------------------------------------------------- /gxa/src/main/javascript/modules/expression-atlas-disclaimers/.npmignore: -------------------------------------------------------------------------------- 1 | # Ignore everything 2 | * 3 | .* 4 | 5 | # But the build files... 6 | !lib/** 7 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/gsa_apispec.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/gsa_apispec.pdf -------------------------------------------------------------------------------- /atlas-misc/m2/settings-security.xml: -------------------------------------------------------------------------------- 1 | 2 | {n6ucjmZ0sd4HliGkFgQ8oEmhfQILu/mpCRQIOouVXOo=} 3 | 4 | 5 | -------------------------------------------------------------------------------- /gxa/src/main/resources/dev/jdbc.properties: -------------------------------------------------------------------------------- 1 | jdbc.url = ${jdbc.url} 2 | jdbc.username = ${jdbc.username} 3 | jdbc.password = ${jdbc.password} 4 | jdbc.pool = gxa 5 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/tpm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/tpm.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/loading.gif -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/card/CardIconType.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.card; 2 | 3 | public enum CardIconType { 4 | SPECIES, IMAGE 5 | } 6 | -------------------------------------------------------------------------------- /base/src/main/resources/solr-queries/experimentType.query.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimentType": { 3 | "type": "terms", 4 | "field": "experiment_type" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/favicon.ico -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/fpkm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/fpkm.png -------------------------------------------------------------------------------- /sc/src/main/resources/dev/jdbc.properties: -------------------------------------------------------------------------------- 1 | jdbc.url = ${jdbc.url} 2 | jdbc.username = ${jdbc.username} 3 | jdbc.password = ${jdbc.password} 4 | jdbc.pool = gxasc 5 | -------------------------------------------------------------------------------- /atlas-misc/assets/Download buttons - Release icon.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/atlas-misc/assets/Download buttons - Release icon.key -------------------------------------------------------------------------------- /base/src/test/resources/jdbc.properties: -------------------------------------------------------------------------------- 1 | jdbc.url = ${jdbc.url} 2 | jdbc.username = ${jdbc.username} 3 | jdbc.password = ${jdbc.password} 4 | jdbc.pool = atlasBaseTest 5 | -------------------------------------------------------------------------------- /base/src/test/resources/uk/ac/ebi/atlas/commons/readers/empty_matrix.mtx: -------------------------------------------------------------------------------- 1 | %%MatrixMarket matrix coordinate real general 2 | %Rows and columns can be any value 3 | 5 7 0 4 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/ae-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/ae-logo.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/gramene_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/gramene_logo.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/about/Figure1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/about/Figure1.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/about/Figure2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/about/Figure2.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/about/Figure3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/about/Figure3.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/about/Figure4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/about/Figure4.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/test/widget/showcase/showcase.css: -------------------------------------------------------------------------------- 1 | .code-block { 2 | background-color: whitesmoke; 3 | font-family: monospace; 4 | font-weight: 500; 5 | } -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/home/hero_cell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/home/hero_cell.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/czi_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/czi_logo.gif -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/mstile-144x144.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/download/r-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/download/r-object.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/expression-atlas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/expression-atlas.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/liver-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/liver-heart.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_malist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_malist.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_startR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_startR.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_sumExp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_sumExp.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/cells_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/cells_background.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/home_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/home_search.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/apple-icon-57x57.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/apple-icon-72x72.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/display-log2-fc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/display-log2-fc.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_exprSet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_exprSet.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_loadData.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_loadData.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/HCA_headerpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/HCA_headerpage.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/embl_ebi_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/embl_ebi_logo.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/hca_cell_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/hca_cell_logo.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/sc_atlas_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/sc_atlas_logo.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/apple-icon-114x114.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/apple-icon-144x144.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/about/SectionDivider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/about/SectionDivider.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/ae-autocomplete/busy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/ae-autocomplete/busy.gif -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/dots-matrix-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/dots-matrix-background.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/download/download-fc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/download/download-fc.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/download/download-tsv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/download/download-tsv.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/boxplot_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/boxplot_view.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/experiment_design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/experiment_design.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/experiments_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/experiments_table.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/latest_experiments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/latest_experiments.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/broad_institute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/broad_institute.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/human_cell_atlas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/human_cell_atlas.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/sanger_institute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/sanger_institute.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/ccle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/ccle.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/gtex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/gtex.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/hdbr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/hdbr.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/foundation/heatmap-hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/foundation/heatmap-hero.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/co-expression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/co-expression.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/homepage_help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/homepage_help.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/homepage_query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/homepage_query.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/most_specific.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/most_specific.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_exprSet_exprs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_exprSet_exprs.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_exprSet_pdata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_exprSet_pdata.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_sumExp_counts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_sumExp_counts.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/search_results_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/search_results_page.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/tsne_gene_expression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/tsne_gene_expression.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/ae-autocomplete/ac_minmax.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/ae-autocomplete/ac_minmax.gif -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/download/download-analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/download/download-analytics.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/encode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/encode.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/fantom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/fantom.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/gramene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/gramene.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/hipsci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/hipsci.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/pcawg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/pcawg.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-table/baseline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-table/baseline.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/search_with_gene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/search_with_gene.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_exprSet_preproc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_exprSet_preproc.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_exptPage_buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_exptPage_buttons.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_multiArrayNames.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_multiArrayNames.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_sumExp_coldata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_sumExp_coldata.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help/Rhelp_sumExp_exptdata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help/Rhelp_sumExp_exptdata.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/HCA_heatmap_annotated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/HCA_heatmap_annotated.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/tsne_colour_by_metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/tsne_colour_by_metadata.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/logo_atlas_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/logo_atlas_transparent.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/download/download-raw-counts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/download/download-raw-counts.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/baseline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/baseline.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/blueprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/blueprint.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/total-number-mapped-reads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/total-number-mapped-reads.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/enrichment_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/enrichment_analysis.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/supplementary_information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/supplementary_information.png -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/summary/ContrastPropertyType.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.summary; 2 | 3 | public enum ContrastPropertyType { 4 | FACTOR, SAMPLE 5 | } 6 | -------------------------------------------------------------------------------- /base/src/main/resources/solr-queries/bioentityIdentifier.query.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioentityIdentifier": { 3 | "type": "terms", 4 | "field": "bioentity_identifier_search", 5 | "limit": -1 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-table/differential.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-table/differential.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/download-all-results-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/download-all-results-button.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/logos/wellcome_trust_logo_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/logos/wellcome_trust_logo_black.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/ensembl-genome-browser-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/ensembl-genome-browser-button.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/gramene-genome-browser-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/gramene-genome-browser-button.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/faq/wormbase-genome-browser-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/faq/wormbase-genome-browser-button.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/baseline_multiexperiment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/baseline_multiexperiment.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/multi-factor_experiment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/multi-factor_experiment.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/specify_expression_level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/specify_expression_level.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/anatomical_systems_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/anatomical_systems_filter.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/plant_baseline_experiment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/plant_baseline_experiment.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/transcript_quantification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/transcript_quantification.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/07748562e0c26dd439701fa95289bb2c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/07748562e0c26dd439701fa95289bb2c.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/269274763eff686d3c27aece90a0c026.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/269274763eff686d3c27aece90a0c026.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/3399d604b656023383db95baf7484d1e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/3399d604b656023383db95baf7484d1e.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/56dead191b30819b7602027732bfa5e0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/56dead191b30819b7602027732bfa5e0.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/582c3f6d2f6e59c501473289851075dd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/582c3f6d2f6e59c501473289851075dd.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/5aad6781bf1842d768e7d728adcf31a2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/5aad6781bf1842d768e7d728adcf31a2.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/5b5bf07480f75ad459c6efc779b72564.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/5b5bf07480f75ad459c6efc779b72564.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/5b8007512579bbcc4f34d45ac6349992.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/5b8007512579bbcc4f34d45ac6349992.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/5c2c5acc8ec3d1e07288b9779bf83841.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/5c2c5acc8ec3d1e07288b9779bf83841.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/627d5a6a468559ecffd6fa7143f1a1c3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/627d5a6a468559ecffd6fa7143f1a1c3.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/65d1dfa92b91b487f27bbecbf49b60c0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/65d1dfa92b91b487f27bbecbf49b60c0.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/941e42cd1f490bd02ae2a7512ca8c0bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/941e42cd1f490bd02ae2a7512ca8c0bf.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/9c1a3a82d5ca508b8991a842f7cef37c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/9c1a3a82d5ca508b8991a842f7cef37c.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/a906d55d10098f1783ff3953160400b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/a906d55d10098f1783ff3953160400b2.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/a9cbc6e400cd961706ef5e528563fe6d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/a9cbc6e400cd961706ef5e528563fe6d.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/b483036de9b373e542dbd693cb14acf5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/b483036de9b373e542dbd693cb14acf5.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/bc6cb140072af5b41e6dc150228f8735.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/bc6cb140072af5b41e6dc150228f8735.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/bc6e43975ef2921700708a5919ec2704.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/bc6e43975ef2921700708a5919ec2704.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/cbe297d1ea7bf5aac3cfcd540c8be570.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/cbe297d1ea7bf5aac3cfcd540c8be570.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/d0d56ff8bdb244712e9e483c6a639080.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/d0d56ff8bdb244712e9e483c6a639080.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/e7fdc18561432a71a0b1b69c1c6bb8b3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/e7fdc18561432a71a0b1b69c1c6bb8b3.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/ebb5550cbb69078741e8b26182f6b513.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/ebb5550cbb69078741e8b26182f6b513.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/fb2e5462a9eeba224e50f4a2e0560db6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/fb2e5462a9eeba224e50f4a2e0560db6.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js-bundles/fe374fbbda778cc8600ca3d2bbf49074.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js-bundles/fe374fbbda778cc8600ca3d2bbf49074.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/images/help/experiments_page_update_annotated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/images/help/experiments_page_update_annotated.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/1cb70599fbc0a2c43f46222abcc00fc3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/js-bundles/1cb70599fbc0a2c43f46222abcc00fc3.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/273e9456f9eaf449a1b0a1d139017363.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/js-bundles/273e9456f9eaf449a1b0a1d139017363.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/2cd93f71209c5c96399750432f39ff01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/js-bundles/2cd93f71209c5c96399750432f39ff01.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/38cd71b96376bd1174649cbc79dc7ad5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/js-bundles/38cd71b96376bd1174649cbc79dc7ad5.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/3dfbf3c1a14a83ebcf54eab825f25c07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/js-bundles/3dfbf3c1a14a83ebcf54eab825f25c07.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/c44655d6c81f82b0d4ab9f7295a4098e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/js-bundles/c44655d6c81f82b0d4ab9f7295a4098e.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/c51939cffed0847525df454aa13b9318.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/js-bundles/c51939cffed0847525df454aa13b9318.png -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/fd2722b5765c2179da9d410f5aadef74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/webapp/resources/js-bundles/fd2722b5765c2179da9d410f5aadef74.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/download/download-normalized-expression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/download/download-normalized-expression.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/human_protein_atlas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/human_protein_atlas.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/differential_experiment_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/differential_experiment_page.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/experiments-summary/wtsi_mgh_cancerrxgene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/experiments-summary/wtsi_mgh_cancerrxgene.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/images/help-page/differential_expression_results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/images/help-page/differential_expression_results.png -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/Expression.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model; 2 | 3 | import com.google.gson.JsonObject; 4 | 5 | public interface Expression { 6 | double getLevel(); 7 | JsonObject toJson(); 8 | } 9 | -------------------------------------------------------------------------------- /sc/README.md: -------------------------------------------------------------------------------- 1 | # Single Cell Expression Atlas 2 | 3 | A sister project to [Expression Atlas](https://github.com/gxa/atlas/tree/master/gxa). Explore and visualise single cell RNA-seq experiments across multiple species in different biological conditions. -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_000000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_000000_256x240.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_228ef1_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_228ef1_256x240.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/r-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/r-button.png -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/ae-logo-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/ae-logo-64.png -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/testutils/readme.txt: -------------------------------------------------------------------------------- 1 | The classes in this package strictly belong in the test directory, but if we do that they can’t be shared among modules 2 | and we don’t want to go through the pain of having a TestUtils module just for these. -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/gsea_go-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/gsea_go-icon.png -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/ma-plot-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/ma-plot-icon.png -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/gsea_interpro-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/gsea_interpro-icon.png -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/gsea_reactome-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/gsea_reactome-icon.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-bg_highlight-soft_75_2f5767_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-bg_highlight-soft_75_2f5767_1x100.png -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/download_blue_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/download_blue_small.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ page isELIgnored="false" %> 2 | <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %> 3 | 4 | 5 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-bg_diagonals-thick_18_b81900_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-bg_diagonals-thick_18_b81900_40x40.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-bg_diagonals-thick_20_666666_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-bg_diagonals-thick_20_666666_40x40.png -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-bg_highlight-soft_100_eeeeee_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/gxa/src/main/webapp/resources/js/lib/jquery-ui-1.12.1.custom/images/ui-bg_highlight-soft_100_eeeeee_1x100.png -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/experiment_design_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebi-gene-expression-group/atlas/HEAD/sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/icons/experiment_design_icon.png -------------------------------------------------------------------------------- /sc/src/main/webapp/WEB-INF/jsp/error.jsp: -------------------------------------------------------------------------------- 1 | <%@ page isELIgnored="false" %> 2 | <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %> 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/GeneProfilesListBuilder.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles; 2 | 3 | import uk.ac.ebi.atlas.model.GeneProfilesList; 4 | 5 | public interface GeneProfilesListBuilder extends java.util.function.Supplier { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /gxa/src/main/resources/configuration.properties: -------------------------------------------------------------------------------- 1 | data.files.location = ${data.files.location} 2 | experiment.files.location = ${data.files.location}/gxa/ 3 | 4 | buildNumber = ${build.number} 5 | buildBranch = ${build.branch} 6 | buildCommitId = ${build.revision} 7 | tomcatHostname = ${tomcat.hostname} 8 | -------------------------------------------------------------------------------- /sc/src/main/resources/configuration.properties: -------------------------------------------------------------------------------- 1 | data.files.location = ${data.files.location} 2 | experiment.files.location = ${data.files.location}/scxa 3 | 4 | buildNumber = ${build.number} 5 | buildBranch = ${build.branch} 6 | buildCommitId = ${build.revision} 7 | tomcatHostname = ${tomcat.hostname} 8 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentimport/ExperimentChecker.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentimport; 2 | 3 | import uk.ac.ebi.atlas.model.experiment.ExperimentType; 4 | 5 | public interface ExperimentChecker { 6 | void checkAllFiles(String experimentAccession, ExperimentType experimentType); 7 | } 8 | -------------------------------------------------------------------------------- /atlas-misc/m2/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | http 6 | www-proxy.ebi.ac.uk 7 | 3128 8 | ebi.ac.uk 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /tests_suppressions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #da532c 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/jsp/tiles/views/home/twitter-timeline.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/gene-search-form/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import FetchLoader from 'scxa-gene-search-form' 5 | 6 | const render = (options, target) => { 7 | ReactDOM.render(, document.getElementById(target)) 8 | } 9 | 10 | export { render } 11 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/autocomplete/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import AtlasAutocomplete from 'expression-atlas-autocomplete' 5 | 6 | const render = (options, target) => { 7 | ReactDOM.render(, document.getElementById(target)) 8 | } 9 | 10 | export { render } 11 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/gene-search/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import GeneSearchRouter from './src/GeneSearchRouter' 5 | 6 | const render = (options, mountNodeId) => { 7 | ReactDOM.render(, document.getElementById(mountNodeId)) 8 | } 9 | 10 | export { render } 11 | -------------------------------------------------------------------------------- /base/src/test/resources/uk/ac/ebi/atlas/species/species-tyrannosaurus-rex.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "name":"Tyrannosaurus_rex", 3 | "defaultQueryFactorType":"ORGANISM_PART", 4 | "kingdom":"animals", 5 | "resources":[{ 6 | "type":"genome_browser", 7 | "name":"Ensembl Dinosaurs", 8 | "url":"http://dinosaurs.ensembl.org/tyrannosaurus_rex" 9 | }] 10 | }] 11 | -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/geneSearchForm.bundle.js: -------------------------------------------------------------------------------- 1 | var geneSearchForm=(window.webpackJsonp_name_=window.webpackJsonp_name_||[]).push([[5],{209:function(n,e,r){"use strict";r.r(e),r.d(e,"render",function(){return i});var a=r(1),t=r.n(a),c=r(3),o=r.n(c),d=r(23),u=r.n(d),i=function(n,e){o.a.render(t.a.createElement(u.a,n),document.getElementById(e))}}},[[209,0]]]); -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/atlasAutocomplete.bundle.js: -------------------------------------------------------------------------------- 1 | var atlasAutocomplete=(window.webpackJsonp_name_=window.webpackJsonp_name_||[]).push([[1],{89:function(n,e,t){"use strict";t.r(e),t.d(e,"render",function(){return i});var a=t(1),r=t.n(a),o=t(3),c=t.n(o),u=t(33),d=t.n(u),i=function(n,e){c.a.render(r.a.createElement(d.a,n),document.getElementById(e))}}},[[89,0]]]); -------------------------------------------------------------------------------- /gxa/src/main/resources/dev/log4j.properties: -------------------------------------------------------------------------------- 1 | # Used by Hibernate Validator 2 | log4j.rootLogger = INFO, stdout 3 | 4 | log4j.appender.stdout = org.apache.log4j.ConsoleAppender 5 | log4j.appender.stdout.Target = System.out 6 | 7 | log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 8 | log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss.SSS} [%t] %-5p %c [%C:%L] - %m%n 9 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/jsp/tiles/global-footer.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 |
4 | 10 |
11 | -------------------------------------------------------------------------------- /sc/src/main/webapp/WEB-INF/jsp/tiles/global-footer.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 |
4 | 10 |
11 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/differential/microarray/MicroarrayProfileStreamOptions.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles.differential.microarray; 2 | 3 | import uk.ac.ebi.atlas.profiles.differential.DifferentialProfileStreamOptions; 4 | 5 | public interface MicroarrayProfileStreamOptions extends DifferentialProfileStreamOptions { 6 | 7 | Iterable getArrayDesignAccessions(); 8 | } 9 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/solr/cloud/SchemaField.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.solr.cloud; 2 | 3 | public abstract class SchemaField { 4 | protected final String fieldName; 5 | 6 | public SchemaField(String fieldName) { 7 | this.fieldName = fieldName; 8 | } 9 | 10 | public String name() { 11 | return fieldName; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/differential-expression/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import DifferentialRouterLoader from './src/DifferentialRouterLoader' 5 | 6 | const render = (props, target) => { 7 | ReactDOM.render( 8 | , 9 | document.getElementById(target) 10 | ) 11 | } 12 | 13 | export { render } 14 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentimport/analytics/differential/DifferentialAnalytics.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentimport.analytics.differential; 2 | 3 | public interface DifferentialAnalytics { 4 | 5 | String getGeneId(); 6 | 7 | String getContrastId(); 8 | 9 | double getpValue(); 10 | 11 | double getFoldChange(); 12 | 13 | double getTStatistic(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/SelectProfiles.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles; 2 | 3 | import uk.ac.ebi.atlas.commons.streams.ObjectInputStream; 4 | import uk.ac.ebi.atlas.model.GeneProfilesList; 5 | import uk.ac.ebi.atlas.model.Profile; 6 | 7 | public interface SelectProfiles> { 8 | L select(ObjectInputStream profiles, int maxSize); 9 | } 10 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/differential-expression/src/tooltip/ReactTooltipStyleClass.js: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle } from 'styled-components' 2 | 3 | const ReactTooltipStyleClass = createGlobalStyle` 4 | .foobar { 5 | padding: 2px !important; 6 | box-shadow: 0 0 1em darkgrey; 7 | max-width: 500px; 8 | font-size: x-small; 9 | opacity: 0.98 !important; 10 | } 11 | ` 12 | 13 | export default ReactTooltipStyleClass -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/differential/DifferentialExpressionLimits.java: -------------------------------------------------------------------------------- 1 | 2 | package uk.ac.ebi.atlas.model.experiment.differential; 3 | 4 | public interface DifferentialExpressionLimits { 5 | double getMaxUpRegulatedExpressionLevel(); 6 | 7 | double getMinUpRegulatedExpressionLevel(); 8 | 9 | double getMaxDownRegulatedExpressionLevel(); 10 | 11 | double getMinDownRegulatedExpressionLevel(); 12 | } 13 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/favicons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Expression Atlas", 3 | "icons": [ 4 | { 5 | "src": "\/gxa\/favicons\/android-chrome-192x192.png", 6 | "sizes": "192x192", 7 | "type": "image\/png" 8 | }, 9 | { 10 | "src": "\/gxa\/favicons\/android-chrome-512x512.png", 11 | "sizes": "512x512", 12 | "type": "image\/png" 13 | } 14 | ], 15 | "theme_color": "#ffffff", 16 | "display": "standalone" 17 | } 18 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/controllers/SpeciesUnknownException.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.controllers; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | @ResponseStatus(value = HttpStatus.BAD_REQUEST) 7 | public class SpeciesUnknownException extends RuntimeException { 8 | public SpeciesUnknownException() { 9 | super("Species is unknown."); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/differential/ProfileStreamOptions.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles.differential; 2 | 3 | import uk.ac.ebi.atlas.model.DescribesDataColumns; 4 | 5 | import java.util.List; 6 | 7 | public interface ProfileStreamOptions { 8 | Integer getHeatmapMatrixSize(); 9 | boolean isSpecific(); 10 | List getDataColumnsToReturn(); 11 | List getAllDataColumns(); 12 | } 13 | -------------------------------------------------------------------------------- /sc/src/main/java/uk/ac/ebi/atlas/experiments/ScExperimentSearchService.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experiments; 2 | 3 | import org.springframework.stereotype.Component; 4 | import uk.ac.ebi.atlas.trader.ScxaExperimentTrader; 5 | 6 | @Component 7 | public class ScExperimentSearchService extends ExperimentSearchService { 8 | public ScExperimentSearchService(ScxaExperimentTrader experimentTrader) { 9 | super(experimentTrader); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /sc/src/main/webapp/WEB-INF/jsp/tiles/global-masthead.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 |
4 |
5 | 6 | 12 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/controllers/BioentityNotFoundException.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.controllers; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | @ResponseStatus(value = HttpStatus.NOT_FOUND) 7 | public class BioentityNotFoundException extends RuntimeException { 8 | public BioentityNotFoundException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/species/AtlasInformationDataType.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.species; 2 | 3 | public enum AtlasInformationDataType { 4 | ENSEMBL("ensembl"), 5 | GENOMES("ensembl_genomes"), 6 | PARASITE("wormbase_parasite"), 7 | EFO("efo"); 8 | 9 | private final String id; 10 | 11 | AtlasInformationDataType(String id) { 12 | this.id = id; 13 | } 14 | 15 | public String getId() { 16 | return id; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/jsp/tiles/global-masthead.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 |
4 |
5 | 6 | 12 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/css/baseline_plant-experiments.css: -------------------------------------------------------------------------------- 1 | .species_item {min-height: 250px; text-align: center;} 2 | .species_item h4 {text-align: center;} 3 | .species_item ul li {text-align: center;} 4 | .species_item span {font-size: 700%;} 5 | .species_item span.red:before {color:#d9534f;} /*animal*/ 6 | .species_item span.green:before {color:#5cb85c;} /*plants*/ 7 | .species_item span.blue:before {color:#5bc0de;} /*other*/ 8 | .show_more_buttons {margin-top:9px;} 9 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/controllers/NoStatisticalSignificanceException.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.controllers; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | @ResponseStatus(value = HttpStatus.OK) 7 | public class NoStatisticalSignificanceException extends RuntimeException { 8 | public NoStatisticalSignificanceException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /gxa/src/main/resources/prod/log4j.properties: -------------------------------------------------------------------------------- 1 | # Used by Hibernate Validator 2 | log4j.rootLogger = WARN, file 3 | 4 | log4j.appender.file = org.apache.log4j.DailyRollingFileAppender 5 | log4j.appender.file.File = ${catalina.base}/logs/${tomcat.hostname}/gxa/hibernate.log 6 | log4j.appender.file.DatePattern = '_'yyyy-MM-dd 7 | 8 | log4j.appender.file.layout = org.apache.log4j.PatternLayout 9 | log4j.appender.file.layout.ConversionPattern = %d{HH:mm:ss.SSS} [%t] %-5p %c - %m%n 10 | -------------------------------------------------------------------------------- /atlas-misc/scripts/db_updates/scxa/20180413-create-clustering-table.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE scxa_cell_clusters; 2 | 3 | CREATE TABLE IF NOT EXISTS scxa_cell_clusters 4 | ( 5 | experiment_accession VARCHAR(255) NOT NULL, 6 | cell_id VARCHAR(255) NOT NULL, 7 | k INTEGER NOT NULL, 8 | cluster_id INTEGER NOT NULL, 9 | CONSTRAINT scxa_cell_clusters_experiment_accession_cell_id_k_pk 10 | PRIMARY KEY (experiment_accession, k, cell_id) 11 | ); 12 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/controllers/UnparseableSemanticQueryException.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.controllers; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | @ResponseStatus(value = HttpStatus.BAD_REQUEST) 7 | public class UnparseableSemanticQueryException extends RuntimeException { 8 | public UnparseableSemanticQueryException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/homepage-cards/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "homepage-cards", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "atlas-homepage-cards": "^2.0.1", 13 | "atlas-react-fetch-loader": "^1.0.0", 14 | "react": "^16.8.5", 15 | "react-dom": "^16.8.5" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /atlas-misc/scripts/db_updates/scxa/20170607-create-analytics-table.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE scxa_analytics CASCADE; 2 | 3 | CREATE TABLE IF NOT EXISTS scxa_analytics 4 | ( 5 | experiment_accession VARCHAR(255) NOT NULL, 6 | gene_id VARCHAR(255) NOT NULL, 7 | cell_id VARCHAR(255) NOT NULL, 8 | expression_level DOUBLE PRECISION, 9 | CONSTRAINT gene_id_experiment_accession_cell_id 10 | PRIMARY KEY (gene_id, experiment_accession, cell_id) 11 | ); 12 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/versioned-resources/README.txt: -------------------------------------------------------------------------------- 1 | Resources in this directory are to be accessed via the URL /versioned-resources-X/** where X is supplied by the resources.version property in configuration.properties 2 | When resources.version changes, clients should access the new version. This prevents them from holding onto cached copies. 3 | For setup, see the WebConfig class. 4 | Reference: 5 | http://docs.spring.io/spring/docs/3.2.7.RELEASE/spring-framework-reference/htmlsingle/#mvc-config-static-resources -------------------------------------------------------------------------------- /atlas-misc/scripts/db_updates/scxa/20180130-create-tsne-table.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE scxa_tsne; 2 | 3 | CREATE TABLE IF NOT EXISTS scxa_tsne 4 | ( 5 | experiment_accession VARCHAR(255) NOT NULL, 6 | cell_id VARCHAR(255) NOT NULL, 7 | x DOUBLE PRECISION, 8 | y DOUBLE PRECISION, 9 | perplexity INTEGER NOT NULL, 10 | CONSTRAINT scxa_tsne_experiment_accession_cell_id_perplexity_pk 11 | PRIMARY KEY (experiment_accession, cell_id, perplexity) 12 | ); 13 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/baseline/BaselineProfileStreamOptions.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles.baseline; 2 | 3 | import uk.ac.ebi.atlas.model.AssayGroup; 4 | import uk.ac.ebi.atlas.model.ExpressionUnit; 5 | import uk.ac.ebi.atlas.profiles.differential.ProfileStreamOptions; 6 | 7 | public interface BaselineProfileStreamOptions 8 | extends ProfileStreamOptions { 9 | double getCutoff(); 10 | U getExpressionUnit(); 11 | } 12 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/gene-search-form/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gene-search-form", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "author": "Expression Atlas developers ", 7 | "collaborators": [ 8 | "Alfonso Muñoz-Pomer Fuentes " 9 | ], 10 | "license": "Apache-2.0", 11 | "dependencies": { 12 | "react": "^16.8.5", 13 | "react-dom": "^16.8.5", 14 | "scxa-gene-search-form": "^1.2.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/homepage-species-summary-panel/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import SpeciesSummaryPanel from 'species-summary-panel' 5 | import withFetchLoader from 'atlas-react-fetch-loader' 6 | 7 | const FetchLoadSpeciesSummaryPanel = withFetchLoader(SpeciesSummaryPanel) 8 | 9 | const render = (options, target) => { 10 | ReactDOM.render(, document.getElementById(target)) 11 | } 12 | 13 | export { render } 14 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/homepage-species-summary-panel/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import SpeciesSummaryPanel from 'species-summary-panel' 5 | import withFetchLoader from 'atlas-react-fetch-loader' 6 | 7 | const FetchLoadSpeciesSummaryPanel = withFetchLoader(SpeciesSummaryPanel) 8 | 9 | const render = (options, target) => { 10 | ReactDOM.render(, document.getElementById(target)) 11 | } 12 | 13 | export { render } 14 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/differential/DifferentialProfileStreamOptions.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles.differential; 2 | 3 | import uk.ac.ebi.atlas.model.experiment.differential.Contrast; 4 | import uk.ac.ebi.atlas.model.experiment.differential.Regulation; 5 | 6 | public interface DifferentialProfileStreamOptions extends ProfileStreamOptions { 7 | Regulation getRegulation(); 8 | String getExperimentAccession(); 9 | double getPValueCutoff(); 10 | double getFoldChangeCutoff(); 11 | } 12 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/experimentimport/coexpression/BaselineCoexpressionTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentimport.coexpression; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import static org.junit.jupiter.api.Assertions.assertTrue; 6 | 7 | class BaselineCoexpressionTest { 8 | @Test 9 | void testCompareTo() { 10 | assertTrue( 11 | BaselineCoexpression.create(0.01, "GENE 2") 12 | .compareTo(BaselineCoexpression.create(0.1, "GENE 2")) < 0); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/homepage-experiments-summary-panel/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import ExperimentsSummaryPanel from 'experiments-summary-panel' 5 | import withFetchLoader from 'atlas-react-fetch-loader' 6 | 7 | const FetchLoadExperimentsSummaryPanel = withFetchLoader(ExperimentsSummaryPanel) 8 | 9 | const render = (options, target) => { 10 | ReactDOM.render(, document.getElementById(target)) 11 | } 12 | 13 | export { render } 14 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/homepage-experiments-summary-panel/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import ExperimentsSummaryPanel from 'experiments-summary-panel' 5 | import withFetchLoader from 'atlas-react-fetch-loader' 6 | 7 | const FetchLoadExperimentsSummaryPanel = withFetchLoader(ExperimentsSummaryPanel) 8 | 9 | const render = (options, target) => { 10 | ReactDOM.render(, document.getElementById(target)) 11 | } 12 | 13 | export { render } 14 | -------------------------------------------------------------------------------- /sc/src/main/webapp/WEB-INF/tiles/errors.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/homepage-species-summary-panel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "homepage-species-summary-panel", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "atlas-react-fetch-loader": "^1.0.0", 13 | "react": "^16.8.5", 14 | "react-dom": "^16.8.5", 15 | "species-summary-panel": "file:../../modules/species-summary-panel" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/jsp/tiles/errors/no-results.jsp: -------------------------------------------------------------------------------- 1 | <%--@elvariable id="exceptionMessage" type="java.lang.String"--%> 2 | 3 | <%@ page contentType="text/html;charset=UTF-8" %> 4 | <%@ page isErrorPage="true" %> 5 | 6 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 7 | 8 | 9 |
10 |
11 |

Sorry, we could not find results matching your search criteria:

12 |
${searchDescription}
13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/homepage-species-summary-panel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "homepage-species-summary-panel", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "atlas-react-fetch-loader": "^1.0.0", 13 | "react": "^16.8.5", 14 | "react-dom": "^16.8.5", 15 | "species-summary-panel": "file:../../modules/species-summary-panel" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/differential-expression/src/DisplayLevelsButton.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | 4 | const DisplayLevelsButton = ({displayLevels, onClick}) => 5 | 6 | {displayLevels ? Hide log2-fold change : Display log2-fold change} 7 | 8 | 9 | DisplayLevelsButton.propTypes = { 10 | displayLevels: PropTypes.bool.isRequired, 11 | onClick: PropTypes.func.isRequired 12 | } 13 | 14 | export default DisplayLevelsButton -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/homepage-experiments-summary-panel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "homepage-experiments-summary-panel", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "atlas-react-fetch-loader": "^1.0.0", 13 | "react": "^16.8.5", 14 | "react-dom": "^16.8.5", 15 | "experiments-summary-panel": "file:../../modules/experiments-summary-panel" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentpage/json/JsonExperimentController.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentpage.json; 2 | 3 | import uk.ac.ebi.atlas.controllers.JsonExceptionHandlingController; 4 | import uk.ac.ebi.atlas.trader.ExperimentTrader; 5 | 6 | public abstract class JsonExperimentController extends JsonExceptionHandlingController { 7 | 8 | protected final ExperimentTrader experimentTrader; 9 | 10 | public JsonExperimentController(ExperimentTrader experimentTrader) { 11 | this.experimentTrader = experimentTrader; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/homepage-experiments-summary-panel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "homepage-experiments-summary-panel", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "atlas-react-fetch-loader": "^1.0.0", 13 | "react": "^16.8.5", 14 | "react-dom": "^16.8.5", 15 | "experiments-summary-panel": "file:../../modules/experiments-summary-panel" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /atlas-misc/scripts/db_updates/scxa/20170607-create-markergenes-table.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE scxa_marker_genes CASCADE; 2 | 3 | CREATE TABLE IF NOT EXISTS scxa_marker_genes 4 | ( 5 | experiment_accession VARCHAR(255) NOT NULL, 6 | gene_id VARCHAR(255) NOT NULL, 7 | k INTEGER NOT NULL, 8 | cluster_id INTEGER NOT NULL, 9 | p DOUBLE PRECISION NOT NULL, 10 | CONSTRAINT scxa_marker_genes_experiment_accession_gene_id_k_pk 11 | PRIMARY KEY (experiment_accession, gene_id, k) 12 | ); 13 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/differential-expression/src/facets-tree/propTypes.js: -------------------------------------------------------------------------------- 1 | import PropTypes from 'prop-types' 2 | 3 | const facetItemDataPropTypes = { 4 | name: PropTypes.string.isRequired, 5 | value: PropTypes.string.isRequired, 6 | checked: PropTypes.bool.isRequired, 7 | disabled: PropTypes.bool.isRequired, 8 | } 9 | 10 | const facetDataPropTypes = { 11 | facetName: PropTypes.string.isRequired, 12 | facetItems: PropTypes.arrayOf(PropTypes.shape( 13 | facetItemDataPropTypes 14 | )).isRequired 15 | } 16 | 17 | export {facetDataPropTypes, facetItemDataPropTypes} -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/css/experiment.css: -------------------------------------------------------------------------------- 1 | th.gxaHeatmapTableDesignElement { 2 | background: transparent; 3 | } 4 | 5 | .gxaShowCell { 6 | font-size: 9px; 7 | } 8 | 9 | .tool-item { 10 | border: none !important; 11 | } 12 | 13 | /* Fix for Highcharts tooltip being cut off */ 14 | #experiment-page .highcharts-container { 15 | overflow: visible !important; 16 | } 17 | #experiment-page svg { 18 | overflow: visible !important; 19 | } 20 | 21 | #experiment-page, #feedback-button { 22 | display: inline; 23 | } 24 | #feedback-button h1 { 25 | color: black; 26 | } -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/differential/DifferentialProfilesList.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.differential; 2 | 3 | import uk.ac.ebi.atlas.model.GeneProfilesList; 4 | 5 | import java.util.Collection; 6 | 7 | public class DifferentialProfilesList extends GeneProfilesList { 8 | 9 | public DifferentialProfilesList() { 10 | // default, with no starting collection 11 | } 12 | 13 | public DifferentialProfilesList(Collection collection) { 14 | super(collection); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/trader/cache/loader/ExperimentFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache.loader; 2 | 3 | import uk.ac.ebi.atlas.experimentimport.ExperimentDTO; 4 | import uk.ac.ebi.atlas.experimentimport.idf.IdfParserOutput; 5 | import uk.ac.ebi.atlas.model.experiment.Experiment; 6 | import uk.ac.ebi.atlas.model.experiment.ExperimentDesign; 7 | 8 | public interface ExperimentFactory { 9 | E create(ExperimentDTO experimentDTO, 10 | ExperimentDesign experimentDesign, 11 | IdfParserOutput idfParserOutput); 12 | } 13 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/model/experiment/differential/RegulationTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.differential; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.hamcrest.core.Is.is; 6 | import static org.junit.Assert.assertThat; 7 | 8 | public class RegulationTest { 9 | @Test 10 | public void down() { 11 | assertThat(Regulation.valueOf(-0.0979807106778182), is(Regulation.DOWN)); 12 | } 13 | 14 | @Test 15 | public void up() { 16 | assertThat(Regulation.valueOf(0.0452223119926126), is(Regulation.UP)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/baseline/BaselineProfile.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.baseline; 2 | 3 | import uk.ac.ebi.atlas.model.AssayGroup; 4 | import uk.ac.ebi.atlas.model.Profile; 5 | 6 | public class BaselineProfile extends Profile { 7 | public BaselineProfile(String geneId, String geneName) { 8 | super(geneId, geneName); 9 | } 10 | 11 | @Override 12 | protected BaselineProfile createEmptyCopy() { 13 | return new BaselineProfile(getId(), getName()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/model/experiment/differential/rnaseq/RnaSeqProfileTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.differential.rnaseq; 2 | 3 | import org.junit.Before; 4 | 5 | public class RnaSeqProfileTest { 6 | private static final String GENE_ID = "geneId"; 7 | private static final String GENE_NAME = "geneName"; 8 | 9 | private RnaSeqProfile subject; 10 | 11 | @Before 12 | public void setUp() throws Exception { 13 | subject = new RnaSeqProfile(GENE_ID, GENE_NAME); 14 | } 15 | 16 | /* this is a placeholder for future tests */ 17 | } 18 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/web/RnaSeqBaselineRequestPreferencesTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.web; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.hamcrest.Matchers.is; 6 | import static org.junit.Assert.assertThat; 7 | import static uk.ac.ebi.atlas.utils.GsonProvider.GSON; 8 | 9 | public class RnaSeqBaselineRequestPreferencesTest { 10 | @Test 11 | public void toJson() { 12 | assertThat( 13 | GSON.toJsonTree(new RnaSeqBaselineRequestPreferences()).getAsJsonObject().has("cutoff"), 14 | is(true) 15 | ); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/profiles/writer/CsvWriterFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles.writer; 2 | 3 | import au.com.bytecode.opencsv.CSVWriter; 4 | 5 | import javax.inject.Named; 6 | import java.io.Writer; 7 | 8 | import static au.com.bytecode.opencsv.CSVWriter.NO_ESCAPE_CHARACTER; 9 | import static au.com.bytecode.opencsv.CSVWriter.NO_QUOTE_CHARACTER; 10 | 11 | @Named 12 | public class CsvWriterFactory { 13 | 14 | public CSVWriter createTsvWriter(Writer writer) { 15 | return new CSVWriter(writer, '\t', NO_QUOTE_CHARACTER, NO_ESCAPE_CHARACTER); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/modules/expression-atlas-disclaimers/__test__/disclaimers.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import renderer from 'react-test-renderer' 3 | 4 | import disclaimers from '../src/disclaimers' 5 | 6 | const MyComponent = ({ title, content }) => Disclaimers[`zebrafish`].content 7 | 8 | describe(`Disclaimer`, () => { 9 | test.each(Object.keys(disclaimers))(`%s matches snapshot`, (disclaimerKey) => { 10 | const Disclaimer = disclaimers[disclaimerKey] 11 | const tree = renderer.create().toJSON() 12 | expect(tree).toMatchSnapshot() 13 | }) 14 | }) 15 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/homepage-cards/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import ResponsiveCardsRow, { ExtendableCard } from 'atlas-homepage-cards' 5 | import withFetchLoader from 'atlas-react-fetch-loader' 6 | 7 | const FetchLoadResponsiveCardsRow = withFetchLoader(ResponsiveCardsRow) 8 | 9 | const render = (options, target) => { 10 | ReactDOM.render( 11 | , 15 | document.getElementById(target)) 16 | } 17 | 18 | export { render } 19 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentpage/LinkToGene.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentpage; 2 | 3 | import uk.ac.ebi.atlas.model.Profile; 4 | 5 | import java.net.URI; 6 | import java.net.URISyntaxException; 7 | import java.util.function.Function; 8 | 9 | public class LinkToGene

implements Function { 10 | @Override 11 | public URI apply(P profile) { 12 | try { 13 | return new URI("genes/" + profile.getId()); 14 | } catch (URISyntaxException e) { 15 | throw new RuntimeException(e); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/arraydesign/ArrayDesign.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.arraydesign; 2 | 3 | import com.google.auto.value.AutoValue; 4 | 5 | @AutoValue 6 | public abstract class ArrayDesign { 7 | public abstract String accession(); 8 | public abstract String name(); 9 | 10 | public static ArrayDesign create(String accession, String name) { 11 | return new AutoValue_ArrayDesign(accession, name); 12 | } 13 | 14 | public static ArrayDesign createForUnknownName(String accession) { 15 | return create(accession, accession); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/resource/ExtraInfoImage.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.resource; 2 | 3 | import java.nio.file.Paths; 4 | import java.text.MessageFormat; 5 | 6 | public class ExtraInfoImage extends ExternalImage { 7 | 8 | 9 | public ExtraInfoImage(String fileSystemTemplate, String externalLinkTemplate, String 10 | experimentAccession) { 11 | super(ResourceType.EXTRA_INFO, Paths.get(MessageFormat.format(fileSystemTemplate, experimentAccession)), 12 | MessageFormat.format(externalLinkTemplate, experimentAccession)); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/writer/RnaSeqDifferentialProfilesWriterFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles.writer; 2 | 3 | import uk.ac.ebi.atlas.experimentpage.context.RnaSeqRequestContext; 4 | import uk.ac.ebi.atlas.model.experiment.differential.DifferentialExpression; 5 | import uk.ac.ebi.atlas.model.experiment.differential.rnaseq.RnaSeqProfile; 6 | 7 | import javax.inject.Named; 8 | 9 | @Named 10 | public class RnaSeqDifferentialProfilesWriterFactory extends 11 | DifferentialProfilesWriterFactory { 12 | } 13 | -------------------------------------------------------------------------------- /sc/src/main/java/uk/ac/ebi/atlas/experimentimport/SingleCellExperimentChecker.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentimport; 2 | 3 | import uk.ac.ebi.atlas.model.experiment.ExperimentType; 4 | 5 | import javax.inject.Named; 6 | 7 | @Named 8 | public class SingleCellExperimentChecker implements ExperimentChecker { 9 | @Override 10 | public void checkAllFiles(String experimentAccession, ExperimentType experimentType) { 11 | if (!experimentType.isSingleCell()) { 12 | throw new RuntimeException("Experiment type not supported: " + experimentType); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentpage/context/RnaSeqRequestContext.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentpage.context; 2 | 3 | import uk.ac.ebi.atlas.model.experiment.differential.DifferentialExperiment; 4 | import uk.ac.ebi.atlas.web.DifferentialRequestPreferences; 5 | 6 | public class RnaSeqRequestContext 7 | extends DifferentialRequestContext { 8 | public RnaSeqRequestContext(DifferentialRequestPreferences requestPreferences, DifferentialExperiment experiment) { 9 | super(requestPreferences, experiment); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /sc/src/main/java/uk/ac/ebi/atlas/download/IconType.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.download; 2 | 3 | public enum IconType { 4 | 5 | TSV("icon-tsv"), 6 | ARRAY_EXPRESS("icon-ae"), 7 | REACTOME("icon-gsea-reactome"), 8 | INTERPRO("icon-gsea-interpro"), 9 | R_DATA("icon-Rdata"), 10 | EXPERIMENT_DESIGN("icon-experiment-design"), 11 | GENE_ONTOLOGY("icon-gsea-go"), 12 | MA_PLOT("icon-ma"); 13 | 14 | private final String name; 15 | 16 | IconType(String name) { 17 | this.name = name; 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/js-bundles/homepageCards.bundle.js: -------------------------------------------------------------------------------- 1 | var homepageCards=(window.webpackJsonp_name_=window.webpackJsonp_name_||[]).push([[6],{236:function(n,e,r){"use strict";r.r(e),r.d(e,"render",function(){return l});var a=r(1),t=r.n(a),o=r(3),c=r.n(o),s=r(14),d=r.n(s),i=r(13);function p(){return(p=Object.assign||function(n){for(var e=1;e assertThat(arrayDesign.accession()).isEqualTo(arrayDesign.name())); 13 | } 14 | } -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/controllers/RequestDiagnosticsController.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.controllers; 2 | 3 | import org.springframework.context.annotation.Scope; 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | 7 | @Controller 8 | @Scope("request") 9 | public class RequestDiagnosticsController extends HtmlExceptionHandlingController { 10 | @RequestMapping(value = "/request-diagnostics", produces = "text/html;charset=UTF-8") 11 | public String showRequestDiagnosticsPage() { 12 | return "request-diagnostics"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/baseline-expression/src/facets-tree/FacetItem.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | 4 | const FacetItem = props => 5 |

6 | props.setChecked(props.name, !props.checked)} /> 10 | 11 |
12 | 13 | FacetItem.propTypes = { 14 | name: PropTypes.string.isRequired, 15 | value: PropTypes.string.isRequired, 16 | checked: PropTypes.bool.isRequired, 17 | setChecked: PropTypes.func.isRequired 18 | } 19 | 20 | export default FacetItem -------------------------------------------------------------------------------- /atlas-misc/scripts/web_monitoring/web_monitoring.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @author: rpetry 3 | # @date: 8 Feb 2013 4 | 5 | if [ $# -lt 1 ]; then 6 | echo "Usage: $0 HOSTNAME NOTIFICATION_EMAILADDRESS" 7 | exit; 8 | fi 9 | 10 | HOSTNAME=$1 11 | WEBLOG_DIR=$2 12 | NOTIFICATION_EMAILADDRESS=$3 13 | 14 | log="/tmp/web_monitoring."`eval date +%Y%m%d`".log" 15 | ./web_response_times.sh $HOSTNAME:8080 > $log 16 | ./find_web_errors.sh $HOSTNAME $WEBLOG_DIR >> $log 17 | 18 | if [ -e "$log" ]; then 19 | mailx -s "[atlas3/cron] $HOSTNAME: Baseline Atlas Web Monitoring for "`date +'%d-%m-%Y'` ${NOTIFICATION_EMAILADDRESS} < $log 20 | fi 21 | -------------------------------------------------------------------------------- /base/src/main/resources/solr-queries/differential.facets.query.json: -------------------------------------------------------------------------------- 1 | { 2 | "kingdom": { 3 | "type": "terms", 4 | "field": "kingdom" 5 | }, 6 | "species": { 7 | "type": "terms", 8 | "field": "species", 9 | "limit": 40 10 | }, 11 | "experimentType": { 12 | "type": "terms", 13 | "field": "experiment_type" 14 | }, 15 | "factors": { 16 | "type": "terms", 17 | "field": "factors", 18 | "limit": 100 19 | }, 20 | "numReplicates": { 21 | "type": "terms", 22 | "field": "num_replicates" 23 | }, 24 | "regulation": { 25 | "type": "terms", 26 | "field": "regulation" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/solr/BioentityPropertyNameTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.solr; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.assertj.core.api.Assertions.assertThat; 6 | import static uk.ac.ebi.atlas.solr.BioentityPropertyName.UNKNOWN; 7 | 8 | public class BioentityPropertyNameTest { 9 | 10 | @Test 11 | public void getByNameIsSafe() { 12 | assertThat(BioentityPropertyName.getByName("¯\\_(ツ)_/¯")).isEqualTo(UNKNOWN); 13 | assertThat(BioentityPropertyName.getByName("")).isEqualTo(UNKNOWN); 14 | assertThat(BioentityPropertyName.getByName(null)).isEqualTo(UNKNOWN); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/autocomplete/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "autocomplete", 3 | "version": "1.0.0", 4 | "description": "Wrapper bundle for atlas-autocomplete", 5 | "main": "index.js", 6 | "author": "Expression Atlas developers ", 7 | "collaborators": [ 8 | "Elisabet Barrera ", 9 | "Wojciech Bażant ", 10 | "Alfonso Muñoz-Pomer Fuentes " 11 | ], 12 | "license": "Apache-2.0", 13 | "dependencies": { 14 | "expression-atlas-autocomplete": "^3.0.1", 15 | "react": "^16.8.5", 16 | "react-dom": "^16.8.5" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /sc/src/main/java/uk/ac/ebi/atlas/trader/cache/loader/SingleCellRnaSeqBaselineExperimentFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache.loader; 2 | 3 | import uk.ac.ebi.atlas.model.experiment.ExperimentType; 4 | import uk.ac.ebi.atlas.species.SpeciesFactory; 5 | 6 | import javax.inject.Inject; 7 | import javax.inject.Named; 8 | 9 | @Named 10 | public class SingleCellRnaSeqBaselineExperimentFactory extends SingleCellBaselineExperimentFactory { 11 | 12 | @Inject 13 | public SingleCellRnaSeqBaselineExperimentFactory(SpeciesFactory speciesFactory) { 14 | super(ExperimentType.SINGLE_CELL_RNASEQ_MRNA_BASELINE, speciesFactory); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/controllers/ResourceNotFoundException.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.controllers; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | //TODO Make this a subclass of MissingResourceException to include fields about the resource class and key 7 | @ResponseStatus(value = HttpStatus.NOT_FOUND) 8 | public final class ResourceNotFoundException extends RuntimeException { 9 | public ResourceNotFoundException(Exception exception) { 10 | super(exception); 11 | } 12 | public ResourceNotFoundException(String message) { 13 | super(message); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/differential/rnaseq/RnaSeqProfile.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.differential.rnaseq; 2 | 3 | import uk.ac.ebi.atlas.model.experiment.differential.DifferentialExpression; 4 | import uk.ac.ebi.atlas.model.experiment.differential.DifferentialProfile; 5 | 6 | public class RnaSeqProfile extends DifferentialProfile { 7 | public RnaSeqProfile(String geneId, String geneName) { 8 | super(geneId, geneName); 9 | } 10 | 11 | @Override 12 | protected RnaSeqProfile createEmptyCopy() { 13 | return new RnaSeqProfile(getId(), getName()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/model/XmlReaderMock.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model; 2 | 3 | import org.apache.commons.configuration2.XMLConfiguration; 4 | import org.w3c.dom.Document; 5 | import uk.ac.ebi.atlas.commons.readers.XmlReader; 6 | 7 | public class XmlReaderMock extends XmlReader { 8 | 9 | private Document document; 10 | 11 | public XmlReaderMock(XMLConfiguration xmlConfiguration) { 12 | super(xmlConfiguration); 13 | } 14 | 15 | public void setDocument(Document document) { 16 | this.document = document; 17 | } 18 | 19 | @Override 20 | public Document getDocument() { 21 | return document; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/baseline-expression/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "index.js", 3 | "dependencies": { 4 | "expression-atlas-heatmap-highcharts": "^5.2.0", 5 | "prop-types": "^15.7.2", 6 | "react": "^16.8.5", 7 | "react-dom": "^16.8.5" 8 | }, 9 | "devDependencies": { 10 | "@babel/core": "^7.4.0", 11 | "@babel/preset-env": "^7.4.2", 12 | "@babel/preset-react": "^7.0.0", 13 | "babel-loader": "^8.0.5", 14 | "clean-webpack-plugin": "^2.0.1", 15 | "file-loader": "^3.0.1", 16 | "image-webpack-loader": "^4.6.0", 17 | "webpack": "^4.29.6", 18 | "webpack-cli": "^3.3.0", 19 | "webpack-dev-server": "^3.2.1" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /gxa/src/main/resources/dev/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger [%file:%line] - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /sc/src/main/resources/dev/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger [%file:%line] - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/css/bioentities-search-results.css: -------------------------------------------------------------------------------- 1 | .ui-accordion { 2 | font-family: Verdana, sans-serif; 3 | } 4 | 5 | .ui-widget-content { 6 | background: white; 7 | } 8 | 9 | a.gxaBioEntityCardLink { 10 | color: #343094; 11 | } 12 | 13 | span.gxaBioEntityCardBioentityName { 14 | font-size: 16px; 15 | font-weight: bold; 16 | color: gray; 17 | } 18 | 19 | ul.gxaBioEntityCardHeader { 20 | background: #f1fffa; 21 | } 22 | 23 | #baselineCountsTable { 24 | border: none; 25 | } 26 | 27 | #baselineCountsTable td { 28 | border: none; 29 | } 30 | 31 | a#gxaMoreBaselineResultsLink { 32 | font-size: 12px; 33 | color: darkslategray; 34 | } -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-json-tag-editor/tag-editor.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "json-tag-editor", 3 | "title": "JSON tag editor", 4 | "description": "A powerful and lightweight tag editor plugin for jQuery.", 5 | "version": "1.0.20", 6 | "dependencies": { 7 | "jquery": ">=1.7", 8 | "caret": ">=1.3.2" 9 | }, 10 | "keywords": [ 11 | "tags", 12 | "keywords", 13 | "editor", 14 | "ui", 15 | "tagging", 16 | "jQuery" 17 | ], 18 | "author": { 19 | "name": "Alfonso Muñoz-Pomer Fuentes", 20 | "email": "amunoz@ebi.ac.uk" 21 | }, 22 | "licenses": [ 23 | { 24 | "type": "MIT", 25 | "url": "http://www.opensource.org/licenses/mit-license.php" 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import ExperimentPageRouter from './src/ExperimentPageRouter' 5 | 6 | const render = (options, mountNodeId) => { 7 | ReactDOM.render( 8 | , 15 | document.getElementById(mountNodeId) 16 | ) 17 | } 18 | 19 | export { ExperimentPageRouter as default, render } 20 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/search/diffanalytics/DiffAnalyticsList.java: -------------------------------------------------------------------------------- 1 | 2 | package uk.ac.ebi.atlas.search.diffanalytics; 3 | 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | public class DiffAnalyticsList extends ArrayList { 8 | 9 | private int totalNumberOfResults; 10 | 11 | public DiffAnalyticsList() { 12 | } 13 | 14 | public DiffAnalyticsList(List diffAnalyticses, int totalNumberOfResults) { 15 | super(diffAnalyticses); 16 | this.totalNumberOfResults = totalNumberOfResults; 17 | } 18 | 19 | public int getTotalNumberOfResults() { 20 | return totalNumberOfResults; 21 | } 22 | } 23 | 24 | 25 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/testutils/SpeciesUtils.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.testutils; 2 | 3 | import org.springframework.stereotype.Component; 4 | import uk.ac.ebi.atlas.species.Species; 5 | import uk.ac.ebi.atlas.species.SpeciesFactory; 6 | 7 | @Component 8 | public class SpeciesUtils { 9 | private final SpeciesFactory speciesFactory; 10 | 11 | public SpeciesUtils(SpeciesFactory speciesFactory) { 12 | this.speciesFactory = speciesFactory; 13 | } 14 | 15 | public Species getHuman() { 16 | return speciesFactory.create("Homo sapiens"); 17 | } 18 | 19 | public Species getMouse() { 20 | return speciesFactory.create("Mus musculus"); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/search/diffanalytics/DiffAnalyticsSearchService.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.search.diffanalytics; 2 | 3 | 4 | import javax.inject.Inject; 5 | import javax.inject.Named; 6 | import java.util.List; 7 | 8 | @Named 9 | public class DiffAnalyticsSearchService { 10 | 11 | private final DiffAnalyticsDao diffAnalyticsDao; 12 | 13 | @Inject 14 | public DiffAnalyticsSearchService(DiffAnalyticsDao diffAnalyticsDao) { 15 | this.diffAnalyticsDao = diffAnalyticsDao; 16 | } 17 | 18 | 19 | public List fetchTopWithoutCountAnySpecies(String geneId) { 20 | return diffAnalyticsDao.fetchTopExpressions(geneId); 21 | } 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/utils/ImageIoUtils.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.utils; 2 | 3 | import javax.imageio.ImageIO; 4 | import javax.inject.Named; 5 | import java.awt.image.BufferedImage; 6 | import java.awt.image.RenderedImage; 7 | import java.io.IOException; 8 | import java.io.InputStream; 9 | import java.io.OutputStream; 10 | 11 | @Named 12 | public class ImageIoUtils { 13 | public BufferedImage read(InputStream inputStream) throws IOException { 14 | return ImageIO.read(inputStream); 15 | } 16 | 17 | public boolean write(RenderedImage im, String formatName, OutputStream output) throws IOException { 18 | return ImageIO.write(im, formatName, output); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/home/SpeciesSummaryDao.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.home; 2 | 3 | import com.google.common.collect.ImmutableList; 4 | import org.springframework.jdbc.core.JdbcTemplate; 5 | import uk.ac.ebi.atlas.species.SpeciesFactory; 6 | 7 | public abstract class SpeciesSummaryDao { 8 | protected final SpeciesFactory speciesFactory; 9 | protected final JdbcTemplate jdbcTemplate; 10 | 11 | public SpeciesSummaryDao(JdbcTemplate jdbcTemplate, SpeciesFactory speciesFactory) { 12 | this.jdbcTemplate = jdbcTemplate; 13 | this.speciesFactory = speciesFactory; 14 | } 15 | 16 | public abstract ImmutableList getExperimentCountBySpecies(); 17 | } 18 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/commons/streams/ObjectInputStream.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.commons.streams; 2 | 3 | import java.io.IOException; 4 | 5 | /* 6 | * Essentially a closeable iterator, however we don't use the Iterator interface because 7 | * the semantics of this class is different. See discussion here: 8 | * https://code.google.com/p/guava-libraries/issues/detail?id=973 9 | * 10 | * and comments here about Iterator not supporting IOException semantics 11 | * http://stackoverflow.com/a/10811303/149412 12 | */ 13 | public interface ObjectInputStream extends AutoCloseable { 14 | // returns null when stream is empty 15 | T readNext(); 16 | void close() throws IOException; 17 | } 18 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/differential/DifferentialProfilesListBuilder.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles.differential; 2 | 3 | import uk.ac.ebi.atlas.model.experiment.differential.DifferentialProfile; 4 | import uk.ac.ebi.atlas.model.experiment.differential.DifferentialProfilesList; 5 | import uk.ac.ebi.atlas.profiles.GeneProfilesListBuilder; 6 | 7 | import javax.inject.Named; 8 | 9 | @Named 10 | public class DifferentialProfilesListBuilder

11 | implements GeneProfilesListBuilder> { 12 | @Override 13 | public DifferentialProfilesList

get() { 14 | return new DifferentialProfilesList<>(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/html/release-notes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

4 | 7 |
8 | 9 | 15 | -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/html/release-notes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 7 |
8 | 9 | 15 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/baseline/FactorGroup.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.baseline; 2 | 3 | import java.util.Collection; 4 | import java.util.List; 5 | 6 | // A group of factors. Will be associated with an assay group. 7 | // Backed by a map of type -> factor, not meant to be mutated after creation. 8 | 9 | public interface FactorGroup extends Iterable, Comparable { 10 | 11 | Factor factorOfType(String type); 12 | 13 | List without(Collection factors); 14 | 15 | FactorGroup withoutTypes(Collection factorTypes); 16 | 17 | int size(); 18 | 19 | boolean isEmpty(); 20 | 21 | boolean containsOnlyOrganism(); 22 | } 23 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/trader/cache/RnaSeqBaselineExperimentsCache.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache; 2 | 3 | import com.google.common.cache.LoadingCache; 4 | import org.springframework.beans.factory.annotation.Qualifier; 5 | import uk.ac.ebi.atlas.model.experiment.baseline.BaselineExperiment; 6 | 7 | import javax.inject.Inject; 8 | import javax.inject.Named; 9 | 10 | @Named 11 | public class RnaSeqBaselineExperimentsCache extends ExperimentsCache { 12 | @Inject 13 | public RnaSeqBaselineExperimentsCache( 14 | @Qualifier("rnaSeqBaselineExperimentsLoadingCache") LoadingCache experiments) { 15 | super(experiments); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/differential/Regulation.java: -------------------------------------------------------------------------------- 1 | 2 | package uk.ac.ebi.atlas.model.experiment.differential; 3 | 4 | 5 | import static com.google.common.base.Preconditions.checkState; 6 | 7 | public enum Regulation { 8 | 9 | UP("up"), DOWN("down"), UP_DOWN("up/down"); 10 | 11 | private String label; 12 | 13 | Regulation(String label) { 14 | this.label = label; 15 | } 16 | 17 | public String getLabel() { 18 | return label; 19 | } 20 | 21 | public static Regulation valueOf(double foldChange) { 22 | checkState(foldChange != 0, "Cannot determine regulation for foldChange of zero"); 23 | return foldChange < 0 ? DOWN : UP; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/experimentpage/baseline/grouping/ColumnGroup.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentpage.baseline.grouping; 2 | 3 | import com.google.auto.value.AutoValue; 4 | import com.google.gson.JsonObject; 5 | 6 | @AutoValue 7 | public abstract class ColumnGroup { 8 | 9 | abstract String id(); 10 | abstract String name(); 11 | 12 | 13 | public static ColumnGroup create(String id, String name) { 14 | return new AutoValue_ColumnGroup(id, name); 15 | } 16 | 17 | public JsonObject toJson() { 18 | JsonObject result = new JsonObject(); 19 | result.addProperty("id", id()); 20 | result.addProperty("name", name()); 21 | return result; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/trader/cache/MicroarrayExperimentsCache.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache; 2 | 3 | import com.google.common.cache.LoadingCache; 4 | import org.springframework.beans.factory.annotation.Qualifier; 5 | import uk.ac.ebi.atlas.model.experiment.differential.microarray.MicroarrayExperiment; 6 | 7 | import javax.inject.Inject; 8 | import javax.inject.Named; 9 | 10 | @Named 11 | public class MicroarrayExperimentsCache extends ExperimentsCache { 12 | @Inject 13 | public MicroarrayExperimentsCache( 14 | @Qualifier("microarrayExperimentsLoadingCache") LoadingCache experiments) { 15 | super(experiments); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/baseline-expression/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import BaselineRouter from './src/BaselineRouter' 5 | 6 | const render = ({ atlasUrl = `https://www.ebi.ac.uk/gxa`, 7 | facetsTreeData, 8 | geneQuery, 9 | conditionQuery, 10 | species }, 11 | target) => { 12 | ReactDOM.render( 13 | , 19 | document.getElementById(target) 20 | ) 21 | } 22 | 23 | export { render } 24 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/species/SpeciesFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.species; 2 | 3 | import javax.inject.Inject; 4 | import javax.inject.Named; 5 | 6 | @Named 7 | public class SpeciesFactory { 8 | 9 | private final SpeciesPropertiesTrader speciesPropertiesTrader; 10 | 11 | @Inject 12 | public SpeciesFactory(SpeciesPropertiesTrader speciesPropertiesTrader) { 13 | this.speciesPropertiesTrader = speciesPropertiesTrader; 14 | } 15 | 16 | public Species create(String name) { 17 | return new Species(name, speciesPropertiesTrader.get(name)); 18 | } 19 | 20 | public Species createUnknownSpecies() { 21 | return new Species("", SpeciesProperties.UNKNOWN); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/trader/cache/loader/RnaSeqBaselineExperimentFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache.loader; 2 | 3 | import org.springframework.stereotype.Component; 4 | import uk.ac.ebi.atlas.model.experiment.ExperimentType; 5 | import uk.ac.ebi.atlas.species.SpeciesFactory; 6 | import uk.ac.ebi.atlas.trader.ConfigurationTrader; 7 | 8 | @Component 9 | public class RnaSeqBaselineExperimentFactory extends BaselineExperimentFactory { 10 | public RnaSeqBaselineExperimentFactory(ConfigurationTrader configurationTrader, 11 | SpeciesFactory speciesFactory) { 12 | super(ExperimentType.RNASEQ_MRNA_BASELINE, configurationTrader, speciesFactory); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/jsp/tiles/views/search-results/bioentity-information.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 |
4 |
5 |
6 |
7 |
8 | 9 | 10 | 18 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/ExpressionUnit.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model; 2 | 3 | public interface ExpressionUnit { 4 | 5 | interface Absolute extends ExpressionUnit { 6 | enum Rna implements Absolute { 7 | FPKM, 8 | TPM 9 | } 10 | 11 | enum Protein implements Absolute { 12 | ANY; 13 | 14 | @Override 15 | public String toString() { 16 | return ""; 17 | } 18 | } 19 | } 20 | 21 | enum Relative implements ExpressionUnit { 22 | FOLD_CHANGE; 23 | 24 | @Override 25 | public String toString() { 26 | return "Log2 fold change"; 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/model/experiment/baseline/CellTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.baseline; 2 | 3 | import com.google.common.collect.ImmutableSet; 4 | import org.junit.Test; 5 | 6 | import static org.hamcrest.CoreMatchers.is; 7 | import static org.hamcrest.MatcherAssert.assertThat; 8 | 9 | public class CellTest { 10 | 11 | private Cell subject = new Cell("123"); 12 | 13 | @Test 14 | public void returnsValidData() { 15 | assertThat(subject.assaysAnalyzedForThisDataColumn().size(), is(1)); 16 | assertThat(subject.assaysAnalyzedForThisDataColumn(), is(ImmutableSet.of("123"))); 17 | assertThat(subject.biologicalReplicatesForThisDataColumn().isEmpty(), is(true)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/baseline/Cell.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.baseline; 2 | 3 | import com.google.common.collect.ImmutableSet; 4 | import uk.ac.ebi.atlas.model.BiologicalReplicate; 5 | import uk.ac.ebi.atlas.model.DescribesDataColumns; 6 | 7 | import java.util.Set; 8 | 9 | public class Cell extends DescribesDataColumns { 10 | 11 | public Cell(String id) { 12 | super(id); 13 | } 14 | 15 | 16 | @Override 17 | public Set assaysAnalyzedForThisDataColumn() { 18 | return ImmutableSet.of(id); 19 | } 20 | 21 | @Override 22 | public Set biologicalReplicatesForThisDataColumn() { 23 | return ImmutableSet.of(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/trader/cache/RnaSeqDiffExperimentsCache.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache; 2 | 3 | import com.google.common.cache.LoadingCache; 4 | import org.springframework.beans.factory.annotation.Qualifier; 5 | import uk.ac.ebi.atlas.model.experiment.differential.DifferentialExperiment; 6 | 7 | import javax.inject.Inject; 8 | import javax.inject.Named; 9 | 10 | @Named 11 | public class RnaSeqDiffExperimentsCache extends ExperimentsCache { 12 | @Inject 13 | public RnaSeqDiffExperimentsCache( 14 | @Qualifier("differentialExperimentsLoadingCache") 15 | LoadingCache experiments) { 16 | super(experiments); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/trader/cache/loader/ProteomicsBaselineExperimentFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache.loader; 2 | 3 | import org.springframework.stereotype.Component; 4 | import uk.ac.ebi.atlas.model.experiment.ExperimentType; 5 | import uk.ac.ebi.atlas.species.SpeciesFactory; 6 | import uk.ac.ebi.atlas.trader.ConfigurationTrader; 7 | 8 | @Component 9 | public class ProteomicsBaselineExperimentFactory extends BaselineExperimentFactory { 10 | public ProteomicsBaselineExperimentFactory(ConfigurationTrader configurationTrader, 11 | SpeciesFactory speciesFactory) { 12 | super(ExperimentType.PROTEOMICS_BASELINE, configurationTrader, speciesFactory); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/differential-expression/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "index.js", 3 | "dependencies": { 4 | "expression-atlas-number-format": "^3.0.0", 5 | "prop-types": "^15.7.2", 6 | "react": "^16.8.5", 7 | "react-dom": "^16.8.5", 8 | "react-ebi-species": "^2.2.0", 9 | "react-tooltip": "^3.10.0", 10 | "styled-components": "^4.2.0", 11 | "urijs": "^1.19.1" 12 | }, 13 | "devDependencies": { 14 | "@babel/core": "^7.4.0", 15 | "@babel/preset-env": "^7.4.2", 16 | "@babel/preset-react": "^7.0.0", 17 | "babel-loader": "^8.0.5", 18 | "clean-webpack-plugin": "^2.0.1", 19 | "webpack": "^4.29.6", 20 | "webpack-cli": "^3.3.0", 21 | "webpack-dev-server": "^3.2.1" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/resource/ExternalResource.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.resource; 2 | 3 | import com.google.gson.JsonObject; 4 | 5 | import java.nio.file.Path; 6 | 7 | public abstract class ExternalResource extends AtlasResource { 8 | protected final String uri; 9 | private final ResourceType type; 10 | 11 | ExternalResource(ResourceType type, Path path, String uri) { 12 | super(path); 13 | this.uri = uri; 14 | this.type = type; 15 | } 16 | 17 | public JsonObject toJson() { 18 | JsonObject result = new JsonObject(); 19 | result.addProperty("type", type.resourceName); 20 | result.addProperty("uri", uri); 21 | return result; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/testutils/AssayGroupFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.testutils; 2 | 3 | import uk.ac.ebi.atlas.model.AssayGroup; 4 | import uk.ac.ebi.atlas.model.BiologicalReplicate; 5 | 6 | import java.util.Arrays; 7 | 8 | import static java.util.stream.Collectors.toSet; 9 | 10 | public class AssayGroupFactory { 11 | public AssayGroupFactory() { 12 | throw new UnsupportedOperationException(); 13 | } 14 | 15 | public static AssayGroup create(String id, String... assayAccessions) { 16 | return new AssayGroup( 17 | id, 18 | Arrays.stream(assayAccessions) 19 | .map(BiologicalReplicate::new) 20 | .collect(toSet())); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/gene-search/src/GeneSearchRouter.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | import { BrowserRouter, Route } from 'react-router-dom' 4 | 5 | import GeneSearch from './GeneSearch' 6 | 7 | const GeneSearchRouter = ({atlasUrl, basename}) => 8 | 9 | 13 | 16 | } /> 17 | 18 | 19 | GeneSearchRouter.propTypes = { 20 | atlasUrl: PropTypes.string.isRequired, 21 | basename: PropTypes.string.isRequired 22 | } 23 | 24 | export default GeneSearchRouter 25 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/trader/cache/ProteomicsBaselineExperimentsCache.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache; 2 | 3 | import com.google.common.cache.LoadingCache; 4 | import org.springframework.beans.factory.annotation.Qualifier; 5 | import uk.ac.ebi.atlas.model.experiment.baseline.BaselineExperiment; 6 | 7 | import javax.inject.Inject; 8 | import javax.inject.Named; 9 | 10 | @Named 11 | public class ProteomicsBaselineExperimentsCache extends ExperimentsCache { 12 | @Inject 13 | public ProteomicsBaselineExperimentsCache( 14 | @Qualifier("proteomicsBaselineExperimentsLoadingCache") 15 | LoadingCache experiments) { 16 | super(experiments); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /atlas-misc/scripts/warm_experiment_cache.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # @author: omannnion 3 | # @date: 10 Jan 2014 4 | 5 | if [ $# -lt 1 ]; then 6 | echo "Accesses the json experiments URL, which on the first access after application startup will load all experiments into the experiments cache." 7 | echo "First access will take around 15 minutes, subsequent accesses will take between 1 and 2 seconds" 8 | echo 9 | echo "Usage: $0 HOSTNAME" 10 | exit; 11 | fi 12 | 13 | HOSTNAME=$1 14 | PORT=8080 15 | ATLAS_ROOT_URL="http://${HOSTNAME}:${PORT}/gxa" 16 | EXPERIMENTS=${ATLAS_ROOT_URL}/json/experiments 17 | 18 | echo ${EXPERIMENTS} 19 | curl -s -o /dev/null -w "HTTP status code: %{http_code} Size: %{size_download} Time: %{time_total}\n" ${EXPERIMENTS} 20 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/jsp/tiles/views/static-page.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | <%@ page import="org.springframework.core.io.Resource" %> 5 | <%@ page import="org.apache.commons.io.IOUtils" %> 6 | <%@ page import="java.nio.charset.StandardCharsets" %> 7 | 8 | <% 9 | // manually load file contents instead of using c:import to avoid javax.servlet.jsp.JspTagException: 304 errors 10 | // see http://stackoverflow.com/questions/17218609/jsp-exception-when-i-try-to-import-static-file 11 | Resource contentResource = (Resource)request.getAttribute("contentResource"); 12 | IOUtils.copy(contentResource.getInputStream(), pageContext.getOut(), StandardCharsets.UTF_8); 13 | %> 14 | -------------------------------------------------------------------------------- /sc/src/main/webapp/WEB-INF/jsp/tiles/views/static-page.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | <%@ page import="org.springframework.core.io.Resource" %> 5 | <%@ page import="org.apache.commons.io.IOUtils" %> 6 | <%@ page import="java.nio.charset.StandardCharsets" %> 7 | 8 | <% 9 | // manually load file contents instead of using c:import to avoid javax.servlet.jsp.JspTagException: 304 errors 10 | // see http://stackoverflow.com/questions/17218609/jsp-exception-when-i-try-to-import-static-file 11 | Resource contentResource = (Resource)request.getAttribute("contentResource"); 12 | IOUtils.copy(contentResource.getInputStream(), pageContext.getOut(), StandardCharsets.UTF_8); 13 | %> 14 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/web/MicroarrayRequestPreferences.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.web; 2 | 3 | import com.google.common.base.MoreObjects; 4 | 5 | public class MicroarrayRequestPreferences extends DifferentialRequestPreferences { 6 | private String arrayDesignAccession; 7 | 8 | public void setArrayDesignAccession(String arrayDesignAccession) { 9 | this.arrayDesignAccession = arrayDesignAccession; 10 | } 11 | 12 | public String getArrayDesignAccession() { 13 | return arrayDesignAccession; 14 | } 15 | 16 | @Override 17 | public String toString() { 18 | return MoreObjects.toStringHelper(super.toString()) 19 | .add("arrayDesignAccession", arrayDesignAccession) 20 | .toString(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/configuration/PathsConfig.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.configuration; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | import java.nio.file.Path; 7 | 8 | @Configuration 9 | public class PathsConfig { 10 | private Path dataFilesPath; 11 | 12 | public PathsConfig(Path dataFilesPath) { 13 | this.dataFilesPath = dataFilesPath; 14 | } 15 | 16 | @Bean 17 | public Path anatomicalSystemsFilePath() { 18 | return dataFilesPath.resolve("ontology").resolve("anatomical_systems.txt"); 19 | } 20 | 21 | @Bean 22 | public Path organsFilePath() { 23 | return dataFilesPath.resolve("ontology").resolve("organs.txt"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/model/experiment/baseline/ExpressionTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.baseline; 2 | 3 | import org.junit.Before; 4 | import org.junit.Test; 5 | 6 | import static org.hamcrest.MatcherAssert.assertThat; 7 | import static org.hamcrest.Matchers.is; 8 | 9 | public class ExpressionTest { 10 | 11 | private BaselineExpression subject; 12 | 13 | @Before 14 | public void setUp() { 15 | subject = new BaselineExpression(2.3); 16 | } 17 | 18 | @Test 19 | public void testIsGreaterThanOrEquals() { 20 | assertThat(subject.isGreaterThanOrEqual(0.0), is(true)); 21 | assertThat(subject.isGreaterThanOrEqual(3.0), is(false)); 22 | assertThat(subject.isGreaterThanOrEqual(2.3), is(true)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/modules/expression-atlas-disclaimers/README.md: -------------------------------------------------------------------------------- 1 | # Expression Atlas Disclaimers 2 | 3 | A collection of data reuse licences from projects that publish study datasets which have been reprocessed and curated 4 | in [Expression Atlas](https://www.ebi.ac.uk/gxa). 5 | 6 | ## How to use 7 | ``` 8 | import disclaimers from 'expression-atlas-disclaimers' 9 | 10 | // Object.keys[disclaimers] = [`blueprint`, `lauderdale` or `pcawg`] 11 | const Disclaimer = disclaimers[`pcawg`] 12 | ... 13 | 14 | 15 | const DisclaimerOrCatPicture = ({project}) => { 16 | const Disclaimer = disclaimers[project] 17 | 18 | return ( 19 | Disclaimer ? 20 | : 21 | 22 | ) 23 | } 24 | ``` 25 | -------------------------------------------------------------------------------- /atlas-misc/scripts/db_updates/scxa/20171127-create-experiment-table.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE scxa_experiment CASCADE; 2 | 3 | CREATE TABLE IF NOT EXISTS scxa_experiment 4 | ( 5 | accession VARCHAR(255) NOT NULL 6 | CONSTRAINT scxa_experiment_pkey 7 | PRIMARY KEY, 8 | type VARCHAR(50) NOT NULL, 9 | species VARCHAR(255) NOT NULL, 10 | access_key CHAR(36) NOT NULL, 11 | private BOOLEAN DEFAULT TRUE, 12 | last_update DATE DEFAULT ('now' :: TEXT) :: DATE, 13 | pubmed_ids VARCHAR(255), 14 | title VARCHAR(500) 15 | ); 16 | 17 | --- 18 | 19 | CREATE VIEW scxa_public_experiment AS 20 | SELECT 21 | scxa_experiment.accession, 22 | scxa_experiment.type, 23 | scxa_experiment.last_update 24 | FROM scxa_experiment 25 | WHERE (scxa_experiment.private IS FALSE); 26 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/web/BaselineRequestPreferencesTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.web; 2 | 3 | import uk.ac.ebi.atlas.model.ExpressionUnit; 4 | 5 | public class BaselineRequestPreferencesTest { 6 | protected BaselineRequestPreferencesTest() { 7 | throw new UnsupportedOperationException(); 8 | } 9 | 10 | public static BaselineRequestPreferences get() { 11 | return new BaselineRequestPreferences() { 12 | @Override 13 | public double getDefaultCutoff() { 14 | return 0.0; 15 | } 16 | 17 | public ExpressionUnit.Absolute.Rna getUnit() { 18 | return ExpressionUnit.Absolute.Rna.TPM; 19 | } 20 | }; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/GeneProfilesList.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model; 2 | 3 | import com.google.common.collect.ImmutableMap; 4 | 5 | import java.util.ArrayList; 6 | import java.util.Collection; 7 | import java.util.Map; 8 | 9 | public class GeneProfilesList

extends ArrayList

{ 10 | private long totalResultCount; 11 | 12 | public GeneProfilesList(Collection

collection) { 13 | super(collection); 14 | } 15 | 16 | public GeneProfilesList() { 17 | } 18 | 19 | public void setTotalResultCount(long totalResultCount) { 20 | this.totalResultCount = totalResultCount; 21 | } 22 | 23 | public Map properties() { 24 | return ImmutableMap.of("searchResultTotal", Long.toString(totalResultCount)); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/utils/ResourceUtils.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.utils; 2 | 3 | import com.google.common.base.Charsets; 4 | import org.apache.commons.io.IOUtils; 5 | import org.springframework.core.io.Resource; 6 | 7 | import java.io.IOException; 8 | import java.io.InputStream; 9 | import java.io.UncheckedIOException; 10 | 11 | public class ResourceUtils { 12 | protected ResourceUtils() { 13 | throw new UnsupportedOperationException(); 14 | } 15 | 16 | public static String readPlainTextResource(Resource resource) { 17 | try (InputStream inputStream = resource.getInputStream()) { 18 | return IOUtils.toString(inputStream, Charsets.UTF_8); 19 | } catch (IOException e) { 20 | throw new UncheckedIOException(e); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/commons/writers/FileTsvWriterBuilder.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.commons.writers; 2 | 3 | import org.springframework.context.annotation.Scope; 4 | 5 | import javax.inject.Named; 6 | import java.io.FileOutputStream; 7 | import java.io.IOException; 8 | import java.io.OutputStreamWriter; 9 | import java.io.UncheckedIOException; 10 | import java.nio.file.Path; 11 | 12 | @Named 13 | @Scope("prototype") 14 | public class FileTsvWriterBuilder { 15 | public TsvWriter build(Path path, boolean appendTo) { 16 | try { 17 | return new TsvWriter(new OutputStreamWriter(new FileOutputStream(path.toFile(), appendTo))); 18 | } catch (IOException e) { 19 | throw new UncheckedIOException("Cannot write TSV file to path " + path, e); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/tiles/layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/solr/analytics/query/AnalyticsSolrQueryTreeTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.solr.analytics.query; 2 | 3 | import org.junit.Test; 4 | import uk.ac.ebi.atlas.search.SemanticQuery; 5 | 6 | import static org.assertj.core.api.Assertions.assertThat; 7 | 8 | public class AnalyticsSolrQueryTreeTest { 9 | @Test 10 | public void freeTextIsSearchedFirstInBioentityIdentifierAndSymbol() { 11 | AnalyticsSolrQueryTree subject = 12 | AnalyticsSolrQueryTree.createForIdentifierSearch(SemanticQuery.create("SLC4A4")); 13 | 14 | assertThat(subject.toQueryPlan()) 15 | .hasSize(4); 16 | assertThat(subject.toQueryPlan().subList(0, 2)) 17 | .containsExactly("bioentity_identifier_search:\"SLC4A4\"", "keyword_symbol:\"SLC4A4\""); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /sc/src/main/webapp/WEB-INF/jsp/tiles/views/home.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %> 3 | 4 |

5 | 6 |
7 | 8 |
9 | 10 |
11 | 12 |
13 | 14 |
15 | 16 |
17 | 18 |
19 | 20 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/ProfileStreamFilter.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles; 2 | 3 | import uk.ac.ebi.atlas.model.DescribesDataColumns; 4 | import uk.ac.ebi.atlas.model.Profile; 5 | import uk.ac.ebi.atlas.profiles.differential.ProfileStreamOptions; 6 | 7 | import java.util.List; 8 | import java.util.function.Predicate; 9 | 10 | public class ProfileStreamFilter { 11 | protected ProfileStreamFilter() { 12 | throw new UnsupportedOperationException(); 13 | } 14 | 15 | public static , P extends Profile> 16 | Predicate

create(final O options) { 17 | 18 | final List dataColumnsToReturn = options.getDataColumnsToReturn(); 19 | return prof -> prof.isExpressedAnywhereOn(dataColumnsToReturn); 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/web/BaselineRequestPreferences.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.web; 2 | 3 | import uk.ac.ebi.atlas.model.ExpressionUnit; 4 | import uk.ac.ebi.atlas.search.SemanticQuery; 5 | import uk.ac.ebi.atlas.search.SemanticQueryTerm; 6 | import uk.ac.ebi.atlas.solr.BioentityPropertyName; 7 | 8 | public abstract class BaselineRequestPreferences 9 | extends ExperimentPageRequestPreferences { 10 | private static final String DEFAULT_GENE_QUERY_VALUE = "protein_coding"; 11 | private static final String DEFAULT_GENE_QUERY_CATEGORY = BioentityPropertyName.GENE_BIOTYPE.name; 12 | 13 | @Override 14 | protected SemanticQuery getDefaultGeneQuery() { 15 | return SemanticQuery.create(SemanticQueryTerm.create(DEFAULT_GENE_QUERY_VALUE, DEFAULT_GENE_QUERY_CATEGORY)); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/experimentpage/baseline/genedistribution/CutoffScaleTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentpage.baseline.genedistribution; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.hamcrest.Matchers.is; 6 | import static org.junit.Assert.assertThat; 7 | 8 | public class CutoffScaleTest { 9 | // We want the first value to be low enough to catch everything to the left of it - so that we can have as many 10 | // bins as cutoffs. The UI filters genes with cutoff zero anyway as they're not interesting to the user. 11 | @Test 12 | public void scaledFirstValueisZero() { 13 | assertThat(new CutoffScale.Scaled().get()[0], is(0.0)); 14 | } 15 | 16 | @Test 17 | public void logarithmicFirstValueisZero() { 18 | assertThat(new CutoffScale.Logarithmic().get()[0], is(0.0)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/trader/cache/ExperimentsCache.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader.cache; 2 | 3 | import com.google.common.cache.LoadingCache; 4 | import uk.ac.ebi.atlas.model.DescribesDataColumns; 5 | import uk.ac.ebi.atlas.model.experiment.Experiment; 6 | 7 | public abstract class ExperimentsCache> { 8 | 9 | private final LoadingCache experiments; 10 | 11 | public ExperimentsCache(LoadingCache experiments) { 12 | this.experiments = experiments; 13 | } 14 | 15 | public T getExperiment(String experimentAccession) { 16 | return experiments.getUnchecked(experimentAccession); 17 | } 18 | 19 | public void evictExperiment(String experimentAccession) { 20 | experiments.invalidate(experimentAccession); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/WEB-INF/tiles/errors.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/css/quality-metrics.css: -------------------------------------------------------------------------------- 1 | 2 | .aqm1 { } 3 | .aqm2 { } 4 | .aqm3 { } 5 | .aqm4 { } 6 | .aqm5 { } 7 | .aqm6 { } 8 | .aqm7 { } 9 | .aqm8 { } 10 | .aqm9 { } 11 | .aqm10 { } 12 | .aqm11 { } 13 | .aqm12 { } 14 | .aqm13 { } 15 | .aqm14 { } 16 | .aqm15 { } 17 | .aqm16 { } 18 | .aqm17 { } 19 | .aqm18 { } 20 | .aqm19 { } 21 | .aqm20 { } 22 | 23 | #qc-content h1 { 24 | text-align: center; 25 | } 26 | 27 | #arraymetadata-b table { 28 | width: 100%; 29 | } 30 | 31 | table { 32 | 33 | border-collapse: collapse; 34 | background-color: #ffffff; 35 | border-color: #ffffff; 36 | font-size: small; 37 | width: auto; 38 | } 39 | 40 | table td { 41 | padding: 0 2px; 42 | border: none; 43 | } 44 | 45 | li.tocsection { 46 | font-weight: bold; 47 | font-size: 12pt 48 | } 49 | li.tocmodule { 50 | font-size: 11pt 51 | } 52 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentimport/coexpression/BaselineCoexpression.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentimport.coexpression; 2 | 3 | import com.google.auto.value.AutoValue; 4 | 5 | import javax.annotation.Nonnull; 6 | 7 | @AutoValue 8 | public abstract class BaselineCoexpression implements Comparable { 9 | public abstract double ceStatistic(); 10 | public abstract String ceGeneID(); 11 | 12 | static BaselineCoexpression create(double ceStatistic, String ceGeneID) { 13 | return new AutoValue_BaselineCoexpression(ceStatistic, ceGeneID); 14 | } 15 | 16 | @Override 17 | public int compareTo(@Nonnull BaselineCoexpression other) { 18 | int c = Double.compare(this.ceStatistic(), other.ceStatistic()); 19 | return c == 0 ? this.ceGeneID().compareTo(other.ceGeneID()) : c; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/search/baseline/BaselineExperimentProfilesList.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.search.baseline; 2 | 3 | import com.google.common.collect.ImmutableList; 4 | import uk.ac.ebi.atlas.model.FactorAcrossExperiments; 5 | import uk.ac.ebi.atlas.model.GeneProfilesList; 6 | 7 | import java.util.List; 8 | import java.util.TreeSet; 9 | 10 | public class BaselineExperimentProfilesList extends GeneProfilesList { 11 | public BaselineExperimentProfilesList() { 12 | } 13 | 14 | public List getFactorsAcrossExperiments() { 15 | TreeSet result = new TreeSet<>(); 16 | for (BaselineExperimentProfile profile: this) { 17 | result.addAll(profile.getConditions()); 18 | } 19 | 20 | return ImmutableList.copyOf(result); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/search/baseline/BaselineExperimentProfileTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.search.baseline; 2 | 3 | import org.junit.Test; 4 | import uk.ac.ebi.atlas.model.experiment.baseline.Factor; 5 | import uk.ac.ebi.atlas.model.experiment.baseline.impl.FactorSet; 6 | 7 | import static org.hamcrest.CoreMatchers.is; 8 | import static org.hamcrest.MatcherAssert.assertThat; 9 | 10 | public class BaselineExperimentProfileTest { 11 | private Factor factor1 = new Factor("type1", "value1"); 12 | private Factor factor2 = new Factor("type2", "value2"); 13 | 14 | @Test 15 | public void prettyPrint() { 16 | FactorSet factors = new FactorSet(); 17 | 18 | factors.add(factor1); 19 | factors.add(factor2); 20 | 21 | assertThat(BaselineExperimentProfile.factorsAsText(factors), is("value2, value1")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | web/src/main/javascript/**/.tmp 2 | # Compiled and auto-generated classes 3 | target 4 | 5 | # IntelliJ IDEA project files 6 | *.iml 7 | _idea 8 | .idea 9 | .idea-files 10 | .project 11 | .settings/ 12 | 13 | 14 | **/src/main/resources/log4j.xml 15 | **/src/test/resources/log4j.xml 16 | bin 17 | .classpath 18 | 19 | # OS X “Desktop Services” files 20 | .DS_Store 21 | .module-cache 22 | 23 | # JavaScript and npm artifacts 24 | npm-debug.log 25 | **/src/main/**/node_modules 26 | **/src/main/javascript/**/dist 27 | **/src/main/javascript/**/coverage 28 | **/src/main/javascript/**/lib 29 | 30 | # Different test data 31 | **/src/main/javascript/expression-atlas-heatmap-highcharts/test/data 32 | **/src/test/resources/serialized_expression 33 | **/src/test/resources/expdesign/ExpDesign-TEST-*.tsv 34 | **/*op-log.tsv 35 | 36 | **/tmp 37 | **/rebel.xml 38 | *.log 39 | 40 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/css/foundation/theme-atlas.css: -------------------------------------------------------------------------------- 1 | .menu .active > a, 2 | .tag, 3 | .tabs-title > a:hover, 4 | .button, 5 | .button.primary { 6 | background-color: #3497c5; 7 | } 8 | 9 | .tabs-title > a { 10 | color: #3e3e3e; 11 | } 12 | .tabs-title > a:hover { 13 | background: aliceblue; 14 | color: #0a0a0a; 15 | } 16 | .tabs-title > a:focus, 17 | .tabs-title > a[aria-selected='true'] { 18 | color: #0a0a0a; 19 | background: #e6e6e6; 20 | } 21 | 22 | h2 { 23 | color: rgb(0,124,130); 24 | } 25 | 26 | .button.primary:hover, 27 | .button.primary:focus, 28 | .button.hover, 29 | .button:hover, 30 | .button:focus, 31 | .button:active { 32 | background: #2f5767; 33 | } 34 | 35 | header .masthead { 36 | padding-top: 1rem; 37 | color: #fff; 38 | } 39 | 40 | li.tabs-title > a:focus { 41 | outline: 0; 42 | box-shadow: none; 43 | } 44 | -------------------------------------------------------------------------------- /gxa/src/test/java/uk/ac/ebi/atlas/solr/analytics/differential/ExperimentsTypeMapConverterTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.solr.analytics.differential; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.hamcrest.CoreMatchers.is; 6 | import static org.junit.Assert.assertThat; 7 | 8 | public class ExperimentsTypeMapConverterTest { 9 | 10 | @Test 11 | public void testGetTypeExists() { 12 | assertThat( 13 | DifferentialFacetsReader.FacetFieldMapConverter.get("rnaseq_mrna_differential"), 14 | is("RNA-seq mRNA differential")); 15 | } 16 | 17 | @Test 18 | public void testGetTypeNotExists() { 19 | assertThat( 20 | DifferentialFacetsReader.FacetFieldMapConverter.get("microarray_5colour_microrna_differential"), 21 | is("Microarray_5colour_microrna_differential")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/differential/microarray/MicroarrayExperimentConfiguration.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.differential.microarray; 2 | 3 | import com.google.common.collect.Sets; 4 | import uk.ac.ebi.atlas.commons.readers.XmlReader; 5 | import uk.ac.ebi.atlas.model.experiment.ExperimentConfiguration; 6 | 7 | import java.util.SortedSet; 8 | 9 | public class MicroarrayExperimentConfiguration extends ExperimentConfiguration { 10 | 11 | private SortedSet arrayDesignAccessions; 12 | 13 | public MicroarrayExperimentConfiguration(XmlReader xmlReader) { 14 | super(xmlReader); 15 | this.arrayDesignAccessions = Sets.newTreeSet(xmlReader.getList("analytics/array_design")); 16 | } 17 | 18 | public SortedSet getArrayDesignAccessions() { 19 | return arrayDesignAccessions; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/css/experiments-table.css: -------------------------------------------------------------------------------- 1 | #experiments-table th { 2 | text-align: center; 3 | font-size: small; 4 | } 5 | 6 | #experiments-table td { 7 | text-align: center; 8 | font-size: small; 9 | } 10 | 11 | #experiments-table td.italic { 12 | font-style: italic; 13 | } 14 | 15 | #experiments-table_filter input { 16 | /* After inspecting Data Tables own inputs... */ 17 | height: 39px; 18 | } 19 | 20 | #experiments-table select { 21 | margin: 0; 22 | font-size: small; 23 | } 24 | 25 | #experiments-table tfoot input { 26 | margin: 0; 27 | font-size: small; 28 | } 29 | 30 | #experiments-table tfoot input.search_init { 31 | color: grey; 32 | font-style: italic; 33 | } 34 | 35 | /* Make experiments table header inputs (Show and Columns) expanded */ 36 | #experiments-table_wrapper .row { 37 | max-width: none; 38 | } -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/css/experiments-table.css: -------------------------------------------------------------------------------- 1 | #experiments-table th { 2 | text-align: center; 3 | font-size: small; 4 | } 5 | 6 | #experiments-table td { 7 | text-align: center; 8 | font-size: small; 9 | } 10 | 11 | #experiments-table td.italic { 12 | font-style: italic; 13 | } 14 | 15 | #experiments-table_filter input { 16 | /* After inspecting Data Tables own inputs... */ 17 | height: 39px; 18 | } 19 | 20 | #experiments-table select { 21 | margin: 0; 22 | font-size: small; 23 | } 24 | 25 | #experiments-table tfoot input { 26 | margin: 0; 27 | font-size: small; 28 | } 29 | 30 | #experiments-table tfoot input.search_init { 31 | color: grey; 32 | font-style: italic; 33 | } 34 | 35 | /* Make experiments table header inputs (Show and Columns) expanded */ 36 | #experiments-table_wrapper .row { 37 | max-width: none; 38 | } -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/experiment/baseline/BaselineExpressionPerReplicateProfile.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.experiment.baseline; 2 | 3 | import uk.ac.ebi.atlas.model.AssayGroup; 4 | import uk.ac.ebi.atlas.model.Profile; 5 | 6 | public class BaselineExpressionPerReplicateProfile extends Profile { 9 | 10 | public BaselineExpressionPerReplicateProfile(String geneId, String geneName) { 11 | super(geneId, geneName); 12 | } 13 | 14 | @Override 15 | protected BaselineExpressionPerReplicateProfile createEmptyCopy() { 16 | return new BaselineExpressionPerReplicateProfile(getId(), getName()); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/trader/ContrastTrader.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.trader; 2 | 3 | import org.springframework.stereotype.Component; 4 | import uk.ac.ebi.atlas.model.experiment.Experiment; 5 | import uk.ac.ebi.atlas.model.experiment.differential.Contrast; 6 | import uk.ac.ebi.atlas.model.experiment.differential.DifferentialExperiment; 7 | 8 | @Component 9 | public class ContrastTrader { 10 | private ExperimentTrader experimentTrader; 11 | 12 | public ContrastTrader(ExperimentTrader experimentTrader) { 13 | this.experimentTrader = experimentTrader; 14 | } 15 | 16 | public Contrast getContrast(String experimentAccession, String contrastId) { 17 | Experiment experiment = experimentTrader.getPublicExperiment(experimentAccession); 18 | return ((DifferentialExperiment) experiment).getDataColumnDescriptor(contrastId); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/utils/GsonProvider.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.utils; 2 | 3 | import com.google.gson.Gson; 4 | import com.google.gson.GsonBuilder; 5 | import uk.ac.ebi.atlas.experimentpage.tsne.TSnePoint; 6 | import uk.ac.ebi.atlas.search.SemanticQueryTerm; 7 | 8 | public class GsonProvider { 9 | protected GsonProvider() { 10 | throw new UnsupportedOperationException(); 11 | } 12 | 13 | public static final Gson GSON = new GsonBuilder() 14 | .registerTypeAdapter( 15 | SemanticQueryTerm.create("").getClass(), 16 | SemanticQueryTerm.getGsonTypeAdapter()) 17 | .registerTypeAdapter( 18 | TSnePoint.create(0.0, 0.0, "").getClass(), 19 | TSnePoint.getGsonTypeAdapter()) 20 | .serializeSpecialFloatingPointValues() 21 | .create(); 22 | } 23 | -------------------------------------------------------------------------------- /atlas-misc/scripts/sc_database/generate_scexpressionTSV.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by barrera on 11/05/2017. 3 | */ 4 | 5 | const genes = 1000; 6 | const cells = 10000; 7 | 8 | var header = new Array(cells); 9 | header[0] = "GeneId"; 10 | for (var i = 1; i <= cells; i++) { 11 | header[i] = "cell_" + i; 12 | } 13 | 14 | var rowNames = new Array(genes); 15 | for (var i = 0; i < genes; i++) { 16 | rowNames[i] = "gene_" + i; 17 | } 18 | 19 | var headers = header.join("\t"); 20 | process.stdout.write(headers + "\n"); 21 | 22 | for(var i = 0; i < genes; i++) { 23 | var line = new Array(rowNames[i]); 24 | 25 | var expressionLevels = new Array(cells); 26 | for (var j=0; j < cells; j++) { 27 | expressionLevels[j] = Math.random(); 28 | } 29 | 30 | var row = line.concat(expressionLevels); 31 | var res = row.join("\t"); 32 | 33 | process.stdout.write(res + "\n"); 34 | } -------------------------------------------------------------------------------- /sc/src/main/java/uk/ac/ebi/atlas/search/FacetsToTooltipMapping.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.search; 2 | 3 | public enum FacetsToTooltipMapping { 4 | INFERRED_CELL_TYPE("Inferred cell type", "Submitter-defined cell identity for a cell based on post-sequencing expression profile"), 5 | MARKER_GENE("Marker genes", "A gene that comprises part of the specific expression profile for that cluster"), 6 | ORGANISM_PART("Organism part", "The tissue from which the sample is originally derived, e.g. lung"); 7 | 8 | String tooltip; 9 | String title; 10 | 11 | 12 | FacetsToTooltipMapping(String title, String tooltip) { 13 | this.title = title; 14 | this.tooltip = tooltip; 15 | } 16 | 17 | public String getTooltip() { 18 | return this.tooltip; 19 | } 20 | 21 | public String getTitle() { 22 | return this.title; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/utils/StringUtil.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.utils; 2 | 3 | public class StringUtil { 4 | protected StringUtil() { 5 | throw new UnsupportedOperationException(); 6 | } 7 | 8 | public static String[] splitAtLastSlash(String uri) { 9 | int finalSlashIndex = uri.lastIndexOf('/'); 10 | return finalSlashIndex == -1 ? 11 | new String[] {uri} : 12 | new String[] {uri.substring(0, finalSlashIndex + 1), uri.substring(finalSlashIndex + 1)}; 13 | } 14 | 15 | public static String suffixAfterLastSlash(String uri) { 16 | int finalSlashIndex = uri.lastIndexOf('/'); 17 | return finalSlashIndex == -1 ? 18 | uri : uri.substring(finalSlashIndex + 1); 19 | } 20 | 21 | public static String escapeDoubleQuotes(String s) { 22 | return s.replace("\"", "\\\""); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/resource/MatrixMarketFile.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.resource; 2 | 3 | import uk.ac.ebi.atlas.commons.readers.MatrixMarketReader; 4 | 5 | import java.io.IOException; 6 | import java.nio.charset.StandardCharsets; 7 | import java.nio.file.Files; 8 | import java.nio.file.Path; 9 | import java.text.MessageFormat; 10 | 11 | public class MatrixMarketFile extends AtlasResource { 12 | public MatrixMarketFile(Path parentDirectory, String template, String... args) { 13 | super(parentDirectory.resolve(MessageFormat.format(template, (Object[]) args))); 14 | } 15 | 16 | public MatrixMarketReader get() { 17 | try { 18 | return new MatrixMarketReader(Files.newBufferedReader(path, StandardCharsets.UTF_8)); 19 | } catch (IOException e) { 20 | throw new RuntimeException(e); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/profiles/stream/CreatesProfileStream.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles.stream; 2 | 3 | import uk.ac.ebi.atlas.commons.streams.ObjectInputStream; 4 | import uk.ac.ebi.atlas.model.DescribesDataColumns; 5 | import uk.ac.ebi.atlas.model.Expression; 6 | import uk.ac.ebi.atlas.model.Profile; 7 | import uk.ac.ebi.atlas.model.experiment.Experiment; 8 | import uk.ac.ebi.atlas.profiles.differential.ProfileStreamOptions; 9 | 10 | import java.util.Collection; 11 | 12 | public interface CreatesProfileStream, StreamOptions extends ProfileStreamOptions, 14 | Prof extends Profile> { 15 | 16 | ObjectInputStream create(E experiment, StreamOptions options, Collection keepGeneIds); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentimport/admin/ExperimentOpsExecutionService.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentimport.admin; 2 | 3 | import com.google.gson.JsonElement; 4 | import com.google.gson.JsonPrimitive; 5 | import org.apache.commons.lang3.tuple.Pair; 6 | 7 | import java.io.IOException; 8 | import java.util.Collection; 9 | import java.util.List; 10 | import java.util.Optional; 11 | 12 | public interface ExperimentOpsExecutionService { 13 | List findAllExperiments(); 14 | 15 | Optional attemptExecuteOneStatelessOp(String accession, Op op); 16 | 17 | Optional>> attemptExecuteForAllAccessions(Collection ops); 18 | 19 | Optional>> attemptExecuteForAllAccessions(Op op); 20 | 21 | JsonPrimitive attemptExecuteStatefulOp(String accession, Op op) throws IOException; 22 | } 23 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/configuration/AppConfig.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.configuration; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.ComponentScan; 5 | import org.springframework.context.annotation.Configuration; 6 | import org.springframework.http.client.SimpleClientHttpRequestFactory; 7 | import org.springframework.web.client.RestTemplate; 8 | 9 | @Configuration 10 | @ComponentScan(basePackages = "uk.ac.ebi.atlas") 11 | public class AppConfig { 12 | private static final int MAX_TIMEOUT_MILLIS = 20000; 13 | 14 | @Bean 15 | public RestTemplate restTemplate() { 16 | SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); 17 | requestFactory.setReadTimeout(MAX_TIMEOUT_MILLIS); 18 | requestFactory.setConnectTimeout(MAX_TIMEOUT_MILLIS); 19 | 20 | return new RestTemplate(requestFactory); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /sc/src/main/java/uk/ac/ebi/atlas/configuration/AppConfig.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.configuration; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.ComponentScan; 5 | import org.springframework.context.annotation.Configuration; 6 | import org.springframework.http.client.SimpleClientHttpRequestFactory; 7 | import org.springframework.web.client.RestTemplate; 8 | 9 | @Configuration 10 | @ComponentScan(basePackages = "uk.ac.ebi.atlas") 11 | public class AppConfig { 12 | private static final int MAX_TIMEOUT_MILLIS = 20000; 13 | 14 | @Bean 15 | public RestTemplate restTemplate() { 16 | SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); 17 | requestFactory.setReadTimeout(MAX_TIMEOUT_MILLIS); 18 | requestFactory.setConnectTimeout(MAX_TIMEOUT_MILLIS); 19 | 20 | return new RestTemplate(requestFactory); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /sc/src/main/webapp/resources/css/theme-atlas.css: -------------------------------------------------------------------------------- 1 | /* 2 | Colour palette: Expression Atlas 3 | */ 4 | 5 | a { 6 | color: #222; 7 | } 8 | 9 | a.label, 10 | .label, 11 | a:hover, 12 | a:focus, 13 | a:active { 14 | color: rgb(0,124,130); 15 | } 16 | 17 | h1 { color: #f7f7f7; } 18 | h2 { color: rgb(0,124,130); } 19 | h3 { color: #444444; } 20 | 21 | a.special { background-color: #7cd17c; } 22 | 23 | .menu .active > a, 24 | .tag, 25 | .button, 26 | .button.primary { 27 | background-color: #3497c5; 28 | } 29 | .button.primary:hover, 30 | .button.primary:focus, 31 | .button:hover, 32 | .button:focus, 33 | .button:active { background: #2f5767; } 34 | 35 | .tabs-title > a { 36 | color: #3e3e3e; 37 | } 38 | .tabs-title > a:hover { 39 | background: aliceblue; 40 | color: #0a0a0a; 41 | } 42 | .tabs-title > a:focus, 43 | .tabs-title > a[aria-selected='true'] { 44 | color: #0a0a0a; 45 | background: #e6e6e6; 46 | } 47 | 48 | /* end */ 49 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/analyticsindex/MicroarrayExperimentDataPoint.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.analyticsindex; 2 | 3 | import uk.ac.ebi.atlas.experimentimport.analytics.differential.microarray.MicroarrayDifferentialAnalytics; 4 | import uk.ac.ebi.atlas.model.experiment.differential.microarray.MicroarrayExperiment; 5 | 6 | public class MicroarrayExperimentDataPoint extends DifferentialExperimentDataPoint { 7 | 8 | public MicroarrayExperimentDataPoint(MicroarrayExperiment experiment, 9 | MicroarrayDifferentialAnalytics microarrayDifferentialAnalytics, 10 | String conditionSearch, 11 | int numReplicates) { 12 | super(experiment, microarrayDifferentialAnalytics, conditionSearch, numReplicates); 13 | propertyMap.put("t_statistic", microarrayDifferentialAnalytics.getTStatistic()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /sc/src/main/javascript/bundles/experiment-page/src/supplementary-information/AnalysisMethodsTable.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | 4 | import Linkify from 'linkifyjs/react' 5 | 6 | const AnalysisMethodsTable = ({data}) => 7 | 8 | 9 | 10 | {data[0].map((element, index) => )} 11 | 12 | 13 | 14 | { 15 | data.slice(1, data.length).map((row, index) => 16 | 17 | {row.map((element, index) => 18 | 21 | )} 22 | 23 | ) 24 | } 25 | 26 |
{element}
19 | {element} 20 |
27 | 28 | AnalysisMethodsTable.propTypes = { 29 | data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired 30 | } 31 | 32 | export default AnalysisMethodsTable 33 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/solr/bioentities/admin/monitor/BioentityIndexMonitorTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.solr.bioentities.admin.monitor; 2 | 3 | import org.junit.Before; 4 | import org.junit.Test; 5 | import org.junit.runner.RunWith; 6 | import org.mockito.Mock; 7 | import org.mockito.junit.MockitoJUnitRunner; 8 | 9 | import java.nio.file.Paths; 10 | 11 | import static org.mockito.Mockito.verify; 12 | 13 | @RunWith(MockitoJUnitRunner.class) 14 | public class BioentityIndexMonitorTest { 15 | 16 | @Mock 17 | private IndexingProgress indexingProgressMock; 18 | 19 | private BioentityIndexMonitor subject; 20 | 21 | @Before 22 | public void init() { 23 | subject = new BioentityIndexMonitor(Paths.get("foo"), indexingProgressMock); 24 | } 25 | 26 | @Test 27 | public void startShouldResetIndexingProgress() { 28 | subject.start(); 29 | verify(indexingProgressMock).reset(); 30 | } 31 | 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/bioentity/properties/PropertyLink.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.bioentity.properties; 2 | 3 | import com.google.gson.JsonObject; 4 | 5 | public class PropertyLink { 6 | 7 | private String text; 8 | private String url; 9 | private int relevance; 10 | 11 | PropertyLink(String text, String url, int relevance) { 12 | this.text = text; 13 | this.url = url; 14 | this.relevance = relevance; 15 | } 16 | 17 | public String getText() { 18 | return text; 19 | } 20 | 21 | public String getUrl() { 22 | return url; 23 | } 24 | 25 | public int getRelevance() { 26 | return relevance; 27 | } 28 | 29 | public JsonObject toJson() { 30 | JsonObject result = new JsonObject(); 31 | result.addProperty("text", text); 32 | result.addProperty("url", url); 33 | result.addProperty("relevance", relevance); 34 | return result; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentpage/baseline/genedistribution/HistogramAcrossGenes.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentpage.baseline.genedistribution; 2 | 3 | import com.google.common.base.Preconditions; 4 | import com.google.gson.JsonObject; 5 | 6 | import static uk.ac.ebi.atlas.utils.GsonProvider.GSON; 7 | 8 | public class HistogramAcrossGenes { 9 | private final int[] histogram; 10 | private final double[] cutoffs; 11 | 12 | public HistogramAcrossGenes(int[] histogram, double[] cutoffs) { 13 | Preconditions.checkArgument(histogram.length == cutoffs.length); 14 | 15 | this.histogram = histogram; 16 | this.cutoffs = cutoffs; 17 | } 18 | 19 | public JsonObject asJson() { 20 | JsonObject result = new JsonObject(); 21 | 22 | result.add("bins", GSON.toJsonTree(cutoffs).getAsJsonArray()); 23 | result.add("counts", GSON.toJsonTree(histogram).getAsJsonArray()); 24 | 25 | return result; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /gxa/src/main/webapp/resources/js/lib/jquery-json-tag-editor/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-tag-editor", 3 | "description": "A powerful and lightweight tag editor plugin for jQuery.", 4 | "version": "1.0.20", 5 | "dependencies": { 6 | "jquery": ">=1.7", 7 | "caret": null 8 | }, 9 | "homepage": "https://github.com/Pixabay/jQuery-tagEditor", 10 | "authors": [{ 11 | "name": "Simon Steinberger", 12 | "url": "https://pixabay.com/users/Simon/", 13 | "email": "simon@pixabay.com" 14 | }], 15 | "keywords": [ 16 | "tags", 17 | "keywords", 18 | "editor", 19 | "drag and drop", 20 | "editable", 21 | "edit" 22 | ], 23 | "licenses": [{ 24 | "type": "MIT", 25 | "url": "http://www.opensource.org/licenses/mit-license.php" 26 | }], 27 | "ignore": [ 28 | "bower.json", 29 | "demo.html", 30 | "readme.md", 31 | "tag-editor.jquery.json" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/bioentity/properties/PropertyLinkTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.bioentity.properties; 2 | 3 | import com.google.gson.JsonObject; 4 | import org.junit.Test; 5 | 6 | import static org.hamcrest.Matchers.emptyString; 7 | import static org.hamcrest.Matchers.is; 8 | import static org.junit.Assert.assertThat; 9 | import static uk.ac.ebi.atlas.utils.GsonProvider.GSON; 10 | 11 | public class PropertyLinkTest { 12 | @Test 13 | public void constructorWithoutUrl() { 14 | PropertyLink subject = new PropertyLink("foobar", "", 0); 15 | assertThat(subject.getUrl(), is(emptyString())); 16 | } 17 | 18 | @Test 19 | public void toJson() { 20 | assertThat( 21 | new PropertyLink("foobar", "http://foobar.com/foobar", 0).toJson(), 22 | is(GSON.fromJson( 23 | "{\"text\":\"foobar\",\"url\":\"http://foobar.com/foobar\",\"relevance\":0}", 24 | JsonObject.class))); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/experimentpage/qc/QcReportUtil.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentpage.qc; 2 | 3 | import org.apache.commons.io.IOUtils; 4 | 5 | import javax.servlet.http.HttpServletRequest; 6 | import java.io.IOException; 7 | import java.io.InputStream; 8 | import java.io.UncheckedIOException; 9 | import java.io.Writer; 10 | import java.nio.charset.Charset; 11 | import java.nio.file.Path; 12 | 13 | import static java.nio.file.Files.newInputStream; 14 | 15 | public class QcReportUtil { 16 | protected QcReportUtil() { 17 | throw new UnsupportedOperationException(); 18 | } 19 | 20 | public static void printContent(HttpServletRequest request, Writer out) { 21 | Path filePath = (Path) request.getAttribute("contentPath"); 22 | try (InputStream f = newInputStream(filePath)) { 23 | IOUtils.copy(f, out, Charset.defaultCharset()); 24 | } catch (IOException e) { 25 | throw new UncheckedIOException(e); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/search/DatabaseQuery.java: -------------------------------------------------------------------------------- 1 | 2 | package uk.ac.ebi.atlas.search; 3 | 4 | import com.google.common.collect.Lists; 5 | 6 | import java.util.List; 7 | 8 | public class DatabaseQuery { 9 | 10 | private List params = Lists.newArrayList(); 11 | private StringBuilder queryBuilder = new StringBuilder(); 12 | 13 | public void addParameter(T value) { 14 | params.add(value); 15 | } 16 | 17 | public List getParameters() { 18 | return params; 19 | } 20 | 21 | public String getQuery() { 22 | return queryBuilder.toString(); 23 | } 24 | 25 | void setQueryString(String query) { 26 | queryBuilder = new StringBuilder(query); 27 | } 28 | 29 | public DatabaseQuery appendToQueryString(String text) { 30 | queryBuilder.append(text); 31 | return this; 32 | } 33 | 34 | @Override 35 | public String toString() { 36 | return "query: " + getQuery() + ", params: " + params; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/web/ProteomicsBaselineRequestPreferences.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.web; 2 | 3 | import uk.ac.ebi.atlas.model.ExpressionUnit; 4 | import uk.ac.ebi.atlas.search.SemanticQuery; 5 | 6 | public class ProteomicsBaselineRequestPreferences extends BaselineRequestPreferences { 7 | public static final double DEFAULT_CUTOFF = 0.0d; 8 | 9 | @Override 10 | public double getDefaultCutoff() { 11 | return DEFAULT_CUTOFF; 12 | } 13 | 14 | public static ProteomicsBaselineRequestPreferences requestAllData() { 15 | ProteomicsBaselineRequestPreferences preferences = new ProteomicsBaselineRequestPreferences(); 16 | preferences.setCutoff(VERY_SMALL_NON_ZERO_VALUE); 17 | preferences.setGeneQuery(SemanticQuery.create()); 18 | return preferences; 19 | } 20 | 21 | @Override 22 | public ExpressionUnit.Absolute.Protein getUnit() { 23 | return ExpressionUnit.Absolute.Protein.ANY; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/solr/cloud/collections/AnalyticsCollectionProxyTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.solr.cloud.collections; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import uk.ac.ebi.atlas.model.ExpressionUnit; 5 | 6 | import static org.assertj.core.api.Assertions.assertThat; 7 | 8 | class AnalyticsCollectionProxyTest { 9 | @Test 10 | void tpmAndFpkmFieldsAreDifferent() { 11 | assertThat(AnalyticsCollectionProxy.getExpressionLevelFieldNames(ExpressionUnit.Absolute.Rna.TPM)) 12 | .isNotEqualTo(AnalyticsCollectionProxy.getExpressionLevelFieldNames(ExpressionUnit.Absolute.Rna.FPKM)); 13 | } 14 | 15 | @Test 16 | void proteomicUnitsAndTpmsAreTheSameField() { 17 | assertThat(AnalyticsCollectionProxy.getExpressionLevelFieldNames(ExpressionUnit.Absolute.Protein.ANY)) 18 | .isEqualTo(AnalyticsCollectionProxy.getExpressionLevelFieldNames(ExpressionUnit.Absolute.Rna.TPM)); 19 | } 20 | 21 | // TODO add tests for asAnalyticsGeneQuery 22 | } 23 | -------------------------------------------------------------------------------- /gxa/src/main/java/uk/ac/ebi/atlas/home/JsonSpeciesSummaryController.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.home; 2 | 3 | import org.springframework.http.MediaType; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RequestParam; 6 | import org.springframework.web.bind.annotation.RestController; 7 | import uk.ac.ebi.atlas.model.card.CardModelFactory; 8 | 9 | @RestController 10 | public class JsonSpeciesSummaryController extends SpeciesSummaryController { 11 | public JsonSpeciesSummaryController(GxaSpeciesSummaryDao speciesSummaryDao, 12 | CardModelFactory cardModelFactory) { 13 | super(speciesSummaryDao, cardModelFactory); 14 | } 15 | 16 | @GetMapping(value = "/json/species-summary", 17 | produces = MediaType.APPLICATION_JSON_UTF8_VALUE) 18 | public String getSpeciesSummaryGroupedByKingdom(@RequestParam(defaultValue = "6") int limit) { 19 | return super.getPopularExperimentsGroupedByKingdom(limit); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sc/src/main/java/uk/ac/ebi/atlas/home/JsonSpeciesSummaryController.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.home; 2 | 3 | import org.springframework.http.MediaType; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RequestParam; 6 | import org.springframework.web.bind.annotation.RestController; 7 | import uk.ac.ebi.atlas.model.card.CardModelFactory; 8 | 9 | @RestController 10 | public class JsonSpeciesSummaryController extends SpeciesSummaryController { 11 | public JsonSpeciesSummaryController(ScxaSpeciesSummaryDao speciesSummaryDao, 12 | CardModelFactory cardModelFactory) { 13 | super(speciesSummaryDao, cardModelFactory); 14 | } 15 | 16 | @GetMapping(value = "/json/species-summary", 17 | produces = MediaType.APPLICATION_JSON_UTF8_VALUE) 18 | public String getSpeciesSummaryGroupedByKingdom(@RequestParam(defaultValue = "6") int limit) { 19 | return super.getPopularExperimentsGroupedByKingdom(limit); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentimport/analytics/differential/rnaseq/RnaSeqDifferentialAnalyticsInputStreamFactory.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentimport.analytics.differential.rnaseq; 2 | 3 | import uk.ac.ebi.atlas.model.resource.AtlasResource; 4 | import uk.ac.ebi.atlas.resource.DataFileHub; 5 | 6 | import javax.inject.Inject; 7 | import javax.inject.Named; 8 | import java.io.IOException; 9 | 10 | @Named 11 | public class RnaSeqDifferentialAnalyticsInputStreamFactory { 12 | 13 | private final DataFileHub dataFileHub; 14 | 15 | @Inject 16 | public RnaSeqDifferentialAnalyticsInputStreamFactory(DataFileHub dataFileHub) { 17 | this.dataFileHub = dataFileHub; 18 | } 19 | 20 | public RnaSeqDifferentialAnalyticsInputStream create(String experimentAccession) throws IOException { 21 | AtlasResource resource = dataFileHub.getRnaSeqDifferentialExperimentFiles(experimentAccession).analytics; 22 | return new RnaSeqDifferentialAnalyticsInputStream(resource.getReader(), resource.toString()); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/resource/ResourceType.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model.resource; 2 | 3 | import uk.ac.ebi.atlas.controllers.ResourceNotFoundException; 4 | 5 | public enum ResourceType { 6 | PLOT_MA("ma-plot"), //accessed as ma-plot by old heatmap and otherwise ma-plot.png 7 | PLOT_GSEA_INTERPRO("gsea_interpro"), 8 | PLOT_GSEA_GO("gsea_go"), 9 | PLOT_GSEA_REACTOME("gsea_reactome"), 10 | EXTRA_INFO("extra-info"); 11 | 12 | public final String resourceName; 13 | 14 | ResourceType(String resourceName) { 15 | this.resourceName = resourceName; 16 | } 17 | 18 | public String fileName() { 19 | return resourceName + ".png"; 20 | } 21 | 22 | public static ResourceType forFileName(String fileName) { 23 | for (ResourceType type : values()) { 24 | if (type.fileName().contains(fileName)) { 25 | return type; 26 | } 27 | } 28 | throw new ResourceNotFoundException("no matching resource for file: " + fileName); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/solr/cloud/collections/Gene2ExperimentCollectionProxy.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.solr.cloud.collections; 2 | 3 | import org.apache.solr.client.solrj.SolrClient; 4 | import uk.ac.ebi.atlas.solr.cloud.CollectionProxy; 5 | import uk.ac.ebi.atlas.solr.cloud.SchemaField; 6 | 7 | public class Gene2ExperimentCollectionProxy extends CollectionProxy { 8 | public static final class Gene2ExperimentSchemaField extends SchemaField { 9 | private Gene2ExperimentSchemaField(String fieldName) { 10 | super(fieldName); 11 | } 12 | } 13 | 14 | public static final Gene2ExperimentSchemaField BIOENTITY_IDENTIFIER = 15 | new Gene2ExperimentSchemaField("bioentity_identifier"); 16 | public static final Gene2ExperimentSchemaField EXPERIMENT_ACCESSION = 17 | new Gene2ExperimentSchemaField("experiment_accession"); 18 | 19 | public Gene2ExperimentCollectionProxy(SolrClient solrClient) { 20 | super(solrClient, "scxa-gene2experiment"); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/profiles/IsGeneIdMatchTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.profiles; 2 | 3 | import com.google.common.collect.ImmutableSet; 4 | import org.junit.Test; 5 | import org.junit.runner.RunWith; 6 | import org.mockito.junit.MockitoJUnitRunner; 7 | import uk.ac.ebi.atlas.model.Profile; 8 | import uk.ac.ebi.atlas.model.experiment.baseline.BaselineProfile; 9 | 10 | import java.util.function.Predicate; 11 | 12 | import static org.hamcrest.Matchers.is; 13 | import static org.junit.Assert.assertThat; 14 | 15 | @RunWith(MockitoJUnitRunner.class) 16 | public class IsGeneIdMatchTest { 17 | @Test 18 | public void geneIdMatchesPredicate() { 19 | Predicate acceptancePredicate = new IsGeneIdMatch<>(ImmutableSet.of("GENE1_ID", "GENE2_ID")); 20 | 21 | assertThat(acceptancePredicate.test( 22 | new BaselineProfile("GENE1_ID", "GENE1")), is(true)); 23 | assertThat(acceptancePredicate.test( 24 | new BaselineProfile("different gene id", "different gene name")), is(false)); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/bundles/differential-expression/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Differential Expression demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

14 |
15 |
16 | 17 | 18 | 19 | 20 | 21 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/commons/streams/ObjectInputStreams.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.commons.streams; 2 | 3 | import java.io.IOException; 4 | import java.util.function.Predicate; 5 | 6 | public class ObjectInputStreams { 7 | protected ObjectInputStreams() { 8 | throw new UnsupportedOperationException(); 9 | } 10 | 11 | public static ObjectInputStream filter(final ObjectInputStream unfiltered, final Predicate keep) { 12 | return new ObjectInputStream() { 13 | @Override 14 | public X readNext() { 15 | X result; 16 | do { 17 | result = unfiltered.readNext(); 18 | if (result == null) { 19 | return null; 20 | } 21 | } while (!keep.test(result)); 22 | return result; 23 | } 24 | 25 | @Override 26 | public void close() throws IOException { 27 | unfiltered.close(); 28 | } 29 | }; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/model/SampleCharacteristic.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.model; 2 | 3 | import com.google.auto.value.AutoValue; 4 | import com.google.common.collect.ImmutableSet; 5 | 6 | import java.util.Set; 7 | 8 | @AutoValue 9 | public abstract class SampleCharacteristic { 10 | public abstract String header(); 11 | public abstract String value(); 12 | public abstract Set valueOntologyTerms(); 13 | 14 | public static SampleCharacteristic create(String header, String value) { 15 | return create(header, value, new ImmutableSet.Builder().build()); 16 | } 17 | 18 | public static SampleCharacteristic create(String header, String value, OntologyTerm... ontologyTerms) { 19 | return create(header, value, new ImmutableSet.Builder().add(ontologyTerms).build()); 20 | } 21 | 22 | private static SampleCharacteristic create(String header, String value, Set ontologyTerms) { 23 | return new AutoValue_SampleCharacteristic(header, value, ontologyTerms); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /base/src/test/java/uk/ac/ebi/atlas/solr/cloud/SolrCloudCollectionProxyFactoryIT.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.solr.cloud; 2 | 3 | import org.apache.solr.client.solrj.SolrQuery; 4 | import org.junit.Test; 5 | import org.junit.runner.RunWith; 6 | import org.springframework.test.context.ContextConfiguration; 7 | import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 8 | import uk.ac.ebi.atlas.configuration.TestConfig; 9 | import uk.ac.ebi.atlas.solr.cloud.collections.AnalyticsCollectionProxy; 10 | 11 | import javax.inject.Inject; 12 | 13 | import static org.assertj.core.api.Assertions.assertThat; 14 | 15 | @RunWith(SpringJUnit4ClassRunner.class) 16 | @ContextConfiguration(classes = TestConfig.class) 17 | public class SolrCloudCollectionProxyFactoryIT { 18 | @Inject 19 | private SolrCloudCollectionProxyFactory subject; 20 | 21 | @Test 22 | public void createAnalyticsCollectionProxy() { 23 | assertThat(subject.create(AnalyticsCollectionProxy.class).rawQuery(new SolrQuery("*:*")).getResults().size()) 24 | .isGreaterThan(0); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/experimentimport/experimentdesign/ExperimentDesignFileWriterService.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.experimentimport.experimentdesign; 2 | 3 | import uk.ac.ebi.atlas.model.experiment.ExperimentDesign; 4 | import uk.ac.ebi.atlas.model.experiment.ExperimentType; 5 | import uk.ac.ebi.atlas.resource.DataFileHub; 6 | 7 | import javax.inject.Inject; 8 | import javax.inject.Named; 9 | import java.io.IOException; 10 | 11 | @Named 12 | public class ExperimentDesignFileWriterService { 13 | 14 | private final DataFileHub dataFileHub; 15 | 16 | @Inject 17 | public ExperimentDesignFileWriterService(DataFileHub dataFileHub) { 18 | this.dataFileHub = dataFileHub; 19 | } 20 | 21 | public void writeExperimentDesignFile(String accession, ExperimentType experimentType, ExperimentDesign 22 | experimentDesign) throws IOException { 23 | new ExperimentDesignFileWriter( 24 | dataFileHub.getExperimentFiles(accession).experimentDesignWrite.get(), 25 | experimentType).write(experimentDesign); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /gxa/src/test/java/uk/ac/ebi/atlas/web/ExperimentPageRequestPreferencesTest.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.web; 2 | 3 | import org.junit.Before; 4 | import org.junit.Test; 5 | import org.junit.runner.RunWith; 6 | import org.mockito.junit.MockitoJUnitRunner; 7 | 8 | import static org.hamcrest.MatcherAssert.assertThat; 9 | import static org.hamcrest.Matchers.is; 10 | 11 | @RunWith(MockitoJUnitRunner.class) 12 | public class ExperimentPageRequestPreferencesTest { 13 | private ExperimentPageRequestPreferences subject; 14 | 15 | @Before 16 | public void setUp() { 17 | subject = new RnaSeqBaselineRequestPreferences(); 18 | } 19 | 20 | @Test 21 | public void heatmapMatrixSizeIsSetToTheDefaultRankingSizeIfRequestDoesntSpecifyAnyValue() { 22 | assertThat( 23 | subject.getHeatmapMatrixSize(), 24 | is(ExperimentPageRequestPreferences.DEFAULT_NUMBER_OF_RANKED_GENES)); 25 | //and given 26 | subject.setHeatmapMatrixSize(33); 27 | //then 28 | assertThat(subject.getHeatmapMatrixSize(), is(33)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/commons/writers/TsvWriter.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.commons.writers; 2 | 3 | import au.com.bytecode.opencsv.CSVWriter; 4 | 5 | import java.io.IOException; 6 | import java.io.UncheckedIOException; 7 | import java.io.Writer; 8 | import java.util.List; 9 | 10 | public class TsvWriter extends CSVWriter { 11 | // TODO Maybe we should consider to implement it as TsvWriter, TsvWriter... 12 | public TsvWriter(Writer writer) { 13 | super(writer, '\t'); 14 | } 15 | 16 | @Override 17 | public void writeAll(List allLines) { 18 | try { 19 | super.writeAll(allLines); 20 | super.flush(); 21 | } catch (IOException e) { 22 | throw new UncheckedIOException(e); 23 | } 24 | } 25 | 26 | @Override 27 | public void writeNext(String[] line) { 28 | try { 29 | super.writeNext(line); 30 | super.flush(); 31 | } catch (IOException e) { 32 | throw new UncheckedIOException(e); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /base/src/main/java/uk/ac/ebi/atlas/web/interceptors/AdminInterceptor.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.web.interceptors; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; 6 | 7 | import javax.inject.Named; 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | 11 | @Named 12 | public class AdminInterceptor extends HandlerInterceptorAdapter { 13 | private static final Logger LOGGER = LoggerFactory.getLogger(AdminInterceptor.class); 14 | 15 | @Override 16 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { 17 | if (request.getUserPrincipal() == null) { 18 | return false; 19 | } 20 | 21 | LOGGER.info( 22 | " username: {}, request: {}, query: {}", 23 | request.getUserPrincipal().getName(), 24 | request.getRequestURI(), 25 | request.getQueryString()); 26 | 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/modules/expression-atlas-disclaimers/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Disclaimers demo Demo 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 |
16 |
17 |
18 | 19 | 20 | 21 | 22 | 23 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /gxa/src/main/javascript/modules/expression-atlas-disclaimers/html/render.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | 4 | import disclaimers from '../src/disclaimers' 5 | 6 | const DisclaimerOrCatPicture = ({project}) => { 7 | const Disclaimer = disclaimers[project] 8 | 9 | return ( 10 | Disclaimer ? 11 | : 12 | 13 | ) 14 | } 15 | 16 | const Demo = () => { 17 | const allDisclaimers = 18 | Object.keys(disclaimers) 19 | .map(disclaimerKey => { 20 | const Disclaimer = disclaimers[disclaimerKey] 21 | return

22 | }) 23 | 24 | return( 25 |
26 | {allDisclaimers} 27 | 28 |
29 | 30 |
31 | ) 32 | } 33 | 34 | const render = (options, target) => { 35 | ReactDOM.render(, document.getElementById(target)) 36 | } 37 | 38 | export { render } 39 | -------------------------------------------------------------------------------- /sc/src/test/java/uk/ac/ebi/atlas/configuration/TestConfig.java: -------------------------------------------------------------------------------- 1 | package uk.ac.ebi.atlas.configuration; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.ComponentScan; 5 | import org.springframework.context.annotation.ComponentScan.Filter; 6 | import org.springframework.context.annotation.Configuration; 7 | import org.springframework.context.annotation.FilterType; 8 | import org.springframework.web.client.RestTemplate; 9 | 10 | @Configuration 11 | // Enabling component scanning will also load BasePathsConfig, JdbcConfig and SolrConfig, so just using this class as 12 | // application context is enough in integration tests 13 | @ComponentScan(basePackages = "uk.ac.ebi.atlas", 14 | includeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, value = TestJdbcConfig.class), 15 | excludeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, value = {JdbcConfig.class, AppConfig.class})) 16 | public class TestConfig { 17 | @Bean 18 | public RestTemplate restTemplate() { 19 | return new RestTemplate(); 20 | } 21 | } 22 | --------------------------------------------------------------------------------