[med-svn] [Git][med-team/igv][master] 6 commits: New upstream version 2.16.1+dfsg
Pierre Gruet (@pgt)
gitlab at salsa.debian.org
Mon Jun 26 12:46:06 BST 2023
Pierre Gruet pushed to branch master at Debian Med / igv
Commits:
d1437c34 by Pierre Gruet at 2023-06-26T11:53:34+02:00
New upstream version 2.16.1+dfsg
- - - - -
db7f2624 by Pierre Gruet at 2023-06-26T11:55:56+02:00
Update upstream source from tag 'upstream/2.16.1+dfsg'
Update to upstream version '2.16.1+dfsg'
with Debian dir b3d0622dcb52f271b5bdd9a278b78674352099b4
- - - - -
2fa26d8b by Pierre Gruet at 2023-06-26T12:01:33+02:00
Refreshing patches
- - - - -
31d9294a by Pierre Gruet at 2023-06-26T12:07:06+02:00
Updating changelog
- - - - -
5b8b0d64 by Pierre Gruet at 2023-06-26T12:08:16+02:00
Set upstream metadata fields: Bug-Database, Bug-Submit, Repository, Repository-Browse.
Changes-By: lintian-brush
- - - - -
2fe01cc2 by Pierre Gruet at 2023-06-26T12:09:44+02:00
Upload to unstable
- - - - -
18 changed files:
- debian/changelog
- − debian/patches/dont_parse_glat_output_in_tests.patch
- − debian/patches/omit_spark_in_tests.patch
- debian/patches/series
- debian/patches/skip_tests_network.patch
- debian/upstream/metadata
- 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:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,12 @@
+igv (2.16.1+dfsg-1) unstable; urgency=medium
+
+ * New upstream version 2.16.1+dfsg
+ * Refreshing patches
+ * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository,
+ Repository-Browse.
+
+ -- Pierre Gruet <pgt at debian.org> Mon, 26 Jun 2023 12:09:14 +0200
+
igv (2.16.0+dfsg-1) unstable; urgency=medium
* New upstream version 2.16.0+dfsg
=====================================
debian/patches/dont_parse_glat_output_in_tests.patch deleted
=====================================
@@ -1,48 +0,0 @@
-Description: ignoring tests that cannot run anymore, as we have removed files
- they used from the source tarball. Yet the tests were passing when the files
- were present.
-Author: Pierre Gruet <pgt at debian.org>
-Forwarded: not-needed
-Last-Update: 2021-12-23
-
---- a/src/test/java/org/broad/igv/util/blat/LegacyBlatClientTest.java
-+++ b/src/test/java/org/broad/igv/util/blat/LegacyBlatClientTest.java
-@@ -2,6 +2,7 @@
-
- import org.broad.igv.Globals;
- import org.broad.igv.util.TestUtils;
-+import org.junit.Ignore;
- import org.junit.Test;
-
- import java.nio.file.Files;
-@@ -12,6 +13,7 @@
-
- public class LegacyBlatClientTest {
-
-+ @Ignore("Required HTML file has been removed due to very-long-lines")
- @Test
- public void parseUCSCResult() throws Exception {
- String testPath = TestUtils.DATA_DIR + "blat/UCSC_blat_results.html";
-@@ -20,6 +22,7 @@
- assertEquals(5, results.size());
- }
-
-+ @Ignore("Required HTML file has been removed due to very-long-lines")
- @Test
- public void parseCustomResult() throws Exception {
- String testPath = TestUtils.DATA_DIR + "blat/CUSTOM_blat_results.html";
-@@ -28,6 +31,7 @@
- assertEquals(8, results.size());
- }
-
-+ @Ignore("Required HTML file has been removed due to very-long-lines")
- @Test
- public void fixWebBlat() throws Exception {
- String testPath = TestUtils.DATA_DIR + "blat/CUSTOM_blat_results.html";
-@@ -47,4 +51,4 @@
- // (new BlatClientTest()).parseUCSCResult();
- // (new BlatClientTest()).parseCustomResult();
- // }
--}
-\ No newline at end of file
-+}
=====================================
debian/patches/omit_spark_in_tests.patch deleted
=====================================
@@ -1,41 +0,0 @@
-Description: omitting Spark in the tests, as the needed libraries are not
- packaged in Debian.
-Author: Pierre Gruet <pgt at debian.org>
-Forwarded: not-needed
-Last-Update: 2021-12-21
-
---- a/src/test/java/org/broad/igv/util/HttpUtilsTest.java
-+++ b/src/test/java/org/broad/igv/util/HttpUtilsTest.java
-@@ -38,7 +38,7 @@
- import java.net.URL;
-
- import static org.junit.Assert.*;
--import static spark.Spark.get;
-+//import static spark.Spark.get;
-
-
- /**
-@@ -150,7 +150,7 @@
- public void run() {
- System.out.println("run thing");
-
-- get("/perm_redir_src", (req, res) ->
-+ /*get("/perm_redir_src", (req, res) ->
- {
- // increment a counter for tests to inspect
- this.permSrcCt += 1;
-@@ -176,12 +176,13 @@
- get("/temp_redir_dest", (req, res) -> {
- this.tempDestCt += 1;
- return "done";
-- });
-+ });*/
-
- }
-
- }
-
-+ @Ignore("Tests using Spark are deactivated")
- @Test
- public void testRedirectCache() throws Exception {
-
=====================================
debian/patches/series
=====================================
@@ -4,6 +4,4 @@ using_home_made_icons.patch
old_gradle_name.patch
jide_dependency.patch
omit_aws_stuff.patch
-omit_spark_in_tests.patch
-dont_parse_glat_output_in_tests.patch
wrong_override.patch
=====================================
debian/patches/skip_tests_network.patch
=====================================
@@ -188,24 +188,6 @@ Last-Update: 2021-12-21
@Test
public void testQuery() throws Exception {
checkNumber("Y", 10000000 - 1, 10004000, 4);
---- a/src/test/java/org/broad/igv/tdf/TDFReaderTest.java
-+++ b/src/test/java/org/broad/igv/tdf/TDFReaderTest.java
-@@ -26,6 +26,7 @@
- package org.broad.igv.tdf;
-
- import org.broad.igv.util.ResourceLocator;
-+import org.junit.Ignore;
- import org.junit.Test;
-
- import java.util.Set;
-@@ -41,6 +42,7 @@
- */
- public class TDFReaderTest {
-
-+ @Ignore("No network access")
- @Test
- public void testReader() throws Exception {
- String url = "http://data.broadinstitute.org/igvdata/encode/hg18/broadHistone/SignalK562H3k4me3.tdf";
--- a/src/test/java/org/broad/igv/tdf/TDFRegressionTests.java
+++ b/src/test/java/org/broad/igv/tdf/TDFRegressionTests.java
@@ -36,6 +36,7 @@
@@ -276,16 +258,6 @@ Last-Update: 2021-12-21
@Test
public void testFilesHeadlessNoIndex() throws Exception {
tstFilesHeadless(filenamesNoIndex, false);
---- a/src/test/java/org/broad/igv/util/HttpUtilsTest.java
-+++ b/src/test/java/org/broad/igv/util/HttpUtilsTest.java
-@@ -52,6 +52,7 @@
-
- static String noRangeHeaderSupportString = "http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSM714693&format=file&file=GSM714693%5Fhg19%5FwgEncodeGisDnaPetK562F1kAln%2Ebam";
-
-+ @Ignore("No network access")
- @Test
- public void testGetContentLength() throws IOException {
- // Open an input stream just to check permissions
--- a/src/test/java/org/broad/igv/util/IGVHttpClientUtilsTest.java
+++ b/src/test/java/org/broad/igv/util/IGVHttpClientUtilsTest.java
@@ -25,6 +25,7 @@
@@ -311,24 +283,6 @@ Last-Update: 2021-12-21
@Test
public void testExists() throws IOException {
---- a/src/test/java/org/broad/igv/util/ParsingUtilsTest.java
-+++ b/src/test/java/org/broad/igv/util/ParsingUtilsTest.java
-@@ -34,6 +34,7 @@
- import org.broad.igv.track.TrackProperties;
- import org.broad.igv.track.WindowFunction;
- import org.junit.Before;
-+import org.junit.Ignore;
- import org.junit.Rule;
- import org.junit.Test;
- import org.junit.rules.TestRule;
-@@ -121,6 +122,7 @@
- }
- }
-
-+ @Ignore("No network access")
- @Test
- public void testGetLastModified_HTTP() throws Exception{
- tstGetLastModified(HttpUtilsTest.broadURLString);
--- a/src/test/java/org/broad/igv/util/stream/IGVSeekableBufferedStreamTest.java
+++ b/src/test/java/org/broad/igv/util/stream/IGVSeekableBufferedStreamTest.java
@@ -34,6 +34,7 @@
@@ -542,16 +496,6 @@ Last-Update: 2021-12-21
-}
\ No newline at end of file
+}
---- a/src/test/java/org/broad/igv/tools/CoverageCounterTest.java
-+++ b/src/test/java/org/broad/igv/tools/CoverageCounterTest.java
-@@ -228,6 +228,7 @@
-
- }
-
-+ @Ignore("No network access")
- @Test
- public void testIncludeDuplicatesFlag() throws IOException {
- String bamURL = "http://data.broadinstitute.org/igvdata/BodyMap/hg18/Merged/HBM.adipose.bam.sorted.bam";
--- a/build.gradle
+++ b/build.gradle
@@ -170,6 +170,75 @@
@@ -723,31 +667,6 @@ Last-Update: 2021-12-21
@Test
public void testLength1Feature() throws Exception {
String bedFile = TestUtils.DATA_DIR + "bed/snp_calls.bed";
---- a/src/test/java/org/broad/igv/util/blat/BlatClientTest.java
-+++ b/src/test/java/org/broad/igv/util/blat/BlatClientTest.java
-@@ -3,6 +3,7 @@
- import org.broad.igv.feature.PSLRecord;
- import org.broad.igv.feature.Strand;
- import org.broad.igv.ui.util.MessageUtils;
-+import org.junit.Ignore;
- import org.junit.Test;
-
- import java.io.IOException;
-@@ -12,6 +13,7 @@
-
- public class BlatClientTest {
-
-+ @Ignore("No network access")
- @Test
- public void blat() throws IOException {
-
-@@ -45,4 +47,4 @@
- // }
-
-
--}
-\ No newline at end of file
-+}
--- a/src/test/java/org/broad/igv/sam/reader/CGIAlignmentReaderTest.java
+++ b/src/test/java/org/broad/igv/sam/reader/CGIAlignmentReaderTest.java
@@ -29,6 +29,7 @@
=====================================
debian/upstream/metadata
=====================================
@@ -1,5 +1,5 @@
-Bug-Database: https://github.com/broadinstitute/IGV/issues
-Bug-Submit: https://github.com/broadinstitute/IGV/issues/new
+Bug-Database: https://github.com/igvteam/igv/issues
+Bug-Submit: https://github.com/igvteam/igv/issues/new
Reference:
- Author: >
James T Robinson and Helga Thorvaldsdóttir and Wendy Winckler and
@@ -33,5 +33,5 @@ Registry:
Entry: SCR_012211
- Name: conda:bioconda
Entry: igv
-Repository: https://github.com/broadinstitute/IGV.git
-Repository-Browse: https://github.com/broadinstitute/IGV
+Repository: https://github.com/igvteam/igv.git
+Repository-Browse: https://github.com/igvteam/igv
=====================================
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/-/compare/c2ed81317b64d09946d7ed6edbedf549241d8309...2fe01cc216df86ab3c025ab5b0f72f1f21b30a89
--
View it on GitLab: https://salsa.debian.org/med-team/igv/-/compare/c2ed81317b64d09946d7ed6edbedf549241d8309...2fe01cc216df86ab3c025ab5b0f72f1f21b30a89
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/1b2ad657/attachment-0001.htm>
More information about the debian-med-commit
mailing list