XiaoTaoWang/NeoLoopFinder

visualization of CNV normalization in higlass

LuJiansen opened this issue · 3 comments

Hi, Xiaotao, thanks for your tools!
I ran the CNV normalization pipeline as below:
calculate-cnv -H K562-MboI-allReps-hg38.10K.cool --output K562_test.bedGraph
segment-cnv --cnv-file K562_test.bedGraph --output K562_test.seg --binsize 10000
correct-cnv -H K562-MboI-allReps-hg38.10K.mcool::resolutions/10000 --cnv-file K562_test.seg

Those ran well, since the sweight column could be found in bins table. Then I want to use higlass to see the difference before and after CNV normalization, however I found visualized using weight was the same before and after normalization, and visualized using sweight was the same as raw contact matrix
image
(upleft: cooler default blance; upright: CNV normalized weight; bottomleft: raw; bottomright: sweight)

I'm not sure if I'm going the right way, could your give me some advices?

Hi, I think higlass has trouble reading the "sweight" column. One way to deal with this is to overwrite your "weight" column with the "sweight" column before you load your cool file into higlass. Or you may try other visualization software or even write a simple script your yourself according to cooler's official API (https://cooler.readthedocs.io/en/latest/api.html#cooler.Cooler.matrix, make sure you specify balance='sweight' when you extract matrix data).

Many thanks!I have tried the visualization module of NeoLoopFinder, it works well for me

Hi @XiaoTaoWang . Thanks for this awesome tool! I aslo want to show different normalization methods using HiGlass. Could you share the code how to change the weight to balance='sweight' and save the .mcool file?
After overwrite the 'weight' column

clr = cooler.Cooler(f'{mcool_file}::{res}')
clr
<Cooler "K1_hg19.allValidPairs.mcool::/resolutions/25000">
clrs = clr
clrs.bins()[:]['weight'] = clr.bins()[:]['sweight']

I don't know how to save clrs and merge different resolutions into one new .mcool file.

Hi, I think higlass has trouble reading the "sweight" column. One way to deal with this is to overwrite your "weight" column with the "sweight" column before you load your cool file into higlass. Or you may try other visualization software or even write a simple script your yourself according to cooler's official API (https://cooler.readthedocs.io/en/latest/api.html#cooler.Cooler.matrix, make sure you specify balance='sweight' when you extract matrix data).