Git Product home page Git Product logo

igv's Introduction

igv

Build Status GitHub issues GitHub closed issues

Integrative Genomics Viewer - desktop genome visualization tool for Mac, Windows, and Linux.

Building

These instructions are meant for developers interested in working on the IGV code. For normal use, we recommend the pre-built releases available at http://software.broadinstitute.org/software/igv/download.

Builds are executed from the IGV project directory. Files will be created in the 'build' subdirectory.

IGV requires Java 17 to build and run. Later versions of Java should work but we build and test on Java 17.

NOTE: If on a Windows platform use ./gradlew.bat' in the instructions below

Folder structure and build targets

The IGV bundles ship with embedded JREs from AdoptOpenJDK.

  • Install Gradle for your platform. See https://gradle.org/ for details.

  • Use ./gradlew createDist to build a distribution directory (found in build/IGV-dist) containing the igv.jar and its required runtime third-party dependencies as well as helper scripts for launching.

    • Launch IGV with igv.sh or igv_hidpi.sh on Linux, igv.command on Mac, and igv.bat on Windows.

    • To run igvtools from the command line use the script igvtools on Linux and Mac, or igvtools.bat on Windows. See the instructions in igvtools_readme.txt in that directory.

    • The launcher scripts expect this folder structure in order to run IGV.

  • Use ./gradlew test to run the test suite. See 'src/test/README.txt' for more information about running the tests.

  • See this README for tips about using the IGV launcher scripts.

  • This dashboard describes project structure and dependencies.

Note that Gradle creates a number of other subdirectories in 'build'. These can be safely ignored.

Amazon Web Services support

Public data files hosted in Amazon S3 buckets can be loaded into IGV using https endpoints.

Authenticated access using s3:// urls is supported by either (1) enabling OAuth access with Cognito using the UMCCR contributed AWS configuration option, or (2) setting AWS credentials and region information as described here and here.

For more details on using Cognito for OAuth access, see the UMCCR documentation on the backend and frontend for a provisioning URL step by step guide.

igv's People

Contributors

amwenger avatar benbfly avatar brainstorm avatar cassiedoll avatar chenliangomc avatar david-w-mead avatar davideby avatar dbrant avatar dror27 avatar fac2003 avatar helgathorv avatar hervold avatar iontorrent-dev avatar jordeu avatar joshua-gould avatar jrobinso avatar jsilter avatar juuussi avatar kevinclydon avatar lbergelson avatar lenbok avatar mnazaire avatar nchernia avatar nh13 avatar qing-at-work avatar seraff avatar tmarvinc avatar tomkp75 avatar twmccart avatar ubuntolog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

igv's Issues

Parse allele frequency with multiple values

VCF 4.1 allows for multiple values for allele frequencies, the first corresponding to the reference and others for alternates:

http://www.1000genomes.org/wiki/Analysis/Variant%20Call%20Format/vcf-variant-call-format-version-41

Right now, IGV will simply fail parsing that line, as it expects that attribute to be a double. Current trunk version fails semi-silently (log message). This may require adjustment of the VCF codec. Test data file multi_allele_fracs.vcf added in commit 39020d5

dependency on www.broadinstitute.org

IGV suddenly stopped working, and it looks like the broadinstitute.org website is also down. It seems innappropriate that if I want to browse bam files on my local computer that there should be a dependency on broadinstitute.org ... is this really the case? IGV should provide this functionality even if broadinstitute.org is not available. Is there some setting I don't know about?

GFF v3 truncates ID to 50 characters, fusing features

I have two GFF features whose IDs differ only in the last character. The first 50 characters are identical.

maker-200408_86-exonerate_protein2genome-gene-56.10
maker-200408_86-exonerate_protein2genome-gene-56.12

IGV is truncating the IDs to fifty characters and is merging these two genes into a single gene. This bug only occurs when the first line of the file is ##gff-version 3 and does not occur otherwise.

multiple tracks combined

I have two *.wig files(ChIP-seq peaks) which realated to two samples,
how could I combined two figures to one with different corlors?

Highlight chimeric alignments

I've mapped assembled contigs to a reference genome using BWA-MEM. One of these contigs indicates structural rearrangement, and so there are two alignments, and one has the "supplementary alignment" flag (2048 or 0x800) set. It'd be great if IGV could highlight both of these alignments.

This could be done by adding a feature to highlight alignments that have the chimeric flag set. Hovering over that alignment would reveal its name. Highlighting both alignments could be accomplished using "Select by name...".

batch file making igv snapshots sporadically fails to show data

Hi

I've been trying to use igv batch scripts to create snapshots of several hundred somatic mutations from bam files with WES, whole WGS, and RNA-seq data. Occasionally the snapshots show only subsets of the the loaded data. There are no error messages indicating problems loading the data.
This error is not always reproducible, but examples of scripts and resulting snap shots of the same data are here:

script (399 mutations, 2533 igv command lines):
http://iwww.broadinstitute.org/~stewart/EwingsSarcoma/review/AN_Sigma_EwingSarcoma_01Jun2012_22Jul2012.igv.commands.txt

example of correct display:
http://iwww.broadinstitute.org/~stewart/EwingsSarcoma/review/pix_AN_Sigma_EwingSarcoma_01Jun2012/EwngSRC-SJDES018-STAG2-chrX-123176418-Splice_Site-capture_wgs_rna_chrX_123176418.png

missing RNA-seq:
http://iwww.broadinstitute.org/~stewart/EwingsSarcoma/review/pix_AN_Sigma_EwingSarcoma_01Jun2012_20Jul2012/EwngSRC-SJDES018-STAG2-chrX-123176418-Splice_Site-capture_wgs_rna_chrX_123176418_C%3EA.png

missing RNA-seq and normal sample WGS data:
http://iwww.broadinstitute.org/~stewart/EwingsSarcoma/review/pix_AN_Sigma_EwingSarcoma_01Jun2012_22Jul2012/EwngSRC-SJDES018-STAG2-chrX-123176418-Splice_Site-capture_wgs_rna_chrX_123176418_C%3EA.png

In the script the missing data begins to occur with sample EwngSRC-SJDES007 mutation FAM21A chr10-51892644 Missense_Mutation and is intermittent.

I've tried igv with -Xmx750m and with -Xmx5750m without improvement one way or the other. Is there something wrong with the batch commands?

IGV Version 2.1.18 (2530)06/10/2012
linux: cga2.broadinstitute.org

Thanks,

Chip Stewart

pop-up messages stay displayed

Hi,

I'm running IGV 2.3.8 on 32bit linux system (BioLinux7). I'm having an odd problem.
The pop-up messages, which explain certain features on mouse-over, stay on the
screen. Maybe the attached jpg clarifies my problem. Is this a known problem?
Are there any solutions?

Thanks for your help,

Dominik
igv

Batch script problems

So I discovered this problem after finding a work-around for the coverage track height issue I submitted yesterday. Running the same batch script in version 2.0.3 and 2.3.3 runs really fast in 2.0.3, but in 2.3.3, it takes a really long time. I watched it for minutes redraw the same data 6 times before performing the snap shot. I would watch the window clear out to be almost completely blank (other than the pane borders) and then watch the data get redrawn slowly from bottom to top, left to right - then clear out again and redraw the same position, same data, same exact overall image 5 more times, bottom to top, left to right. In version 2.0.3, all the data appears instantaneously. Once. Then it takes the snapshot. Here's the batch script:

snapshotDirectory /panfs/panfs.ccr.buffalo.edu/projects/ccrstaff/rwleach/PROJECT/CRPC/MACS/snapshots
goto chr10:73150690-73162690
setDataRange 0,40
snapshot CDH23.chr10.73151690-73161690.png
goto chr10:73549527-73561527
snapshot CDH23.tss2.chr10.73550527-73560527.png
goto chr10:73565639-73577639
snapshot CDH23.tss3.chr10.73566639-73576639.png
goto chr1:12117433-12129433
snapshot TNFRSF8.chr1.12118433-12128433.png

In the time it takes 2.3.3 to do this test portion of data, I can screen cap about 100 positions in version 2.0.3. Why does it draw each position's data 6 times, slowly? Is there a way I can alleviate this myself?

Thanks,
Rob

PS - Separate issue: when a slightly different script is launched via the command line, the whole thing hangs and seemingly gets stuck. Here' the head of the other script:

new
load /projects/ccrstaff/rwleach/PROJECT/CRPC/MACS/LNCaPDHT-LNCaP-datarange40.xml
snapshotDirectory /panfs/panfs.ccr.buffalo.edu/projects/ccrstaff/rwleach/PROJECT/CRPC/MACS/LNCaPDHT-LNCaP-datarange40.xml.snapshots/hg19_SimpleTxStartCoords20130226-strand.txt.pad20k.forigv10k.uniq.igv-dir
goto chr10:73150690-73162690
snapshot CDH23.chr10.73151690-73161690.png
goto chr10:73549527-73561527
snapshot CDH23.tss2.chr10.73550527-73560527.png
goto chr10:73565639-73577639
snapshot CDH23.tss3.chr10.73566639-73576639.png
goto chr1:12117433-12129433

dependency on www.broadinstitute.org

IGV suddenly stopped working, and it looks like the broadinstitute.org website is also down. It seems innappropriate that if I want to browse bam files on my local computer that there should be a dependency on broadinstitute.org ... is this really the case? IGV should provide this functionality even if broadinstitute.org is not available. Is there some setting I don't know about?

Bug: Unclosable "Loading..." windows appear

Description:
When navigating in IGV by dragging the pileup, if you drag again while the pileup is still being loaded, an unclosable loading window appears. After a while, these really accumulate and become a pain to manage.

The close button (X) and Cancel button have no effect.

Steps to reproduce:

  • Load data that triggers the loading window. High coverage data, or data with very long reads (e.g. pacbio) works well
  • Drag the pileup around at a brisk pace.

Expected behaviour:

  • Loading windows should disappear when loading a region has been cancelled or loading finishes.

Version:
Latest from github (18 July 1PM CDT), JDK 7, OS X

screen shot 2013-07-18 at 1 09 48 pm

Add "stop loading" button

In particular alignments. Loading data can sometimes take a very long time, especially when loading over a network. Would be nice to be able to just give up.

igv -g causes a NullPointerException when genome is in current directory

Here's the backtrace:

igv -g NC_021456.fa                    
INFO [2013-10-22 20:38:39,505]  [DirectoryManager.java:149] [main]  IGV Directory: /Users/sjackman/igv
INFO [2013-10-22 20:38:39,512]  [Main.java:72] [main]  Startup  IGV Version 2.3.20 (22)10/05/2013 10:36 PM
INFO [2013-10-22 20:38:39,532]  [Main.java:73] [main]  Java 1.6.0_65
Fetching user directory... INFO [2013-10-22 20:38:42,947]  [Main.java:74] [main]  Default User Directory: /Users/sjackman
ERROR [2013-10-22 20:38:45,410]  [DefaultExceptionHandler.java:42] [main]  Unhandled exception
java.lang.NullPointerException
    at org.broad.igv.PreferenceManager.setLastGenomeImportDirectory(PreferenceManager.java:566)
    at org.broad.igv.ui.IGV.loadGenome(IGV.java:636)
    at org.broad.igv.ui.IGV.loadGenome(IGV.java:622)
    at org.broad.igv.ui.IGV$StartupRunnable.run(IGV.java:2372)
    at org.broad.igv.util.LongRunningTask.submit(LongRunningTask.java:42)
    at org.broad.igv.ui.IGV.startUp(IGV.java:2324)
    at org.broad.igv.ui.Main.open(Main.java:159)
    at org.broad.igv.ui.Main.main(Main.java:66)

add an option to generate session file with relative paths

Loading of 'relative' sessions already works, it would be nice if IGV was able to generate those relative sessions as well.

One way how to do this is to remove the path to the session file from all other paths in that file. The result would be a project that is self contained in given folder, and transferable to other machines.

igv hangs on file browse

If I click `file browse' or 'run batch script', IGV becomes unresponsive before any dialog pops up. I can open files normally using the commandline, load from URL or by load-from-server. This problem is recent, IGV used to work normally. I've installed (compiled from source) the latest version of IGV, but the problem persists. IGV is run on ubuntu linux, using the 3.5.0-25-generic kernel.

This is what I see on the commandline:
INFO [2013-03-14 12:34:06,875] [DirectoryManager.java:149] [main] IGV Directory: /home/roel/igv
INFO [2013-03-14 12:34:06,879] [Main.java:72] [main] Startup IGV Version user (0)03/14/2013 10:53 AM
INFO [2013-03-14 12:34:06,879] [Main.java:73] [main] Java 1.6.0_37
Fetching user directory... INFO [2013-03-14 12:34:06,960] [Main.java:74] [main] Default User Directory: /home/roel
INFO [2013-03-14 12:34:07,955] [GenomeManager.java:113] [main] Loading genome: http://igv.broadinstitute.org/genomes/hg19.genome
INFO [2013-03-14 12:34:09,433] [GenomeManager.java:143] [main] Genome loaded. id= hg19
INFO [2013-03-14 12:34:09,459] [CommandListener.java:80] [Thread-6] Listening on port 60151

below is a jstack trace.

2013-03-14 12:14:58
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.12-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007fb398001000 nid=0x343e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"DestroyJavaVM" prio=10 tid=0x00007fb3d4005800 nid=0x33f2 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Thread-6" prio=10 tid=0x00007fb3d466b800 nid=0x340d runnable [0x00007fb36b24c000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x00000007c46c9ca8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.broad.igv.batch.CommandListener.run(CommandListener.java:83)
at java.lang.Thread.run(Unknown Source)

"TimerQueue" daemon prio=10 tid=0x00007fb3d4634800 nid=0x340b in Object.wait() [0x00007fb36ba7f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007ade27de8> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(Unknown Source)
- locked <0x00000007ade27de8> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)

"Timer-1" prio=10 tid=0x00007fb3d44aa800 nid=0x340a in Object.wait() [0x00007fb3b12fd000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007ad5c5c98> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0x00000007ad5c5c98> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)

"AWT-EventQueue-0" prio=10 tid=0x00007fb3d44fe000 nid=0x3409 runnable [0x00007fb3b13fc000]
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(Unknown Source)
at java.io.File.exists(Unknown Source)
at javax.swing.JFileChooser.setCurrentDirectory(Unknown Source)
at org.broad.igv.ui.util.FileDialogUtils.getJFileChooser(FileDialogUtils.java:172)
at org.broad.igv.ui.util.FileDialogUtils.chooseMultiple(FileDialogUtils.java:79)
at org.broad.igv.ui.action.LoadFilesMenuAction.chooseTrackFiles(LoadFilesMenuAction.java:66)
at org.broad.igv.ui.action.LoadFilesMenuAction.actionPerformed(LoadFilesMenuAction.java:54)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

"AWT-Shutdown" prio=10 tid=0x00007fb3d4447000 nid=0x3408 in Object.wait() [0x00007fb3b14ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007acd78d88> (a java.lang.Object)
at java.lang.Object.wait(Object.java:485)
at sun.awt.AWTAutoShutdown.run(Unknown Source)
- locked <0x00000007acd78d88> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)

"AWT-XAWT" daemon prio=10 tid=0x00007fb3d443b000 nid=0x3406 runnable [0x00007fb3b183c000]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(Unknown Source)
at sun.awt.X11.XToolkit.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x00007fb3d43e0800 nid=0x3405 in Object.wait() [0x00007fb3b1f71000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007acd9dc00> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000007acd9dc00> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

"Timer-0" daemon prio=10 tid=0x00007fb3d437b800 nid=0x3403 in Object.wait() [0x00007fb3b34d0000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007accdd9f8> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0x00000007accdd9f8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)

"Low Memory Detector" daemon prio=10 tid=0x00007fb3d40be800 nid=0x3401 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x00007fb3d40bc800 nid=0x3400 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x00007fb3d40b9800 nid=0x33ff waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007fb3d40b7800 nid=0x33fe runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007fb3d409b000 nid=0x33fd in Object.wait() [0x00007fb3b3dfc000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007acab1300> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000007acab1300> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x00007fb3d4099000 nid=0x33fc in Object.wait() [0x00007fb3b3efd000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007acab11d8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x00000007acab11d8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00007fb3d4092000 nid=0x33fb runnable

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fb3d4018800 nid=0x33f3 runnable

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fb3d401a800 nid=0x33f4 runnable

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fb3d401c000 nid=0x33f5 runnable

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007fb3d401e000 nid=0x33f6 runnable

"GC task thread#4 (ParallelGC)" prio=10 tid=0x00007fb3d4020000 nid=0x33f7 runnable

"GC task thread#5 (ParallelGC)" prio=10 tid=0x00007fb3d4021800 nid=0x33f8 runnable

"GC task thread#6 (ParallelGC)" prio=10 tid=0x00007fb3d4023800 nid=0x33f9 runnable

"GC task thread#7 (ParallelGC)" prio=10 tid=0x00007fb3d4025800 nid=0x33fa runnable

"VM Periodic Task Thread" prio=10 tid=0x00007fb3d40c9800 nid=0x3402 waiting on condition

JNI global references: 1325

If I compare the stack traces for the file browse and run batch script, I get this diff:

--- 1.log 2013-03-14 12:14:58.781926979 +0100
+++ 2.log 2013-03-14 12:32:14.253962097 +0100
@@ -1,48 +1,51 @@
-2013-03-14 12:14:58
+2013-03-14 12:32:14
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.12-b01 mixed mode):

-"Attach Listener" daemon prio=10 tid=0x00007fb398001000 nid=0x343e waiting on condition [0x0000000000000000]
+"Attach Listener" daemon prio=10 tid=0x00007fb57c001000 nid=0x5558 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

-"DestroyJavaVM" prio=10 tid=0x00007fb3d4005800 nid=0x33f2 waiting on condition [0x0000000000000000]
+"DestroyJavaVM" prio=10 tid=0x00007fb5b4005800 nid=0x5524 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

-"Thread-6" prio=10 tid=0x00007fb3d466b800 nid=0x340d runnable [0x00007fb36b24c000]
+"Thread-6" prio=10 tid=0x00007fb5b4614000 nid=0x553e runnable [0x00007fb550f4e000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)

    • locked <0x00000007c46c9ca8> (a java.net.SocksSocketImpl)
    • locked <0x00000007c46c9c70> (a java.net.SocksSocketImpl)
      at java.net.ServerSocket.implAccept(Unknown Source)
      at java.net.ServerSocket.accept(Unknown Source)
      at org.broad.igv.batch.CommandListener.run(CommandListener.java:83)
      at java.lang.Thread.run(Unknown Source)

-"TimerQueue" daemon prio=10 tid=0x00007fb3d4634800 nid=0x340b in Object.wait() [0x00007fb36ba7f000]
+"TimerQueue" daemon prio=10 tid=0x00007fb5b45dd000 nid=0x553c in Object.wait() [0x00007fb551781000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)

    • waiting on <0x00000007ade27de8> (a javax.swing.TimerQueue)
    • waiting on <0x00000007ade27bb8> (a javax.swing.TimerQueue)
      at javax.swing.TimerQueue.run(Unknown Source)
    • locked <0x00000007ade27de8> (a javax.swing.TimerQueue)
    • locked <0x00000007ade27bb8> (a javax.swing.TimerQueue)
      at java.lang.Thread.run(Unknown Source)

-"Timer-1" prio=10 tid=0x00007fb3d44aa800 nid=0x340a in Object.wait() [0x00007fb3b12fd000]
+"Timer-1" prio=10 tid=0x00007fb5b4447000 nid=0x553b in Object.wait() [0x00007fb56b036000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)

    • waiting on <0x00000007ad5c5c98> (a java.util.TaskQueue)
    • waiting on <0x00000007ad5c5b08> (a java.util.TaskQueue)
      at java.util.TimerThread.mainLoop(Unknown Source)
    • locked <0x00000007ad5c5c98> (a java.util.TaskQueue)
    • locked <0x00000007ad5c5b08> (a java.util.TaskQueue)
      at java.util.TimerThread.run(Unknown Source)

-"AWT-EventQueue-0" prio=10 tid=0x00007fb3d44fe000 nid=0x3409 runnable [0x00007fb3b13fc000]
+"AWT-EventQueue-0" prio=10 tid=0x00007fb5b4484800 nid=0x553a runnable [0x00007fb56b135000]
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(Unknown Source)
at java.io.File.exists(Unknown Source)
at javax.swing.JFileChooser.setCurrentDirectory(Unknown Source)
at org.broad.igv.ui.util.FileDialogUtils.getJFileChooser(FileDialogUtils.java:172)

  • at org.broad.igv.ui.util.FileDialogUtils.chooseMultiple(FileDialogUtils.java:79)
  • at org.broad.igv.ui.action.LoadFilesMenuAction.chooseTrackFiles(LoadFilesMenuAction.java:66)
  • at org.broad.igv.ui.action.LoadFilesMenuAction.actionPerformed(LoadFilesMenuAction.java:54)
  • at org.broad.igv.ui.util.FileDialogUtils.chooseSwing(FileDialogUtils.java:141)
  • at org.broad.igv.ui.util.FileDialogUtils.chooseFile(FileDialogUtils.java:74)
  • at org.broad.igv.ui.util.FileDialogUtils.chooseFile(FileDialogUtils.java:53)
  • at org.broad.igv.ui.util.FileDialogUtils.chooseFile(FileDialogUtils.java:44)
  • at org.broad.igv.ui.action.RunScriptMenuAction.chooseScriptFile(RunScriptMenuAction.java:62)
  • at org.broad.igv.ui.action.RunScriptMenuAction.actionPerformed(RunScriptMenuAction.java:39)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    @@ -50,7 +53,6 @@
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
  • at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    @@ -83,7 +85,7 @@
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

-"AWT-Shutdown" prio=10 tid=0x00007fb3d4447000 nid=0x3408 in Object.wait() [0x00007fb3b14ff000]
+"AWT-Shutdown" prio=10 tid=0x00007fb5b44b0000 nid=0x5539 in Object.wait() [0x00007fb56b238000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007acd78d88> (a java.lang.Object)
@@ -92,14 +94,14 @@
- locked <0x00000007acd78d88> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)

-"AWT-XAWT" daemon prio=10 tid=0x00007fb3d443b000 nid=0x3406 runnable [0x00007fb3b183c000]
+"AWT-XAWT" daemon prio=10 tid=0x00007fb5b441b000 nid=0x5537 runnable [0x00007fb56b43a000]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(Unknown Source)
at sun.awt.X11.XToolkit.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

-"Java2D Disposer" daemon prio=10 tid=0x00007fb3d43e0800 nid=0x3405 in Object.wait() [0x00007fb3b1f71000]
+"Java2D Disposer" daemon prio=10 tid=0x00007fb5b43c0800 nid=0x5536 in Object.wait() [0x00007fb5b0149000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007acd9dc00> (a java.lang.ref.ReferenceQueue$Lock)
@@ -109,7 +111,7 @@
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

-"Timer-0" daemon prio=10 tid=0x00007fb3d437b800 nid=0x3403 in Object.wait() [0x00007fb3b34d0000]
+"Timer-0" daemon prio=10 tid=0x00007fb5b435b800 nid=0x5535 in Object.wait() [0x00007fb5b81e1000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007accdd9f8> (a java.util.TaskQueue)
@@ -117,19 +119,19 @@
- locked <0x00000007accdd9f8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)

-"Low Memory Detector" daemon prio=10 tid=0x00007fb3d40be800 nid=0x3401 runnable [0x0000000000000000]
+"Low Memory Detector" daemon prio=10 tid=0x00007fb5b40be800 nid=0x5533 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

-"C2 CompilerThread1" daemon prio=10 tid=0x00007fb3d40bc800 nid=0x3400 waiting on condition [0x0000000000000000]
+"C2 CompilerThread1" daemon prio=10 tid=0x00007fb5b40bc800 nid=0x5532 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

-"C2 CompilerThread0" daemon prio=10 tid=0x00007fb3d40b9800 nid=0x33ff waiting on condition [0x0000000000000000]
+"C2 CompilerThread0" daemon prio=10 tid=0x00007fb5b40b9800 nid=0x5531 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

-"Signal Dispatcher" daemon prio=10 tid=0x00007fb3d40b7800 nid=0x33fe runnable [0x0000000000000000]
+"Signal Dispatcher" daemon prio=10 tid=0x00007fb5b40b7800 nid=0x5530 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

-"Finalizer" daemon prio=10 tid=0x00007fb3d409b000 nid=0x33fd in Object.wait() [0x00007fb3b3dfc000]
+"Finalizer" daemon prio=10 tid=0x00007fb5b409b000 nid=0x552f in Object.wait() [0x00007fb5b8bea000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007acab1300> (a java.lang.ref.ReferenceQueue$Lock)
@@ -138,7 +140,7 @@
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

-"Reference Handler" daemon prio=10 tid=0x00007fb3d4099000 nid=0x33fc in Object.wait() [0x00007fb3b3efd000]
+"Reference Handler" daemon prio=10 tid=0x00007fb5b4099000 nid=0x552e in Object.wait() [0x00007fb5b8ceb000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007acab11d8> (a java.lang.ref.Reference$Lock)
@@ -146,25 +148,25 @@
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x00000007acab11d8> (a java.lang.ref.Reference$Lock)

-"VM Thread" prio=10 tid=0x00007fb3d4092000 nid=0x33fb runnable
+"VM Thread" prio=10 tid=0x00007fb5b4092000 nid=0x552d runnable

-"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fb3d4018800 nid=0x33f3 runnable
+"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fb5b4018800 nid=0x5525 runnable

-"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fb3d401a800 nid=0x33f4 runnable
+"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fb5b401a800 nid=0x5526 runnable

-"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fb3d401c000 nid=0x33f5 runnable
+"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fb5b401c000 nid=0x5527 runnable

-"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007fb3d401e000 nid=0x33f6 runnable
+"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007fb5b401e000 nid=0x5528 runnable

-"GC task thread#4 (ParallelGC)" prio=10 tid=0x00007fb3d4020000 nid=0x33f7 runnable
+"GC task thread#4 (ParallelGC)" prio=10 tid=0x00007fb5b4020000 nid=0x5529 runnable

-"GC task thread#5 (ParallelGC)" prio=10 tid=0x00007fb3d4021800 nid=0x33f8 runnable
+"GC task thread#5 (ParallelGC)" prio=10 tid=0x00007fb5b4021800 nid=0x552a runnable

-"GC task thread#6 (ParallelGC)" prio=10 tid=0x00007fb3d4023800 nid=0x33f9 runnable
+"GC task thread#6 (ParallelGC)" prio=10 tid=0x00007fb5b4023800 nid=0x552b runnable

-"GC task thread#7 (ParallelGC)" prio=10 tid=0x00007fb3d4025800 nid=0x33fa runnable
+"GC task thread#7 (ParallelGC)" prio=10 tid=0x00007fb5b4025800 nid=0x552c runnable

-"VM Periodic Task Thread" prio=10 tid=0x00007fb3d40c9800 nid=0x3402 waiting on condition
+"VM Periodic Task Thread" prio=10 tid=0x00007fb5b40c9800 nid=0x5534 waiting on condition

-JNI global references: 1325
+JNI global references: 1338

data range scaling

IGV is awesome. One extremely useful feature would be to be able to scale the data range of multiple tracks simultaneously and/or to autoscale groups of tracks to the same data range. If you are using IGV to view and compare RNA-seq, ChIP-seq, etc., you will have many tracks that need to be viewed on the same scale, but the scale will vary dramatically for each locus you view. RIght clicking and setting the range for each track every time you view a different locus is very tedious. An example is IGB, which is exremely slow, but has scroll bars that control the data range view for multiple tracks.

Thanks,

Zachery Smith
Postdoc
Danforth Center

Running on Ubuntu through SSH connection causes screen/memory corruption

I'm not sure if this is an issue with ssfs or IGV, but it only shows problems when running IGV.

I am running IGV 2.3.20 (22) on Ubuntu 13.04, loading a file that is on a remote server, mounted locally through sshfs. Tooltips will frequently not disappear and cause the exception shown below, and the screen will become corrupt after a short while either scrolling or tabbing to another application.

An example of the corrupt screen cause from tabbing is below.

igv-screenshot1
java.lang.ClassCastException: javax.swing.Popup$HeavyWeightWindow cannot be cast to javax.swing.JComponent
at javax.swing.ToolTipManager.initiateToolTip(ToolTipManager.java:402)
at javax.swing.ToolTipManager.mouseEntered(ToolTipManager.java:395)
at java.awt.Component.processMouseEvent(Component.java:6297)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Window.processEvent(Window.java:1945)
at java.awt.Component.dispatchEventImpl(Component.java:4649)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Window.dispatchEventImpl(Window.java:2587)
at java.awt.Component.dispatchEvent(Component.java:4475)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:675)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:119)
at java.awt.EventQueue$3.run(EventQueue.java:648)
at java.awt.EventQueue$3.run(EventQueue.java:646)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:645)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

igvtools count --minMapQuality command line option broken

Hi IGV Team,

There seems to be a command line parsing error in igvtools when using --minMapQuality option.

Program: igvtools. IGV Version 2.1.7 (2413)04/27/2012 11:47 PM

$ ~/src/IGVTools/igvtools count -z 5 -w 25 -e 250 --minMapQuality 1 test.bam test.tdf hg19
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at org.broad.igv.tools.IgvTools.run(IgvTools.java:297)
at org.broad.igv.tools.IgvTools.main(IgvTools.java:192)

Best regards,
Stefan

error loading gtf file

the text of the error is :
Error Loading mouse_mm10_gencode_M2_GTF.chrM.sorted.gtf: class "org.broad.igv.track.TribbleFeatureSource$NonIndexedFeatureSource$CoverageDataSource" does not match trust level of other classes in the same package.

Let me know if you need more information to find the source of this this problem.

ENHANCEMENT REQUEST: "Feature Flanking Region" can now be expressed as a multiplier of feature size

Suggested replacement for text http://www.broadinstitute.org/software/igv/Preferences

Change this to define how large a flanking region IGV will add before and after a feature locus when you zoom to a feature, or when you view gene/loci lists in multiple panel. Integers values are taken as number of base pairs. Real number values are taken as a scaling multiplier (for example, 1.5 will zoom out to 150% of the feature's size, resulting in 25% of the feature's size on either side).

Non-free license

I am not a native speaker; this post is not intended to be rude or insult anybody.

All files in the /src/org/json folder are under the "json license" including the morality clause "The Software shall be used for Good, not Evil."
This license is regarded non-free by GNU/FSF, Debian, Fedora, Red Hat and Google and is not approved by OSI.
If you would like your program to be distributable as free and open source software, it might be best to remove or substitute these files. Alternative implementations for java are suggested e.g. at http://wiki.debian.org/qa.debian.org/jsonevil.

Display of long deletions from VCF (and probably other formats)

Hi,

Long deletions in VCF files are handled poorly being represented as a single unwrapped string.

It would be preferable if this was represented as something like:

ACGTACT...ACGTACGT (8,000bp)

When this occurs in a SAM record the deleted seq is wrapped (but that still runs into problems).

IGV 2.1.21, MacOS 10.6.8

Regards,

Keiran Raine
Principal Bioinformatician
Cancer Genome Project
Wellcome Trust Sanger institute

Crash when "show softclipped bases" is selected

I have a reproducible crash when viewing the following file in IGV. The crash only happens when "Show softclipped bases" is selected. This crash does not occur with older versions of IGV (tested with v2.1).

The file has 2 reads. Trimming the file down to one read (either one in the file) appears to eliminate the crash. https://www.dropbox.com/s/gx33m22vwnux6og/debug_ref.bam

As best I can tell, the -58 offset in the exception is the offset between start positions of the two reads (when including the softclips).

Steps to reproduce:

  • Open IGV
  • Select a reference (I used hg19)
  • Open preferences, and select "show softclipped bases" from the "Alignment" section
  • Load the attached BAM file, observe crash

Desired behaviour:
Performing the above steps doesn't cause a crash.

Crash backtrace:
ERROR [2014-03-12 09:26:04,519] [LongRunningTask.java:60] [pool-1-thread-5] Exception running task
java.lang.ArrayIndexOutOfBoundsException: -58
at org.broad.igv.sam.AlignmentPacker$DenseBucketCollection.get(AlignmentPacker.java:397)
at org.broad.igv.sam.AlignmentPacker.pack(AlignmentPacker.java:225)
at org.broad.igv.sam.AlignmentPacker.packAlignmentInterval(AlignmentPacker.java:143)
at org.broad.igv.sam.AlignmentPacker.packAlignments(AlignmentPacker.java:73)
at org.broad.igv.sam.AlignmentDataManager.repackAlignments(AlignmentDataManager.java:275)
at org.broad.igv.sam.AlignmentDataManager$1.run(AlignmentDataManager.java:358)
at org.broad.igv.util.LongRunningTask.call(LongRunningTask.java:57)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

Performance Regression over X11

There is a major performance regression in IGV that has existed since version 2.2 was released, which makes newer versions unbearably slow when using X11. I assume it is still the same issue as https://groups.google.com/forum/#!topic/igv-help/jR1Z8ITFcXM

I have tried to disable anti-aliasing to fix the problem as mentioned in that email chain, but the preference does not seem to be checked everywhere, in particular the read display themselves seem to still be antialiased. Performance is as you would expect very bad due to this problem.

2.1.24 performance is very snappy over X11, so I will continue to use that, but it would be nice to fix this performance regression so that those of us using IGV over the network can use the new features!

Allow comment lines in $$_dataServerRegistry.txt

I have IGV preferences set to point to my own Data Registry URL, which is a $$_dataServerRegistry.txt file with several extra dataset URL lines listing our local internal samples, etc.

It would be great if it were possible to quickly and easily switch datasets on and off, perhaps by commenting them out in the usual first-non-whitespace-character-is-# style. And being able to put comments in general in this file would occasionally be useful.

(I see one could put disabled datasets at the bottom of the file, offset from the enabled ones by a blank line or two. Is this the intended behaviour? It's not totally obvious that the break in LoadFromServerAction.java:getResourceUrls() might not be supposed to be a continue! )

Removing track leaves empty track in display, taking up screen space

Description:
When you remove a track (using right click -> remove track), the data is no longer displayed but the resizable track is still there, taking up space in the window. If you open/close a bunch of files in a session, eventually most of the display is taken up with these empty tracks.

Desired behaviour:
These empty tracks should disappear when removed.

Attachment:
The attached screen shot shows two of these leftover tracks at the top, above the "novoalign.sorted.bam" track.
screen shot 2013-07-11 at 11 54 07 am

igvtools index returns 1 on success

If you run igvtools index on a perfecty good bed file, everything goes OK -- the index file is created. But the exit status is set to 1, controversial to a convention of using 0 when no errors occurred.

> echo 'chr1\t1\t1000' > test.bed
> igvtools index test.bed
Done
> echo $?
1
> ls test.bed*
test.bed  test.bed.idx

Enhancement: use native file open dialog for File->Load from file...

Description:

The Mac native file dialog should be used instead of the current custom file selection box. The native file dialog provides many additional ways of locating files than the current file selection dialog used for "Load from file...", and provides a more familiar interface for users.

Benefit:

Switching to this dialog style instead of the less functional one currently used will increase the usability of IGV:

  • Access to "Favorites" section that is on the left of every Finder window
  • Ability to directly enter path to a file / folder, with Ctrl-shift-G
  • Increased familiarity of users with the interface

Desired behavior:

  • Selecting File->Load from file brings up a standard Mac file open dialog, allowing the users to select files.
  • Direct paths may be entered with ctrl-shift-G.
  • Folders in the favorites section of the finder appear on the left
  • Cancel closes dialog box without opening a file, and OK button opens the one or more files that are selected.

Attached image shows the existing dialog box on the left, and the standard Mac file open on the right.
screen shot 2013-07-16 at 12 14 22 pm

vcf failure to load on dbSNP clinvar_20130118.vcf

Hi guys,

I get a failure to load vcf files from the clinvar part of dbSNP. I have checked and these files pass vcf-validator testing.

ftp://ftp.ncbi.nlm.nih.gov/snp/organisms/human_9606/VCF/clinvar_20130118.vcf.gz

The SNP information is extensive in these VCFs which might be causing the issue.

Keep up the good work!
/Alistair

Unknown file type: GenBank gbk

I select File -> Open and select a GenBank .gbk file. I get the following error message:

Unknown file type: scaffolds.gbk Check file extension

I believe GenBank .gbk files are supported by IGV since 2.2.x:
http://www.broadinstitute.org/igv/IGV2.2.x

New file formats. IGV now supports GenBank (.gbk) files

I am using IGV version 2.3.23 (26).

Cheers,
Shaun

Request: Tabbed browsing

I would love tabbed browsing for navigating BAM files of genome assemblies. A right-click Go to mate in new tab feature would be super fantastic.

Coverage track height immutable

I just installed 2.3.3. Was running 2.0.3 before. I wanted the current version so that turning off autoscaling would work (as it didn't seem to work in the old one). That feature does work in the new one, but what I cannot do that I could do before is change the height of the coverage track of a bam file. There's no option in the contextual menu and the global set track height setting does not seem to affect it. However, I have a work-around. I can change the track height in the old version of IGV and save the session, then load it in the new version and the height setting keeps.

Sometimes thick blue exon line covers up amino acids

In some exons, the blue thick line indicating an exon in zoomed-out views does not disappear when we zoom in. Then, the blue line covers up the sequence of amino acids. See screenshot for example. Specifically, I noticed this happening in the 4th exon of DCTN5. It doesn't happen with other exons of the same gene. The coordinates viewed in the screenshot are 16:23672478-23672609.

igv_dctn5_bug

Panel JScrollPane needs revalidate if track height changes

When displaying BAM tracks and moving from a region without read coverage to a region with high coverage, the height of the alignment track increases to accomodate the reads.
However, the surrounding Panel (TrackGroup?) does not revalidate its ScrollPane. The vertical scrollbar is not activated if it was deactivated before.
Manually triggering a revalidate, e.g. by dragging the Divider between track groups, the ScrollBar is activated correctly.

Crash on connecting external monitor

IGV crashes when I connect my Macbook Pro to a Cinema display in clamshell mode
(laptop screen closed, using external keyboard and mouse). Please let me know what additional information I can provide to help debug the issue.

No automatic deselection

Imagine a session that has some coverage data tracks and also some region tracks from peak calling. To make alterations to only one type of track, I select them while holding down Ctrl. But when I right click and make a modification, all of the specific selections are reset. It would make multiple adjustments easier if this did not happen. For example, repeatedly refining the data range based on the appearance of a change and not having to select the tracks repeatedly.

Requested on igv-help: https://groups.google.com/forum/?fromgroups=#!topic/igv-help/wIs8Yw5pyLw

Issue generating custom session file.

I'm attempting to write my own session file. Per the docs:

: Contains information about the general state of IGV when the session was saved
genome= The genome id.
New - IGV 2.1or later only. A file path or URL to an indexed fasta or .genome file can be used in place of the genome id. The path can be absolute or relative to the parent directory of the session file.

This doesn't appear to be working. Anytime I put something besides genome="hg18" (or any other valid genome) I get an exception when IGV starts launching:

Caused by: java.lang.NullPointerException
at org.broad.igv.session.IGVSessionReader.processRootNode(IGVSessionReader.java:375)
at org.broad.igv.session.IGVSessionReader.loadSession(IGVSessionReader.java:304)
at org.broad.igv.ui.IGV.restoreSessionSynchronous(IGV.java:1371)
... 14 more

I'm trying file path's like d:/test.genome and url paths like http://localhost/test.genome. Both blow up. Looking at the code at line 375 in IGVSessionReader.java (per the exception):

if (!GenomeManager.getInstance().getGenomeId().equals(genomeId)) {

this is what is blowing up. I noticed a few lines above on line 362:

if (genomeId.equals(GenomeManager.getInstance().getGenomeId())) {

the comparison is reversed. I do know that in java that when using equals, if comparing to an object to null, it returns false, but when comparing a null against an object, it returns the null pointer exception I'm getting. I suspect that line 375 needs to be corrected.

Enhancement: streamline opening VCF files by automatically running igvtools index

Description:
When loading a VCF with no index an error message is displayed, and the load is cancelled. Since IGV has a built in capability to run igvtools, and can index the file using another dialog anyway, IGV should provide the ability to automatically index the VCF file, resulting in time savings for the user and a more streamlined experience.

Desired outcome:
When opening an unindexed VCF, IGV should ask if the user wants to index the file. If not, the file should not be loaded. If so, the file should be indexed using the built in igvtools.

errer when generating path for IGV Tools "sort"

Dear colleagues,
I started using IGV a few weks ago and recently started using the IGV tools "Sort" from the IGV interface (version 2.2.13). I observe what it seems to be a bug in the proposed path for the output file. For instance, if I select as input file

E:\bowtie2-2.1.0\ChiP01\SAMs\B1.sam
the automatic output selection is:

E:\bowtie2-2.sorted.1.0\ChiP01\SAMs\B1.sam
Note that this output path refers to a non-existent folder (bowtie2-2.sorted.1.0). If I accept this the system throws an exception when starts running. It seems that the word "sorted" should be placed in the file name (i.e. B1_sorted.sam). If I do this manually , it works.
This is not an enormous problem, but it takes a while before one realizes the origin of the trouble (particularly if you are not an expert, as it is my case) and complicates handling of many files. I trust it should be not difficult for you to solve. On the other hand, I congratulate you for this excellent and extremely useful piece of software.
Sincerely,
Joaquin Arino

Add a refresh action to tracks

Hi Guys

I was wondering if any of you have planned or considered adding a refresh feature to the tracks.

So lets say you have a track of a bed file you opened in IGV. It would be great if you could right click on the name of the track and select "refresh data".

Without this feature, if I want to update a track with new data contained within the original bed file I have to remove the track and reopen it . It is a bit cumbersome and if you have made modified that track like changing the color or font or anything else you will loose them and have to reapply them.

Overlapping features loaded from vcf

Reported by keiranmraine

Hi,

Take the following example

a. 200 bp deletion
b. 5 bp deletion - within the footprint of 'a'

When this occurs it is not possible to distinguish these in the track. Could the track be modified to use some sort of bumping to separate out overlapping events?

Regards,

Keiran Raine
Principal Bioinformatician
Cancer Genome Project
Wellcome Trust Sanger institute

Sometimes squares are shown instead of bases

Sometimes, squares are show instead of softclipped bases. This only happens for about half of reads, and as far as I can tell, there is no pattern to which reads show this effect. See attached screenshot.

screen shot 2013-12-22 at 8 19 53 pm

Current behaviour: When softclipped bases are shown, sometimes a square is shown instead of the respective base on the read.

Expected behaviour: When softclipped bases are shown, the base should be shown on screen.

Loading multiple files from URL doesn't handle multiple names properly

Please describe the problem including steps to reproduce it.

I want to load multiple (2 in this case) tracks from a remote server by the same html link into a running local IGV installation. Following the docs and using comma seperated lists, the data files are loaded fine, but the names are not assigned correctly. Both tracks have the full name string, including commas.

Use for example the following link:

http://localhost:60151/load?file=http://biominas002.biomina.be/~gvandeweyer/42.bam,http://biominas002.biomina.be/~gvandeweyer/42.vcf.gz&name=Testing.bamfile,Testing.vcffile&merge=fals

What version of the product are you using? On what operating system?
Version 2.1.20 (2537)
Ubuntu 12.04 LTS
linux 3.2.0-25-generic x86_64

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.