Search
Question: Adaptation of DESeq/edgeR model for CRISPR drop-out screen
0
11 months ago by
emanuelvgoncalves0 wrote:

Hi,

Currently I use DESeq2 to analyse large scale CRIPSR loss-of-function screens (gene KO), where cell viability is measured with targeted sequencing, raw counts, for control and KO conditions.

All great so far although CRISPR has a couple of other artefacts that need to be taken in consideration. This is possible at the moment by applying a correction step after the fold-changes but I feel like a more integrated solution is possible. I think that DESeq/edgeR can be adapted to integrate a gene-wise correction method.

I know this is currently being addressed my multiple people but there isn't really an integrated approach yet. I would be very much interested to hear other's experience/opinions/suggestions about this.

Thanks,

modified 11 months ago by Aaron Lun21k • written 11 months ago by emanuelvgoncalves0
0
11 months ago by
Aaron Lun21k
Cambridge, United Kingdom
Aaron Lun21k wrote:

Have you read https://dx.doi.org/10.12688/f1000research.3928.2? This uses edgeR to analyze data from high-throughput screens like the ones that you are describing.

Hi,

Yes I'm familiar with that pipeline and I'm doing something similar to that but with DESeq2.

The problem is that there are other potential artefacts of CRISPR data, e.g. copy-number, that need to be taken into account. A couple of methods account for this, one using a linear model with genes copy-number as covariate ( http://rdcu.be/xUQv ).

This seems to be working well, although it feels a more integrated analysis could be possible, hence my post.

Thanks,

Any kind of correction per sample and per gene (or more generally, per row) can go into normalization factors for DESeq2. You can use estimateSizeFactors() with normMatrix having positive, multiplicative normalization factors, and then DESeq2 will correct for sequencing depth on top of those factors. Try it with some small simulated data to see how it works.

The equivalent in edgeR would be to supply GLM offsets via the scaleOffset function, if anyone's interested.