X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2Fvcf%2FVCFLoaderTest.java;h=7e3c0b453727b6f73aa3d78f493442498f1dc6ac;hb=37651a9d177de05ff938276071c16ba95ac44c73;hp=29cf9c9721d532da3d3ce1e4aeb0075997361dcc;hpb=b87ae5ac68939a1b964682046e8b07958fae219a;p=jalview.git diff --git a/test/jalview/io/vcf/VCFLoaderTest.java b/test/jalview/io/vcf/VCFLoaderTest.java index 29cf9c9..7e3c0b4 100644 --- a/test/jalview/io/vcf/VCFLoaderTest.java +++ b/test/jalview/io/vcf/VCFLoaderTest.java @@ -75,17 +75,18 @@ public class VCFLoaderTest Cache.loadProperties("test/jalview/io/testProps.jvprops"); Cache.setProperty("VCF_FIELDS", ".*"); Cache.setProperty("VEP_FIELDS", ".*"); + Cache.initLogger(); } @Test(groups = "Functional") public void testDoLoad() throws IOException { AlignmentI al = buildAlignment(); - VCFLoader loader = new VCFLoader(al); File f = makeVcf(); + VCFLoader loader = new VCFLoader(f.getPath()); - loader.doLoad(f.getPath(), null); + loader.doLoad(al.getSequencesArray(), null); /* * verify variant feature(s) added to gene @@ -169,7 +170,7 @@ public class VCFLoaderTest assertEquals(sf.getFeatureGroup(), "VCF"); assertEquals(sf.getBegin(), 1); assertEquals(sf.getEnd(), 1); - assertEquals(sf.getType(), SequenceOntologyI.SEQUENCE_VARIANT); + assertEquals(sf.getType(), SequenceOntologyI.NONSYNONYMOUS_VARIANT); assertEquals(sf.getDescription(), "p.Ser1Thr"); } @@ -313,11 +314,11 @@ public class VCFLoaderTest { AlignmentI al = buildAlignment(); - VCFLoader loader = new VCFLoader(al); - File f = makeVcf(); - loader.doLoad(f.getPath(), null); + VCFLoader loader = new VCFLoader(f.getPath()); + + loader.doLoad(al.getSequencesArray(), null); /* * verify variant feature(s) added to gene2 @@ -424,7 +425,7 @@ public class VCFLoaderTest assertEquals(sf.getFeatureGroup(), "VCF"); assertEquals(sf.getBegin(), 6); assertEquals(sf.getEnd(), 6); - assertEquals(sf.getType(), SequenceOntologyI.SEQUENCE_VARIANT); + assertEquals(sf.getType(), SequenceOntologyI.NONSYNONYMOUS_VARIANT); assertEquals(sf.getDescription(), "p.Ala6Gly"); } @@ -440,7 +441,7 @@ public class VCFLoaderTest { AlignmentI al = buildAlignment(); - VCFLoader loader = new VCFLoader(al); + VCFLoader loader = new VCFLoader("test/jalview/io/vcf/testVcf.vcf"); /* * VCF data file with variants at gene3 positions @@ -450,7 +451,7 @@ public class VCFLoaderTest * 13 C/G, C/T * 17 A/AC (insertion), A/G */ - loader.doLoad("test/jalview/io/vcf/testVcf.dat", null); + loader.doLoad(al.getSequencesArray(), null); /* * verify variant feature(s) added to gene3 @@ -569,12 +570,19 @@ public class VCFLoaderTest } } List proteinFeatures = peptide.getSequenceFeatures(); - assertEquals(proteinFeatures.size(), 1); + SequenceFeatures.sortFeatures(proteinFeatures, true); + assertEquals(proteinFeatures.size(), 2); sf = proteinFeatures.get(0); assertEquals(sf.getFeatureGroup(), "VCF"); + assertEquals(sf.getBegin(), 1); + assertEquals(sf.getEnd(), 1); + assertEquals(sf.getType(), SequenceOntologyI.SYNONYMOUS_VARIANT); + assertEquals(sf.getDescription(), "agC/agT"); + sf = proteinFeatures.get(1); + assertEquals(sf.getFeatureGroup(), "VCF"); assertEquals(sf.getBegin(), 4); assertEquals(sf.getEnd(), 4); - assertEquals(sf.getType(), SequenceOntologyI.SEQUENCE_VARIANT); + assertEquals(sf.getType(), SequenceOntologyI.NONSYNONYMOUS_VARIANT); assertEquals(sf.getDescription(), "p.Glu4Gly"); /* @@ -616,4 +624,58 @@ public class VCFLoaderTest assertEquals(map.size(), 9); assertEquals(sf.getValueAsString("CSQ", "Feature"), "transcript4"); } -} + + /** + * A test that demonstrates loading a contig sequence from an indexed sequence + * database which is the reference for a VCF file + * + * @throws IOException + */ + @Test(groups = "Functional") + public void testLoadVCFContig() throws IOException + { + VCFLoader loader = new VCFLoader( + "test/jalview/io/vcf/testVcf2.vcf"); + + SequenceI seq = loader.loadVCFContig("contig123"); + assertEquals(seq.getLength(), 15); + assertEquals(seq.getSequenceAsString(), "AAAAACCCCCGGGGG"); + List features = seq.getSequenceFeatures(); + SequenceFeatures.sortFeatures(features, true); + assertEquals(features.size(), 2); + SequenceFeature sf = features.get(0); + assertEquals(sf.getBegin(), 8); + assertEquals(sf.getEnd(), 8); + assertEquals(sf.getDescription(), "C,A"); + sf = features.get(1); + assertEquals(sf.getBegin(), 12); + assertEquals(sf.getEnd(), 12); + assertEquals(sf.getDescription(), "G,T"); + + seq = loader.loadVCFContig("contig789"); + assertEquals(seq.getLength(), 25); + assertEquals(seq.getSequenceAsString(), "GGGGGTTTTTAAAAACCCCCGGGGG"); + features = seq.getSequenceFeatures(); + SequenceFeatures.sortFeatures(features, true); + assertEquals(features.size(), 2); + sf = features.get(0); + assertEquals(sf.getBegin(), 2); + assertEquals(sf.getEnd(), 2); + assertEquals(sf.getDescription(), "G,T"); + sf = features.get(1); + assertEquals(sf.getBegin(), 21); + assertEquals(sf.getEnd(), 21); + assertEquals(sf.getDescription(), "G,A"); + + seq = loader.loadVCFContig("contig456"); + assertEquals(seq.getLength(), 20); + assertEquals(seq.getSequenceAsString(), "CCCCCGGGGGTTTTTAAAAA"); + features = seq.getSequenceFeatures(); + SequenceFeatures.sortFeatures(features, true); + assertEquals(features.size(), 1); + sf = features.get(0); + assertEquals(sf.getBegin(), 15); + assertEquals(sf.getEnd(), 15); + assertEquals(sf.getDescription(), "T,C"); + } +} \ No newline at end of file