Discussion:
[Gmod-gbrowse] Best way to present a copy number variation track?
Vladimir Gritsenko
2015-03-02 10:36:20 UTC
Permalink
Hi all,

I’m writing a CNV track, which I’m representing as a histogram (~5 kbp per each bar), in GFF3. Here’s what I need:

1) Y scales that will always be present to the left and the right of the track.
2) Horizontal lines running along pre-set Y values.
3) Each bar in the histogram labeled with its value.

To break down each question I have:

1) The biggest issue I’ve had is the Y scales. In GFF3, if I don’t aggregate my data points, I get a lot of scale cartoons, cluttering the view when zooming out. If I do aggregate my views, the scales will only be presented at the beginning, middle and end of the chromosome - that’s too sparse. Ideally, I would like the scales to be presented in a zoom-invariant way - always to the left, right and maybe middle of the visible portion of the track.
2) The second issue is the horizontal lines. I think I can just add a feature to represent that line, but the problem with it being a feature is that users may click on it by mistake (instead of the histogram bar). Also, if it’s not marked, it loses its effect without scales.
3) I’ve found no way to label each individual bar. I did manage to have the CNV value be in the mouse-hover balloon (via the $description variable).

I think that 1+2 and 3 are mutually exclusive in terms of necessary features - that is, if the scale question is undoable but the labeling is doable, that may be good enough, and vice versa.

Any other thoughts or examples on how to represent CNV tracks will be greatly appreciated.

Thank you!
Timothy Parnell
2015-03-02 16:35:23 UTC
Permalink
Hi Vladimir,

I assume you are using the xyplot glyph to draw your track data. As you discovered, you must enable aggregation of your gff3 features to put them on a continuous graph. Alternatively, convert the data to a wig file format.

The y-axis scales are placed according to the conf scale parameter value of left, right, both, or three (left, middle, right). The left and right scales will become hidden if you have set the details multiplier > 1 and you pan around. These are pretty much fixed positions drawn on the png; no floating scales are available. I personally prefer no panning so that I can always see my scales.

The horizontal lines are usually always on, at least if you set the detail grid parameter to 1 (default parameter, I think). You can turn it off by adding the track conf option no_grid = 1. I don’t think you can add more lines, if that is what you want. You can try playing with the min_score and max_score.

As for labels, xyplot data doesn’t label individual points. The reason is these data values usually come from a file format that don’t support labels, e.g. wig. Seems you found a workaround using the $description variable, though.

Hope this helps,
Tim
Post by Vladimir Gritsenko
Hi all,
1) Y scales that will always be present to the left and the right of the track.
2) Horizontal lines running along pre-set Y values.
3) Each bar in the histogram labeled with its value.
1) The biggest issue I’ve had is the Y scales. In GFF3, if I don’t aggregate my data points, I get a lot of scale cartoons, cluttering the view when zooming out. If I do aggregate my views, the scales will only be presented at the beginning, middle and end of the chromosome - that’s too sparse. Ideally, I would like the scales to be presented in a zoom-invariant way - always to the left, right and maybe middle of the visible portion of the track.
2) The second issue is the horizontal lines. I think I can just add a feature to represent that line, but the problem with it being a feature is that users may click on it by mistake (instead of the histogram bar). Also, if it’s not marked, it loses its effect without scales.
3) I’ve found no way to label each individual bar. I did manage to have the CNV value be in the mouse-hover balloon (via the $description variable).
I think that 1+2 and 3 are mutually exclusive in terms of necessary features - that is, if the scale question is undoable but the labeling is doable, that may be good enough, and vice versa.
Any other thoughts or examples on how to represent CNV tracks will be greatly appreciated.
Thank you!
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Gmod-gbrowse mailing list
https://lists.sourceforge.net/lists/listinfo/gmod-gbrowse
Vladimir Gritsenko
2015-03-03 09:49:54 UTC
Permalink
Hi Timothy,

Thank you for your reply! Unfortunately, I think the problems still remain.

The details multiplier, as far as I understand, it a server-side setting. I don't have access to the server configuration, and even if I did, constraining the users in all possible scenarios for the sake of a single track doesn’t sound like a good idea.

Regarding the horizontal lines, they do not appear in the first place, so perhaps the server configuration turned details off? As for no_grid, that’s both undocumented, and apparently only works for wiggle_xyplot, and in case appears to be there to disable the horizontal lines, not add them. Unless I am mistaken in this assessment?

Finally, regarding labels - the workaround is only a half-measure, as I’d like users to be able to “eyeball” the CNV differences. Labelling ability would be best (or, scales + horizontal lines), which brings me back to the original question.
Post by Timothy Parnell
Hi Vladimir,
I assume you are using the xyplot glyph to draw your track data. As you discovered, you must enable aggregation of your gff3 features to put them on a continuous graph. Alternatively, convert the data to a wig file format.
The y-axis scales are placed according to the conf scale parameter value of left, right, both, or three (left, middle, right). The left and right scales will become hidden if you have set the details multiplier > 1 and you pan around. These are pretty much fixed positions drawn on the png; no floating scales are available. I personally prefer no panning so that I can always see my scales.
The horizontal lines are usually always on, at least if you set the detail grid parameter to 1 (default parameter, I think). You can turn it off by adding the track conf option no_grid = 1. I don’t think you can add more lines, if that is what you want. You can try playing with the min_score and max_score.
As for labels, xyplot data doesn’t label individual points. The reason is these data values usually come from a file format that don’t support labels, e.g. wig. Seems you found a workaround using the $description variable, though.
Hope this helps,
Tim
Post by Vladimir Gritsenko
Hi all,
1) Y scales that will always be present to the left and the right of the track.
2) Horizontal lines running along pre-set Y values.
3) Each bar in the histogram labeled with its value.
1) The biggest issue I’ve had is the Y scales. In GFF3, if I don’t aggregate my data points, I get a lot of scale cartoons, cluttering the view when zooming out. If I do aggregate my views, the scales will only be presented at the beginning, middle and end of the chromosome - that’s too sparse. Ideally, I would like the scales to be presented in a zoom-invariant way - always to the left, right and maybe middle of the visible portion of the track.
2) The second issue is the horizontal lines. I think I can just add a feature to represent that line, but the problem with it being a feature is that users may click on it by mistake (instead of the histogram bar). Also, if it’s not marked, it loses its effect without scales.
3) I’ve found no way to label each individual bar. I did manage to have the CNV value be in the mouse-hover balloon (via the $description variable).
I think that 1+2 and 3 are mutually exclusive in terms of necessary features - that is, if the scale question is undoable but the labeling is doable, that may be good enough, and vice versa.
Any other thoughts or examples on how to represent CNV tracks will be greatly appreciated.
Thank you!
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Gmod-gbrowse mailing list
https://lists.sourceforge.net/lists/listinfo/gmod-gbrowse
Timothy Parnell
2015-03-03 17:07:44 UTC
Permalink
Hi Vladimir,

You’re right. The details multiplier is a system wide setting, or at least datasource level. The horizontal grid lines are automatically drawn at the minor tick marks on the y axis unless no_grid is enabled (and you’re right, that option is only in wiggle_xyplot). The minor tick marks are automatically calculated (no user setting); it looks like on multiples of 2 from the code.

Unfortunately, I don’t see any other good solutions in terms of GBrowse options.

Since you’re working with CNV, I assume you’re working with small decimal numbers. What about a multiplier? Multiply all your values by 10 or 100? Or transform to log scale? A hack, perhaps, but maybe it will work?

Tim
Post by Vladimir Gritsenko
Hi Timothy,
Thank you for your reply! Unfortunately, I think the problems still remain.
The details multiplier, as far as I understand, it a server-side setting. I don't have access to the server configuration, and even if I did, constraining the users in all possible scenarios for the sake of a single track doesn’t sound like a good idea.
Regarding the horizontal lines, they do not appear in the first place, so perhaps the server configuration turned details off? As for no_grid, that’s both undocumented, and apparently only works for wiggle_xyplot, and in case appears to be there to disable the horizontal lines, not add them. Unless I am mistaken in this assessment?
Finally, regarding labels - the workaround is only a half-measure, as I’d like users to be able to “eyeball” the CNV differences. Labelling ability would be best (or, scales + horizontal lines), which brings me back to the original question.
Post by Timothy Parnell
Hi Vladimir,
I assume you are using the xyplot glyph to draw your track data. As you discovered, you must enable aggregation of your gff3 features to put them on a continuous graph. Alternatively, convert the data to a wig file format.
The y-axis scales are placed according to the conf scale parameter value of left, right, both, or three (left, middle, right). The left and right scales will become hidden if you have set the details multiplier > 1 and you pan around. These are pretty much fixed positions drawn on the png; no floating scales are available. I personally prefer no panning so that I can always see my scales.
The horizontal lines are usually always on, at least if you set the detail grid parameter to 1 (default parameter, I think). You can turn it off by adding the track conf option no_grid = 1. I don’t think you can add more lines, if that is what you want. You can try playing with the min_score and max_score.
As for labels, xyplot data doesn’t label individual points. The reason is these data values usually come from a file format that don’t support labels, e.g. wig. Seems you found a workaround using the $description variable, though.
Hope this helps,
Tim
Post by Vladimir Gritsenko
Hi all,
1) Y scales that will always be present to the left and the right of the track.
2) Horizontal lines running along pre-set Y values.
3) Each bar in the histogram labeled with its value.
1) The biggest issue I’ve had is the Y scales. In GFF3, if I don’t aggregate my data points, I get a lot of scale cartoons, cluttering the view when zooming out. If I do aggregate my views, the scales will only be presented at the beginning, middle and end of the chromosome - that’s too sparse. Ideally, I would like the scales to be presented in a zoom-invariant way - always to the left, right and maybe middle of the visible portion of the track.
2) The second issue is the horizontal lines. I think I can just add a feature to represent that line, but the problem with it being a feature is that users may click on it by mistake (instead of the histogram bar). Also, if it’s not marked, it loses its effect without scales.
3) I’ve found no way to label each individual bar. I did manage to have the CNV value be in the mouse-hover balloon (via the $description variable).
I think that 1+2 and 3 are mutually exclusive in terms of necessary features - that is, if the scale question is undoable but the labeling is doable, that may be good enough, and vice versa.
Any other thoughts or examples on how to represent CNV tracks will be greatly appreciated.
Thank you!
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Gmod-gbrowse mailing list
https://lists.sourceforge.net/lists/listinfo/gmod-gbrowse
Vladimir Gritsenko
2015-03-04 09:57:09 UTC
Permalink
Hi Timothy,

Transforming our data won’t help, I think, since without any sense of scale it’s hard to compare individual CNV estimates. I suppose we’ll have to make due with there is. I’ve threatened to donate code to GBrowse before, and maybe I’ll have to make good on this promise ;-)

Regardless, thank you for your time!
Post by Timothy Parnell
Hi Vladimir,
You’re right. The details multiplier is a system wide setting, or at least datasource level. The horizontal grid lines are automatically drawn at the minor tick marks on the y axis unless no_grid is enabled (and you’re right, that option is only in wiggle_xyplot). The minor tick marks are automatically calculated (no user setting); it looks like on multiples of 2 from the code.
Unfortunately, I don’t see any other good solutions in terms of GBrowse options.
Since you’re working with CNV, I assume you’re working with small decimal numbers. What about a multiplier? Multiply all your values by 10 or 100? Or transform to log scale? A hack, perhaps, but maybe it will work?
Tim
Post by Vladimir Gritsenko
Hi Timothy,
Thank you for your reply! Unfortunately, I think the problems still remain.
The details multiplier, as far as I understand, it a server-side setting. I don't have access to the server configuration, and even if I did, constraining the users in all possible scenarios for the sake of a single track doesn’t sound like a good idea.
Regarding the horizontal lines, they do not appear in the first place, so perhaps the server configuration turned details off? As for no_grid, that’s both undocumented, and apparently only works for wiggle_xyplot, and in case appears to be there to disable the horizontal lines, not add them. Unless I am mistaken in this assessment?
Finally, regarding labels - the workaround is only a half-measure, as I’d like users to be able to “eyeball” the CNV differences. Labelling ability would be best (or, scales + horizontal lines), which brings me back to the original question.
Post by Timothy Parnell
Hi Vladimir,
I assume you are using the xyplot glyph to draw your track data. As you discovered, you must enable aggregation of your gff3 features to put them on a continuous graph. Alternatively, convert the data to a wig file format.
The y-axis scales are placed according to the conf scale parameter value of left, right, both, or three (left, middle, right). The left and right scales will become hidden if you have set the details multiplier > 1 and you pan around. These are pretty much fixed positions drawn on the png; no floating scales are available. I personally prefer no panning so that I can always see my scales.
The horizontal lines are usually always on, at least if you set the detail grid parameter to 1 (default parameter, I think). You can turn it off by adding the track conf option no_grid = 1. I don’t think you can add more lines, if that is what you want. You can try playing with the min_score and max_score.
As for labels, xyplot data doesn’t label individual points. The reason is these data values usually come from a file format that don’t support labels, e.g. wig. Seems you found a workaround using the $description variable, though.
Hope this helps,
Tim
Post by Vladimir Gritsenko
Hi all,
1) Y scales that will always be present to the left and the right of the track.
2) Horizontal lines running along pre-set Y values.
3) Each bar in the histogram labeled with its value.
1) The biggest issue I’ve had is the Y scales. In GFF3, if I don’t aggregate my data points, I get a lot of scale cartoons, cluttering the view when zooming out. If I do aggregate my views, the scales will only be presented at the beginning, middle and end of the chromosome - that’s too sparse. Ideally, I would like the scales to be presented in a zoom-invariant way - always to the left, right and maybe middle of the visible portion of the track.
2) The second issue is the horizontal lines. I think I can just add a feature to represent that line, but the problem with it being a feature is that users may click on it by mistake (instead of the histogram bar). Also, if it’s not marked, it loses its effect without scales.
3) I’ve found no way to label each individual bar. I did manage to have the CNV value be in the mouse-hover balloon (via the $description variable).
I think that 1+2 and 3 are mutually exclusive in terms of necessary features - that is, if the scale question is undoable but the labeling is doable, that may be good enough, and vice versa.
Any other thoughts or examples on how to represent CNV tracks will be greatly appreciated.
Thank you!
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Gmod-gbrowse mailing list
https://lists.sourceforge.net/lists/listinfo/gmod-gbrowse
Loading...