Edinburgh-Genome-Foundry / DnaFeaturesViewer

:eye: Python library to plot DNA sequence features (e.g. from Genbank files)
https://edinburgh-genome-foundry.github.io/DnaFeaturesViewer/
MIT License
584 stars 90 forks source link

Linking exon annotations with intron lines, and other things. #68

Open mrmrwinter opened 2 years ago

mrmrwinter commented 2 years ago

Hi, loving the package. Really crisp plots.

There are a few questions i have.

Im hoping you know of a way to draw exons with the intron line linking them using your package?

Is there a way to make feature types locked to a given track? Ie, can i lock all transcript features to track 1, exon features to track 2, misc_features to track 3, etc?

I would also like to display a multiple sequence alignment as a ribbon in the plot. For example, i will have the alignment in a ribbon below the features view, with bases and gaps all coloured separately to show indels and regions of conservation.

I have also developed some code and a method to generate ribbons of read depth to add to the plots, if this is something yu would like added as a pull request?

Many thanks

Zulko commented 2 years ago

Hi @mrmrwinter ,

Is there a way to make feature types locked to a given track? Ie, can i lock all transcript features to track 1, exon features to track 2, misc_features to track 3, etc?

That's not possible directly inside a same plot I believe. The way to do that would be to have vertically stacked subplots, the first one displaying only introns, the second exons, etc.

I have also developed some code and a method to generate ribbons of read depth to add to the plots, if this is something yu would like added as a pull request?

That's ultimately a decision for @veghp but my opinion is that you could make it a separate library project, which would give you more control to iterate over it in the future. (unless you need some changes/additions in the core of Dna Features Viewer to make it happen, in that case you can submit these specific changes as an MR).

Can you post schemas for the different kinds of plots you described, just to make sure we all share the same visual idea?

Thanks!

mrmrwinter commented 2 years ago

Hey Zulko,

Thanks for the fast response! Yeah sure, separate subtracks for features is fine. For the linking exons with intron line, i was hoping something like this: image

For the MSA view i was hiping to create something like this: image

Basically just some tracks to show dis/concordance between bases, plus gaps. Ive been using n R package called ggmsa, but cant find a python equivalent so far.

The idea behind this is that i can see where indels are placed with regard to features on the tracks and also read depth/GC differences. And sure, cool. Ill get it written up as a library and then let you know.

Many thanks,

Mike

PS. Here is my plot with the read depth track in red at the bottom PR_region .

Zulko commented 2 years ago

Thanks a lot for the comments and screenshots! My two cents:

marco-mariotti commented 2 years ago

Hi @Zulko @veghp, thanks for developing this package. I write just to strongly encourage you to develop this feature (display grouped connected exon structures, as in the image shared by mrmrwinter on Mar 14th). There's few options to do this in python and none is ideal for various reasons (reason n.1: not maintained). It's perhaps the only feature missing from DnaFeaturesViewer, but it's a major one. If it is implemented, IMHO, this package could become widely used to display complex mammalian genomic annotation; as it stands, it basically can't, and it is limited to bacteria and plasmids. It's a shame because it's very elegant representation. Just the opinion of an interested user! :)

veghp commented 2 years ago

Thank you very much for the feedback, it definitely helps us prioritising the tasks. As Zulko mentioned, we are happy to incorporate small changes to accommodate another package implementing this feature, but at the moment we are really tied up in other EGF projects to start working on this..