Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

TASK-6780 - Port Patch 3.2.1 -> 4.0.0 - Xetabase 2.2.1 -> 3.0.0 #2513

Open
wants to merge 224 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
224 commits
Select commit Hold shift + click to select a range
b15fc09
catalog: fix clinical analysis creation, #TASK-5538, #TASK-5516
jtarraga Jan 25, 2024
23224a3
pom: workaround for SonarCloud issue on CI/CD, #TASK-5516
jtarraga Jan 25, 2024
4ef8cdf
Resolve conflicts, #TASK-5516
jtarraga Feb 8, 2024
32710de
Prepare cicd release
juanfeSanahuja Mar 8, 2024
1e1ca35
Resolve conflicts, #TASK-5516
jtarraga Mar 12, 2024
756ac07
Merge branch 'develop' into TASK-5516
jtarraga Apr 15, 2024
3e75a86
storage: Implement HBase table autoscale #TASK-5448
j-coll Apr 19, 2024
d710c9d
Merge branch 'develop' into TASK-5448
j-coll May 14, 2024
3a77b59
storage: Fix hbase compatibility for table autoscale. #TASK-5448
j-coll May 16, 2024
28d9ecd
storage: Add variant-setup operation. #TASK-5861, #TASK-5448
j-coll May 16, 2024
17955cf
storage: Make variant-setup mandatory for any operation. #TASK-5861, …
j-coll May 16, 2024
55d5655
storage: Change some default variant-setup values. #TASK-5861, #TASK-…
j-coll May 17, 2024
3b42add
Merge branch 'release-3.1.x'
juanfeSanahuja May 20, 2024
36db72d
Merge branch 'release-3.1.x'
juanfeSanahuja May 20, 2024
b49d9e1
pom: Release 3.1.0
juanfeSanahuja May 20, 2024
14aa894
Merge branch 'develop'
juanfeSanahuja May 20, 2024
737fc4d
Merge branch 'release-3.1.x'
juanfeSanahuja May 20, 2024
cecf59d
Merge branch 'release-3.1.x'
juanfeSanahuja May 21, 2024
7274199
Merge branch 'release-3.1.x'
juanfeSanahuja May 21, 2024
470c290
Merge branch 'release-3.1.x'
juanfeSanahuja May 21, 2024
51f0e85
Merge branch 'release-3.1.x'
juanfeSanahuja May 21, 2024
0e9dda9
app: Add migration VariantSetupMigration. Add migration test. #TASK-5…
j-coll May 22, 2024
5e31a8a
storage: Change param names from VariantSetupParams #TASK-5861, #TASK…
j-coll May 22, 2024
a65f4a2
app: Fix compilation issue. #TASK-5861, #TASK-5448
j-coll May 22, 2024
f35865a
analysis: update Exomiser analysis in order to use the Docker version…
jtarraga May 23, 2024
4867904
app: add Exomiser version as paremeter for the Exomiser interpretatio…
jtarraga May 23, 2024
ad7bd6a
app: add parameter descriptions, #TASK-6297, #TASK-6255
jtarraga May 23, 2024
28e32c5
client: generate clients, #TASK-6297, #TASK-6255
jtarraga May 23, 2024
bdd4f80
storage: Fix tests. #TASK-5861, #TASK-5448
j-coll May 23, 2024
f5ea5a4
core: Add data field descriptions to VariantSetupPatams. #TASK-5861, …
j-coll May 23, 2024
d1efc04
core: fix configuration file, #TASK-6297, #TASK-6255
jtarraga May 23, 2024
e396772
storage: Add normalization extensions to setup params. #TASK-5861, #T…
j-coll May 23, 2024
5f1029a
storage: Fix VariantSearchTest. #TASK-6136
j-coll May 27, 2024
fc84089
catalog: add 'version' to ClinicalAnalysis, #TASK-5964 #TASK-6289
pfurio May 27, 2024
b5d46c6
catalog: add new test for versioning, #TASK-5964 #TASK-6289
pfurio May 28, 2024
b62463f
catalog: fix issue in installIndexes, #TASK-5964
pfurio May 28, 2024
7ae6a0f
catalog: add new ADMIN permission for ClinicalAnalysis, #TASK-6288
pfurio May 28, 2024
9f46a7c
storage: Fix tests from HadoopVariantStorageEngineSplitDataTest #TASK…
j-coll May 28, 2024
a6c1789
catalog: test new ADMIN permission, #TASK-6288 #TASK-5964
pfurio May 29, 2024
f15978b
storage: Avoid unnecesary sample metadata updates updating cohorts #T…
j-coll May 31, 2024
e968bd2
storage: Improve HBaseLockManager errors and warn messages. #TASK-5895
j-coll May 31, 2024
dd1dcec
storage: Increase metadata lock duration and timeout. #TASK-5895
j-coll May 31, 2024
1c7db62
storage: Improve testing SampleIndexAggregation of intergenic queries…
j-coll May 31, 2024
e38d0fc
Merge branch 'release-2.12.x' into TASK-6136
j-coll Jun 3, 2024
f0e47fa
analysis: use the FileUtils.copyFile and rename Tool to AnalysisTool,…
jtarraga Jun 3, 2024
9f2b06d
Prepare next release 2.12.6-SNAPSHOT
juanfeSanahuja Jun 4, 2024
68b33c1
Merge branch 'develop' into TASK-5964
pfurio Jun 5, 2024
e2b001c
analysis: use a list of tools instead of a map in the configuration f…
jtarraga Jun 5, 2024
0c2fe66
analysis: use the resource version instead of the exomiser version to…
jtarraga Jun 6, 2024
eb0497f
Merge branch 'develop' into TASK-5448
j-coll Jun 6, 2024
dac0233
storage: Change default enabled normalization extensions. From NONE t…
j-coll Jun 6, 2024
6193833
server: Add variant/setup operation. #TASK-5861, #TASK-5448
j-coll Jun 6, 2024
7fcd257
Merge pull request #2457 from opencb/TASK-6136
j-coll Jun 6, 2024
97c09c6
Merge branch 'release-2.12.x' into TASK-5895
j-coll Jun 6, 2024
dc29730
analysis: set dinamically the ClinVar white list depending on the fil…
jtarraga Jun 6, 2024
2077cc5
analysis: improve log messages, #TASK-6297, #TASK-6255
jtarraga Jun 7, 2024
53c4c27
core: improve description of the Exomiser version parameter, #TASK-62…
jtarraga Jun 7, 2024
a770236
client: generate clients, #TASK-6297, #TASK-6255
jtarraga Jun 7, 2024
1c1862e
Merge branch 'develop' into TASK-6255
jtarraga Jun 7, 2024
983405d
catalog: apply data model changes, #TASK-5964
pfurio Jun 7, 2024
d45c720
app: add some migrations, #TASK-5964
pfurio Jun 10, 2024
2c1608e
app: add new ClinicalStatus migration, #TASK-5964
pfurio Jun 11, 2024
1ee2068
app: fix migration script, #TASK-5964
pfurio Jun 11, 2024
57b6b8d
app: improve scenario where status.id is null, #TASK-5964
pfurio Jun 11, 2024
4b41d65
catalog: fix status indexes, #TASK-5964
pfurio Jun 11, 2024
f53cb74
app: remove status name migration script, #TASK-5964
pfurio Jun 12, 2024
690a49c
Merge branch 'develop' into TASK-5516
jtarraga Jun 13, 2024
63dec4c
Merge pull request #2459 from opencb/TASK-5895
j-coll Jun 17, 2024
b6e6e86
storage: Fix compoundHet query in single-study projects. #TASK-6311
j-coll Jun 20, 2024
51e8a5d
Merge branch 'TASK-6345' into TASK-6345-2.12.6
pfurio Jun 21, 2024
c626659
Merge pull request #2471 from opencb/TASK-6311
j-coll Jun 25, 2024
ec45ff3
Merge branch 'develop' into TASK-5964
pfurio Jun 26, 2024
b4319d0
analysis: add config files for Exomiser versions 13.1 and 14.0 using …
jtarraga Jun 26, 2024
2c2f21b
cicd: Modify pull request approve #TASK-6399
juanfeSanahuja Jun 26, 2024
5a87a6e
cicd: Added xetabase script #TASK-6399
juanfeSanahuja Jun 26, 2024
d2d02ba
Merge branch 'TASK-6345' into TASK-6345-2.12.6
pfurio Jun 27, 2024
d4eeb13
Merge branch 'release-2.12.x' into TASK-6345-2.12.6
pfurio Jun 27, 2024
0fec64a
catalog: check ADMIN permissions for DONE statuses, #TASK-5964
pfurio Jun 27, 2024
9c2e72d
app: move migration folder, #TASK-5964
pfurio Jun 27, 2024
f3ac930
storage: Fix numTotalSamples variant result value. #TASK-6436
j-coll Jun 28, 2024
fbecf0a
Merge branch 'develop' into TASK-6255
jtarraga Jun 28, 2024
e95bae4
storage: Fix canUseThisExecutor on SampleIndexOnlyVariantQueryExecuto…
j-coll Jun 28, 2024
ccd3da9
Merge pull request #2478 from opencb/TASK-6436
j-coll Jul 1, 2024
9a92971
Merge branch 'develop' into TASK-5964
pfurio Jul 1, 2024
8063950
Merge branch 'develop' into TASK-5964
pfurio Jul 1, 2024
76a5a43
cicd: Added xetabase script #TASK-6399
juanfeSanahuja Jul 1, 2024
8785c7a
Merge branch 'release-2.12.x' into TASK-6345-2.12.6
pfurio Jul 3, 2024
b05e8ba
Merge branch 'develop' into TASK-5516
jtarraga Jul 3, 2024
7e02996
Merge branch 'develop' into TASK-6255
jtarraga Jul 3, 2024
54b6676
Prepare release 2.12.6
juanfeSanahuja Jul 5, 2024
fb2df63
Prepare next release 2.12.7-SNAPSHOT
juanfeSanahuja Jul 5, 2024
fc068d4
Merge branch 'develop' into TASK-5964
pfurio Jul 5, 2024
732f2ff
catalog: use panelLocked constant, #TASK-5964
pfurio Jul 5, 2024
393170e
Merge branch 'release-2.12.x' into TASK-6345-2.12.6
pfurio Jul 8, 2024
6485ab4
pom: Added github packages to manage snapshots #TASK-6345
juanfeSanahuja Jul 8, 2024
3552634
pom: Added sonatype also manage snapshots #TASK-6345
juanfeSanahuja Jul 8, 2024
941c98b
pom: Comment sonatype to manage snapshots #TASK-6345
juanfeSanahuja Jul 8, 2024
59fb8de
pom: Comment repositories section #TASK-6345
juanfeSanahuja Jul 8, 2024
166300c
pom: Restore repositories section #TASK-6345
juanfeSanahuja Jul 8, 2024
008a3bb
Merge branch 'TASK-6345' into TASK-6345-2.12.6
pfurio Jul 8, 2024
e3de2b8
storage-core pom: Exclusion distlib #TASK-6345
juanfeSanahuja Jul 8, 2024
437c164
Merge branch 'TASK-6345-2.12.6' of github.com:opencb/opencga into TAS…
juanfeSanahuja Jul 8, 2024
9e480fc
Merge branch 'TASK-6345' into TASK-6345-2.12.6
pfurio Jul 9, 2024
5d07f87
Merge branch 'TASK-6345' into TASK-6345-2.12.6
pfurio Jul 10, 2024
d1155ad
Merge branch 'develop' into TASK-5448
j-coll Jul 10, 2024
e8666f9
app: Fix merge issues. #TASK-5448
j-coll Jul 10, 2024
af360fa
app: add missing migration for panelLock field, #TASK-5964
pfurio Jul 10, 2024
44062c1
storage: Allow repeat variant-setup before indexing any file. #TASK-5448
j-coll Jul 10, 2024
88faaac
Merge branch 'develop' into TASK-6255
jtarraga Jul 10, 2024
00b985d
storage: Remove some default normalization extensions. #TASK-5448
j-coll Jul 10, 2024
ceca043
Merge pull request #2473 from opencb/TASK-6345-2.12.6
pfurio Jul 11, 2024
89fbe04
Merge branch 'develop' into TASK-5964
pfurio Jul 11, 2024
04be875
Merge branch 'develop' into TASK-5964
pfurio Jul 11, 2024
e190dd8
Merge branch 'develop' into TASK-6255
jtarraga Jul 11, 2024
f7e8ccb
storage: Do not use CIEND on INSERTIONS to build HBase RowKey. #TASK-…
j-coll Jul 16, 2024
b99b99b
Merge branch 'release-3.2.x'
juanfeSanahuja Jul 17, 2024
9fae390
Prepare new development branch release-3.2.x
juanfeSanahuja Jul 17, 2024
f601da6
storage: Remove uneeded assumptions in tests. #TASK-6558
j-coll Jul 17, 2024
18da2cc
server: add new tagsAction query parameter, #TASK-6568
pfurio Jul 18, 2024
bea231f
server: add tagsAction to study notes update, #TASK-6568
pfurio Jul 18, 2024
bdbc364
catalog: ensure password change and reset use same policy, #TASK-6494
pfurio Jul 18, 2024
7907502
client: regenerate clients, #TASK-6568
pfurio Jul 18, 2024
c21ef79
Merge branch 'release-3.2.x' into TASK-5964
pfurio Jul 19, 2024
2b111b2
Merge remote-tracking branch 'origin/release-3.2.x' into TASK-5448
j-coll Jul 19, 2024
ce0a8db
analysis: Fix compilation issues. #TASK-5448
j-coll Jul 19, 2024
9995ddb
app: improve migration, #TASK-5964
pfurio Jul 19, 2024
d94e6c2
Merge branch 'release-3.2.x' into TASK-6255
jtarraga Jul 22, 2024
b87d9de
Merge branch 'release-3.2.x' into TASK-5516
jtarraga Jul 22, 2024
b006b55
catalog: archive old password, #TASK-6494
pfurio Jul 23, 2024
7c85209
core: rename lastChangeDate for lastModified, #TASK-6494
pfurio Jul 24, 2024
0f34c37
server: change executor cli generator to consider maps, #TASK-6626
pfurio Jul 24, 2024
b060958
app: regenerate cli executors, #TASK-6626
pfurio Jul 24, 2024
f35ed46
Prepare next release 2.12.6.1-SNAPSHOT
j-coll Jul 24, 2024
9a7dd15
storage: Hash large vairants into solr collections. Add unhashed attr…
j-coll Jul 24, 2024
5d3c7f4
storage: Fix some tests. #TASK-6596
j-coll Jul 24, 2024
84af7c1
storage: Fix NPE at some tests. #TASK-6596
j-coll Jul 24, 2024
f7b4b52
storage: Fix VariantDBAdaptorTest. #TASK-6596
j-coll Jul 25, 2024
2dcd910
Merge pull request #2490 from opencb/TASK-6596
j-coll Jul 25, 2024
8cdc46c
Prepare release 2.12.6.1
juanfeSanahuja Jul 26, 2024
9a38f03
storage-core: call the function parseConsequenceTypes from VariantQue…
jtarraga Jul 29, 2024
477938f
Merge branch 'release-3.2.x' into TASK-6399
juanfeSanahuja Jul 29, 2024
9dbf1f8
Prepare Port Patch 1.10.6.1 -> 2.2.1 #TASK-6515
juanfeSanahuja Jul 30, 2024
26e8c2e
Merge branch 'release-3.2.x' into TASK-6515
juanfeSanahuja Jul 30, 2024
cd4faac
Merge pull request #2465 from opencb/TASK-5516
jtarraga Jul 31, 2024
9130c6d
Merge branch 'release-3.2.x' into TASK-6492
jtarraga Aug 2, 2024
68a80b8
catalog: query case by version, #TASK-5964
pfurio Aug 5, 2024
ebf7bf1
Merge branch 'release-3.2.x' into TASK-5964
pfurio Aug 5, 2024
2015f69
Merge branch 'release-3.2.x' into TASK-6568
pfurio Aug 5, 2024
00cc8a3
Merge pull request #2485 from opencb/TASK-6568
pfurio Aug 5, 2024
9333287
Merge branch 'release-3.2.x' into TASK-6492
jtarraga Aug 5, 2024
7148b3f
Merge pull request #2492 from opencb/TASK-6492
jtarraga Aug 5, 2024
a1f19fe
Merge pull request #2484 from opencb/TASK-6558
j-coll Aug 6, 2024
9a14e2a
Merge branch 'release-3.2.x' into TASK-6494
pfurio Aug 6, 2024
4d2dba5
core: update configuration.yml, #TASK-6494
pfurio Aug 6, 2024
5035949
Merge branch 'release-3.2.x' into TASK-5964
pfurio Aug 6, 2024
f544ee5
Merge branch 'release-3.2.x' into TASK-6626
pfurio Aug 7, 2024
86512aa
analysis: Fix ClinicalInterpretationAnalysisTest tests. #TASK-6703
j-coll Jul 11, 2024
d84e860
storage: Fix VariantLocalConflictResolverTest tests. #TASK-6703
j-coll Aug 7, 2024
fab3cab
analysis: Fix test VariantOperationsTest#testCellbaseConfigure #TASK-…
j-coll Jul 12, 2024
ed3efc8
storage: Fix tests VariantQueryExecutorTest. #TASK-6703
j-coll Aug 7, 2024
0415a51
Merge pull request #2489 from opencb/TASK-6626
pfurio Aug 8, 2024
2548e12
Merge branch 'release-3.2.x' into TASK-6494
pfurio Aug 8, 2024
90c4fe8
Merge pull request #2493 from opencb/TASK-6703
j-coll Aug 8, 2024
97ebf2c
Merge branch 'release-3.2.x' into TASK-5964
pfurio Aug 8, 2024
ebaef56
catalog: add salt to passwords, #TASK-6494
pfurio Aug 8, 2024
5c8c214
Fix Kill job method #TASK-6636
juanfeSanahuja Aug 9, 2024
f5c1995
catalog: backwards compatibility, #TASK-6494
pfurio Aug 9, 2024
85f58f3
catalog: increase random salt length to 32, #TASK-6494
pfurio Aug 9, 2024
893787c
core: add constant variable for the salt lenght, #TASK-6494
pfurio Aug 9, 2024
69d88bb
Merge branch 'release-3.2.x' into TASK-6515
juanfeSanahuja Aug 9, 2024
00ddc0a
Fix compile error CELLBASE_DATA_RELEASE_GRCH38 #TASK-6515
juanfeSanahuja Aug 9, 2024
759a7c6
catalog: add salt to encryptPassword method, #TASK-6494
pfurio Aug 9, 2024
bf2a0d8
Merge pull request #2494 from opencb/TASK-6636
juanfeSanahuja Aug 13, 2024
d321044
storage: Fix merge issue with ASSEMBLY. #TASK-6515
j-coll Aug 13, 2024
f031313
Merge branch 'release-3.2.x' into TASK-6255
jtarraga Aug 13, 2024
8c1cde1
storage: Embedded solr should be optional in tests. #TASK-6515
j-coll Aug 13, 2024
1762039
Merge branch 'release-3.2.x' into TASK-6399
juanfeSanahuja Aug 14, 2024
cb26306
Merge pull request #2477 from opencb/TASK-6399
juanfeSanahuja Aug 14, 2024
fdc4d89
catalog: simplify code, #TASK-6494
pfurio Aug 19, 2024
03fe41e
Merge branch 'release-3.2.x' into TASK-6494
pfurio Aug 19, 2024
b21b02d
Merge branch 'release-3.2.x' into TASK-5964
pfurio Aug 19, 2024
568244c
Merge branch 'release-3.2.x' into TASK-6515
pfurio Aug 19, 2024
a2579af
catalog: add missing snapshot to parse query method, #TASK-5964
pfurio Aug 19, 2024
f1572cb
Merge pull request #2491 from opencb/TASK-6515
pfurio Aug 20, 2024
445ed19
Merge branch 'release-3.2.x' into TASK-6255
pfurio Aug 20, 2024
c636e41
Merge pull request #2462 from opencb/TASK-6255
pfurio Aug 20, 2024
06ad286
catalog: allow users with ADMIN to update Interpretations, #TASK-5964
pfurio Aug 20, 2024
7c3f885
catalog: check Interpretations can't be touched when CLOSED, #TASK-5964
pfurio Aug 21, 2024
be6da9c
storage: Define start-stop row scan for deleting files from archive t…
j-coll Aug 22, 2024
3d31b1b
storage: Fix param `--force` for vairant-file-delete #TASK-6737
j-coll Aug 22, 2024
fdf2904
storage: Add tests for variant-file-delete `--force`. #TASK-6737
j-coll Aug 22, 2024
831c2cb
catalog: allow updating status from type CLOSED, #TASK-5964
pfurio Aug 22, 2024
d1c3014
Merge branch 'release-3.2.x' into TASK-6494
pfurio Aug 22, 2024
35074a6
Merge pull request #2488 from opencb/TASK-6494
pfurio Aug 22, 2024
40651f8
Merge branch 'release-3.2.x' into TASK-5964
pfurio Aug 22, 2024
d624826
Merge pull request #2474 from opencb/TASK-5964
pfurio Aug 28, 2024
0364cfe
Merge branch 'release-3.2.x' into TASK-5448
j-coll Aug 29, 2024
0c6551b
storage: Ensure SearchIndexVariantQueryExecutor is used with skip>500…
j-coll Aug 30, 2024
1b764f1
Merge pull request #2498 from opencb/TASK-6789
j-coll Aug 30, 2024
3f9581a
Merge pull request #2497 from opencb/TASK-6737
j-coll Aug 30, 2024
e3565be
Merge pull request #2496 from opencb/TASK-6756
j-coll Aug 30, 2024
11ecea3
Prepare release 2.12.7
juanfeSanahuja Sep 2, 2024
ce3d6c4
storage: Remove verbose logging. #TASK-5448
j-coll Sep 2, 2024
2c63795
Merge branch 'release-3.2.x' into TASK-5448
j-coll Sep 2, 2024
fc2e0d9
storage: Fix compilation issue. #TASK-5448
j-coll Sep 2, 2024
8bc7529
Merge pull request #2454 from opencb/TASK-5448
j-coll Sep 3, 2024
3412c6b
preparing Port Patch 1.10.7 -> 2.2.1
juanfeSanahuja Sep 3, 2024
58db895
Merge branch 'release-3.2.x' into TASK-6708
juanfeSanahuja Sep 3, 2024
85cd1ee
cicd: Upload reference to develop branch in pull-request-approve to t…
juanfeSanahuja Sep 4, 2024
b664fb1
storage: Fix junit tests. #TASK-6708
j-coll Sep 6, 2024
b190236
app: Fix migration test. Missing projectMetadata #TASK-6708
j-coll Sep 6, 2024
f0b62af
anaysis: Fix OpenCGATestExternalResource creating analysis/exomiser. …
j-coll Sep 6, 2024
7a4ad8f
Merge pull request #2499 from opencb/TASK-6708
juanfeSanahuja Sep 6, 2024
cfd8645
Merge branch 'release-3.2.x' into TASK-6807
juanfeSanahuja Sep 6, 2024
117ca38
cicd: Fix xetabase branch calculation #TASK-6807
juanfeSanahuja Sep 9, 2024
e85b34b
cicd: Fix xetabase branch calculation #TASK-6807
juanfeSanahuja Sep 10, 2024
3144825
cicd: Fix xetabase branch calculation #TASK-6807
juanfeSanahuja Sep 10, 2024
7724d4d
Merge pull request #2500 from opencb/TASK-6807
juanfeSanahuja Sep 12, 2024
d6a8858
Prepare release 3.2.1
juanfeSanahuja Sep 13, 2024
7bc50c5
Merge branch 'release-3.2.x'
juanfeSanahuja Sep 13, 2024
6d19797
Port Patch 3.2.1 -> 4.0.0 XB 2.2.1 -> 3.0.0 #TASK-6780
juanfeSanahuja Oct 3, 2024
53eac91
Merge branch 'develop' into TASK-6780
juanfeSanahuja Oct 3, 2024
d1ba697
test: fix FamilyAnalysisTest JUnit tests, #TASK-6780
jtarraga Oct 8, 2024
1c9f023
Merge branch 'TASK-6780' of https://github.com/opencb/opencga into TA…
jtarraga Oct 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,13 @@

package org.opencb.opencga.analysis;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.opencb.commons.utils.FileUtils;
import org.opencb.opencga.core.config.AnalysisTool;
import org.opencb.opencga.core.config.Configuration;
import org.opencb.opencga.core.config.storage.StorageConfiguration;
import org.opencb.opencga.core.exceptions.ToolException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -28,10 +32,15 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

public class ConfigurationUtils {
private static Logger logger = LoggerFactory.getLogger(ConfigurationUtils.class);

private ConfigurationUtils() {
throw new IllegalStateException("Utility class");
}
/**
* This method attempts to load general configuration from OpenCGA installation folder, if not exists then loads JAR configuration.yml.
*
Expand Down Expand Up @@ -83,4 +92,33 @@ public static StorageConfiguration loadStorageConfiguration(String opencgaHome)
.load(StorageConfiguration.class.getClassLoader().getResourceAsStream("storage-configuration.yml"));
}
}

public static String getToolDefaultVersion(String toolId, Configuration configuration) throws ToolException {
List<AnalysisTool> tools = new ArrayList<>();
for (AnalysisTool tool : configuration.getAnalysis().getTools()) {
if (tool.getId().equals(toolId)) {
tools.add(tool);
}
}
if (CollectionUtils.isEmpty(tools)) {
throw new ToolException("Tool ID '" + toolId + "' missing in the configuration file");
}
if (tools.size() == 1) {
return tools.get(0).getVersion();
}
String defaultVersion = null;
for (AnalysisTool tool : tools) {
if (tool.isDefaultVersion()) {
if (!StringUtils.isEmpty(defaultVersion)) {
throw new ToolException("More than one default version found for tool ID '" + toolId + "'");
} else {
defaultVersion = tool.getVersion();
}
}
}
if (StringUtils.isEmpty(defaultVersion)) {
throw new ToolException("Multiple tools '" + toolId + "' were found, but none have the default version set to true");
}
return defaultVersion;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@
import org.opencb.commons.datastore.core.ObjectMap;
import org.opencb.commons.datastore.core.Query;
import org.opencb.commons.datastore.core.QueryOptions;
import org.opencb.opencga.analysis.ConfigurationUtils;
import org.opencb.opencga.analysis.clinical.InterpretationAnalysis;
import org.opencb.opencga.analysis.individual.qc.IndividualQcUtils;
import org.opencb.opencga.analysis.wrappers.exomiser.ExomiserWrapperAnalysis;
import org.opencb.opencga.analysis.wrappers.exomiser.ExomiserWrapperAnalysisExecutor;
import org.opencb.opencga.catalog.exceptions.CatalogException;
import org.opencb.opencga.catalog.utils.ParamUtils;
Expand All @@ -44,10 +46,10 @@
import org.opencb.opencga.core.models.common.Enums;
import org.opencb.opencga.core.models.individual.Individual;
import org.opencb.opencga.core.response.OpenCGAResult;
import org.opencb.opencga.storage.core.variant.query.VariantQueryResult;
import org.opencb.opencga.core.tools.annotations.Tool;
import org.opencb.opencga.storage.core.exceptions.StorageEngineException;
import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryParam;
import org.opencb.opencga.storage.core.variant.query.VariantQueryResult;

import java.io.BufferedReader;
import java.io.File;
Expand All @@ -69,6 +71,7 @@ public class ExomiserInterpretationAnalysis extends InterpretationAnalysis {
private String clinicalAnalysisId;
private String sampleId;
private ClinicalAnalysis.Type clinicalAnalysisType;
private String exomiserVersion;

private ClinicalAnalysis clinicalAnalysis;

Expand Down Expand Up @@ -97,8 +100,7 @@ protected void check() throws Exception {
try {
clinicalAnalysisQueryResult = catalogManager.getClinicalAnalysisManager().get(studyId, clinicalAnalysisId, QueryOptions.empty(),
token);
} catch (
CatalogException e) {
} catch (CatalogException e) {
throw new ToolException(e);
}
if (clinicalAnalysisQueryResult.getNumResults() != 1) {
Expand All @@ -117,6 +119,7 @@ protected void check() throws Exception {
}
sampleId = clinicalAnalysis.getProband().getSamples().get(0).getId();

// Check clinical analysis type
if (clinicalAnalysis.getType() == ClinicalAnalysis.Type.FAMILY) {
clinicalAnalysisType = ClinicalAnalysis.Type.FAMILY;
} else {
Expand All @@ -125,6 +128,13 @@ protected void check() throws Exception {
logger.info("The clinical analysis type is {}, so the Exomiser will be run in mode {}", clinicalAnalysis.getType(),
clinicalAnalysisType);

// Check exomiser version
if (StringUtils.isEmpty(exomiserVersion)) {
// Missing exomiser version use the default one
exomiserVersion = ConfigurationUtils.getToolDefaultVersion(ExomiserWrapperAnalysis.ID, configuration);
logger.warn("Missing exomiser version, using the default {}", exomiserVersion);
}

// Update executor params with OpenCGA home and session ID
setUpStorageEngineExecutor(studyId);
}
Expand All @@ -134,25 +144,28 @@ protected void run() throws ToolException {
step(() -> {

executorParams.put(EXECUTOR_ID, ExomiserWrapperAnalysisExecutor.ID);
getToolExecutor(ExomiserWrapperAnalysisExecutor.class)
ExomiserWrapperAnalysisExecutor exomiserExecutor = getToolExecutor(ExomiserWrapperAnalysisExecutor.class)
.setStudyId(studyId)
.setSampleId(sampleId)
.setClinicalAnalysisType(clinicalAnalysisType)
.execute();
.setExomiserVersion(exomiserVersion);

exomiserExecutor.execute();

saveInterpretation(studyId, clinicalAnalysis);
saveInterpretation(studyId, clinicalAnalysis, exomiserExecutor.getDockerImageName(), exomiserExecutor.getDockerImageVersion());
});
}

protected void saveInterpretation(String studyId, ClinicalAnalysis clinicalAnalysis) throws ToolException, StorageEngineException,
protected void saveInterpretation(String studyId, ClinicalAnalysis clinicalAnalysis, String dockerImage, String dockerImageVersion)
throws ToolException, StorageEngineException,
CatalogException, IOException {
// Interpretation method
InterpretationMethod method = new InterpretationMethod(getId(), GitRepositoryState.getInstance().getBuildVersion(),
GitRepositoryState.getInstance().getCommitId(), Collections.singletonList(
new Software()
.setName("Exomiser")
.setRepository("Docker: " + ExomiserWrapperAnalysisExecutor.DOCKER_IMAGE_NAME)
.setVersion(ExomiserWrapperAnalysisExecutor.DOCKER_IMAGE_VERSION)));
.setRepository("Docker: " + dockerImage)
.setVersion(dockerImageVersion)));

// Analyst
ClinicalAnalyst analyst = clinicalInterpretationManager.getAnalyst(studyId, token);
Expand Down Expand Up @@ -274,8 +287,17 @@ private List<ClinicalVariant> getPrimaryFindings() throws IOException, StorageEn
// Convert variants to clinical variants
for (Variant variant : variantResults.getResults()) {
ClinicalVariant clinicalVariant = clinicalVariantCreator.create(variant);
List<ExomiserTranscriptAnnotation> exomiserTranscripts = new ArrayList<>(variantTranscriptMap.get(normalizedToTsv
.get(variant.toStringSimple())));
List<ExomiserTranscriptAnnotation> exomiserTranscripts = new ArrayList<>();
if (normalizedToTsv.containsKey(variant.toStringSimple())) {
if (variantTranscriptMap.containsKey(normalizedToTsv.get(variant.toStringSimple()))) {
exomiserTranscripts.addAll(variantTranscriptMap.get(normalizedToTsv.get(variant.toStringSimple())));
} else {
logger.warn("Variant {} (normalizedToTsv {}), not found in map variantTranscriptMap", variant.toStringSimple(),
normalizedToTsv.get(variant.toStringSimple()));
}
} else {
logger.warn("Variant {} not found in map normalizedToTsv", variant.toStringSimple());
}
for (String[] fields : variantTsvMap.get(variant.toStringSimple())) {
ClinicalProperty.ModeOfInheritance moi = getModeOfInheritance(fields[4]);
Map<String, Object> attributes = getAttributesFromTsv(fields);
Expand Down Expand Up @@ -463,4 +485,13 @@ public ExomiserInterpretationAnalysis setClinicalAnalysisId(String clinicalAnaly
this.clinicalAnalysisId = clinicalAnalysisId;
return this;
}

public String getExomiserVersion() {
return exomiserVersion;
}

public ExomiserInterpretationAnalysis setExomiserVersion(String exomiserVersion) {
this.exomiserVersion = exomiserVersion;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -552,7 +552,7 @@ protected final <T extends OpenCgaToolExecutor> T getToolExecutor(Class<T> clazz
toolExecutor.getSource(),
toolExecutor.getFramework()));

toolExecutor.setUp(erm, executorParams, outDir);
toolExecutor.setUp(erm, executorParams, outDir, configuration);
return toolExecutor;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ protected void run() throws ToolException {
step("gwas", () -> {
GwasAnalysisExecutor gwasExecutor = getToolExecutor(GwasAnalysisExecutor.class);

gwasExecutor.setConfiguration(gwasConfiguration)
gwasExecutor.setGwasConfiguration(gwasConfiguration)
.setStudy(study)
.setSampleList1(caseCohortSamples)
.setSampleList2(controlCohortSamples)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,9 @@
import org.opencb.opencga.core.models.sample.SamplePermissions;
import org.opencb.opencga.core.models.study.Study;
import org.opencb.opencga.core.models.study.StudyPermissions;
import org.opencb.opencga.core.models.study.VariantSetupResult;
import org.opencb.opencga.core.models.variant.VariantSetupParams;
import org.opencb.opencga.core.response.OpenCGAResult;
import org.opencb.opencga.storage.core.variant.query.VariantQueryResult;
import org.opencb.opencga.core.tools.ToolParams;
import org.opencb.opencga.storage.core.StorageEngineFactory;
import org.opencb.opencga.storage.core.StoragePipelineResult;
Expand All @@ -88,6 +89,7 @@
import org.opencb.opencga.storage.core.variant.adaptors.iterators.VariantDBIterator;
import org.opencb.opencga.storage.core.variant.io.VariantWriterFactory.VariantOutputFormat;
import org.opencb.opencga.storage.core.variant.query.ParsedQuery;
import org.opencb.opencga.storage.core.variant.query.VariantQueryResult;
import org.opencb.opencga.storage.core.variant.query.VariantQueryUtils;
import org.opencb.opencga.storage.core.variant.query.projection.VariantQueryProjectionParser;
import org.opencb.opencga.storage.core.variant.score.VariantScoreFormatDescriptor;
Expand Down Expand Up @@ -490,6 +492,18 @@ public void aggregate(String studyStr, VariantAggregateParams params, String tok
});
}

public VariantSetupResult variantSetup(String studyStr, VariantSetupParams params, String token)
throws CatalogException, StorageEngineException {
return secureOperation(VariantSetupOperationManager.ID, studyStr, params.toObjectMap(), token,
engine -> new VariantSetupOperationManager(this, engine).setup(getStudyFqn(studyStr, token), params, token));
}

public boolean hasVariantSetup(String studyStr, String token) throws CatalogException {
Study study = catalogManager.getStudyManager().get(studyStr,
new QueryOptions(INCLUDE, StudyDBAdaptor.QueryParams.INTERNAL_CONFIGURATION_VARIANT_ENGINE.key()), token).first();
return VariantSetupOperationManager.hasVariantSetup(study);
}

public ObjectMap configureProject(String projectStr, ObjectMap params, String token) throws CatalogException, StorageEngineException {
return secureOperationByProject("configure", projectStr, params, token, engine -> {
DataStore dataStore = getDataStoreByProjectId(projectStr, token);
Expand Down Expand Up @@ -1181,7 +1195,7 @@ private interface VariantOperationFunction<R> {
private <R> R secureOperationByProject(String operationName, String project, ObjectMap params, String token, VariantOperationFunction<R> operation)
throws CatalogException, StorageEngineException {
try (VariantStorageEngine variantStorageEngine = getVariantStorageEngineByProject(project, params, token)) {
return secureTool(operationName, true, params, token, variantStorageEngine, operation);
return secureTool(operationName, true, null, params, token, variantStorageEngine, operation);
} catch (IOException e) {
throw new StorageEngineException("Error closing the VariantStorageEngine", e);
}
Expand All @@ -1190,7 +1204,7 @@ private <R> R secureOperationByProject(String operationName, String project, Obj
private <R> R secureOperation(String operationName, String study, ObjectMap params, String token, VariantOperationFunction<R> operation)
throws CatalogException, StorageEngineException {
try (VariantStorageEngine variantStorageEngine = getVariantStorageEngineForStudyOperation(study, params, token)) {
return secureTool(operationName, true, params, token, variantStorageEngine, operation);
return secureTool(operationName, true, study, params, token, variantStorageEngine, operation);
} catch (IOException e) {
throw new StorageEngineException("Error closing the VariantStorageEngine", e);
}
Expand All @@ -1199,7 +1213,7 @@ private <R> R secureOperation(String operationName, String study, ObjectMap para
private <R> R secureAnalysis(String operationName, String study, ObjectMap params, String token, VariantOperationFunction<R> operation)
throws CatalogException, StorageEngineException {
try (VariantStorageEngine variantStorageEngine = getVariantStorageEngineForStudyOperation(study, params, token)) {
return secureTool(operationName, false, params, token, variantStorageEngine, operation);
return secureTool(operationName, false, study, params, token, variantStorageEngine, operation);
} catch (IOException e) {
throw new StorageEngineException("Error closing the VariantStorageEngine", e);
}
Expand All @@ -1221,7 +1235,7 @@ private <R> R secureOperationByProject(String operationName, String projectStr,
return secureOperationByProject(operationName, projectStr, params, token, operation);
}

private <R> R secureTool(String toolId, boolean isOperation, ObjectMap params, String token,
private <R> R secureTool(String toolId, boolean isOperation, String study, ObjectMap params, String token,
VariantStorageEngine variantStorageEngine, VariantOperationFunction<R> operation)
throws CatalogException, StorageEngineException {

Expand All @@ -1241,6 +1255,15 @@ private <R> R secureTool(String toolId, boolean isOperation, ObjectMap params, S
throw new StorageEngineException("Unable to execute operation '" + toolId + "'. "
+ "The storage engine is in mode=" + storageConfiguration.getMode());
}
if (isOperation && study != null && !VariantSetupOperationManager.ID.equals(toolId)) {
// Ensure that the variant setup has been executed
// do not check for the setup operation itself
// Project level operations can not be checked for setup.
if (!hasVariantSetup(study, token)) {
throw new StorageEngineException("Unable to execute operation '" + toolId + "'. "
+ "The variant storage has not been setup for study '" + study + "'");
}
}
result = operation.apply(variantStorageEngine);
return result;
} catch (CatalogException | StorageEngineException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,17 @@
import org.opencb.opencga.storage.core.metadata.models.TaskMetadata;
import org.opencb.opencga.storage.core.variant.VariantStorageEngine;
import org.opencb.opencga.storage.core.variant.VariantStorageOptions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.net.URI;
import java.util.ArrayList;
import java.util.List;

public class VariantDeleteOperationManager extends OperationManager {

private final Logger logger = LoggerFactory.getLogger(VariantDeleteOperationManager.class);

public VariantDeleteOperationManager(VariantStorageManager variantStorageManager, VariantStorageEngine engine) {
super(variantStorageManager, engine);
}
Expand Down Expand Up @@ -63,7 +67,14 @@ public void removeFile(String study, List<String> inputFiles, URI outdir, String
String catalogIndexStatus = file.getInternal().getVariant().getIndex().getStatus().getId();
if (!catalogIndexStatus.equals(VariantIndexStatus.READY)) {
// Might be partially loaded in VariantStorage. Check FileMetadata
FileMetadata fileMetadata = variantStorageEngine.getMetadataManager().getFileMetadata(studyMetadata.getId(), fileStr);
FileMetadata fileMetadata = variantStorageEngine.getMetadataManager()
.getFileMetadata(studyMetadata.getId(), file.getName());
if (fileMetadata != null && !fileMetadata.getPath().equals(file.getUri().getPath())) {
// FileMetadata path does not match the catalog path. This file is not registered in the storage.
throw new CatalogException("Unable to remove variants from file '" + file.getPath() + "'. "
+ "File is not registered in the storage. "
+ "Instead, found file with same name but different path '" + fileMetadata.getPath() + "'");
}
boolean canBeRemoved;
if (force) {
// When forcing remove, just require the file to be registered in the storage
Expand All @@ -73,17 +84,18 @@ public void removeFile(String study, List<String> inputFiles, URI outdir, String
canBeRemoved = fileMetadata != null && fileMetadata.getIndexStatus() != TaskMetadata.Status.NONE;
}
if (!canBeRemoved) {
throw new CatalogException("Unable to remove variants from file " + file.getName() + ". "
+ "IndexStatus = " + catalogIndexStatus);
throw new CatalogException("Unable to remove variants from file '" + file.getPath() + "'. "
+ "IndexStatus = " + catalogIndexStatus + "."
+ (fileMetadata == null ? " File not found in storage." : ""));
}
}
fileNames.add(file.getName());
// filePaths.add(file.getPath());
}

if (fileNames.isEmpty()) {
throw new CatalogException("Nothing to do!");
}
}
if (fileNames.isEmpty()) {
throw new CatalogException("Nothing to do!");
}

variantStorageEngine.removeFiles(study, fileNames, outdir);
Expand Down
Loading