aidenlab / juicebox Goto Github PK
View Code? Open in Web Editor NEWVisualization and analysis software for Hi-C data -
Home Page: https://aidenlab.org/juicebox
License: MIT License
Visualization and analysis software for Hi-C data -
Home Page: https://aidenlab.org/juicebox
License: MIT License
TrackLabelPanel may be legacy code, or may deal with eigenvector calculations, etc. If not used, remove.
Sometimes KR norms fail and the norm vector is all NaNs, this just shows as an empty gray map (look at chromosome 19 on a smaller HiSeq map to see)
Add norms by default instead of as a separate option
Requires a submethod for rewriting an already created hic map.
Ability to adjust color range on O/E
Talk to Suhas or Erez, I'm not really sure how either sync or link work. Link is very buggy and should be disabled.
If only 1 or 2 annotation tracks are loaded, the panel remains small and the text gets cut off. It would be better if for such cases when the panel size < max labelTextSize for the panel to be properly resized so that the text will fit. However, this will also require resizing of the other panels. Alternative is to only resize the labelPanel with a transparent background and force it to be painted last / on top of everything. That way excess text will overlap on the upper annotation tracks instead.
{ // can use this to find text width
FontMetrics fontMetrics = graphics.getFontMetrics();
Rectangle2D textBounds = fontMetrics.getStringBounds(text, graphics);
int labelTextSize = textBounds.getWidth();
}
Also, change font to match others (not sure which is used).
This would be really useful; some way to save exactly where you're at in Juicebox and later reload that saved state
This is a high priority of Erez's. Go here and click on a point to see what he means:
http://hic.umassmed.edu/welcome/welcome.php
Listed as an enhancement for 1.1, though Erez would prefer it in 1.0.
I've opened the K563 map.
Clicked to zoom into chromosome.
Changed normalization to balanced.
Changed chromzomes back to "All", and refreshed...
Result:
HiC file version: 8
java.io.IOException: Normalization missing for: All_All_BP_6197
at juicebox.data.DatasetReaderV2.readNormalizedBlock(DatasetReaderV2.java:634)
at juicebox.data.MatrixZoomData$1.run(MatrixZoomData.java:191)
at java.lang.Thread.run(Thread.java:745)
INFO [2014-11-26 23:11:13,234] [MessageUtils.java:60] [Thread-25] Normalization missing for: All_All_BP_6197
Erez (or rather Eric) would like implementations of loops via tracks, in the form of arc type connections. Lower priority, but ideally in 1.0.
Open a map, go to chromosome, change to O/E. Change chromosome chooser boxes to "All vs All", hit refresh. Map is all red.
Load an annotation (1D and 2D). Now load an invalid annotation (I had to generate one) while unchecking the 2 previous annotations. The previous 2 will persist and cannot be removed while the latest one is not loaded. The latter issue is being worked on, but the persistence is a separate bug. The persistent 2D annotation can be removed if it is loaded and unloaded again, but the 1D annotation is persistent unless manually deleted.
Will require Jim's help
Open map, move to chromosome. switch to Pearson.
Move to smaller chromosome.
Message "Pearson is not available at current resolution"
Reason:
"Auto resolution" figures that the smaller chromosome requires different resolution.
Suggested solution: either cancel the smart resolution change for Pearson or check availability of Pearson in the decision.
Use:
File->Open->Cancel
Error: "Can't find properties file for loading list"
Several duplicate errors occurred and froze Juicebox.
Not perfectly reproducable bug, but often occurs at low resolution Chr 19 on NHEK HIC068 map.
After this bug occurs, even zoomed out high res maps appear all white, and the color range also messed up. This bug disappears when chromosome selection is reset.
May relate to Issue #29
java.util.zip.DataFormatException: incorrect header check
at java.util.zip.Inflater.inflateBytes(Native Method)
at java.util.zip.Inflater.inflate(Inflater.java:259)
at org.broad.igv.util.CompressionUtils.decompress(CompressionUtils.java:80)
at org.broad.igv.util.CompressionUtils.decompress(CompressionUtils.java:49)
at juicebox.data.DatasetReaderV2.readBlock(DatasetReaderV2.java:544)
at juicebox.data.DatasetReaderV2.readNormalizedBlock(DatasetReaderV2.java:638)
at juicebox.data.MatrixZoomData$1.run(MatrixZoomData.java:191)
at java.lang.Thread.run(Thread.java:745)
The color range slider has a serious bug involving the way it updates. There's no model behind it right now and it leads to very bad behavior
Instead of using the Perl file, run Juicebox CLT on the merged_nodups file, statistics calculated automatically. This will take some work
Will require Jim's help, low priority
This requires making sure we are happy with the new format for Dataset metrics and then creating a script and having people update a bunch of hic files on the Broad
change hard coded econpy links to tc4ga. also search code for broadinstitute links and copy over. do not delete before copying what they refer to (otherwise you'll break things)
testing
Would be excellent to do this earlier than 1.1.
there's an HTML or XML file where it gets the track file names. it's hardcoded somewhere. probably if you "Find in Path" broadinstitute you'll find it.
Have it be like in IGV, with two little editable text boxes with the extents.
Reason: some of the maps concatenate "chr" to chromosome names. When sync is trying to send the info between maps, it will fail to translate from chr to non chr annotation. e.g. chr12 ->12 or 12->chr12.
If I load the same map that is already open, Juicebox downloads the map again rather than simply switching to the full view. This causes an unnecessary delay and seems like a simple fix (verify that the names are different or something?). This occurs in both the Open... and Recent methods.
Reproduce: go to balanced normalization, switch quickly between resolutions.
The tooltip on the color range slider should give both range information and value information
After opening of HIC104 MQ > 30, and zomming in,
I got endless repeat of:
java.util.zip.DataFormatException: incorrect header check
at java.util.zip.Inflater.inflateBytes(Native Method)
at java.util.zip.Inflater.inflate(Inflater.java:259)
at org.broad.igv.util.CompressionUtils.decompress(CompressionUtils.java:80)
at org.broad.igv.util.CompressionUtils.decompress(CompressionUtils.java:49)
at juicebox.data.DatasetReaderV2.readBlock(DatasetReaderV2.java:544)
at juicebox.data.DatasetReaderV2.readNormalizedBlock(DatasetReaderV2.java:629)
at juicebox.data.MatrixZoomData$1.run(MatrixZoomData.java:191)
at java.lang.Thread.run(Thread.java:745)
KR portion of addNorm is slow, particularly at very high (fragment) resolution.
This would require some thought and work; instead of merged_nodups, we could have a BAM file. Is this really useful?
An annotation file (1D or 2D) that is improperly formatted doesn’t return any error message when it is loaded, the viewer just doesn’t display anything.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.