liana icon indicating copy to clipboard operation
liana copied to clipboard

chord_freq plot question

Open akiss-me opened this issue 1 year ago • 5 comments

Hello,

Thanks for this useful tool! Your approach to making an aggregation tool is quite helpful.

Is it possible to show linked ligand-receptor names in chord_freq plot?

Thank you.

akiss-me avatar Jul 26 '22 04:07 akiss-me

Hi @akiss-me,

Thanks for using liana.

I'm not sure if it would be feasible due to the large number of interactions typically summarized by the chord diagram.

dbdimitrov avatar Jul 26 '22 06:07 dbdimitrov

Hi @dbdimitrov, thank you for the reply, in the example now are only 25 interactions, it's not so much to indicate the ligand-receptor name. It could be helpful to have such an option. I found the example in nichenet manual https://github.com/saeyslab/nichenetr/blob/master/vignettes/circos.md

akiss-me avatar Jul 26 '22 15:07 akiss-me

Hi @akiss-me,

Yeah fair point, this would require some modifications to my current function, in the direction of showing magnitude instead of frequency. I do have a magnitude-focused chord diagram on my to-do list, so I could give this a shot.

I know that @enblacar is also working on a visualization package that would include LIANA's output, so perhaps this is something of interest? :)

Daniel

dbdimitrov avatar Jul 26 '22 16:07 dbdimitrov

Hi @dbdimitrov, thank you for the reply, I do not want to repeat it, but Liana is the most easy-to-use and obvious CCC tool that I tried, and the idea of aggregation of published and famous tools is brilliant! I hope, that Liana becomes the standard of CCC. I will wait for the update. Thank you for the link to @enblacar work, it's looks also great, I will try to use SCpubr. Yes, this is very interesting to use SCpubr with Liana's output! Thank you for your work.

akiss-me avatar Jul 26 '22 16:07 akiss-me

Thanks @akiss-me :)

dbdimitrov avatar Jul 28 '22 13:07 dbdimitrov

Hello friends. I am really happy to see there is a package which can summarize all the best packages for CCC out there. Thank you for the awesome work you are doing :). I was wondering if there are plans for the future for the circus plot to look like something like the circus plot from CellTalkeR package. I find this representation very useful. Thank you and have a wonderful weekend.

AltayYuzeir avatar Sep 10 '22 09:09 AltayYuzeir

Hi @AltayYuzeir,

Thanks for your interest in LIANA. Thanks for the suggestion, I will certainly consider it in future updates to LIANA :)

Daniel

dbdimitrov avatar Sep 12 '22 07:09 dbdimitrov

Hi @dbdimitrov @akiss-me,

Sorry for the late reply!

Thanks for linking to and checking out my package! I am currently working on implementing sankey plots and chord diagrams on SCpubr. Once I have that set up, I also think it would be interesting implementing them with liana's output allowing frequency or magnitude to be displayed.

However, I am currently a bit short on time, so this might take a while. But happy to add it to my to-do list!

Enrique

enblacar avatar Sep 20 '22 09:09 enblacar

Hi @dbdimitrov and @akiss-me,

I was able to work on my package and believe I arrived to a suitable solution. In it, you can compute two kind of ChordDiagram plots:

  • One that shows the total amount of significant interactions between each pair of clusters.
  • One that shows the number of ligand.complex-> receptor.complex interactions (unidirectional, from ligand.complex to receptor.complex) based on the top interactions (filtered by significance and ranked by both highest magnitude and specificity). This number can be modified using top_interactions parameter.

The plots can be further subset to allow better visualizations using keep.source and keep.target parameters.

I hope this helps and is what you were looking for, @akiss-me!

Enrique

enblacar avatar Oct 02 '22 07:10 enblacar

Hi Enrique,

Looks amazing! I will add SCpubr as a suggestion in LIANA's next update :)

Regards, Daniel

dbdimitrov avatar Oct 02 '22 08:10 dbdimitrov

One suggestion would be that for the LR doplot, instead of filtering to only 'top hits': https://github.com/enblacar/SCpubr/blob/4a6033aa9171c7b4ad4ca8ec60dbd97f19f6cd38/R/do_LigandReceptorPlot.R#L170

I would instead filter to obtain 'relevant'/top-ranked interactions, then I would inner join to the dataframe with all LR predictions - in order to keep all relevant source-target combinations for those interactions. This way you keep the LRs across all clusters as a reference to the relevant ones.

I realized I had the same filtering in my tutorial, which could be misleading, and have changed it a few updates back.

Please refer to this if unclear: https://github.com/saezlab/liana/blob/f7ec81b18eb63bc7a7f941e8e2195139f6018b9c/R/liana_plot.R#L70

Daniel

dbdimitrov avatar Oct 02 '22 08:10 dbdimitrov

Hi @dbdimitrov,

Thanks a lot for considering suggesting SCpubr! It is a real honor!

I was indeed not happy about the missing non-significant interactions, so I was really happy to implement your fix. While many new columns showed up in the dotplot as a result of this, there were some missing, this being the case of specific source-target combinations that had not a single interaction in the top_n recovered.

For this, I also implemented a fix in which I just add the missing combinations with NA for both magnitude and specificity, this resulting finally in a dotplot that has all possible combinations, which I think looks more comprehensive to my opinion.

I have, nevertheless, added a parameter to toggle on/off this behavior.

Looking forward to further liana updates! Enrique

enblacar avatar Oct 04 '22 08:10 enblacar

This issue is now covered by SCpubr and I refer to it in the tutorial.

dbdimitrov avatar Oct 13 '22 19:10 dbdimitrov