-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Understanding your tutorial using the Norman (2019) data ... #32
Comments
Thank you for your interest in CPA. As for your second question, the model.predict() method, takes the perturbations and dosages from the
So if you'd like to predict a specific perturbation for a given cell, you can change the perturbation or dosage in the mentioned columns of your Feel free to reply if there are further issues. |
Ah, okay, thanks for that information. But the cond_harm column takes a single value and not a list, which means that I can only apply a single perturbation to the basal latent representation. Is that correct ? And the content of dosage_key are strings like '1.0+1.0' (and not float values). Then, how can I specify a new value (e.g. 1.5) in a way that CPA understands it? Thanks |
You can apply combinations of perturbations. CPA uses strings with the following format for specifying perturbations and dosage values in the adata:
It is actually done in the Lines 294 to 317 in c63d5cf
As you can see in the code,
Here 1 perturbation:
2 perturbations:I hope this helps and again, free to reply if there are further issues. |
Very good, that's what I was looking for ! Actually, I only now looked at your "Batch Correction in Expression Space" tutorial with the description of custom_predict( ) and how to use it. That is obviously the function I need ! Many thanks |
I am sorry, but I have to reopen this :-( Looking at custom_predict I see that it allows me to select individual categorical covariates that I want to add, but it only allows me to add all or none perturbations. So that means if I want to add individual perturbations, I have to follow your advice from above !? I think, I'm also confused what the difference is between perturbations and categorical covariates. I thought perturbations would be continuous variables, but in many of the tutorials the perturbation comes in form of discrete values (IFN stimulation or not, gene knockout or not, etc). Does that mean these tutorials could have been written differently by declaring those 'perturbations' as categorical covariates ?? Thanks |
I got CPA 0.8.2 and followed the tutorial "Predicting single-cell response to unseen combinatorial CRISPR perturbations". The goal is to predict gene expression response to perturbation responses of X+Y when you have seen single cells from X and Y.
I can reproduce all the results from the tutorial, but I have difficulties to understand some points :-(
adata.obs['split'] is filled randomly with 'train', 'valid' and 'test' values and then used for training the CPA model. But if the goal is to predict the effect of perturbations X+Y when I have only seen perturbations X and Y separately, then I should not provide X+Y in the training data !? So, is the construction of adata.obs['split'] correct ??
I thought the whole point of CPA is to disentangle the effects of different perturbations in such a way that I can later apply such perturbations in different combinations. However, the model.predict() method that is used in the tutorials does not take any parameters to indicate which perturbations should be predicted. How does CPA know which perturbations to apply? And how can I specify that?
It seems I'm missing here something important and I'm grateful for any help!
The text was updated successfully, but these errors were encountered: