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-4667 - Port Patch 1.6.3.1 -> 1.8.0 #2313

Merged
merged 29 commits into from
Jul 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
520695e
analysis: fix SV catalog counting in signature analysis, #TASK-4144
jtarraga Apr 3, 2023
d36b6cd
analysis: fix SV catalogue counting and clean code, #TASK-4144
jtarraga Apr 4, 2023
9f3ca93
analysis: fix try-catch issues, #TASK-4144
jtarraga Apr 4, 2023
d715ee3
Prepare next release 2.8.2.1-SNAPSHOT
j-coll Jun 28, 2023
92d78ef
storage: Always return originalCall when context allele is missing #T…
j-coll Jun 26, 2023
a27182f
storage: Fetch original call from indelx in batches in threads. #TASK…
j-coll Jun 27, 2023
90ea5a2
storage: Include secondary-alternates to the SampleIndexOnlyVariantQu…
j-coll Jun 28, 2023
ca109ef
Prepare next release 2.8.2.1-SNAPSHOT
j-coll Jun 28, 2023
80a8d24
Merge branch 'release-2.8.2.x' into TASK-4642
j-coll Jun 28, 2023
b1d890a
storage: Fix Structural Variants filtering when partial region overla…
j-coll Jun 29, 2023
f214bd8
storage: Fix checkstyle and test. #TASK-4146
j-coll Jun 29, 2023
cde3594
analysis: update R package 'signature.tools.lib' to v2.4.1, #TASK-4593
jtarraga Jun 30, 2023
d7b8d79
analysis: fix the analysis of pedigree graphs when running with multi…
jtarraga Jul 3, 2023
ba3144e
Merge branch 'release-2.8.2.x' into TASK-4144
jtarraga Jul 3, 2023
db6922c
analysis: improve log messages, #TASK-4144
jtarraga Jul 4, 2023
9d7c878
storage: Ensure native HBase query #TASK-4642
j-coll Jul 4, 2023
d559f78
Merge pull request #2308 from opencb/TASK-4593
jtarraga Jul 5, 2023
c6d02ea
Merge branch 'release-2.8.2.x' into TASK-4144
jtarraga Jul 5, 2023
00839ef
Merge pull request #2310 from opencb/TASK-4144
jtarraga Jul 5, 2023
42c5588
Merge pull request #2309 from opencb/TASK-4686
jtarraga Jul 5, 2023
2596e2f
storage: Fix test. Avoid duplicated file entries #TASK-4642
j-coll Jul 5, 2023
945d32d
Merge pull request #2307 from opencb/TASK-4146
j-coll Jul 7, 2023
94c2e07
Merge branch 'release-2.8.2.x' into TASK-4642
j-coll Jul 7, 2023
28a43db
Merge pull request #2306 from opencb/TASK-4642
j-coll Jul 7, 2023
1291378
storage: Fix test VariantHadoopDBWriterTest.loadVariantsBasic #TASK-4736
j-coll Jul 11, 2023
4bd868e
Merge pull request #2311 from opencb/TASK-4736
j-coll Jul 12, 2023
dd2362e
Prepare release 2.8.2.1
juanfeSanahuja Jul 12, 2023
95ed1ad
update version
juanfeSanahuja Jul 13, 2023
90b8b39
Port Patch 1.6.3.1 -> 1.8.0 #TASK-4667
juanfeSanahuja Jul 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public class HRDetectAnalysis extends OpenCgaToolScopeStudy {
public static final String ID = "hr-detect";
public static final String DESCRIPTION = "Run HRDetect analysis for a given somatic sample.";

public final static String HRDETECT_SCORES_FILENAME_DEFAULT = "data_matrix.tsv";
public final static String HRDETECT_SCORES_FILENAME_DEFAULT = "hrdetect_output.tsv";

@ToolParams
private HRDetectAnalysisParams hrdetectParams = new HRDetectAnalysisParams();
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public void run() throws ToolException {

VariantQuery query = new VariantQuery()
.study(studyId)
.sample(sampleId + ":0/1,1/1")
.sample(sampleId)
.includeSample(samples)
.includeSampleData("GT")
.unknownGenotype("./.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,9 @@ public void setUp() throws Throwable {
null, null, null, token);

Phenotype phenotype = new Phenotype("phenotype", "phenotype", "");
Disorder disorder = new Disorder("disorder", "disorder", "", "", Collections.singletonList(phenotype), Collections.emptyMap());
Disorder disorder1 = new Disorder("disorder id 1", "disorder name 1", "", "", Collections.singletonList(phenotype), Collections.emptyMap());
Disorder disorder2 = new Disorder("disorder id 2", "disorder name 2", "", "", Collections.singletonList(phenotype), Collections.emptyMap());
List<Disorder> disorderList = new ArrayList<>(Arrays.asList(disorder1, disorder2));
List<Individual> individuals = new ArrayList<>(4);

// Father
Expand All @@ -208,14 +210,14 @@ public void setUp() throws Throwable {
// Son
individuals.add(catalogManager.getIndividualManager()
.create(STUDY, new Individual(son, son, new Individual(), new Individual(), new Location(), SexOntologyTermAnnotation.initMale(), null, null, null, null, "",
Collections.emptyList(), false, 0, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), IndividualInternal.init(), Collections.emptyMap()).setFather(individuals.get(0)).setMother(individuals.get(1)).setDisorders(Collections.singletonList(disorder)), Collections.singletonList(son), new QueryOptions(ParamConstants.INCLUDE_RESULT_PARAM, true), token).first());
Collections.emptyList(), false, 0, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), IndividualInternal.init(), Collections.emptyMap()).setFather(individuals.get(0)).setMother(individuals.get(1)).setDisorders(disorderList), Collections.singletonList(son), new QueryOptions(ParamConstants.INCLUDE_RESULT_PARAM, true), token).first());
// Daughter
individuals.add(catalogManager.getIndividualManager()
.create(STUDY, new Individual(daughter, daughter, new Individual(), new Individual(), new Location(), SexOntologyTermAnnotation.initFemale(), null, null, null, null, "",
Collections.emptyList(), false, 0, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), IndividualInternal.init(), Collections.emptyMap()).setFather(individuals.get(0)).setMother(individuals.get(1)), Collections.singletonList(daughter), new QueryOptions(ParamConstants.INCLUDE_RESULT_PARAM, true), token).first());
catalogManager.getFamilyManager().create(
STUDY,
new Family("f1", "f1", Collections.singletonList(phenotype), Collections.singletonList(disorder), null, null, 3, null, null),
new Family("f1", "f1", Collections.singletonList(phenotype), disorderList, null, null, 3, null, null),
individuals.stream().map(Individual::getId).collect(Collectors.toList()), new QueryOptions(),
token);

Expand Down Expand Up @@ -814,9 +816,22 @@ public void testMutationalSignatureCatalogueSV() throws Exception {
params.setSample(cancer_sample);
params.setId("catalogue-1");
params.setDescription("Catalogue #1");
VariantQuery query = new VariantQuery();
query.sample(cancer_sample);
query.type(VariantType.SV.name());
VariantQuery query = new VariantQuery()
.sample(cancer_sample)
.type(VariantType.SV.name())
//.file("AR2.10039966-01T_vs_AR2.10039966-01G.annot.brass.vcf.gz");
.fileData("AR2.10039966-01T_vs_AR2.10039966-01G.annot.brass.vcf.gz:BAS>=0;BKDIST>=-1")
.region("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,X,Y");

//https://ws.opencb.org/opencga-test/webservices/rest/v2/analysis/variant/mutationalSignature/query
// ?study=serena@cancer38:test38
// &fitting=false
// &sample=AR2.10039966-01T
// &fileData=AR2.10039966-01T_vs_AR2.10039966-01G.annot.brass.vcf.gz:BAS>=0;BKDIST>=-1;EXT_PS_SOM>=4;EXT_RC_SOM>=0
// &region=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,X,Y
// &type=SV


params.setQuery(query.toJson());
params.setSkip("fitting");

Expand Down Expand Up @@ -992,8 +1007,12 @@ public void testHRDetect() throws Exception {
List<HRDetect> hrDetects = sample.getQualityControl().getVariant().getHrDetects();
for (HRDetect hrDetect : hrDetects) {
if (hrDetect.getId().equals(hrDetect.getId())) {
System.out.println("HRDetect scores for " + hrDetect.getId());
for (Map.Entry<String, Object> entry : hrDetect.getScores().entrySet()) {
System.out.println("\t" + entry.getKey() + ": " + entry.getValue());
}
if (hrDetect.getScores().containsKey("del.mh.prop")) {
Assert.assertEquals(hrDetect.getScores().getFloat("del.mh.prop"), 0.172413793103448f, 0.00001f);
Assert.assertEquals(-1.5702984, hrDetect.getScores().getFloat("del.mh.prop"), 0.00001f);
return;
}
}
Expand All @@ -1018,12 +1037,23 @@ public void testHRDetectParseResults() throws Exception {

HRDetect hrDetect = HRDetectAnalysis.parseResult(hrdParams, hrdetectOutDir);
for (Map.Entry<String, Object> entry : hrDetect.getScores().entrySet()) {
System.out.println(entry.getKey() + " -> " + entry.getValue());
System.out.println(entry.getKey() + ": " + entry.getValue());
}
assertTrue(hrDetect.getScores().containsKey("hrd"));
assertEquals(-0.102769986f, hrDetect.getScores().getFloat("hrd"), 0.00001f);
assertEquals(-1.95208666666667, hrDetect.getScores().getFloat("hrd"), 0.00001f);
assertTrue(hrDetect.getScores().containsKey("Probability"));
assertEquals(0.998444f, hrDetect.getScores().getFloat("Probability"), 0.00001f);
assertEquals(4.21293910790655e-05, hrDetect.getScores().getFloat("Probability"), 0.00001f);
}

@Test
public void testPedigreeGraph() throws CatalogException {
String base64 = "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";

OpenCGAResult<Family> results = catalogManager.getFamilyManager().search(STUDY, new Query("id", "f1"), QueryOptions.empty(), token);
Family family = results.first();

assertTrue(family.getPedigreeGraph() != null);
assertEquals(base64, family.getPedigreeGraph().getBase64());
}

public void checkExecutionResult(ExecutionResult er) {
Expand Down
13 changes: 8 additions & 5 deletions opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ RUN apt-get update -y && DEBIAN_FRONTEND="noninteractive" TZ="Europe/London" apt
libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev \
gnuplot pandoc samtools bcftools tabix fastqc plink1.9 bwa r-base && \
## Installation dependencies using R install.packages() is slower than apt-get but final size is 400GB smaller.
R -e "install.packages(c('BiocManager', 'RCircos', 'nnls', 'ggplot2', 'jsonlite', 'optparse', 'knitr', 'configr', 'dplyr', 'rmarkdown', 'tidyr', 'httr', 'kinship2'))" && \
R -e "install.packages(c('BiocManager', 'RCircos', 'nnls', 'ggplot2', 'jsonlite', 'optparse', 'knitr', 'configr', 'dplyr', 'rmarkdown', 'tidyr', 'httr', 'kinship2', 'limSolve'))" && \
R -e "BiocManager::install('BiocStyle')" && \
## signature.tools.lib installation
## signature.tools.lib installation \
R -e 'install.packages(c("devtools", "getopt"), repos="https://www.stats.bris.ac.uk/R/")' && \
git clone https://github.com/Nik-Zainal-Group/signature.tools.lib.git /opt/opencga/signature.tools.lib && \
# git checkout tags/v2.3.0 && \
git checkout d3d73db497b5b83abc55d6cd55840c34ed542628 && \
git clone https://github.com/Nik-Zainal-Group/signature.tools.lib.git /opt/opencga/signature.tools.lib

WORKDIR /opt/opencga/signature.tools.lib

RUN git fetch origin --tags && \
git checkout tags/v2.4.1 && \
sed -i '/Mmusculus/d' DESCRIPTION && \
sed -i '/Cfamiliaris/d' DESCRIPTION && \
sed -i '/1000genomes/d' DESCRIPTION && \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ private static File createPedFile(Family family, Path outDir) throws FileNotFoun
StringBuilder sbDisorders = new StringBuilder();
if (CollectionUtils.isNotEmpty(disorders) && disorders.size() > 1) {
for (Disorder disorder : family.getDisorders()) {
sbDisorders.append("affected.").append(disorder.getId()).append("\t");
sbDisorders.append("\"affected.").append(disorder.getId()).append("\"\t");
}
} else {
sbDisorders.append("affected").append("\t");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,10 @@ public VariantStorageMetadataManager(VariantStorageMetadataDBAdaptorFactory dbAd
});
}

public ObjectMap getConfiguration() {
return dbAdaptorFactory.getConfiguration();
}

public Lock lockGlobal(long lockDuration, long timeout, String lockName)
throws StorageEngineException {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,25 @@ public enum GenotypeClass implements Predicate<String> {
return true;
}),

/**
* Genotypes containing any secondary alternate.
* <p>
* 1/2, 2/3, ./2, 0/2, ...
*/
SEC(str -> {
Genotype gt = parseGenotype(str);
if (gt == null) {
// Skip invalid genotypes
return false;
}
for (int allele : gt.getAllelesIdx()) {
if (allele > 1) {
return true;
}
}
return false;
}),

/**
* Genotypes containing reference and secondary alternates only.
* <p>
Expand All @@ -233,6 +252,7 @@ public enum GenotypeClass implements Predicate<String> {
return hasSecondaryAlternate;
}),


/**
* Contains the main alternate.
* <p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.opencb.opencga.storage.core.variant.query.VariantQueryUtils;

import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -193,6 +194,12 @@ public VariantQuery includeSampleData(String value) {
put(VariantQueryParam.INCLUDE_SAMPLE_DATA.key(), value);
return this;
}

public VariantQuery includeSampleData(Collection<String> value) {
put(VariantQueryParam.INCLUDE_SAMPLE_DATA.key(), value);
return this;
}

public String includeSampleData() {
return getString(VariantQueryParam.INCLUDE_SAMPLE_DATA.key());
}
Expand Down Expand Up @@ -257,6 +264,12 @@ public VariantQuery includeFile(String value) {
put(VariantQueryParam.INCLUDE_FILE.key(), value);
return this;
}

public VariantQuery includeFile(Collection<String> value) {
put(VariantQueryParam.INCLUDE_FILE.key(), value);
return this;
}

public VariantQuery includeFileAll() {
return includeFile(ParamConstants.ALL);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2285,7 +2285,12 @@ public void testReturnNoneFiles() {
queryResult = query(new Query(INCLUDE_FILE.key(), VariantQueryUtils.NONE).append(INCLUDE_SAMPLE.key(), ALL), new QueryOptions());
assertEquals(allVariants.getResults().size(), queryResult.getResults().size());
for (Variant variant : queryResult.getResults()) {
assertThat(variant.getStudies().get(0).getFiles(), is(Collections.emptyList()));
if (variant.getLengthReference() == 0 || variant.getLengthAlternate() == 0) {
assertThat(variant.getStudies().get(0).getFiles(), is(not(Collections.emptyList())));
assertThat(variant.getStudies().get(0).getFiles().get(0).getCall(), is(not(nullValue())));
} else {
assertThat(variant.getStudies().get(0).getFiles(), is(Collections.emptyList()));
}
assertThat(new HashSet<>(variant.getStudies().get(0).getSampleDataKeys()), is(FORMAT));
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
intercept del.mh.prop SNV3 SV3 SV5 hrd SNV8 Probability
AR2.10039966-01T -3.364 6.1388694855816 2.93200322296942 -0.876753168376584 1.62647246717118 -0.102769988932733 0.110259929136027 0.998444003582779
AR2.10039966-01T -3.364 -1.70122966415816 -0.949832911392405 -0.876753168376584 -1.10515509103169 -1.95208666666667 -0.125665303554577 4.21293910790655e-05
Loading
Loading