@Test public void testGetAllVariants_samples() { List<String> samples = studyConfiguration1.getSamplesInFiles() .get(file1) .stream() .map(s -> studyConfiguration1.getSampleIds().inverse().get(s)) .limit(5) .collect(Collectors.toList()); query = new Query(STUDY.key(), studyConfiguration1.getStudyId()) .append(SAMPLE.key(), String.join(AND, samples)); queryResult = dbAdaptor.get(query, options); assertThat(queryResult, everyResult(withStudy(studyConfiguration1.getStudyName(), allOf( withSampleData(samples.get(0), "GT", containsString("1")), withSampleData(samples.get(1), "GT", containsString("1")), withSampleData(samples.get(2), "GT", containsString("1")), withSampleData(samples.get(3), "GT", containsString("1")), withSampleData(samples.get(4), "GT", containsString("1")), withSamples(samples), withFileId(is(Collections.singletonList(fileName1))) )))); }
@Test public void testGetAllVariants_samples_gt() { Query query = new Query(SAMPLE.key(), "NA19600").append(GENOTYPE.key(), "NA19685" + IS + homRef).append(INCLUDE_SAMPLE.key(), ALL); thrown.expect(VariantQueryException.class); thrown.expectMessage("Can not be used along with filter \"genotype\""); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, allOf( withSampleData("NA19600", "GT", containsString("1")), withSampleData("NA19685", "GT", is(homRef)))))); }
@Test public void testGetAllVariants_negatedGenotypes() { Query query; Integer na19600 = studyConfiguration.getSampleIds().get("NA19600"); Integer na19685 = studyConfiguration.getSampleIds().get("NA19685"); QueryResult<Variant> allVariants = query(new Query(INCLUDE_SAMPLE.key(), "NA19600"), new QueryOptions()); //Get all variants with not 1|1 for na19600 query = new Query(GENOTYPE.key(), na19600 + IS + NOT + homAlt); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, withSampleData("NA19600", "GT", not(is(homAlt)))))); //Get all variants with not 0/0 for na19600 query = new Query(GENOTYPE.key(), na19600 + IS + NOT + homRef); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, withSampleData("NA19600", "GT", not(is(homRef)))))); //Get all variants with not 0/0 or 0|1 for na19600 query = new Query(GENOTYPE.key(), na19600 + IS + NOT + homRef + OR + NOT + het1); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, withSampleData("NA19600", "GT", allOf(not(is(homRef)), not(is(het1))))))); allVariants = query(new Query(INCLUDE_SAMPLE.key(), "NA19600,NA19685"), new QueryOptions()); //Get all variants with 1|1 for na19600 and 0|0 or 1|0 for na19685 query = new Query(GENOTYPE.key(), na19600 + IS + homAlt + AND + na19685 + IS + NOT + homRef + OR + NOT + het2); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, allOf( withSampleData("NA19600", "GT", is(homAlt)), withSampleData("NA19685", "GT", allOf(not(is(homRef)), not(is(het2)))))))); }
queryResult = dbAdaptor.get(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(study, allOf( withSampleData(f1_s1, "GT", is("1|1")), withSampleData(f2_s1, "GT", is("0|1")))))); withSampleData(f1_s1, "GT", is("1|1")), withSampleData(f1_s2, "GT", is("0|1")))))); withSampleData(f1_s1, "GT", is("1|1")), withSampleData(f1_s2, "GT", anyOf(is("0|0"), is("0/0"))))))); withSampleData(f1_s1, "GT", is("1|1")), withSampleData(f2_s1, "GT", anyOf(is("0|0"), is("0/0"))))))); withSampleData(f2_s1, "GT", anyOf(is("0|0"), is("0/0")))))); withSampleData(f1_s1, "GT", anyOf(is("0|0"), is("0/0"))), withSampleData(f2_s1, "GT", anyOf(is("0|0"), is("0/0"))) )))); queryResult = dbAdaptor.get(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(study, allOf( withSampleData(f1_s1, "GT", anyOf(is("0|0"), is("0/0"))), withSampleData(f2_s1, "GT", anyOf(is("0|0"), is("0/0"))) ))));
assertThat(queryResult, everyResult(allVariants, withStudy(study, withSampleData(s1, "GT", not(is("1|1")))))); assertThat(queryResult, everyResult(allVariants, withStudy(study, withSampleData(s1, "GT", not(is("0/0")))))); assertThat(queryResult, everyResult(allVariants, withStudy(study, withSampleData(s1, "GT", allOf(not(is("0/0")), not(is("0|1"))))))); queryResult = dbAdaptor.get(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(study, allOf( withSampleData(s1, "GT", is("1|1")), withSampleData(s2, "GT", allOf(not(is("0/0")), not(is("1|0"))))))));
@Test public void testGetAllVariants_samples() { Query query; QueryResult<Variant> allVariants = query(new Query(INCLUDE_SAMPLE.key(), "NA19600"), new QueryOptions()); query = new Query(SAMPLE.key(), "NA19600"); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, withSampleData("NA19600", "GT", containsString("1"))))); allVariants = query(new Query(INCLUDE_SAMPLE.key(), "NA19685"), new QueryOptions()); query = new Query(SAMPLE.key(), "NA19685"); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, withSampleData("NA19685", "GT", containsString("1"))))); query = new Query(STUDY.key(), studyConfiguration.getStudyName()).append(SAMPLE.key(), "NA19685"); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, withSampleData("NA19685", "GT", containsString("1"))))); allVariants = query(new Query(INCLUDE_SAMPLE.key(), "NA19600,NA19685"), new QueryOptions()); query = new Query(SAMPLE.key(), "NA19600,NA19685"); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, anyOf( withSampleData("NA19600", "GT", containsString("1")), withSampleData("NA19685", "GT", containsString("1")))))); query = new Query(SAMPLE.key(), "NA19600;NA19685"); queryResult = query(query, new QueryOptions()); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, allOf( withSampleData("NA19600", "GT", containsString("1")), withSampleData("NA19685", "GT", containsString("1")))))); }
@Test public void testGetByGenotype() throws Exception { VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877") .append(VariantQueryParam.INCLUDE_FILE.key(), file12877), options); query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.GENOTYPE.key(), "NA12877:" + GenotypeClass.HOM_ALT); queryResult = query(query, options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf(withFileId(file12877), withSampleData("NA12877", "GT", anyOf(is("1/1"), is("2/2"))))))); query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.GENOTYPE.key(), "NA12877:" + GenotypeClass.HET_REF); queryResult = query(query, options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf(withFileId(file12877), withSampleData("NA12877", "GT", anyOf(is("0/1"), is("0/2"))))))); query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.GENOTYPE.key(), "NA12877:" + GenotypeClass.HET_ALT); queryResult = query(query, options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf(withFileId(file12877), withSampleData("NA12877", "GT", anyOf(is("1/2"), is("2/3"))))))); }
@Test public void testGetBySampleNamesAND() throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.SAMPLE.key(), "NA12877;NA12878"); queryResult = query(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878") .append(VariantQueryParam.INCLUDE_FILE.key(), file12877 + "," + file12878), options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf( withFileId(file12877), withSampleData("NA12877", "GT", containsString("1")), withFileId(file12878), withSampleData("NA12878", "GT", containsString("1")) )))); }
@Test public void testGetBySampleNamesOR() throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.SAMPLE.key(), "NA12877,NA12878"); queryResult = query(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878") .append(VariantQueryParam.INCLUDE_FILE.key(), file12877 + "," + file12878), options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", anyOf( allOf(withFileId(file12877), withSampleData("NA12877", "GT", containsString("1"))), allOf(withFileId(file12878), withSampleData("NA12878", "GT", containsString("1"))) )))); }
public void testGetBySamplesName(String expectedSource, QueryOptions options) throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.SAMPLE.key(), "NA12877;NA12878"); // queryResult = dbAdaptor.get(query, options); queryResult = variantStorageEngine.get(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878") .append(VariantQueryParam.INCLUDE_FILE.key(), "1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz,1K.end.platinum-genomes-vcf-NA12878_S1.genome.vcf.gz"), options); assertEquals(expectedSource, queryResult.getSource()); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf( allOf( withFileId("1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), withSampleData("NA12877", "GT", containsString("1"))), allOf( withFileId("1K.end.platinum-genomes-vcf-NA12878_S1.genome.vcf.gz"), withSampleData("NA12878", "GT", containsString("1"))))))); }
public void testGetByGenotypesWithRefMix(String expectedSource, QueryOptions options) throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.GENOTYPE.key(), "NA12877:0/1;NA12878:0/0,0/1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878") .append(VariantQueryParam.UNKNOWN_GENOTYPE.key(), "0/0"); // queryResult = dbAdaptor.get(query, options); queryResult = variantStorageEngine.get(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878") .append(VariantQueryParam.INCLUDE_FILE.key(), "1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz,1K.end.platinum-genomes-vcf-NA12878_S1.genome.vcf.gz") .append(VariantQueryParam.UNKNOWN_GENOTYPE.key(), "0/0"), options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf( allOf( withFileId("1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), withSampleData("NA12877", "GT", containsString("0/1"))), anyOf( withSampleData("NA12878", "GT", containsString("0/0")), withSampleData("NA12878", "GT", containsString("0/1")) ) )))); assertEquals(expectedSource, queryResult.getSource()); }
@Test public void testGetByFilterBySample() { VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), sampleNA12877) .append(VariantQueryParam.INCLUDE_FILE.key(), asList(file12877)), options); query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.FILTER.key(), "LowGQX;LowMQ") .append(VariantQueryParam.SAMPLE.key(), sampleNA12877); queryResult = query(query, options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf( withFileId(file12877, withAttribute(FILTER, allOf(containsString("LowGQX"), containsString("LowMQ")))), withSampleData(sampleNA12877, "GT", containsString("1")) )))); }
public void testGetByGenotypes(String expectedSource, QueryOptions options) throws Exception { VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878") .append(VariantQueryParam.INCLUDE_FILE.key(), "1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz,1K.end.platinum-genomes-vcf-NA12878_S1.genome.vcf.gz"), options); queryResult = variantStorageEngine.get(new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.GENOTYPE.key(), "NA12877:0/1,NA12878:1/1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878"), options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", anyOf( allOf( withFileId("1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), withSampleData("NA12877", "GT", containsString("0/1"))), allOf( withFileId("1K.end.platinum-genomes-vcf-NA12878_S1.genome.vcf.gz"), withSampleData("NA12878", "GT", containsString("1/1"))))))); assertEquals(expectedSource, queryResult.getSource()); queryResult = variantStorageEngine.get(new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.GENOTYPE.key(), "NA12877:" + GenotypeClass.HET_REF + ",NA12878:" + GenotypeClass.HOM_ALT) .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878"), options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", anyOf( allOf( withFileId("1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), withSampleData("NA12877", "GT", containsString("0/1"))), allOf( withFileId("1K.end.platinum-genomes-vcf-NA12878_S1.genome.vcf.gz"), withSampleData("NA12878", "GT", containsString("1/1"))))))); assertEquals(expectedSource, queryResult.getSource()); }
public void testGetByGenotypesWithRef(String expectedSource, QueryOptions options) throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.GENOTYPE.key(), "NA12877:0/1;NA12878:0/0") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878") .append(VariantQueryParam.UNKNOWN_GENOTYPE.key(), "0/0"); // queryResult = dbAdaptor.get(query, options); queryResult = variantStorageEngine.get(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877,NA12878") .append(VariantQueryParam.INCLUDE_FILE.key(), "1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz,1K.end.platinum-genomes-vcf-NA12878_S1.genome.vcf.gz") .append(VariantQueryParam.UNKNOWN_GENOTYPE.key(), "0/0"), options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf( allOf( withFileId("1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), withSampleData("NA12877", "GT", containsString("0/1"))), withSampleData("NA12878", "GT", containsString("0/0")))))); assertEquals(expectedSource, queryResult.getSource()); }
private void checkQueryGenotypes(VariantHadoopDBAdaptor dbAdaptor) { StudyConfiguration sc = dbAdaptor.getStudyConfigurationManager().getStudyConfiguration(STUDY_ID, null).first(); List<Variant> allVariants = dbAdaptor.get(new Query(), new QueryOptions()).getResult(); for (String sample : StudyConfiguration.getIndexedSamples(sc).keySet()) { VariantQueryResult<Variant> queryResult = dbAdaptor.get(new Query(VariantQueryParam.SAMPLE.key(), sample) .append(VariantQueryParam.INCLUDE_SAMPLE.key(), VariantQueryUtils.ALL) .append(VariantQueryParam.INCLUDE_FILE.key(), VariantQueryUtils.ALL), new QueryOptions("explain", true)); assertThat(queryResult, everyResult(allVariants, withStudy(STUDY_NAME, withSampleData(sample, "GT", containsString("1"))))); } }
@Test public void testGetBySampleName() throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.SAMPLE.key(), "NA12877"); queryResult = query(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877") .append(VariantQueryParam.INCLUDE_FILE.key(), file12877), options); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf(withFileId(file12877), withSampleData("NA12877", "GT", containsString("1")))))); }
anyOf(withSampleData(sampleNA12879, "GT", not("?/?")), withSampleData(sampleNA12880, "GT", not("?/?"))), withFileId(file12877), not(withFileId(file12878)) withSampleData(sampleNA12879, "GT", not("?/?")), withSampleData(sampleNA12880, "GT", not("?/?")), withFileId(file12877), not(withFileId(file12878))
public void testGetBySampleName(String expectedSource, QueryOptions options) throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.SAMPLE.key(), "NA12877"); // queryResult = dbAdaptor.get(query, options); queryResult = variantStorageEngine.get(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877") .append(VariantQueryParam.INCLUDE_FILE.key(), "1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), options); assertEquals(expectedSource, queryResult.getSource()); assertThat(queryResult, everyResult(allVariants, withStudy("S_1", allOf(withFileId("1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), withSampleData("NA12877", "GT", containsString("1")))))); }
public void testGetBySampleNameMultiRegion(String expectedSource, QueryOptions options) throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.SAMPLE.key(), "NA12877") .append(VariantQueryParam.REGION.key(), "1:1-12783,M"); // queryResult = dbAdaptor.get(query, options); queryResult = variantStorageEngine.get(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877") .append(VariantQueryParam.INCLUDE_FILE.key(), "1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), options); assertEquals(expectedSource, queryResult.getSource()); assertThat(queryResult, everyResult(allVariants, allOf(anyOf(overlaps(new Region("1:1-12783")), overlaps(new Region("M"))), withStudy("S_1", allOf(withFileId("1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), withSampleData("NA12877", "GT", containsString("1"))))))); }
public void testGetByGenotypeMultiRegion(String expectedSource, QueryOptions options) throws Exception { query = new Query() .append(VariantQueryParam.STUDY.key(), "S_1") .append(VariantQueryParam.GENOTYPE.key(), "NA12877:1/1") .append(VariantQueryParam.REGION.key(), "1:1-12783,M"); // queryResult = dbAdaptor.get(query, options); queryResult = variantStorageEngine.get(query, options); VariantQueryResult<Variant> allVariants = dbAdaptor.get(new Query() .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1") .append(VariantQueryParam.INCLUDE_SAMPLE.key(), "NA12877") .append(VariantQueryParam.INCLUDE_FILE.key(), "1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), options); assertEquals(expectedSource, queryResult.getSource()); assertThat(queryResult, everyResult(allVariants, allOf(anyOf(overlaps(new Region("1:1-12783")), overlaps(new Region("M"))), withStudy("S_1", allOf(withFileId("1K.end.platinum-genomes-vcf-NA12877_S1.genome.vcf.gz"), withSampleData("NA12877", "GT", is("1/1"))))))); }