[med-svn] [Git][med-team/igv][upstream] New upstream version 2.16.1+dfsg

Pierre Gruet (@pgt) gitlab at salsa.debian.org
Mon Jun 26 12:46:30 BST 2023



Pierre Gruet pushed to branch upstream at Debian Med / igv


Commits:
d1437c34 by Pierre Gruet at 2023-06-26T11:53:34+02:00
New upstream version 2.16.1+dfsg
- - - - -


12 changed files:

- src/main/java/org/broad/igv/sam/AlignmentRenderer.java
- src/main/java/org/broad/igv/variant/VariantMenu.java
- src/main/java/org/broad/igv/variant/VariantTrack.java
- − src/test/java/org/broad/igv/feature/genome/fasta/FastaSequenceParserTest.java
- − src/test/java/org/broad/igv/tdf/TDFReaderTest.java
- − src/test/java/org/broad/igv/tools/CoverageCounterTest.java
- − src/test/java/org/broad/igv/util/HttpUtilsTest.java
- − src/test/java/org/broad/igv/util/ParsingUtilsTest.java
- − src/test/java/org/broad/igv/util/blat/BlatClientTest.java
- − src/test/java/org/broad/igv/util/blat/LegacyBlatClientTest.java
- test/sessions/circview/schatz_paired-end.xml
- test/sessions/circview/schatz_skbr3_longreads.xml


Changes:

=====================================
src/main/java/org/broad/igv/sam/AlignmentRenderer.java
=====================================
@@ -817,8 +817,8 @@ public class AlignmentRenderer {
 
                             BisulfiteBaseInfo.DisplayStatus bisstatus = (bisinfo == null) ? null : bisinfo.getDisplayStatus(idx);
 
-                            final boolean showBase =
-                                    isSoftClip ||
+                            final boolean showBase = showAllBases ||
+                                            isSoftClip ||
                                             bisulfiteMode ||
                                             // In "quick consensus" mode, only show mismatches at positions with a consistent alternative basepair.
                                             (!quickConsensus || alignmentCounts.isConsensusMismatch(loc, reference[idx], chr, snpThreshold));
@@ -1268,7 +1268,7 @@ public class AlignmentRenderer {
                 if (alignment.isPaired()){
                     if(alignment.isFirstOfPair() && !alignment.isSecondOfPair()){
                         c = firstOfPairColor;
-                    } else if(!alignment.isFirstOfPair() && alignment.isSecondOfPair()) {
+                    } else if (!alignment.isFirstOfPair() && alignment.isSecondOfPair()) {
                         c = secondOfPairColor;
                     } else if (alignment.isFirstOfPair() && alignment.isSecondOfPair()) {
                         c = firstAndSecondofPairColor;


=====================================
src/main/java/org/broad/igv/variant/VariantMenu.java
=====================================
@@ -112,7 +112,7 @@ public class VariantMenu extends IGVPopupMenu {
         }
 
         // Show genotypes
-        if (track.getAllSamples().size() > 0) {
+        if (track.sampleCount() > 0) {
             addSeparator();
             add(getShowGenotypes());
         }


=====================================
src/main/java/org/broad/igv/variant/VariantTrack.java
=====================================
@@ -223,7 +223,7 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
 
         setDisplayMode(DisplayMode.EXPANDED);
 
-        int sampleCount = allSamples.size();
+        int sampleCount = sampleCount();
         final int groupCount = samplesByGroups.size();
         final int margins = (groupCount - 1) * 3;
         squishedHeight = sampleCount == 0 || showGenotypes == false ? DEFAULT_SQUISHED_HEIGHT :
@@ -262,7 +262,7 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
             if (defVisibilityWindow > 0) {
                 setVisibilityWindow(defVisibilityWindow * 1000);
             } else {
-                int vw = Math.max(10000, (100000 - 100 * (allSamples.size() - 1)));
+                int vw = Math.max(10000, (100000 - 100 * (sampleCount() - 1)));
                 setVisibilityWindow(vw);
             }
         }
@@ -272,7 +272,7 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
     }
 
     private boolean defaultShowGenotypes() {
-        return allSamples.size() > 0;
+        return sampleCount() > 0;
     }
 
     private void loadAlignmentMappings(String bamListPath) {
@@ -349,16 +349,18 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
             return;
         }
 
-        for (String sample : allSamples) {
+        if(allSamples != null) {
+            for (String sample : allSamples) {
 
-            String sampleGroup = manager.getAttribute(sample, newGroupByAttribute);
+                String sampleGroup = manager.getAttribute(sample, newGroupByAttribute);
 
-            List<String> sampleList = samplesByGroups.get(sampleGroup);
-            if (sampleList == null) {
-                sampleList = new ArrayList<String>();
-                samplesByGroups.put(sampleGroup, sampleList);
+                List<String> sampleList = samplesByGroups.get(sampleGroup);
+                if (sampleList == null) {
+                    sampleList = new ArrayList<String>();
+                    samplesByGroups.put(sampleGroup, sampleList);
+                }
+                sampleList.add(sample);
             }
-            sampleList.add(sample);
         }
 
         grouped = samplesByGroups.size() > 1;
@@ -371,9 +373,11 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
      * @param comparator the comparator to sort by
      */
     public void sortSamples(Comparator<String> comparator) {
-        Collections.sort(allSamples, comparator);
-        for (List<String> samples : samplesByGroups.values()) {
-            Collections.sort(samples, comparator);
+        if(allSamples != null) {
+            Collections.sort(allSamples, comparator);
+            for (List<String> samples : samplesByGroups.values()) {
+                Collections.sort(samples, comparator);
+            }
         }
     }
 
@@ -406,7 +410,7 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
      * @return
      */
     public int getHeight() {
-        int sampleCount = allSamples.size();
+        int sampleCount = sampleCount();
         int h;
         if (getDisplayMode() == DisplayMode.COLLAPSED || sampleCount == 0 || showGenotypes == false) {
             h = getVariantsHeight();
@@ -425,6 +429,10 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
         return null;
     }
 
+    public int sampleCount() {
+        return allSamples == null ? 0 : allSamples.size();
+    }
+
     /**
      * Return the height of the variant section only (no samples/genotypes)
      *
@@ -451,7 +459,7 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
         // If height is < expanded height try "squishing" track, otherwise expand it
         final int groupCount = samplesByGroups.size();
         final int margins = (groupCount - 1) * 3;
-        int sampleCount = showGenotypes == false ? 0 : allSamples.size();
+        int sampleCount = showGenotypes == false ? 0 : sampleCount();
         final int expandedHeight = getVariantBandHeight() + margins + (sampleCount * getGenotypeBandHeight());
         if (height < expandedHeight) {
             setDisplayMode(DisplayMode.SQUISHED);
@@ -584,7 +592,7 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
     }
 
     private void drawVariantBandBorder(Graphics2D g2D, Rectangle visibleRectangle, int variantBandY, int left, int right) {
-        if (allSamples.size() > 0 && showGenotypes) {
+        if (sampleCount() > 0 && showGenotypes) {
             drawLineIfVisible(g2D, visibleRectangle, Color.lightGray, variantBandY, left, right);
         }
     }
@@ -635,7 +643,7 @@ public class VariantTrack extends FeatureTrack implements IGVEventObserver {
         drawLineIfVisible(g2D, visibleRectangle, borderGray, bottomY, left, right);
 
         // Variant / Genotype border
-        if (allSamples.size() > 0 && showGenotypes) {
+        if (sampleCount() > 0 && showGenotypes) {
             int variantGenotypeBorderY = trackRectangle.y + getVariantsHeight();
             drawVariantBandBorder(g2D, visibleRectangle, variantGenotypeBorderY, left, right);
 


=====================================
src/test/java/org/broad/igv/feature/genome/fasta/FastaSequenceParserTest.java deleted
=====================================
@@ -1,89 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2007-2015 Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.broad.igv.feature.genome.fasta;
-
-import org.broad.igv.feature.genome.InMemorySequence;
-import org.broad.igv.feature.genome.fasta.FastaSequenceParser;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * @author Jim Robinson
- * @date 3/26/12
- */
-public class FastaSequenceParserTest {
-
-    static InMemorySequence fastaSequence;
-
-    @BeforeClass
-    public static void setup() throws IOException {
-        String path = "http://data.broadinstitute.org/igvdata/test/fasta/ci2_test.fa";
-        Map<String, byte[]> sequenceMap = FastaSequenceParser.parseFasta(path);
-        fastaSequence = new InMemorySequence(sequenceMap);
-    }
-
-    @Test
-    public void testReadSequence() throws Exception {
-
-
-        String chr = "chr02q";
-        int start = 3531385;
-        int end = 3531425;
-
-        String expectedSequence = "TAATTTTTACGTCTTATTTAAACACATATAATGAATAGGT";
-
-        byte[] seq = fastaSequence.getSequence(chr, start, end, true);
-        String seqString = new String(seq);
-
-        assertEquals(expectedSequence, seqString);
-    }
-
-    @Test
-    public void testReadEnd() throws Exception {
-
-        String chr = "chr02q";
-        int chrLen = 8059593;
-        int start = chrLen - 10;
-        int end = chrLen + 10;
-        byte[] bytes = fastaSequence.getSequence(chr, start, end, true);
-        assertEquals(10, bytes.length);
-
-        byte[] expectedSequence = "TTTTTCCCAG".getBytes();
-
-        for (int i = 0; i < 10; i++) {
-            assertEquals(expectedSequence[i], bytes[i]);
-        }
-    }
-
-
-}
-
-


=====================================
src/test/java/org/broad/igv/tdf/TDFReaderTest.java deleted
=====================================
@@ -1,73 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2007-2015 Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.broad.igv.tdf;
-
-import org.broad.igv.util.ResourceLocator;
-import org.junit.Test;
-
-import java.util.Set;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.assertTrue;
-
-/**
- * @author jrobinso
- *         Date: 7/19/12
- *         Time: 11:29 AM
- */
-public class TDFReaderTest {
-
-    @Test
-    public void testReader() throws Exception {
-        String url = "http://data.broadinstitute.org/igvdata/encode/hg18/broadHistone/SignalK562H3k4me3.tdf";
-
-        TDFReader reader =  new TDFReader(new ResourceLocator(url));
-
-        int version = reader.getVersion();
-        assertEquals(3, version);
-        assertTrue(reader.compressed);
-
-        String [] trackNames = reader.getTrackNames();
-        int nTracks = trackNames.length;
-        assertEquals(1, nTracks);
-
-        String trackName = trackNames[0];
-        assertEquals(trackName, "SignalK562H3k4me3.wig.gz");
-
-        Set<String> chrNames = reader.getChromosomeNames();
-        int nChromosomes = chrNames.size();
-        assertEquals(24, nChromosomes);
-
-        String datasetName =  "/chr1/z0/mean";
-        TDFDataset dataset = reader.getDataset(datasetName);
-        assertEquals(datasetName, dataset.getName());
-
-        TDFTile tile = reader.readTile(dataset, 0);
-        assertNotNull(tile);
-
-    }
-}


=====================================
src/test/java/org/broad/igv/tools/CoverageCounterTest.java deleted
=====================================
@@ -1,312 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2007-2015 Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.broad.igv.tools;
-
-import org.broad.igv.AbstractHeadlessTest;
-import org.broad.igv.prefs.IGVPreferences;
-import org.broad.igv.feature.genome.Genome;
-import org.broad.igv.prefs.PreferencesManager;
-import org.broad.igv.tools.parsers.DataConsumer;
-import org.broad.igv.track.TrackType;
-import org.broad.igv.util.TestUtils;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-import static junit.framework.Assert.assertEquals;
-
-
-public class CoverageCounterTest extends AbstractHeadlessTest {
-
-    static IGVPreferences preferenceManager;
-
-    @BeforeClass
-    public static void setUpClass() throws Exception {
-        AbstractHeadlessTest.setUpClass();
-        preferenceManager = PreferencesManager.getPreferences();
-    }
-
-    /**
-     * Test the "mapping quality" flag.  Also indirectly tests the query parameters.
-     */
-    @Test @Ignore("Requires largedata bundle")
-    public void testMappingQualityFlag() throws IOException {
-        String bamURL = TestUtils.LARGE_DATA_DIR + "HG00171.hg18.bam";
-        String queryString = "chr1:152522155-152522155";
-        int minMapQuality = 40;
-        File wigFile = new File(TestUtils.TMP_OUTPUT_DIR + "testMapQual.wig");
-        int windowSize = 1;
-
-        TestDataConsumer dc = new TestDataConsumer();
-
-        CoverageCounter cc = new CoverageCounter(bamURL, dc, windowSize, 0, wigFile, genome, queryString, minMapQuality, 0);
-
-        cc.parse();
-
-        String totalCount = dc.attributes.get("totalCount");
-
-        assertEquals("7", totalCount);
-    }
-
-    @Ignore    // The test file no longer exists
-    @Test
-    public void testPairFlag() throws Exception{
-        String bamURL = "http://data.broadinstitute.org/igvdata/1KG/pilot2Bams/NA12878.SLX.bam";
-        String queryString = "2:1000-1100";
-        File wigFile = new File(TestUtils.TMP_OUTPUT_DIR + "testPair.wig");
-        int windowSize = 1;
-
-        TestDataConsumer dc = new TestDataConsumer();
-
-        CoverageCounter cc = new CoverageCounter(bamURL, dc, windowSize, 0, wigFile, genome, queryString, 0, CoverageCounter.PAIRED_COVERAGE);
-
-        cc.parse();
-
-        //Have manually checked these regions and verified that there is 1 pair
-        //in the 1000-1100 region, and 4 at location 851
-        //with
-        for(TestData td: dc.testDatas){
-            assertEquals(1.0f, td.data[0]);
-        }
-
-
-        queryString = "2:851";
-        dc = new TestDataConsumer();
-
-        cc = new CoverageCounter(bamURL, dc, windowSize, 0, wigFile, genome, queryString, 0, CoverageCounter.PAIRED_COVERAGE);
-
-        cc.parse();
-
-        for(TestData td: dc.testDatas){
-            assertEquals(4.0f, td.data[0]);
-        }
-
-    }
-
-    /*
-    Test whether we count the number of features correctly.
-     */
-    @Test
-    public void testCountStrand() throws Exception {
-        String ifile = TestUtils.DATA_DIR + "bed/Unigene.sample.sorted.bed";
-
-
-        int expTot = 71;
-        int windowSize = 25;
-
-        File wigFile = null;
-
-        int[] countFlags = new int[]{0, CoverageCounter.STRANDS_BY_READ, CoverageCounter.STRANDS_BY_FIRST_IN_PAIR,
-                CoverageCounter.BASES,
-                CoverageCounter.INCLUDE_DUPS, CoverageCounter.BASES + CoverageCounter.STRANDS_BY_READ,
-                CoverageCounter.BASES + CoverageCounter.STRANDS_BY_FIRST_IN_PAIR};
-        //We specifically do not test this, because it's unreliable. Some alignments default to assuming they
-        //are the first in pair, but let secondinpair be none
-        //countFlags = new int[]{CoverageCounter.STRANDS_BY_SECOND_IN_PAIR};
-        int[] expectedTotal = new int[]{expTot, expTot, expTot, expTot, expTot, expTot, expTot, expTot};
-
-        for (int ii = 0; ii < countFlags.length; ii++) {
-            TestDataConsumer dc = new TestDataConsumer();
-            CoverageCounter cc = new CoverageCounter(ifile, dc, windowSize, 0, wigFile, genome, null, 0, countFlags[ii]);
-            cc.parse();
-
-            String totalCount = dc.attributes.get("totalCount");
-            int totCount = Integer.valueOf(totalCount);
-            assertEquals(expectedTotal[ii], totCount);
-        }
-    }
-
-
-    @Test
-    public void testCountBases() throws Exception {
-        String ifile = TestUtils.DATA_DIR + "sam/NA12878.muc1.test.sam";
-        int expected_cols = 14;
-
-        File wigFile = new File(TestUtils.TMP_OUTPUT_DIR, "testCountBases.wig");
-        wigFile.deleteOnExit();
-        int windowSize = 1;
-
-        TestDataConsumer dc = new TestDataConsumer();
-        int strandOptions = CoverageCounter.STRANDS_BY_READ + CoverageCounter.BASES;
-        CoverageCounter cc = new CoverageCounter(ifile, dc, windowSize, 0, wigFile, genome, null, 0, strandOptions);
-        cc.parse();
-
-
-        int check_startpos = 153426135 - 1;
-        Map<Byte, Integer> posCounts = new HashMap<Byte, Integer>();
-        Map<Byte, Integer> negCounts = new HashMap<Byte, Integer>();
-        byte[] keys = new byte[]{'A', 'C', 'G', 'T', 'N', CoverageCounter.DEL, CoverageCounter.INS};
-        int[] posvals = new int[]{9, 0, 0, 2, 0, 0, 0};
-        int[] negvals = new int[]{16, 0, 0, 0, 0, 0, 0};
-        for (int ii = 0; ii < keys.length; ii++) {
-            posCounts.put(keys[ii], posvals[ii]);
-            negCounts.put(keys[ii], negvals[ii]);
-        }
-
-        for (TestData tdata : dc.testDatas) {
-
-            float[] numbers = tdata.data;
-            assertEquals(expected_cols, numbers.length);
-
-            if (tdata.start == check_startpos) {
-                for (int ii = 0; ii < posvals.length; ii++) {
-                    assertEquals(posvals[ii], numbers[ii], 1e-2);
-                    assertEquals(negvals[ii], numbers[ii + keys.length], 1e-2);
-                }
-            }
-        }
-
-    }
-
-    /**
-     * Test different strand options, just count output columns
-     * and make sure we get the right number
-     *
-     * @throws Exception
-     */
-
-    public void testColumnCounts() throws Exception {
-        String ifile = TestUtils.DATA_DIR + "sam/NA12878.muc1.test.sam";
-
-        File wigFile = null;
-        Genome genome = this.genome;
-        int[] windowSizes = new int[]{1, 50, 100, 500};
-        //All possible combinations of STRAND_XXX flags
-        int[] strandops = new int[2];
-        strandops[0] = 0;
-        strandops[1] = CoverageCounter.STRANDS_BY_READ;
-
-//        String[] otherflags = new String[]{CoverageCounter.FIRST_IN_PAIR, CoverageCounter.BASES,
-//                CoverageCounter.FIRST_IN_PAIR + CoverageCounter.BASES};
-
-//        for (String so : strandops) {
-//            for (String of : otherflags) {
-//                int expectedcols = so.contains(CoverageCounter.STRAND_SEPARATE) ? 2 : 1;
-//                if (of.contains(CoverageCounter.BASES)) {
-//                    expectedcols *= 5;
-//                }
-//
-//                String strandOptions = so + of;
-//                for (int windowSize : windowSizes) {
-//                    TestDataConsumer dc = new TestDataConsumer();
-//                    CoverageCounter cc = new CoverageCounter(ifile, dc, windowSize, 0, wigFile, genome, "sc=" + strandOptions);
-//                    cc.parse();
-//
-//                    assertEquals(expectedcols, dc.testDatas.get(0).data.length);
-//                }
-//            }
-//        }
-
-    }
-
-    @Test
-    public void testIncludeDuplicatesFlag() throws IOException {
-        String bamURL = "http://data.broadinstitute.org/igvdata/BodyMap/hg18/Merged/HBM.adipose.bam.sorted.bam";
-        int options = CoverageCounter.INCLUDE_DUPS;
-        String queryString = "chr1:153425249-153425249";
-        int windowSize = 1;
-        File wigFile = null;
-        Genome genome = null;
-
-        TestDataConsumer dc = new TestDataConsumer();
-
-        CoverageCounter cc = new CoverageCounter(bamURL, dc, windowSize, 0, wigFile, genome, queryString, 0, options);
-
-        cc.parse();
-
-        String totalCount = dc.attributes.get("totalCount");
-
-        assertEquals("22", totalCount);
-
-    }
-
-
-    static class TestDataConsumer implements DataConsumer {
-
-        Map<String, String> attributes = new HashMap<String, String>();
-        public ArrayList<TestData> testDatas = new ArrayList<TestData>();
-
-        public void setType(String type) {
-
-        }
-
-        /**
-         * Just write all the data a containment object
-         *
-         * @param chr
-         * @param start
-         * @param end
-         * @param data
-         * @param name
-         */
-        public void addData(String chr, int start, int end, float[] data, String name) {
-            TestData newData = new TestData(chr, start, end, data.clone(), name);
-            this.testDatas.add(newData);
-        }
-
-        public void parsingComplete() {
-
-        }
-
-        public void setTrackParameters(TrackType trackType, String trackLine, String[] trackNames) {
-
-        }
-
-        public void setTrackParameters(TrackType trackType, String trackLine, String[] trackNames, boolean b) {
-            //To change body of implemented methods use File | Settings | File Templates.
-        }
-
-        public void setSortTolerance(int tolerance) {
-
-        }
-
-        public void setAttribute(String key, String value) {
-            attributes.put(key, value);
-        }
-    }
-
-    private static class TestData {
-        public String chr;
-        public int start;
-        public int end;
-        public float[] data;
-        public String name;
-
-        public TestData(String chr, int start, int end, float[] data, String name) {
-            this.chr = chr;
-            this.start = start;
-            this.end = end;
-            this.data = data;
-            this.name = name;
-        }
-    }
-}


=====================================
src/test/java/org/broad/igv/util/HttpUtilsTest.java deleted
=====================================
@@ -1,226 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2007-2015 Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.broad.igv.util;
-
-import org.broad.igv.AbstractHeadlessTest;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import static org.junit.Assert.*;
-import static spark.Spark.get;
-
-
-/**
- * Test of class HttpUtils (TODO -- need more tests!!)
- */
-public class HttpUtilsTest extends AbstractHeadlessTest {
-
-
-    static String broadURLString = "http://data.broadinstitute.org/igvdata/annotations/seq/hg19/chr1.txt";
-    static String genericURLString = "http://hgdownload.cse.ucsc.edu/goldenPath/hg19/chromosomes/chr1.fa.gz";
-
-    static String noRangeHeaderSupportString = "http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSM714693&format=file&file=GSM714693%5Fhg19%5FwgEncodeGisDnaPetK562F1kAln%2Ebam";
-
-    @Test
-    public void testGetContentLength() throws IOException {
-        // Open an input stream just to check permissions
-        HttpURLConnection conn = null;
-        try {
-            conn = (HttpURLConnection) (HttpUtils.createURL(broadURLString)).openConnection();
-            String contentLength = conn.getHeaderField("Content-length");
-            assertEquals("249250621", contentLength);
-
-        } finally {
-
-            if (conn != null) {
-                conn.disconnect();  // <- this really doesn't do anything (see Sun documentation)
-            }
-        }
-    }
-
-    @Ignore
-    @Test
-    public void testReadByBlob() throws Exception {
-        String serverURL = "serverURLhere";
-
-//        String bamURL =  serverURL + "?file=CDNLtx0vjHKW19PP9E7A1zpmzSg1mrg/rw7ZkE+b8FPuoNLNNLNKyL/94CsspYExn2SAJ5Y0wgL9L2mwf/HsP4IwqsQbtAqVBLxtd2CVclTOkute7VHhzqFPJ2KCzWxUjM+Ecb5XfdGTpKAzya1dq/fAtJuIw8+NHQCPmMVbJWreQx1+6z3VKDT17Fy3RbXxL6X/CfQ/HlTcWFpQVe1p+5LgkojOVagWCImYNk/ErPzi8J2oEYPSm6ilOwDM6rGwHcO47qW8DncaPdf8ohpm/XZwAd+aAJwsqkBR689R+X175QCzmpOI07dHxuvzJ4HPlMwu2h2290QxVAJ8Ix5fVA==.bam";
-//
-//        InputStream is = HttpUtils.getInstance().openConnectionStream(HttpUtils.createURL(bamURL));
-
-        String bedblob = StringUtils.decodeURL("c44z7H5E1gDMSm49T7NyGix051qDS7AbgCqicZ%2FpFkLobpmCim95byvYICc5VT%2Bv8Z%2FzE2gHWZkboBuME9eLxjEsfiO4bwnqZGP9fwoWXooK1LC8e3R5%2F6B9KyP9X3PR102PIApQASPfQGnYHqpBLifFPUbeRMqN%2BSxYi3h7udQJ8pli2QPEappIiOVWQ77cjJ6c0h12me6dT81fVrYT1E5CGHpnfUarIWCADRySVUfxqrwADKpnpaozMiWebh4OaWr5QfWHuG%2F%2F%2FhwVs7YxJaAR9S6pMqqfk213JofydHJjUimkv2V8tM3RJk3Q2y7CZ3Dk8X8wLiAJLfTIaXyreQ%3D%3D");
-
-        String bedURL = serverURL + "?file=" + bedblob + ".bed";
-        InputStream is = HttpUtils.getInstance().openConnectionStream(HttpUtils.createURL(bedURL));
-
-        BufferedReader br = new BufferedReader(new InputStreamReader(is));
-
-        String line = null;
-        int count = 0;
-        while ((line = br.readLine()) != null) {
-            System.out.println(line);
-            count++;
-        }
-        System.out.println(count + " lines read");
-
-    }
-
-    @Test
-    public void testCacheControl() throws Exception {
-        String headerValue = "no-cache, max-age=100";
-        HttpUtils.CacheControl cc = HttpUtils.CacheControl.valueOf(headerValue);
-        assertTrue(cc.isNoCache());
-        assertEquals(100, cc.getMaxAge());
-    }
-
-    @Test
-    public void testAccessTokenCache() throws MalformedURLException {
-
-        try {
-            // Exact match
-            HttpUtils.getInstance().setAccessToken("foo", "bar.foo.com");
-            String token = HttpUtils.getInstance().getAccessTokenFor(new URL("https://bar.foo.com/path"));
-            assertEquals("foo", token);
-            HttpUtils.getInstance().clearAccessTokens();
-
-            // Wildcard match
-            HttpUtils.getInstance().setAccessToken("foo", "*.foo.com");
-            token = HttpUtils.getInstance().getAccessTokenFor(new URL("https://bar.foo.com/path"));
-            assertEquals("foo", token);
-
-            // Clear token
-            HttpUtils.getInstance().clearAccessTokens();
-            token = HttpUtils.getInstance().getAccessTokenFor(new URL("https://bar.foo.com/path"));
-            assertNull(token);
-            HttpUtils.getInstance().clearAccessTokens();
-
-            // Match all hosts
-            HttpUtils.getInstance().setAccessToken("foo", "");
-            token = HttpUtils.getInstance().getAccessTokenFor(new URL("https://igv.org/path"));
-            assertEquals("foo", token);
-        } finally {
-            HttpUtils.getInstance().clearAccessTokens();
-        }
-    }
-
-    public class RunnableSparkHttp implements Runnable {
-
-        /// counters incremented on each request:
-
-        // permanent redirect src
-        public int permSrcCt = 0;
-        // permanent redirect dest
-        public int permDestCt = 0;
-        // temporary redirect src
-        public int tempSrcCt = 0;
-        // temporary redirect dest
-        public int tempDestCt = 0;
-
-        public void run() {
-            System.out.println("run thing");
-
-            get("/perm_redir_src", (req, res) ->
-            {
-                // increment a counter for tests to inspect
-                this.permSrcCt += 1;
-                res.status(301); // permanent redirect
-                res.header("Location", "http://localhost:4567/perm_redir_dest");
-                return "redirecting";
-            });
-
-            get("/perm_redir_dest", (req, res) -> {
-                this.permDestCt += 1;
-                return "done";
-            });
-
-            get("/temp_redir_src", (req, res) ->
-            {
-                this.tempSrcCt += 1;
-                res.status(302); // temporary redirect
-                res.header("Location", "http://localhost:4567/temp_redir_dest");
-                res.header("Cache-Control", "max-age=1"); // expire in 1 second
-                return "redirecting";
-            });
-
-            get("/temp_redir_dest", (req, res) -> {
-                this.tempDestCt += 1;
-                return "done";
-            });
-
-        }
-
-    }
-
-    @Test
-    public void testRedirectCache() throws Exception {
-
-        RunnableSparkHttp server = new RunnableSparkHttp();
-        Thread thread = new Thread(server);
-        thread.run();
-
-        // give the test server a moment to start up
-        Thread.sleep(500);
-
-        HttpURLConnection conn = null;
-
-        // test a URL that redirects permanently
-        assertEquals(server.permSrcCt, 0);
-        assertEquals(server.permDestCt, 0);
-        conn = HttpUtils.getInstance().openConnection(new URL("http://localhost:4567/perm_redir_src"), null);
-        assertEquals(conn.getResponseCode(), 200);
-        assertEquals(server.permSrcCt, 1);
-        assertEquals(server.permDestCt, 1);
-        assertEquals(HttpUtils.getInstance().openConnection(new URL("http://localhost:4567/perm_redir_src"), null)
-                .getResponseCode(), 200);
-        // because redirect was cached, the source wasn't requested again, but the destination was
-        assertEquals(server.permSrcCt, 1);
-        assertEquals(server.permDestCt, 2);
-
-
-        // now test a URL that redirects but quickly expires
-        assertEquals(server.tempSrcCt, 0);
-        assertEquals(server.tempDestCt, 0);
-        conn = HttpUtils.getInstance().openConnection(new URL("http://localhost:4567/temp_redir_src"), null);
-        assertEquals(conn.getResponseCode(), 200);
-        assertEquals(server.tempSrcCt, 1);
-        assertEquals(server.tempDestCt, 1);
-        // sleep for 2s to ensure that cache has expired
-        Thread.sleep(2_000);
-        assertEquals(HttpUtils.getInstance().openConnection(new URL("http://localhost:4567/temp_redir_src"), null)
-                .getResponseCode(), 200);
-        // because redirect was cached, the source wasn't requested again, but the destination was
-        assertEquals(server.tempSrcCt, 2);
-        assertEquals(server.tempDestCt, 2);
-
-    }
-}


=====================================
src/test/java/org/broad/igv/util/ParsingUtilsTest.java deleted
=====================================
@@ -1,342 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2007-2015 Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.broad.igv.util;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import junit.framework.Assert;
-import org.broad.igv.AbstractHeadlessTest;
-import org.broad.igv.Globals;
-import org.broad.igv.track.Track;
-import org.broad.igv.track.TrackProperties;
-import org.broad.igv.track.WindowFunction;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestRule;
-import org.junit.rules.Timeout;
-
-import java.awt.*;
-import java.util.Calendar;
-
-import static junit.framework.Assert.assertTrue;
-import static org.junit.Assert.assertEquals;
-
-/**
- * User: jrobinso
- * Date: Feb 8, 2010
- */
-public class ParsingUtilsTest extends AbstractHeadlessTest {
-
-    public final static String characters = "0123456789abcdefghijklmnopqrstuvwxyz";
-    public final static int numChars = characters.length();
-
-    private static final int connectTimeout = 30 * 1000;
-    @Rule
-    public TestRule testTimeout = new Timeout(4 * connectTimeout);
-
-    @Before
-    public void setUp() throws Exception {
-        super.setUp();
-        Globals.CONNECT_TIMEOUT = connectTimeout;
-    }
-
-    private String genRandString() {
-        int numWords = 10;
-        int max_length = 20;
-        String ret = "";
-        for (int n = 0; n < numWords; n++) {
-            ret += getRandWord(max_length) + "\t";
-        }
-        return ret;
-    }
-
-    private String getRandWord(int max_length) {
-        int length = (int) Math.random() * max_length + 1;
-        String ret = "";
-        for (int n = 0; n < length; n++) {
-            ret += characters.charAt((int) Math.random() * numChars);
-        }
-        return ret;
-    }
-
-    @Test
-    public void testSplit1() {
-        String blankColumnLine = "a\tb\t\td";
-        String[] tokens = Globals.tabPattern.split(blankColumnLine);
-        int nTokens = tokens.length;
-        assertEquals(4, nTokens);
-        assertEquals("a", tokens[0]);
-        assertEquals("b", tokens[1]);
-        assertEquals("", tokens[2]);
-        assertEquals("d", tokens[3]);
-    }
-
-    @Test
-    public void testSplit2() {
-        String blankColumnLine = "a\tb\t\td\t";
-        String[] tokens = Globals.tabPattern.split(blankColumnLine);
-        int nTokens = tokens.length;
-        assertEquals(4, nTokens);
-        assertEquals("a", tokens[0]);
-        assertEquals("b", tokens[1]);
-        assertEquals("", tokens[2]);
-        assertEquals("d", tokens[3]);
-    }
-
-    @Test
-    public void testSplit3() {
-        String blankColumnLine = "\ta\t\tb\t\t\td\t";
-        String[] tokens = Globals.tabPattern.split(blankColumnLine);
-        int nTokens = tokens.length;
-        String[] expTokens = new String[]{"", "a", "", "b", "", "", "d"};
-        assertEquals(expTokens.length, nTokens);
-        int ii = 0;
-        for (String exp : expTokens) {
-            Assert.assertEquals(exp, tokens[ii]);
-            ii++;
-        }
-    }
-    
-    @Test
-    public void testGetLastModified_HTTP() throws Exception{
-        tstGetLastModified(HttpUtilsTest.broadURLString);
-    }
-
-
-    @Test
-    public void testGetLastModified_File() throws Exception{
-        tstGetLastModified(TestUtils.DATA_DIR + "bed/test.bed");
-    }
-
-    private void tstGetLastModified(String path) {
-        long modD = ParsingUtils.getLastModified(path);
-        assertTrue(modD > 0);
-
-        //Assuming causality is still intact
-        assertTrue(modD < Calendar.getInstance().getTime().getTime());
-    }
-
-    @Test
-    public void testParseInt() {
-        String with_commas = "123456";
-        int expected = 123456;
-        int actual = ParsingUtils.parseInt(with_commas);
-        assertEquals(expected, actual);
-
-        String exp_not = "3.5e4";
-        expected = 35000;
-        assertEquals(expected, ParsingUtils.parseInt(exp_not));
-    }
-
-    @Test
-    public void testParseTrackLine() {
-        String trackLine = "track type=bigWig name=\"Track 196\" visibility=2 " +
-                "description=\" CD34 - H3K27me3 - hg19 - 18.7 M/20.9 M - 61P7DAAXX.6\" " +
-                "maxHeightPixels=70 viewLimits=0:18 windowingFunction=mean autoScale=off " +
-                "bigDataUrl=http://www.broadinstitute.org/epigenomics/dataportal/track_00196.portal.bw " +
-                "color=255,0,0";
-
-        TrackProperties props = new TrackProperties();
-        ParsingUtils.parseTrackLine(trackLine, props);
-        assertEquals("Track 196", props.getName());
-        assertEquals(Track.DisplayMode.EXPANDED, props.getDisplayMode());
-        assertEquals(" CD34 - H3K27me3 - hg19 - 18.7 M/20.9 M - 61P7DAAXX.6", props.getDescription());
-        assertEquals(70, props.getHeight());
-        assertEquals(0, props.getMinValue(), 1.0e-9);
-        assertEquals(18, props.getMaxValue(), 1.0e-9);
-        assertEquals(WindowFunction.mean, props.getWindowingFunction());
-        assertEquals(false, props.isAutoScale());
-        assertEquals(new Color(255, 0, 0), props.getColor());
-        assertEquals("http://www.broadinstitute.org/epigenomics/dataportal/track_00196.portal.bw", props.getDataURL());
-    }
-
-
-    @Test
-    public void testGetIGVExtension() {
-
-        String path = "/foo/bar/mydata.igv";
-        assertEquals("igv", ParsingUtils.getIGVExtension(path));
-
-        path = "/foo/bar/mydata.igv.gz";
-        assertEquals("igv", ParsingUtils.getIGVExtension(path));
-
-        path = "/foo/bar/mydata.igv.txt";
-        assertEquals("igv", ParsingUtils.getIGVExtension(path));
-
-        path = "/foo/bar/mydata.igv.xls";
-        assertEquals("igv", ParsingUtils.getIGVExtension(path));
-
-        path = "/foo/bar/mydata.igv.txt.gz";
-        assertEquals("igv", ParsingUtils.getIGVExtension(path));
-
-    }
-
-    //@Test
-    public void compareSpeedPatternDotSplit() throws Exception {
-        int nTrials = 500000;
-        TestStringSupplier supplier = new TestStringSupplier(nTrials);
-
-        final char cdelim = '\t';
-        final String sdelim = String.valueOf(cdelim);
-
-        Function<String, Void> patternSplitPredicate = new Function<String, Void>() {
-            @Override
-            public Void apply(String input) {
-                String[] tokens = Globals.tabPattern.split(input);
-                return null;
-            }
-        };
-
-        //ParsingUtils.split seems to be about 2x as fast, that is
-        //takes 1/2 the time
-        Function<String, Void> parsingUtilsPredicate = new Function<String, Void>() {
-            String[] buffer = new String[20];
-
-            @Override
-            public Void apply(String input) {
-                int count = htsjdk.tribble.util.ParsingUtils.split(input, buffer, cdelim);
-                return null;
-            }
-        };
-
-        supplier.reset();
-        System.out.println("\nPattern.split");
-        TestUtils.timeMethod(supplier, patternSplitPredicate, nTrials);
-
-        supplier.reset();
-        System.out.println("\nParsingUtils.split");
-        TestUtils.timeMethod(supplier, parsingUtilsPredicate, nTrials);
-    }
-
-    //@Test
-    public void compareSpeedStringJoin() throws Exception {
-        int nTrials = 5000;
-        TestStringArraySupplier supplier = new TestStringArraySupplier(nTrials, 100);
-
-        final char cdelim = '\t';
-        final String sdelim = String.valueOf(cdelim);
-
-        Function<String[], Void> stringBuilderFunc = new Function<String[], Void>() {
-            @Override
-            public Void apply(String[] input) {
-                StringBuilder stringBuilder = new StringBuilder();
-                for (int el = 0; el < input.length; el++) {
-                    stringBuilder.append(input[el]);
-                    if (el < input.length - 1) {
-                        stringBuilder.append(sdelim);
-                    }
-                }
-                return null;
-            }
-        };
-
-        //ParsingUtils.split seems to be about 2x as fast, that is
-        //takes 1/2 the time
-        Function<String[], Void> stringAddFunc = new Function<String[], Void>() {
-            @Override
-            public Void apply(String[] input) {
-                String result = "";
-
-                for (int el = 0; el < input.length; el++) {
-                    result += input[el];
-                    if (el < input.length - 1) {
-                        result += sdelim;
-                    }
-                }
-
-                return null;
-
-                //String res = htsjdk.tribble.util.ParsingUtils.join(sdelim, input);
-                //return true;
-            }
-        };
-
-        supplier.reset();
-        System.out.println("\nStringBuilder");
-        TestUtils.timeMethod(supplier, stringBuilderFunc, nTrials);
-
-        supplier.reset();
-        System.out.println("\nStringAdd");
-        TestUtils.timeMethod(supplier, stringAddFunc, nTrials);
-    }
-
-    private class TestStringArraySupplier implements Supplier<String[]> {
-        final String[][] testStringArrays;
-        private int counter = 0;
-
-        TestStringArraySupplier(int nTrials, int maxStringsPerArray) {
-            testStringArrays = new String[nTrials][];
-            for (int ii = 0; ii < nTrials; ii++) {
-                int numEntries = (int) Math.floor(Math.random() * maxStringsPerArray);
-                testStringArrays[ii] = genTestStringArray(numEntries);
-            }
-        }
-
-        @Override
-        public String[] get() {
-            return testStringArrays[counter++];
-        }
-
-        public void reset() {
-            counter = 0;
-        }
-    }
-
-    private class TestStringSupplier implements Supplier<String> {
-
-        final String[] testStrings;
-        private int counter = 0;
-
-        TestStringSupplier(int nTrials) {
-            testStrings = genTestStringArray(nTrials);
-        }
-
-
-        @Override
-        public String get() {
-            return testStrings[counter++];
-        }
-
-        public void reset() {
-            counter = 0;
-        }
-
-    }
-
-    private String[] genTestStringArray(int numEntries) {
-        String[] testStrings = new String[numEntries];
-
-        //Generate test data
-        for (int ii = 0; ii < numEntries; ii++) {
-            testStrings[ii] = genRandString();
-        }
-        return testStrings;
-    }
-
-
-}
-


=====================================
src/test/java/org/broad/igv/util/blat/BlatClientTest.java deleted
=====================================
@@ -1,48 +0,0 @@
-package org.broad.igv.util.blat;
-
-import org.broad.igv.feature.PSLRecord;
-import org.broad.igv.feature.Strand;
-import org.broad.igv.ui.util.MessageUtils;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-import static org.junit.Assert.*;
-
-public class BlatClientTest {
-
-    @Test
-    public void blat() throws IOException {
-
-        //https://genome.ucsc.edu/cgi-bin/hgBlat?userSeq=GTCCTCGGAACCAGGACCTCGGCGTGGCCTAGCG&type=DNA&db=hg19&output=json
-       List<PSLRecord> results = BlatClient.blat("hg19", "GTCCTCGGAACCAGGACCTCGGCGTGGCCTAGCG");
-
-       assertEquals(1, results.size());
-       assertEquals("chr21", results.get(0).getChr());
-       assertEquals(Strand.POSITIVE, results.get(0).getStrand());
-       assertEquals(34, results.get(0).getqSize());
-    }
-
-    @Test
-    public void blatTooShort() throws IOException {
-
-        //https://genome.ucsc.edu/cgi-bin/hgBlat?userSeq=GTCCTCGGAACCAGGACCTCGGCGTGGCCTAGCG&type=DNA&db=hg19&output=json
-        try {
-            List<PSLRecord> results = BlatClient.blat("hg19", "GTCCTCGGA");
-            fail("Exception expected");
-        } catch (Exception e) {
-            // This is expected
-            assertTrue(true);
-
-        }
-    }
-
-
-
-//    public static void main(String [] args) throws IOException {
-//        (new BlatClientTest()).blatTooShort();
-//    }
-
-
-}
\ No newline at end of file


=====================================
src/test/java/org/broad/igv/util/blat/LegacyBlatClientTest.java deleted
=====================================
@@ -1,50 +0,0 @@
-package org.broad.igv.util.blat;
-
-import org.broad.igv.Globals;
-import org.broad.igv.util.TestUtils;
-import org.junit.Test;
-
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.List;
-
-import static org.junit.Assert.*;
-
-public class LegacyBlatClientTest {
-
-    @Test
-    public void parseUCSCResult() throws Exception {
-        String testPath = TestUtils.DATA_DIR + "blat/UCSC_blat_results.html";
-        String response = new String(Files.readAllBytes(Paths.get(testPath)));
-        List<String> results = LegacyBlatClient.parseResult(response);
-        assertEquals(5, results.size());
-    }
-
-    @Test
-    public void parseCustomResult() throws Exception {
-        String testPath = TestUtils.DATA_DIR + "blat/CUSTOM_blat_results.html";
-        String response = new String(Files.readAllBytes(Paths.get(testPath)));
-        List<String> results = LegacyBlatClient.parseResult(response);
-        assertEquals(8, results.size());
-    }
-
-    @Test
-    public void fixWebBlat() throws Exception {
-        String testPath = TestUtils.DATA_DIR + "blat/CUSTOM_blat_results.html";
-        String response = new String(Files.readAllBytes(Paths.get(testPath)));
-        List<String> results = LegacyBlatClient.parseResult(response);
-        List<String> fixed = LegacyBlatClient.fixWebBlat(results);
-        assertEquals(8, fixed.size());
-
-        for (String t : fixed) {
-            String[] tokens = Globals.singleTabMultiSpacePattern.split(t);
-            String chrName = tokens[13];
-            assertTrue(chrName.startsWith("chr"));
-        }
-    }
-
-//    public static void main(String [] args) throws Exception {
-//        (new BlatClientTest()).parseUCSCResult();
-//        (new BlatClientTest()).parseCustomResult();
-//    }
-}
\ No newline at end of file


=====================================
test/sessions/circview/schatz_paired-end.xml
=====================================
@@ -1,26 +1,29 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<Session genome="hg19" locus="All" version="8">
+<Session genome="hg19" locus="chr17:37276854-37277154" version="8">
     <Resources>
-        <Resource path="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam.sniffles1kb_auto_l8_s5_noalt_filtered.tra.vcf" type="vcf"/>
         <Resource path="https://s3.amazonaws.com/igv.org.demo/SKBR3/SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam" type="bam"/>
+        <Resource path="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam.sniffles1kb_auto_l8_s5_noalt_filtered.tra.vcf" type="vcf"/>
     </Resources>
-    <Panel height="64" name="Panel1643653158403" width="1133">
+    <Panel height="137" name="DataPanel" width="1465">
+        <Track attributeKey="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam.sniffles1kb_auto_l8_s5_noalt_filtered.tra.vcf" clazz="org.broad.igv.variant.VariantTrack" colorScale="ContinuousColorScale;0.0;10.0;255,255,255;0,0,178" displayMode="EXPANDED" fontSize="10" groupByStrand="false" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam.sniffles1kb_auto_l8_s5_noalt_filtered.tra.vcf" name="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam.sniffles1kb_auto_l8_s5_noalt_filtered.tra.vcf" siteColorMode="ALLELE_FREQUENCY" visible="true"/>
+    </Panel>
+    <Panel height="134" name="Panel1643653158403" width="1465">
         <Track attributeKey="SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam.delly_noalt_filtered.vcf.gz" clazz="org.broad.igv.variant.VariantTrack" colorScale="ContinuousColorScale;0.0;52.0;255,255,255;0,0,178" displayMode="EXPANDED" fontSize="10" groupByStrand="false" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam.delly_noalt_filtered.vcf.gz" name="Delly SVs" siteColorMode="ALLELE_FREQUENCY" squishedHeight="1" visible="true"/>
     </Panel>
-    <Panel height="379" name="Panel1643653129901" width="1133">
+    <Panel height="2648" name="Panel1643653129901" width="1465">
         <Track attributeKey="SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam Coverage" autoScale="true" clazz="org.broad.igv.sam.CoverageTrack" fontSize="10" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam_coverage" name="Illumina Coverage" snpThreshold="0.2" visible="true">
-            <DataRange baseline="0.0" drawBaseline="true" flipAxis="false" maximum="17.761848" minimum="0.0" type="LINEAR"/>
+            <DataRange baseline="0.0" drawBaseline="true" flipAxis="false" maximum="180.0" minimum="0.0" type="LINEAR"/>
         </Track>
-        <Track attributeKey="SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam Junctions" clazz="org.broad.igv.sam.SpliceJunctionTrack" fontSize="10" groupByStrand="false" height="60" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam_junctions" name="Illumina Junctions" visible="false"/>
+        <Track attributeKey="SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam Junctions" autoScale="false" clazz="org.broad.igv.sam.SpliceJunctionTrack" fontSize="10" groupByStrand="false" height="60" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam_junctions" maxdepth="50" name="Illumina Junctions" visible="false"/>
         <Track attributeKey="SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam" clazz="org.broad.igv.sam.AlignmentTrack" color="185,185,185" displayMode="EXPANDED" experimentType="OTHER" fontSize="10" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/SKBR3_550bp_pcrFREE_S1_L001_AND_L002_R1_001.101bp.bwamem.ill.mapped.sort.bam" name="Illumina Alignments" visible="true">
             <RenderOptions/>
         </Track>
     </Panel>
-    <Panel height="96" name="FeaturePanel" width="1133">
+    <Panel height="136" name="FeaturePanel" width="1465">
         <Track attributeKey="Reference sequence" clazz="org.broad.igv.track.SequenceTrack" fontSize="10" id="Reference sequence" name="Reference sequence" sequenceTranslationStrandValue="POSITIVE" shouldShowTranslation="true" visible="true"/>
         <Track attributeKey="Refseq Genes" clazz="org.broad.igv.track.FeatureTrack" fontSize="10" groupByStrand="false" id="https://s3.amazonaws.com/igv.org.genomes/hg19/ncbiRefSeq.sorted.txt.gz" name="Refseq Genes" visible="true"/>
     </Panel>
-    <PanelLayout dividerFractions="0.010714285714285714,0.13392857142857142,0.8196428571428571"/>
+    <PanelLayout dividerFractions="0.18051948051948052,0.36103896103896105,0.8168831168831169"/>
     <HiddenAttributes>
         <Attribute name="DATA FILE"/>
         <Attribute name="DATA TYPE"/>


=====================================
test/sessions/circview/schatz_skbr3_longreads.xml
=====================================
@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<Session genome="hg19" locus="All" nextAutoscaleGroup="4" version="8">
+<Session genome="hg19" locus="chr17:37276855-37277154" nextAutoscaleGroup="4" version="8">
     <Resources>
         <Resource path="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam" type="bam"/>
         <Resource path="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam.sniffles1kb_auto_l8_s5_noalt_filtered.vcf" type="vcf"/>
     </Resources>
-    <Panel height="60" name="DataPanel" width="1076">
+    <Panel height="2475" name="DataPanel" width="1465">
         <Track attributeKey="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam.sniffles1kb_auto_l8_s5_noalt_filtered.vcf" clazz="org.broad.igv.variant.VariantTrack" colorScale="ContinuousColorScale;0.0;129.0;255,255,255;0,0,178" displayMode="EXPANDED" fontSize="10" groupByStrand="false" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam.sniffles1kb_auto_l8_s5_noalt_filtered.vcf" name="Sniffles variants" siteColorMode="NONE" squishedHeight="1" visible="true"/>
     </Panel>
-    <Panel height="461" name="Panel1642655411743" width="1076">
+    <Panel height="6736" name="Panel1642655411743" width="1465">
         <Track attributeKey="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam Coverage" autoScale="true" clazz="org.broad.igv.sam.CoverageTrack" colorScale="ContinuousColorScale;0.0;47.0;255,255,255;176,176,176" fontSize="10" height="40" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam_coverage" name="PacBio coverage" snpThreshold="0.2" visible="true">
-            <DataRange baseline="0.0" drawBaseline="true" flipAxis="false" maximum="623.0" minimum="0.0" type="LINEAR"/>
+            <DataRange baseline="0.0" drawBaseline="true" flipAxis="false" maximum="414.0" minimum="0.0" type="LINEAR"/>
         </Track>
-        <Track attributeKey="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam Junctions" clazz="org.broad.igv.sam.SpliceJunctionTrack" fontSize="10" groupByStrand="false" height="60" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam_junctions" name="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam Junctions" visible="false"/>
+        <Track attributeKey="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam Junctions" autoScale="false" clazz="org.broad.igv.sam.SpliceJunctionTrack" fontSize="10" groupByStrand="false" height="60" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam_junctions" maxdepth="50" name="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam Junctions" visible="false"/>
         <Track attributeKey="reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam" clazz="org.broad.igv.sam.AlignmentTrack" color="185,185,185" displayMode="EXPANDED" experimentType="THIRD_GEN" fontSize="10" height="255" id="https://s3.amazonaws.com/igv.org.demo/SKBR3/reads_lr_skbr3.fa_ngmlr-0.2.3_mapped.bam" name="PacBio reads" visible="true">
             <RenderOptions showInsertionMarkers="false" smallIndelThreshold="200"/>
         </Track>
     </Panel>
-    <Panel height="49" name="FeaturePanel" width="1076">
+    <Panel height="66" name="FeaturePanel" width="1465">
         <Track attributeKey="Reference sequence" clazz="org.broad.igv.track.SequenceTrack" fontSize="10" id="Reference sequence" name="Reference sequence" sequenceTranslationStrandValue="POSITIVE" shouldShowTranslation="false" visible="true"/>
         <Track attributeKey="Refseq Genes" clazz="org.broad.igv.track.FeatureTrack" featureVisibilityWindow="-1000" fontSize="10" groupByStrand="false" height="36" id="https://s3.amazonaws.com/igv.org.genomes/hg19/ncbiRefSeq.sorted.txt.gz" name="Refseq Genes" visible="true"/>
     </Panel>
-    <PanelLayout dividerFractions="0.10652920962199312,0.9072164948453608"/>
+    <PanelLayout dividerFractions="0.21948051948051947,0.9077922077922078"/>
     <HiddenAttributes>
         <Attribute name="DATA FILE"/>
         <Attribute name="DATA TYPE"/>



View it on GitLab: https://salsa.debian.org/med-team/igv/-/commit/d1437c34a5e0af47ee5d72a9c499e3ea71da4ba6

-- 
View it on GitLab: https://salsa.debian.org/med-team/igv/-/commit/d1437c34a5e0af47ee5d72a9c499e3ea71da4ba6
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20230626/fcbd3dde/attachment-0001.htm>


More information about the debian-med-commit mailing list