saeyslab / nichenetr

NicheNet: predict active ligand-target links between interacting cells
452 stars 113 forks source link

how to predict target gene expression #199

Closed adesalegn closed 11 months ago

adesalegn commented 1 year ago

Dear saeyslab team,

I have a list of ligands from the sender tissue and a list of Receptors in the target tissue. This network is independent of the Nichenet pipeline. Then now, my interest is finding Target gene expression for those ligands using the nichenet pipeline as indicated below. I want to use the gene list in the ligand_target_matrix as my gene set of interest.

So here, I gave my list of ligands(topSender) to Nichnet and took the top target gene based on the weight. I would be grateful if you could drop me some advice here, and I want to know if this could be somehow interpretable.

active_ligand_target_links = topSender %>%  
  lapply(nichenetr::get_weighted_ligand_target_links,
         geneset = colnames(ligand_target_matrix), # all target genes in the ligand_target_matrix network, 
         ligand_target_matrix = ligand_target_matrix, n = 250) %>% bind_rows() %>%
  dplyr::arrange(desc(weight)) %>%
  dplyr::filter(weight > (quantile(weight,probs = 90/100, digits = 4)))

Best, Amare

csangara commented 1 year ago

Hi Amare,

If you want to use all targets in the ligand_target_matrix, you would need to use rownames and not colnames, as the ligands are in the columns and targets are in the rows.

However, I would advise against using this approach, as I don't think the target genes you obtain will be biologically meaningful. What you get here will simply be a list of top 250 target genes for which your ligands have the highest regulatory potential for, based on the integrated database. This is therefore not specific to anything that is happening in your dataset - you wouldn't know if these target genes are being expressed/upregulated/downregulated in your data or if it's being measured at all.

adesalegn commented 1 year ago

@csangara ,

Thank you so much for you reply! Yes, my objective here is as I explained above to predict target genes for my ligands based on the integrated database and later check if those target genes are expressed in my dataset and compare them if the expression goes in similar fashion with the ligands and receptors. Does this make sense?

csangara commented 1 year ago

I think it could indeed be interesting to explore coexpression of ligands-receptors with targets However, I still think it makes more sense to define your target genes up front.