diff --git a/.gitignore b/.gitignore index 876801ecbf..255878a8d1 100644 --- a/.gitignore +++ b/.gitignore @@ -100,3 +100,6 @@ venv # Java annotation processor (APT) .factorypath + +#app +opencga-app/app/analysis/qc/resources \ No newline at end of file diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/family/qc/FamilyVariantQcAnalysis.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/family/qc/FamilyVariantQcAnalysis.java index 64a3e6f7d1..81a2346e14 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/family/qc/FamilyVariantQcAnalysis.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/family/qc/FamilyVariantQcAnalysis.java @@ -39,7 +39,7 @@ import org.opencb.opencga.core.models.family.FamilyInternal; import org.opencb.opencga.core.models.family.FamilyQualityControl; import org.opencb.opencga.core.models.family.FamilyUpdateParams; -import org.opencb.opencga.core.models.variant.FamilyQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; import org.opencb.opencga.core.response.OpenCGAResult; import org.opencb.opencga.core.tools.annotations.Tool; import org.opencb.opencga.core.tools.annotations.ToolParams; diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/family/qc/FamilyVariantQcLocalAnalysisExecutor.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/family/qc/FamilyVariantQcLocalAnalysisExecutor.java index b44efdbceb..7283cf2f62 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/family/qc/FamilyVariantQcLocalAnalysisExecutor.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/family/qc/FamilyVariantQcLocalAnalysisExecutor.java @@ -21,7 +21,7 @@ import org.opencb.opencga.analysis.utils.VariantQcAnalysisExecutorUtils; import org.opencb.opencga.core.common.JacksonUtils; import org.opencb.opencga.core.exceptions.ToolExecutorException; -import org.opencb.opencga.core.models.variant.FamilyQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; import org.opencb.opencga.core.tools.annotations.ToolExecutor; import org.opencb.opencga.core.tools.variant.FamilyVariantQcAnalysisExecutor; diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/individual/qc/IndividualVariantQcAnalysis.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/individual/qc/IndividualVariantQcAnalysis.java index 55f98dcdce..b990900aa4 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/individual/qc/IndividualVariantQcAnalysis.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/individual/qc/IndividualVariantQcAnalysis.java @@ -41,7 +41,7 @@ import org.opencb.opencga.core.models.individual.IndividualInternal; import org.opencb.opencga.core.models.individual.IndividualQualityControl; import org.opencb.opencga.core.models.individual.IndividualUpdateParams; -import org.opencb.opencga.core.models.variant.IndividualQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.IndividualQcAnalysisParams; import org.opencb.opencga.core.response.OpenCGAResult; import org.opencb.opencga.core.tools.annotations.Tool; import org.opencb.opencga.core.tools.annotations.ToolParams; diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/individual/qc/IndividualVariantQcLocalAnalysisExecutor.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/individual/qc/IndividualVariantQcLocalAnalysisExecutor.java index 28ba991c42..155ca47ec6 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/individual/qc/IndividualVariantQcLocalAnalysisExecutor.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/individual/qc/IndividualVariantQcLocalAnalysisExecutor.java @@ -21,7 +21,7 @@ import org.opencb.opencga.analysis.utils.VariantQcAnalysisExecutorUtils; import org.opencb.opencga.core.common.JacksonUtils; import org.opencb.opencga.core.exceptions.ToolExecutorException; -import org.opencb.opencga.core.models.variant.IndividualQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.IndividualQcAnalysisParams; import org.opencb.opencga.core.tools.annotations.ToolExecutor; import org.opencb.opencga.core.tools.variant.IndividualVariantQcAnalysisExecutor; diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/sample/qc/SampleVariantQcAnalysis.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/sample/qc/SampleVariantQcAnalysis.java index f52532a32f..851720d53e 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/sample/qc/SampleVariantQcAnalysis.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/sample/qc/SampleVariantQcAnalysis.java @@ -41,7 +41,7 @@ import org.opencb.opencga.core.models.sample.Sample; import org.opencb.opencga.core.models.sample.SampleQualityControl; import org.opencb.opencga.core.models.sample.SampleUpdateParams; -import org.opencb.opencga.core.models.variant.SampleQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcAnalysisParams; import org.opencb.opencga.core.models.variant.SampleVariantStatsAnalysisParams; import org.opencb.opencga.core.response.OpenCGAResult; import org.opencb.opencga.core.tools.annotations.Tool; diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/sample/qc/SampleVariantQcLocalAnalysisExecutor.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/sample/qc/SampleVariantQcLocalAnalysisExecutor.java index 97833b5451..99dfb253f3 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/sample/qc/SampleVariantQcLocalAnalysisExecutor.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/sample/qc/SampleVariantQcLocalAnalysisExecutor.java @@ -22,7 +22,7 @@ import org.opencb.opencga.analysis.utils.VariantQcAnalysisExecutorUtils; import org.opencb.opencga.core.common.JacksonUtils; import org.opencb.opencga.core.exceptions.ToolExecutorException; -import org.opencb.opencga.core.models.variant.SampleQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcAnalysisParams; import org.opencb.opencga.core.tools.annotations.ToolExecutor; import org.opencb.opencga.core.tools.variant.SampleVariantQcAnalysisExecutor; diff --git a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java index 9873931c4b..2d3d703896 100644 --- a/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java +++ b/opencga-analysis/src/test/java/org/opencb/opencga/analysis/variant/VariantAnalysisTest.java @@ -89,6 +89,8 @@ import org.opencb.opencga.core.models.sample.SampleReferenceParam; import org.opencb.opencga.core.models.sample.SampleUpdateParams; import org.opencb.opencga.core.models.variant.*; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcAnalysisParams; import org.opencb.opencga.core.response.OpenCGAResult; import org.opencb.opencga.core.testclassification.duration.LongTests; import org.opencb.opencga.core.tools.result.ExecutionResult; diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/executors/VariantInternalCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/executors/VariantInternalCommandExecutor.java index 98b73fee2d..cb7b1a592f 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/executors/VariantInternalCommandExecutor.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/executors/VariantInternalCommandExecutor.java @@ -63,6 +63,9 @@ import org.opencb.opencga.core.models.common.mixins.GenericRecordAvroJsonMixin; import org.opencb.opencga.core.models.operations.variant.*; import org.opencb.opencga.core.models.variant.*; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.IndividualQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcAnalysisParams; import org.opencb.opencga.core.tools.ToolParams; import org.opencb.opencga.storage.core.exceptions.StorageEngineException; import org.opencb.opencga.storage.core.exceptions.VariantSearchException; diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/options/VariantCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/options/VariantCommandOptions.java index 8f0e8a433f..90dc831f82 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/options/VariantCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/internal/options/VariantCommandOptions.java @@ -1615,7 +1615,7 @@ public class SampleVariantQcCommandOptions { public String genomePlotConfigFile; // Other - @Parameter(names = {"--skip"}, description = FieldConstants.SAMPLE_QUALITY_CONTROL_SKIP_DESCRIPTION) + @Parameter(names = {"--skip"}, description = FieldConstants.SAMPLE_QC_SKIP_ANALYSIS_DESCRIPTION) public List skip; @Parameter(names = {"-o", "--outdir"}, description = FieldConstants.JOB_OUT_DIR_DESCRIPTION) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AnalysisVariantCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AnalysisVariantCommandExecutor.java index 0241e9e0dd..f3fedc2c84 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AnalysisVariantCommandExecutor.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AnalysisVariantCommandExecutor.java @@ -33,22 +33,26 @@ import org.opencb.opencga.core.models.variant.AnnotationVariantQueryParams; import org.opencb.opencga.core.models.variant.CircosAnalysisParams; import org.opencb.opencga.core.models.variant.CohortVariantStatsAnalysisParams; -import org.opencb.opencga.core.models.variant.FamilyQcAnalysisParams; import org.opencb.opencga.core.models.variant.GatkWrapperParams; import org.opencb.opencga.core.models.variant.GenomePlotAnalysisParams; import org.opencb.opencga.core.models.variant.GwasAnalysisParams; import org.opencb.opencga.core.models.variant.HRDetectAnalysisParams; -import org.opencb.opencga.core.models.variant.IndividualQcAnalysisParams; import org.opencb.opencga.core.models.variant.KnockoutAnalysisParams; import org.opencb.opencga.core.models.variant.MutationalSignatureAnalysisParams; import org.opencb.opencga.core.models.variant.PlinkWrapperParams; import org.opencb.opencga.core.models.variant.RvtestsWrapperParams; import org.opencb.opencga.core.models.variant.SampleEligibilityAnalysisParams; -import org.opencb.opencga.core.models.variant.SampleQcAnalysisParams; import org.opencb.opencga.core.models.variant.SampleVariantFilterParams; import org.opencb.opencga.core.models.variant.SampleVariantStatsAnalysisParams; import org.opencb.opencga.core.models.variant.VariantExportParams; import org.opencb.opencga.core.models.variant.VariantStatsAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.IndividualQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcGenomePlotAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcSignatureAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcSignatureFittingAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcVariantStatsAnalysisParams; import org.opencb.opencga.core.response.QueryType; import org.opencb.opencga.core.response.RestResponse; import org.opencb.opencga.core.tools.annotations.ToolParams; @@ -1485,6 +1489,8 @@ private RestResponse runSampleQc() throws Exception { ObjectMap beanParams = new ObjectMap(); putNestedIfNotEmpty(beanParams, "sample",commandOptions.sample, true); putNestedIfNotNull(beanParams, "samples",commandOptions.samples, true); + putNestedIfNotEmpty(beanParams, "statsParams.id",commandOptions.statsParamsId, true); + putNestedIfNotEmpty(beanParams, "statsParams.description",commandOptions.statsParamsDescription, true); putNestedIfNotEmpty(beanParams, "vsId",commandOptions.vsId, true); putNestedIfNotEmpty(beanParams, "vsDescription",commandOptions.vsDescription, true); putNestedIfNotEmpty(beanParams, "vsQuery.id",commandOptions.vsQueryId, true); @@ -1513,6 +1519,8 @@ private RestResponse runSampleQc() throws Exception { putNestedIfNotEmpty(beanParams, "vsQuery.clinical",commandOptions.vsQueryClinical, true); putNestedIfNotEmpty(beanParams, "vsQuery.clinicalSignificance",commandOptions.vsQueryClinicalSignificance, true); putNestedIfNotNull(beanParams, "vsQuery.clinicalConfirmedStatus",commandOptions.vsQueryClinicalConfirmedStatus, true); + putNestedIfNotEmpty(beanParams, "signatureParams.id",commandOptions.signatureParamsId, true); + putNestedIfNotEmpty(beanParams, "signatureParams.description",commandOptions.signatureParamsDescription, true); putNestedIfNotEmpty(beanParams, "msId",commandOptions.msId, true); putNestedIfNotEmpty(beanParams, "msDescription",commandOptions.msDescription, true); putNestedIfNotEmpty(beanParams, "msQuery",commandOptions.msQuery, true); @@ -1526,9 +1534,13 @@ private RestResponse runSampleQc() throws Exception { putNestedIfNotNull(beanParams, "msFitMaxRareSigs",commandOptions.msFitMaxRareSigs, true); putNestedIfNotEmpty(beanParams, "msFitSignaturesFile",commandOptions.msFitSignaturesFile, true); putNestedIfNotEmpty(beanParams, "msFitRareSignaturesFile",commandOptions.msFitRareSignaturesFile, true); + putNestedIfNotEmpty(beanParams, "genomePlotParams.id",commandOptions.genomePlotParamsId, true); + putNestedIfNotEmpty(beanParams, "genomePlotParams.description",commandOptions.genomePlotParamsDescription, true); + putNestedIfNotEmpty(beanParams, "genomePlotParams.configFile",commandOptions.genomePlotParamsConfigFile, true); putNestedIfNotEmpty(beanParams, "gpId",commandOptions.gpId, true); putNestedIfNotEmpty(beanParams, "gpDescription",commandOptions.gpDescription, true); putNestedIfNotEmpty(beanParams, "gpConfigFile",commandOptions.gpConfigFile, true); + putNestedIfNotNull(beanParams, "skip",commandOptions.skip, true); putNestedIfNotNull(beanParams, "skipAnalysis",commandOptions.skipAnalysis, true); putNestedIfNotNull(beanParams, "skipIndex",commandOptions.skipIndex, true); putNestedIfNotNull(beanParams, "overwrite",commandOptions.overwrite, true); diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisVariantCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisVariantCommandOptions.java index 42cd209a3d..da9654b0dc 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisVariantCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisVariantCommandOptions.java @@ -2175,6 +2175,12 @@ public class RunSampleQcCommandOptions { @Parameter(names = {"--samples"}, description = "List of sample IDs", required = false, arity = 1) public String samples; + @Parameter(names = {"--stats-params-id"}, description = "Sample variant stats ID", required = false, arity = 1) + public String statsParamsId; + + @Parameter(names = {"--stats-params-description"}, description = "Sample variant stats description", required = false, arity = 1) + public String statsParamsDescription; + @Parameter(names = {"--vs-id"}, description = "Variant stats ID.", required = false, arity = 1) public String vsId; @@ -2259,6 +2265,12 @@ public class RunSampleQcCommandOptions { @Parameter(names = {"--vs-query-clinical-confirmed-status"}, description = "The body web service clinicalConfirmedStatus parameter", required = false, help = true, arity = 0) public boolean vsQueryClinicalConfirmedStatus = false; + @Parameter(names = {"--signature-params-id"}, description = "Signature ID", required = false, arity = 1) + public String signatureParamsId; + + @Parameter(names = {"--signature-params-description"}, description = "Signature description", required = false, arity = 1) + public String signatureParamsDescription; + @Parameter(names = {"--ms-id"}, description = "Signature ID.", required = false, arity = 1) public String msId; @@ -2298,6 +2310,15 @@ public class RunSampleQcCommandOptions { @Parameter(names = {"--ms-fit-rare-signatures-file"}, description = "The file name containing mutational signatures. Each signature is in a column, with signature names as column hearders and channel names as row names in the first column with no header. Each column must sum to 1. Use only to provide your own signatures. When fitmethod=FitMS, these signatures are considered rare signatures.", required = false, arity = 1) public String msFitRareSignaturesFile; + @Parameter(names = {"--genome-plot-params-id"}, description = "Genome plot ID", required = false, arity = 1) + public String genomePlotParamsId; + + @Parameter(names = {"--genome-plot-params-description"}, description = "Genome plot description", required = false, arity = 1) + public String genomePlotParamsDescription; + + @Parameter(names = {"--genome-plot-params-config-file"}, description = "Genome plot configuration file", required = false, arity = 1) + public String genomePlotParamsConfigFile; + @Parameter(names = {"--gp-id"}, description = "Genome plot ID.", required = false, arity = 1) public String gpId; @@ -2307,7 +2328,10 @@ public class RunSampleQcCommandOptions { @Parameter(names = {"--gp-config-file"}, description = "Genome plot configuration file.", required = false, arity = 1) public String gpConfigFile; - @Parameter(names = {"--skip-analysis"}, description = "Quality control metrics to skip. Valid values are: variant-stats, signature, signature-catalogue, signature-fitting, genome-plot", required = false, arity = 1) + @Parameter(names = {"--skip"}, description = "Quality control analysis to skip", required = false, arity = 1) + public String skip; + + @Parameter(names = {"--skip-analysis"}, description = "Quality control analysis to skip", required = false, arity = 1) public String skipAnalysis; @Parameter(names = {"--skip-index"}, description = "Do not save the computed quality control in catalog", required = false, arity = 1) diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java index 1e5b4d81d4..38b8dfd551 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java @@ -36,22 +36,22 @@ import org.opencb.opencga.core.models.operations.variant.VariantStatsExportParams; import org.opencb.opencga.core.models.variant.CircosAnalysisParams; import org.opencb.opencga.core.models.variant.CohortVariantStatsAnalysisParams; -import org.opencb.opencga.core.models.variant.FamilyQcAnalysisParams; import org.opencb.opencga.core.models.variant.GatkWrapperParams; import org.opencb.opencga.core.models.variant.GenomePlotAnalysisParams; import org.opencb.opencga.core.models.variant.GwasAnalysisParams; import org.opencb.opencga.core.models.variant.HRDetectAnalysisParams; -import org.opencb.opencga.core.models.variant.IndividualQcAnalysisParams; import org.opencb.opencga.core.models.variant.KnockoutAnalysisParams; import org.opencb.opencga.core.models.variant.MutationalSignatureAnalysisParams; import org.opencb.opencga.core.models.variant.PlinkWrapperParams; import org.opencb.opencga.core.models.variant.RvtestsWrapperParams; import org.opencb.opencga.core.models.variant.SampleEligibilityAnalysisParams; -import org.opencb.opencga.core.models.variant.SampleQcAnalysisParams; import org.opencb.opencga.core.models.variant.SampleVariantFilterParams; import org.opencb.opencga.core.models.variant.SampleVariantStatsAnalysisParams; import org.opencb.opencga.core.models.variant.VariantExportParams; import org.opencb.opencga.core.models.variant.VariantStatsAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.IndividualQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcAnalysisParams; import org.opencb.opencga.core.response.RestResponse; import org.opencb.opencga.core.tools.annotations.ToolParams; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/api/FieldConstants.java b/opencga-core/src/main/java/org/opencb/opencga/core/api/FieldConstants.java index 73974a435e..9e2e1acb9b 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/api/FieldConstants.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/api/FieldConstants.java @@ -2,7 +2,6 @@ import org.opencb.opencga.core.models.alignment.AlignmentQcParams; import org.opencb.opencga.core.models.variant.MutationalSignatureAnalysisParams; -import org.opencb.opencga.core.models.variant.SampleQcAnalysisParams; public class FieldConstants { @@ -99,10 +98,7 @@ public class FieldConstants { public static final String SAMPLE_QUALITY_CONTROL_FILES_DESCRIPTION = "Files used for the quality control of the sample."; public static final String SAMPLE_QUALITY_CONTROL_COMMENTS_DESCRIPTION = "Comments for the quality control of the sample."; public static final String SAMPLE_QUALITY_CONTROL_VARIANT_DESCRIPTION = "Describes variant quality control."; - public static final String SAMPLE_QUALITY_CONTROL_SKIP_DESCRIPTION = "Quality control metrics to skip. Valid values are: " - + SampleQcAnalysisParams.VARIANT_STATS_SKIP_VALUE + ", " + SampleQcAnalysisParams.SIGNATURE_SKIP_VALUE + ", " - + SampleQcAnalysisParams.SIGNATURE_CATALOGUE_SKIP_VALUE + ", " + SampleQcAnalysisParams.SIGNATURE_FITTING_SKIP_VALUE + ", " - + SampleQcAnalysisParams.GENOME_PLOT_SKIP_VALUE; + public static final String SAMPLE_QUALITY_CONTROL_SKIP_DESCRIPTION = "Quality control metrics to skip."; public static final String SAMPLE_QUALITY_CONTROL_OVERWRITE_DESCRIPTION = "Overwrite sample quality control in OpenCGA catalog."; //SampleVariantQualityControlMetrics @@ -177,17 +173,19 @@ public class FieldConstants { public static final String DISORDER_ID = "Disorder ID."; - // Quality control + // QC data model + public static final String QC_FILES_DESCRIPTION = "File IDs related to the quality control"; + public static final String QC_COMMENTS_DESCRIPTION = "Comments related to the quality control"; + + // QC parameters public static final String INFERRED_SEX_ID = "inferred-sex"; public static final String MENDELIAN_ERRORS_ID = "mendelian-errors"; public static final String RELATEDNESS_ID = "relatedness"; public static final String QC_SKIP_INDEX_DESCRIPTION = "Do not save the computed quality control in catalog"; public static final String QC_OVERWRITE_DESCRIPTION = "Overwrite quality control in catalog"; - public static final String QC_FILES_DESCRIPTION = "File IDs related to the quality control"; - public static final String QC_COMMENTS_DESCRIPTION = "Comments related to the quality control"; public static final String QC_RESOURCES_DIR_DESCRIPTION = "Directory where the QC resource files are located"; - // Family quality control + // Family QC parameters public static final String FAMILY_QC_FAMILY_ID_LIST_DESCRIPTION = "List of family IDs"; @Deprecated public static final String FAMILY_QC_FAMILY_ID_DESCRIPTION = "Family ID"; @@ -196,7 +194,7 @@ public class FieldConstants { + " computing relatedness, e.g.: " + ParamConstants.POP_FREQ_1000G + ":CEU>0.35 or cohort:ALL>0.05"; public static final String FAMILY_QUALITY_CONTROL_RELATEDNESS_REPORT_DESCRIPTION = "Relatedness report for family QC"; - // Individual quality control + // Individual QC parameters public static final String INDIVIDUAL_QC_INDIVIDUAL_ID_LIST_DESCRIPTION = "List of individual IDs"; @Deprecated public static final String INDIVIDUAL_QC_INDIVIDUAL_ID_DESCRIPTION = "Individual ID"; @@ -210,10 +208,46 @@ public class FieldConstants { public static final String INDIVIDUAL_QC_RELATEDNESS_DESCRIPTION = "Relatedness results for the individual"; public static final String INDIVIDUAL_QC_MENDELIAN_ERROR_DESCRIPTION = "Mendelian error results for the individual"; - - // Sample quality control - + // Sample QC parameters public static final String SAMPLE_QC_SAMPLE_ID_LIST_DESCRIPTION = "List of sample IDs"; + public static final String SAMPLE_QC_SKIP_ANALYSIS_DESCRIPTION = "Quality control analysis to skip"; + public static final String SAMPLE_QC_VARIANT_STATS_PARAMS_DESCRIPTION = "Sample variant stats parameters"; + public static final String SAMPLE_QC_VARIANT_STATS_ID_DESCRIPTION = "Sample variant stats ID"; + public static final String SAMPLE_QC_VARIANT_STATS_DESCRIPTION_DESCRIPTION = "Sample variant stats description"; + public static final String SAMPLE_QC_VARIANT_STATS_VARIANT_QUERY_DESCRIPTION = "Variant query for Sample variant stats"; + public static final String SAMPLE_QC_SIGNATURE_PARAMS_DESCRIPTION = "Mutational signature parameters"; + public static final String SAMPLE_QC_SIGNATURE_ID_DESCRIPTION = "Signature ID"; + public static final String SAMPLE_QC_SIGNATURE_DESCRIPTION_DESCRIPTION = "Signature description"; + public static final String SAMPLE_QC_SIGNATURE_VARIANT_QUERY_DESCRIPTION = "Variant query for signature analysis"; + public static final String SAMPLE_QC_SIGNATURE_FIT_PARAMS_DESCRIPTION = "Signature fitting parameters"; + public static final String SAMPLE_QC_SIGNATURE_FIT_ID_DESCRIPTION = "Fitting signature ID"; + public static final String SAMPLE_QC_SIGNATURE_FIT_METHOD_DESCRIPTION = "Either Fit or FitMS. If not specified then FitMS"; + public static final String SAMPLE_QC_SIGNATURE_FIT_N_BOOT_DESCRIPTION = "Number of bootstrap to be used."; + public static final String SAMPLE_QC_SIGNATURE_FIT_SIG_VERSION_DESCRIPTION = "Either COSMICv2, COSMICv3.2, RefSigv1 or RefSigv2." + + " If not specified RefSigv2."; + public static final String SAMPLE_QC_SIGNATURE_FIT_ORGAN_DESCRIPTION = "When using RefSigv1 or RefSigv2 as SIGVERSION, organ-specific" + + " signatures will be used. If SIGVERSION is COSMICv2 or COSMICv3.2, then a selection of signatures found in the given organ" + + " will be used. Available organs depend on the selected SIGVERSION. For RefSigv1 or RefSigv2: Biliary, Bladder," + + " Bone_SoftTissue, Breast, Cervix (v1 only), CNS, Colorectal, Esophagus, Head_neck, Kidney, Liver, Lung, Lymphoid, NET" + + " (v2 only), Oral_Oropharyngeal (v2 only), Ovary, Pancreas, Prostate, Skin, Stomach, Uterus."; + public static final String SAMPLE_QC_SIGNATURE_FIT_THRESHOLD_PERC_DESCRIPTION = "Threshold in percentage of total mutations in a" + + " sample, only exposures larger than THRPERC are considered. If not specified 5."; + public static final String SAMPLE_QC_SIGNATURE_FIT_THRESHOLD_PVAL_DESCRIPTION = "P-value to determine the empirical probability that" + + " the exposure is lower than the threshold. If not specified then 0.05."; + public static final String SAMPLE_QC_SIGNATURE_FIT_MAX_RARE_SIGS_DESCRIPTION = "Maximum number of rare signatures that are allowed to" + + " be present in each sample. If not specified 1."; + public static final String SAMPLE_QC_SIGNATURE_FIT_SIGNATURES_FILE_DESCRIPTION = "The file name containing mutational signatures. Each" + + " signature is in a column, with signature names as column hearders and channel names as row names in the first column with" + + " no header. Each column must sum to 1. Use only to provide your own signatures. When fitmethod=FitMS, these signatures are" + + " considered common signatures."; + public static final String SAMPLE_QC_SIGNATURE_FIT_RARE_SIGNATURES_FILE_DESCRIPTION = "The file name containing mutational signatures." + + " Each signature is in a column, with signature names as column hearders and channel names as row names in the first column" + + " with no header. Each column must sum to 1. Use only to provide your own signatures. When fitmethod=FitMS, these signatures" + + " are considered rare signatures."; + public static final String SAMPLE_QC_GENOME_PLOT_PARAMS_DESCRIPTION = "Genome plot parameters"; + public static final String SAMPLE_QC_GENOME_PLOT_ID_DESCRIPTION = "Genome plot ID"; + public static final String SAMPLE_QC_GENOME_PLOT_DESCRIPTION_DESCRIPTION = "Genome plot description"; + public static final String SAMPLE_QC_GENOME_PLOT_CONFIG_FILE_DESCRIPTION = "Genome plot configuration file"; //Status public static final String STATUS_DATE_DESCRIPTION = "Date has set the status."; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/GenomePlotAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/GenomePlotAnalysisParams.java index f5899bfa1e..f1bc38359e 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/GenomePlotAnalysisParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/GenomePlotAnalysisParams.java @@ -18,6 +18,7 @@ import org.opencb.opencga.core.tools.ToolParams; +@Deprecated public class GenomePlotAnalysisParams extends ToolParams { public static final String DESCRIPTION = "Genome plot analysis params to customize the plot. The configuration file includes the title, " + " the plot density (i.e., the number of points to display), the general query and the list of tracks. Currently, the supported " diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/MutationalSignatureAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/MutationalSignatureAnalysisParams.java index 5687367e4e..11502949c9 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/MutationalSignatureAnalysisParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/MutationalSignatureAnalysisParams.java @@ -20,6 +20,7 @@ import org.opencb.opencga.core.api.FieldConstants; import org.opencb.opencga.core.tools.ToolParams; +@Deprecated public class MutationalSignatureAnalysisParams extends ToolParams { public static final String SIGNATURE_CATALOGUE_SKIP_VALUE = "catalogue"; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/FamilyQcAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/FamilyQcAnalysisParams.java similarity index 99% rename from opencga-core/src/main/java/org/opencb/opencga/core/models/variant/FamilyQcAnalysisParams.java rename to opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/FamilyQcAnalysisParams.java index 2ebc60abe1..4d893f1af1 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/FamilyQcAnalysisParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/FamilyQcAnalysisParams.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.opencb.opencga.core.models.variant; +package org.opencb.opencga.core.models.variant.qc; import org.opencb.commons.annotations.DataField; import org.opencb.opencga.core.api.FieldConstants; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/IndividualQcAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/IndividualQcAnalysisParams.java similarity index 99% rename from opencga-core/src/main/java/org/opencb/opencga/core/models/variant/IndividualQcAnalysisParams.java rename to opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/IndividualQcAnalysisParams.java index 75397d2a58..7abe32e8b0 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/IndividualQcAnalysisParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/IndividualQcAnalysisParams.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.opencb.opencga.core.models.variant; +package org.opencb.opencga.core.models.variant.qc; import org.opencb.commons.annotations.DataField; import org.opencb.opencga.core.api.FieldConstants; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/SampleQcAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcAnalysisParams.java similarity index 77% rename from opencga-core/src/main/java/org/opencb/opencga/core/models/variant/SampleQcAnalysisParams.java rename to opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcAnalysisParams.java index c091a7b56b..859cf74406 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/SampleQcAnalysisParams.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcAnalysisParams.java @@ -14,10 +14,11 @@ * limitations under the License. */ -package org.opencb.opencga.core.models.variant; +package org.opencb.opencga.core.models.variant.qc; import org.opencb.commons.annotations.DataField; import org.opencb.opencga.core.api.FieldConstants; +import org.opencb.opencga.core.models.variant.AnnotationVariantQueryParams; import org.opencb.opencga.core.tools.ToolParams; import java.util.List; @@ -42,72 +43,106 @@ public class SampleQcAnalysisParams extends ToolParams { private List samples; // Variant stats params - @DataField(id = "vsId", description = FieldConstants.VARIANT_STATS_ID_DESCRIPTION) + @DataField(id = "statsParams", description = FieldConstants.SAMPLE_QC_VARIANT_STATS_PARAMS_DESCRIPTION) + private SampleQcVariantStatsAnalysisParams statsParams; + + @Deprecated + @DataField(id = "vsId", description = FieldConstants.VARIANT_STATS_ID_DESCRIPTION, deprecated = true) private String vsId; - @DataField(id = "vsDescription", description = FieldConstants.VARIANT_STATS_DESCRIPTION_DESCRIPTION) + @Deprecated + @DataField(id = "vsDescription", description = FieldConstants.VARIANT_STATS_DESCRIPTION_DESCRIPTION, deprecated = true) private String vsDescription; - @DataField(id = "vsQuery", description = FieldConstants.VARIANT_STATS_QUERY_DESCRIPTION) + @Deprecated + @DataField(id = "vsQuery", description = FieldConstants.VARIANT_STATS_QUERY_DESCRIPTION, deprecated = true) private AnnotationVariantQueryParams vsQuery; - // Mutationsl signature params + // Mutational signature params + @DataField(id = "signatureParams", description = FieldConstants.SAMPLE_QC_SIGNATURE_PARAMS_DESCRIPTION) + private SampleQcSignatureAnalysisParams signatureParams; - @DataField(id = "msId", description = FieldConstants.MUTATIONAL_SIGNATURE_ID_DESCRIPTION) + @Deprecated + @DataField(id = "msId", description = FieldConstants.MUTATIONAL_SIGNATURE_ID_DESCRIPTION, deprecated = true) private String msId; - @DataField(id = "msDescription", description = FieldConstants.MUTATIONAL_SIGNATURE_DESCRIPTION_DESCRIPTION) + @Deprecated + @DataField(id = "msDescription", description = FieldConstants.MUTATIONAL_SIGNATURE_DESCRIPTION_DESCRIPTION, deprecated = true) private String msDescription; - @DataField(id = "msQuery", description = FieldConstants.MUTATIONAL_SIGNATURE_QUERY_DESCRIPTION) + @Deprecated + @DataField(id = "msQuery", description = FieldConstants.MUTATIONAL_SIGNATURE_QUERY_DESCRIPTION, deprecated = true) private String msQuery; - @DataField(id = "msFitId", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_METHOD_DESCRIPTION) + @Deprecated + @DataField(id = "msFitId", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_METHOD_DESCRIPTION, deprecated = true) private String msFitId; - @DataField(id = "msFitMethod", defaultValue = "FitMS", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_METHOD_DESCRIPTION) + @Deprecated + @DataField(id = "msFitMethod", defaultValue = "FitMS", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_METHOD_DESCRIPTION, + deprecated = true) private String msFitMethod; - @DataField(id = "msFitNBoot", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_N_BOOT_DESCRIPTION) + @Deprecated + @DataField(id = "msFitNBoot", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_N_BOOT_DESCRIPTION, deprecated = true) private Integer msFitNBoot; + @Deprecated @DataField(id = "msFitSigVersion", defaultValue = "RefSigv2", - description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_SIG_VERSION_DESCRIPTION) + description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_SIG_VERSION_DESCRIPTION, deprecated = true) private String msFitSigVersion; - @DataField(id = "msFitOrgan", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_ORGAN_DESCRIPTION) + @Deprecated + @DataField(id = "msFitOrgan", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_ORGAN_DESCRIPTION, deprecated = true) private String msFitOrgan; + @Deprecated @DataField(id = "msFitThresholdPerc", defaultValue = "5f", - description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_THRESHOLD_PERC_DESCRIPTION) + description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_THRESHOLD_PERC_DESCRIPTION, deprecated = true) private Float msFitThresholdPerc; + @Deprecated @DataField(id = "msFitThresholdPval", defaultValue = "0.05f", - description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_THRESHOLD_PVAL_DESCRIPTION) + description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_THRESHOLD_PVAL_DESCRIPTION, deprecated = true) private Float msFitThresholdPval; - @DataField(id = "msFitMaxRareSigs", defaultValue = "1", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_MAX_RARE_SIGS_DESCRIPTION) + @Deprecated + @DataField(id = "msFitMaxRareSigs", defaultValue = "1", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_MAX_RARE_SIGS_DESCRIPTION, + deprecated = true) private Integer msFitMaxRareSigs; - @DataField(id = "msFitSignaturesFile", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_SIGNATURES_FILE_DESCRIPTION) + @Deprecated + @DataField(id = "msFitSignaturesFile", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_SIGNATURES_FILE_DESCRIPTION, + deprecated = true) private String msFitSignaturesFile; - @DataField(id = "msFitRareSignaturesFile", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_RARE_SIGNATURES_FILE_DESCRIPTION) + @Deprecated + @DataField(id = "msFitRareSignaturesFile", description = FieldConstants.MUTATIONAL_SIGNATURE_FIT_RARE_SIGNATURES_FILE_DESCRIPTION, + deprecated = true) private String msFitRareSignaturesFile; // Genome plot + @DataField(id = "genomePlotParams", description = FieldConstants.SAMPLE_QC_GENOME_PLOT_PARAMS_DESCRIPTION) + private SampleQcGenomePlotAnalysisParams genomePlotParams; - @DataField(id = "gpId", description = FieldConstants.GENOME_PLOT_ID_DESCRIPTION) + @Deprecated + @DataField(id = "gpId", description = FieldConstants.GENOME_PLOT_ID_DESCRIPTION, deprecated = true) private String gpId; - @DataField(id = "gpDescription", description = FieldConstants.GENOME_PLOT_DESCRIPTION_DESCRIPTION) + @Deprecated + @DataField(id = "gpDescription", description = FieldConstants.GENOME_PLOT_DESCRIPTION_DESCRIPTION, deprecated = true) private String gpDescription; - @DataField(id = "gpConfigFile", description = FieldConstants.GENOME_PLOT_CONFIGURATION_FILE_DESCRIPTION) + @Deprecated + @DataField(id = "gpConfigFile", description = FieldConstants.GENOME_PLOT_CONFIGURATION_FILE_DESCRIPTION, deprecated = true) private String gpConfigFile; // Other - @DataField(id = "skipAnalysis", description = FieldConstants.SAMPLE_QUALITY_CONTROL_SKIP_DESCRIPTION) + @Deprecated + @DataField(id = "skip", description = FieldConstants.SAMPLE_QC_SKIP_ANALYSIS_DESCRIPTION, deprecated = true) + private List skip; + + @DataField(id = "skipAnalysis", description = FieldConstants.SAMPLE_QC_SKIP_ANALYSIS_DESCRIPTION) private List skipAnalysis; @DataField(id = "skipIndex", description = FieldConstants.QC_SKIP_INDEX_DESCRIPTION) @@ -159,14 +194,30 @@ public SampleQcAnalysisParams(String sample, List samples, String vsId, this.outdir = outdir; } + public SampleQcAnalysisParams(List samples, SampleQcVariantStatsAnalysisParams statsParams, + SampleQcSignatureAnalysisParams signatureParams, SampleQcGenomePlotAnalysisParams genomePlotParams, + List skipAnalysis, Boolean skipIndex, Boolean overwrite, String resourcesDir, String outdir) { + this.samples = samples; + this.statsParams = statsParams; + this.signatureParams = signatureParams; + this.genomePlotParams = genomePlotParams; + this.skipAnalysis = skipAnalysis; + this.skipIndex = skipIndex; + this.overwrite = overwrite; + this.resourcesDir = resourcesDir; + this.outdir = outdir; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("SampleQcAnalysisParams{"); sb.append("sample='").append(sample).append('\''); sb.append(", samples=").append(samples); + sb.append(", statsParams=").append(statsParams); sb.append(", vsId='").append(vsId).append('\''); sb.append(", vsDescription='").append(vsDescription).append('\''); sb.append(", vsQuery=").append(vsQuery); + sb.append(", signatureParams=").append(signatureParams); sb.append(", msId='").append(msId).append('\''); sb.append(", msDescription='").append(msDescription).append('\''); sb.append(", msQuery='").append(msQuery).append('\''); @@ -180,9 +231,11 @@ public String toString() { sb.append(", msFitMaxRareSigs=").append(msFitMaxRareSigs); sb.append(", msFitSignaturesFile='").append(msFitSignaturesFile).append('\''); sb.append(", msFitRareSignaturesFile='").append(msFitRareSignaturesFile).append('\''); + sb.append(", genomePlotParams=").append(genomePlotParams); sb.append(", gpId='").append(gpId).append('\''); sb.append(", gpDescription='").append(gpDescription).append('\''); sb.append(", gpConfigFile='").append(gpConfigFile).append('\''); + sb.append(", skip=").append(skip); sb.append(", skipAnalysis=").append(skipAnalysis); sb.append(", skipIndex=").append(skipIndex); sb.append(", overwrite=").append(overwrite); @@ -210,6 +263,15 @@ public SampleQcAnalysisParams setSamples(List samples) { return this; } + public SampleQcVariantStatsAnalysisParams getStatsParams() { + return statsParams; + } + + public SampleQcAnalysisParams setStatsParams(SampleQcVariantStatsAnalysisParams statsParams) { + this.statsParams = statsParams; + return this; + } + public String getVsId() { return vsId; } @@ -237,6 +299,15 @@ public SampleQcAnalysisParams setVsQuery(AnnotationVariantQueryParams vsQuery) { return this; } + public SampleQcSignatureAnalysisParams getSignatureParams() { + return signatureParams; + } + + public SampleQcAnalysisParams setSignatureParams(SampleQcSignatureAnalysisParams signatureParams) { + this.signatureParams = signatureParams; + return this; + } + public String getMsId() { return msId; } @@ -354,6 +425,15 @@ public SampleQcAnalysisParams setMsFitRareSignaturesFile(String msFitRareSignatu return this; } + public SampleQcGenomePlotAnalysisParams getGenomePlotParams() { + return genomePlotParams; + } + + public SampleQcAnalysisParams setGenomePlotParams(SampleQcGenomePlotAnalysisParams genomePlotParams) { + this.genomePlotParams = genomePlotParams; + return this; + } + public String getGpId() { return gpId; } @@ -381,6 +461,15 @@ public SampleQcAnalysisParams setGpConfigFile(String gpConfigFile) { return this; } + public List getSkip() { + return skip; + } + + public SampleQcAnalysisParams setSkip(List skip) { + this.skip = skip; + return this; + } + public List getSkipAnalysis() { return skipAnalysis; } diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcGenomePlotAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcGenomePlotAnalysisParams.java new file mode 100644 index 0000000000..9f79f250d7 --- /dev/null +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcGenomePlotAnalysisParams.java @@ -0,0 +1,79 @@ +/* + * Copyright 2015-2020 OpenCB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.opencb.opencga.core.models.variant.qc; + +import org.opencb.commons.annotations.DataField; +import org.opencb.opencga.core.api.FieldConstants; +import org.opencb.opencga.core.tools.ToolParams; + +public class SampleQcGenomePlotAnalysisParams extends ToolParams { + + @DataField(id = "id", description = FieldConstants.SAMPLE_QC_GENOME_PLOT_ID_DESCRIPTION) + private String id; + + @DataField(id = "description", description = FieldConstants.SAMPLE_QC_GENOME_PLOT_DESCRIPTION_DESCRIPTION) + private String description; + + @DataField(id = "configFile", description = FieldConstants.SAMPLE_QC_GENOME_PLOT_CONFIG_FILE_DESCRIPTION) + private String configFile; + + public SampleQcGenomePlotAnalysisParams() { + } + + public SampleQcGenomePlotAnalysisParams(String id, String description, String configFile) { + this.id = id; + this.description = description; + this.configFile = configFile; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SampleQcGenomePlotAnalysisParams{"); + sb.append("id='").append(id).append('\''); + sb.append(", description='").append(description).append('\''); + sb.append(", configFile='").append(configFile).append('\''); + sb.append('}'); + return sb.toString(); + } + + public String getId() { + return id; + } + + public SampleQcGenomePlotAnalysisParams setId(String id) { + this.id = id; + return this; + } + + public String getDescription() { + return description; + } + + public SampleQcGenomePlotAnalysisParams setDescription(String description) { + this.description = description; + return this; + } + + public String getConfigFile() { + return configFile; + } + + public SampleQcGenomePlotAnalysisParams setConfigFile(String configFile) { + this.configFile = configFile; + return this; + } +} diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcSignatureAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcSignatureAnalysisParams.java new file mode 100644 index 0000000000..fa1384c8e5 --- /dev/null +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcSignatureAnalysisParams.java @@ -0,0 +1,94 @@ +/* + * Copyright 2015-2020 OpenCB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.opencb.opencga.core.models.variant.qc; + +import org.opencb.commons.annotations.DataField; +import org.opencb.opencga.core.api.FieldConstants; +import org.opencb.opencga.core.models.variant.AnnotationVariantQueryParams; +import org.opencb.opencga.core.tools.ToolParams; + +public class SampleQcSignatureAnalysisParams extends ToolParams { + + @DataField(id = "id", description = FieldConstants.SAMPLE_QC_SIGNATURE_ID_DESCRIPTION) + private String id; + + @DataField(id = "description", description = FieldConstants.SAMPLE_QC_SIGNATURE_DESCRIPTION_DESCRIPTION) + private String description; + + @DataField(id = "variantQuery", description = FieldConstants.SAMPLE_QC_SIGNATURE_VARIANT_QUERY_DESCRIPTION) + private AnnotationVariantQueryParams variantQuery; + + @DataField(id = "fitting", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_PARAMS_DESCRIPTION) + private SampleQcSignatureFittingAnalysisParams fitting; + + public SampleQcSignatureAnalysisParams() { + } + + public SampleQcSignatureAnalysisParams(String id, String description, AnnotationVariantQueryParams variantQuery, SampleQcSignatureFittingAnalysisParams fitting) { + this.id = id; + this.description = description; + this.variantQuery = variantQuery; + this.fitting = fitting; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SampleQcSignatureAnalysisParams{"); + sb.append("id='").append(id).append('\''); + sb.append(", description='").append(description).append('\''); + sb.append(", variantQuery=").append(variantQuery); + sb.append(", fitting=").append(fitting); + sb.append('}'); + return sb.toString(); + } + + public String getId() { + return id; + } + + public SampleQcSignatureAnalysisParams setId(String id) { + this.id = id; + return this; + } + + public String getDescription() { + return description; + } + + public SampleQcSignatureAnalysisParams setDescription(String description) { + this.description = description; + return this; + } + + public AnnotationVariantQueryParams getVariantQuery() { + return variantQuery; + } + + public SampleQcSignatureAnalysisParams setVariantQuery(AnnotationVariantQueryParams variantQuery) { + this.variantQuery = variantQuery; + return this; + } + + public SampleQcSignatureFittingAnalysisParams getFitting() { + return fitting; + } + + public SampleQcSignatureAnalysisParams setFitting(SampleQcSignatureFittingAnalysisParams fitting) { + this.fitting = fitting; + return this; + } +} diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcSignatureFittingAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcSignatureFittingAnalysisParams.java new file mode 100644 index 0000000000..b64c34a291 --- /dev/null +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcSignatureFittingAnalysisParams.java @@ -0,0 +1,181 @@ +/* + * Copyright 2015-2020 OpenCB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.opencb.opencga.core.models.variant.qc; + +import org.opencb.commons.annotations.DataField; +import org.opencb.opencga.core.api.FieldConstants; +import org.opencb.opencga.core.models.variant.AnnotationVariantQueryParams; +import org.opencb.opencga.core.tools.ToolParams; + +public class SampleQcSignatureFittingAnalysisParams extends ToolParams { + + @DataField(id = "id", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_ID_DESCRIPTION) + private String id; + + @DataField(id = "method", defaultValue = "FitMS", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_METHOD_DESCRIPTION) + private String method; + + @DataField(id = "nBoot", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_N_BOOT_DESCRIPTION) + private Integer nBoot; + + @DataField(id = "sigVersion", defaultValue = "RefSigv2", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_SIG_VERSION_DESCRIPTION) + private String sigVersion; + + @DataField(id = "organ", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_ORGAN_DESCRIPTION) + private String organ; + + @DataField(id = "thresholdPerc", defaultValue = "5f", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_THRESHOLD_PERC_DESCRIPTION) + private Float thresholdPerc; + + @DataField(id = "thresholdPval", defaultValue = "0.05f", + description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_THRESHOLD_PVAL_DESCRIPTION) + private Float thresholdPval; + + @DataField(id = "maxRareSigs", defaultValue = "1", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_MAX_RARE_SIGS_DESCRIPTION) + private Integer maxRareSigs; + + @DataField(id = "signaturesFile", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_SIGNATURES_FILE_DESCRIPTION) + private String signaturesFile; + + @DataField(id = "rareSignaturesFile", description = FieldConstants.SAMPLE_QC_SIGNATURE_FIT_RARE_SIGNATURES_FILE_DESCRIPTION) + private String rareSignaturesFile; + + public SampleQcSignatureFittingAnalysisParams() { + } + + public SampleQcSignatureFittingAnalysisParams(String id, String method, Integer nBoot, String sigVersion, String organ, + Float thresholdPerc, Float thresholdPval, Integer maxRareSigs, String signaturesFile, + String rareSignaturesFile) { + this.id = id; + this.method = method; + this.nBoot = nBoot; + this.sigVersion = sigVersion; + this.organ = organ; + this.thresholdPerc = thresholdPerc; + this.thresholdPval = thresholdPval; + this.maxRareSigs = maxRareSigs; + this.signaturesFile = signaturesFile; + this.rareSignaturesFile = rareSignaturesFile; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SampleQcSignatureFittingAnalysisParams{"); + sb.append("id='").append(id).append('\''); + sb.append(", method='").append(method).append('\''); + sb.append(", nBoot=").append(nBoot); + sb.append(", sigVersion='").append(sigVersion).append('\''); + sb.append(", organ='").append(organ).append('\''); + sb.append(", thresholdPerc=").append(thresholdPerc); + sb.append(", thresholdPval=").append(thresholdPval); + sb.append(", maxRareSigs=").append(maxRareSigs); + sb.append(", signaturesFile='").append(signaturesFile).append('\''); + sb.append(", rareSignaturesFile='").append(rareSignaturesFile).append('\''); + sb.append('}'); + return sb.toString(); + } + + public String getId() { + return id; + } + + public SampleQcSignatureFittingAnalysisParams setId(String id) { + this.id = id; + return this; + } + + public String getMethod() { + return method; + } + + public SampleQcSignatureFittingAnalysisParams setMethod(String method) { + this.method = method; + return this; + } + + public Integer getnBoot() { + return nBoot; + } + + public SampleQcSignatureFittingAnalysisParams setnBoot(Integer nBoot) { + this.nBoot = nBoot; + return this; + } + + public String getSigVersion() { + return sigVersion; + } + + public SampleQcSignatureFittingAnalysisParams setSigVersion(String sigVersion) { + this.sigVersion = sigVersion; + return this; + } + + public String getOrgan() { + return organ; + } + + public SampleQcSignatureFittingAnalysisParams setOrgan(String organ) { + this.organ = organ; + return this; + } + + public Float getThresholdPerc() { + return thresholdPerc; + } + + public SampleQcSignatureFittingAnalysisParams setThresholdPerc(Float thresholdPerc) { + this.thresholdPerc = thresholdPerc; + return this; + } + + public Float getThresholdPval() { + return thresholdPval; + } + + public SampleQcSignatureFittingAnalysisParams setThresholdPval(Float thresholdPval) { + this.thresholdPval = thresholdPval; + return this; + } + + public Integer getMaxRareSigs() { + return maxRareSigs; + } + + public SampleQcSignatureFittingAnalysisParams setMaxRareSigs(Integer maxRareSigs) { + this.maxRareSigs = maxRareSigs; + return this; + } + + public String getSignaturesFile() { + return signaturesFile; + } + + public SampleQcSignatureFittingAnalysisParams setSignaturesFile(String signaturesFile) { + this.signaturesFile = signaturesFile; + return this; + } + + public String getRareSignaturesFile() { + return rareSignaturesFile; + } + + public SampleQcSignatureFittingAnalysisParams setRareSignaturesFile(String rareSignaturesFile) { + this.rareSignaturesFile = rareSignaturesFile; + return this; + } +} diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcVariantStatsAnalysisParams.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcVariantStatsAnalysisParams.java new file mode 100644 index 0000000000..5554b1471d --- /dev/null +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/variant/qc/SampleQcVariantStatsAnalysisParams.java @@ -0,0 +1,82 @@ +/* + * Copyright 2015-2020 OpenCB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.opencb.opencga.core.models.variant.qc; + +import org.opencb.commons.annotations.DataField; +import org.opencb.opencga.core.api.FieldConstants; +import org.opencb.opencga.core.models.variant.AnnotationVariantQueryParams; +import org.opencb.opencga.core.tools.ToolParams; + +import java.util.List; + +public class SampleQcVariantStatsAnalysisParams extends ToolParams { + + @DataField(id = "id", description = FieldConstants.SAMPLE_QC_VARIANT_STATS_ID_DESCRIPTION) + private String id; + + @DataField(id = "description", description = FieldConstants.SAMPLE_QC_VARIANT_STATS_DESCRIPTION_DESCRIPTION) + private String description; + + @DataField(id = "variantQuery", description = FieldConstants.SAMPLE_QC_VARIANT_STATS_VARIANT_QUERY_DESCRIPTION) + private AnnotationVariantQueryParams variantQuery; + + public SampleQcVariantStatsAnalysisParams() { + } + + public SampleQcVariantStatsAnalysisParams(String id, String description, AnnotationVariantQueryParams variantQuery) { + this.id = id; + this.description = description; + this.variantQuery = variantQuery; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("SampleQcVariantStatsAnalysisParams{"); + sb.append("id='").append(id).append('\''); + sb.append(", description='").append(description).append('\''); + sb.append(", variantQuery=").append(variantQuery); + sb.append('}'); + return sb.toString(); + } + + public String getId() { + return id; + } + + public SampleQcVariantStatsAnalysisParams setId(String id) { + this.id = id; + return this; + } + + public String getDescription() { + return description; + } + + public SampleQcVariantStatsAnalysisParams setDescription(String description) { + this.description = description; + return this; + } + + public AnnotationVariantQueryParams getVariantQuery() { + return variantQuery; + } + + public SampleQcVariantStatsAnalysisParams setVariantQuery(AnnotationVariantQueryParams variantQuery) { + this.variantQuery = variantQuery; + return this; + } +} diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/FamilyVariantQcAnalysisExecutor.java b/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/FamilyVariantQcAnalysisExecutor.java index 95041875aa..7d29decc09 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/FamilyVariantQcAnalysisExecutor.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/FamilyVariantQcAnalysisExecutor.java @@ -16,7 +16,7 @@ package org.opencb.opencga.core.tools.variant; -import org.opencb.opencga.core.models.variant.FamilyQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; import org.opencb.opencga.core.tools.OpenCgaToolExecutor; import java.nio.file.Path; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/IndividualVariantQcAnalysisExecutor.java b/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/IndividualVariantQcAnalysisExecutor.java index c06b1c9b35..e591eaff3c 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/IndividualVariantQcAnalysisExecutor.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/IndividualVariantQcAnalysisExecutor.java @@ -16,8 +16,7 @@ package org.opencb.opencga.core.tools.variant; -import org.opencb.opencga.core.models.variant.FamilyQcAnalysisParams; -import org.opencb.opencga.core.models.variant.IndividualQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.IndividualQcAnalysisParams; import org.opencb.opencga.core.tools.OpenCgaToolExecutor; import java.nio.file.Path; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/SampleVariantQcAnalysisExecutor.java b/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/SampleVariantQcAnalysisExecutor.java index b38d9876ec..1995128565 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/SampleVariantQcAnalysisExecutor.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/tools/variant/SampleVariantQcAnalysisExecutor.java @@ -16,7 +16,7 @@ package org.opencb.opencga.core.tools.variant; -import org.opencb.opencga.core.models.variant.SampleQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcAnalysisParams; import org.opencb.opencga.core.tools.OpenCgaToolExecutor; import java.nio.file.Path; diff --git a/opencga-core/src/test/java/org/opencb/opencga/core/models/variant/FamilyQcAnalysisParamsTest.java b/opencga-core/src/test/java/org/opencb/opencga/core/models/variant/FamilyQcAnalysisParamsTest.java index 1fe717f848..c9ca3454ce 100644 --- a/opencga-core/src/test/java/org/opencb/opencga/core/models/variant/FamilyQcAnalysisParamsTest.java +++ b/opencga-core/src/test/java/org/opencb/opencga/core/models/variant/FamilyQcAnalysisParamsTest.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectWriter; import org.junit.Test; import org.opencb.opencga.core.common.JacksonUtils; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; import java.io.IOException; import java.nio.file.Files; diff --git a/opencga-server/src/main/java/org/opencb/opencga/server/rest/analysis/VariantWebService.java b/opencga-server/src/main/java/org/opencb/opencga/server/rest/analysis/VariantWebService.java index 73ded42e82..5a6d811563 100644 --- a/opencga-server/src/main/java/org/opencb/opencga/server/rest/analysis/VariantWebService.java +++ b/opencga-server/src/main/java/org/opencb/opencga/server/rest/analysis/VariantWebService.java @@ -73,6 +73,9 @@ import org.opencb.opencga.core.models.operations.variant.VariantStatsExportParams; import org.opencb.opencga.core.models.sample.Sample; import org.opencb.opencga.core.models.variant.*; +import org.opencb.opencga.core.models.variant.qc.FamilyQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.IndividualQcAnalysisParams; +import org.opencb.opencga.core.models.variant.qc.SampleQcAnalysisParams; import org.opencb.opencga.core.response.OpenCGAResult; import org.opencb.opencga.core.response.RestResponse; import org.opencb.opencga.core.tools.annotations.*;