saezlab / liana-py

LIANA+: an all-in-one framework for cell-cell communication
http://liana-py.readthedocs.io/
GNU General Public License v3.0
150 stars 19 forks source link

Questions about LIANA+ requirement for cell number #126

Open jun-miao113 opened 1 month ago

jun-miao113 commented 1 month ago

Hi! I'm sorry to bother you again. I used your new tutorial to estimate the metabolite abundances and got the metabolite-protein interactions results using LIANA+. That helps me a lot. But I have some confusions. 1.When there are few cells in the data, it can still calculate the metabolite-protein interactions between different cells. So, does LIANA+ have a standard for the number of cells? If the results can be calculated with very few cells in the data, is the result still reliable? 2.When I used cellchat to calculate the interaction relationship before, I got the results of interaction strength and interaction number. But I can only get the interaction strength through the rank_aggregate function and not the number of interactions, is there a problem with my understanding? I think LIANA+ is a great tool to use, and it would be great if it could add more visualizations (e.g., network diagrams). I would appreciate it if you could answer my questions. Best wishes for you!

dbdimitrov commented 1 month ago

Hi @jun-miao113,

  1. By default, LIANA will filter out any cell type with less than 10 cells. Whether this is reliable would depend on how much you believe that a cluster of 10 cells is actually meaningful.

  2. This is correct. Though if you are interested in getting numbers, you could treat the magnitude or specificity ranks as probability distributions. By default, you also get P-values as in CellPhoneDB. So, you could filter based on those and count.

  3. Visualizations: I realize we should provide more, there is also a couple of issues where users have provided ways to extend beyond the basic visualizations in LIANA+. Also, in the future there will be a person dedicated to the further developments of LIANA+, with some focus on visualisations. So, you could expect that in future version there will be more :)

jun-miao113 commented 1 month ago

Thanks for your answer! 1.What you mean is that LIANA filters cell types with less than 10, but when I did the interactions analysis, cell types with less than 10 were also able to calculate the interactions with the other cells. When I think that a cell type less than 10 is not enough to be reliable, can I assume that it yields the interactions with other cell typesless was a less plausible result ? 2.I noticed that the P-value for the CellPhoneDB method is counted in the specificity score column based on the results shown by the method.show_method() function, so can I assume that the specificity_rank obtained by rank_aggregate also represents the P-value?

Have a nice day!

dbdimitrov commented 1 month ago

Hi @jun-miao113

  1. You can adjust it, there is a parameter called min_cells. Also, you could filter your object manually - it's essentially the same. Not sure if cell number (or interaction number for that matter) necessarily corresponds to signalling intensity. You should know your data better than
  2. You can treat it as a P-value, yes. It essentially aggregates all specificity scores in liana.

Hope this helps :)