|
22 | 22 | import org.opencb.cellbase.app.cli.admin.AdminCliOptionsParser; |
23 | 23 | import org.opencb.cellbase.core.config.SpeciesConfiguration; |
24 | 24 | import org.opencb.cellbase.core.exception.CellBaseException; |
| 25 | +import org.opencb.cellbase.core.models.DataSource; |
25 | 26 | import org.opencb.cellbase.core.models.Release; |
26 | 27 | import org.opencb.cellbase.core.result.CellBaseDataResult; |
27 | 28 | import org.opencb.cellbase.core.utils.DatabaseNameUtils; |
@@ -359,17 +360,25 @@ private void loadProteinFunctionalPrediction() throws NoSuchMethodException, Int |
359 | 360 | } |
360 | 361 |
|
361 | 362 | private void loadRevel() throws CellBaseException { |
| 363 | + // Check if REVEL source has already been loaded |
| 364 | + checkSourceAlreadyLoaded(REVEL_DATA); |
| 365 | + |
362 | 366 | HashMap<String, String> collectionMap = new HashMap<>(); |
363 | | - collectionMap.put(PROTEIN_SUBSTITUTION_PREDICTION_DATA, REVEL_DATA + JSON_GZ_EXTENSION); |
| 367 | + collectionMap.put(MISSENSE_VARIATION_SCORE_DATA, REVEL_DATA + JSON_GZ_EXTENSION); |
364 | 368 |
|
365 | | - loadData(input.resolve(PROTEIN_SUBSTITUTION_PREDICTION_DATA).resolve(REVEL_DATA), collectionMap); |
| 369 | + Path revelPath = input.resolve(PROTEIN_SUBSTITUTION_PREDICTION_DATA).resolve(REVEL_DATA); |
| 370 | + loadData(revelPath, collectionMap); |
366 | 371 | } |
367 | 372 |
|
368 | 373 | private void loadAlphaMissense() throws CellBaseException { |
| 374 | + // Check if AlphaMissense source has already been loaded |
| 375 | + checkSourceAlreadyLoaded(ALPHAMISSENSE_DATA); |
| 376 | + |
369 | 377 | HashMap<String, String> collectionMap = new HashMap<>(); |
370 | | - collectionMap.put(PROTEIN_SUBSTITUTION_PREDICTION_DATA, ALPHAMISSENSE_DATA + JSON_GZ_EXTENSION); |
| 378 | + collectionMap.put(MISSENSE_VARIATION_SCORE_DATA, ALPHAMISSENSE_DATA + JSON_GZ_EXTENSION); |
371 | 379 |
|
372 | | - loadData(input.resolve(PROTEIN_SUBSTITUTION_PREDICTION_DATA).resolve(ALPHAMISSENSE_DATA), collectionMap); |
| 380 | + Path alphaMissensePath = input.resolve(PROTEIN_SUBSTITUTION_PREDICTION_DATA).resolve(ALPHAMISSENSE_DATA); |
| 381 | + loadData(alphaMissensePath, collectionMap); |
373 | 382 | } |
374 | 383 |
|
375 | 384 | private void loadClinical() throws FileNotFoundException { |
@@ -677,4 +686,16 @@ private Release getDataReleaseForLoading(DataReleaseManager dataReleaseManager) |
677 | 686 | } |
678 | 687 | return lastDataRelease; |
679 | 688 | } |
| 689 | + |
| 690 | + private void checkSourceAlreadyLoaded(String sourceId) throws CellBaseException { |
| 691 | + Release release = getDataReleaseForLoading(dataReleaseManager); |
| 692 | + if (release.getSources() != null) { |
| 693 | + for (DataSource source : release.getSources()) { |
| 694 | + if (sourceId.equalsIgnoreCase(source.getId())) { |
| 695 | + throw new CellBaseException("Loading data '" + sourceId + "' with release " + dataRelease |
| 696 | + + " failed: source '" + sourceId + "' already loaded previously"); |
| 697 | + } |
| 698 | + } |
| 699 | + } |
| 700 | + } |
680 | 701 | } |
0 commit comments