Convert Log2 (FPKM+0.001) to FPKM in an expression matrix obtained from TCGA
0
0
Entering edit mode
3.0 years ago

Hi,

I have downloaded TCGA data generated from TOIL RNA-seq pipeline. Basically, it is log2(x+0.001) transformed transcript-level expression values (FPKM) matrix. Link to dataset

I intend to analyze isoform switching using IsoformSwitchAnalyzeR which won't work with log2 transformed data or negative values.

So I need to revert the Log2 (FPKM+0.001) to FPKM to remove the negative values but I'm not sure how?

Will taking antilog using 2^(FPKM_log2T_value) work? If not, then is there any other way?

Your help will be much appreciated.

RNA-Seq TCGA RSEM • 2.2k views
ADD COMMENT
1
Entering edit mode

Hi,

I never used IsoformSwitchAnalyzeR so I'm not familiar with the kind of input it needs and if it'll work with FPKM.

To revert Log2 (FPKM+0.001) to FPKM you need to do (as you pointed out): 2^(FPKM_log2T_value)

The only thing that you forgot was to subtract the pseudocount 0.001. Thus to revert to FKPM just subtract the value of 0.001 to 2^(FPKM_log2T_value).

You can easily check this in R (or any other software or just a simple calculator):

fpkm <- 2344
fpkm_log2 <- log2(fpkm+0.001)
fpkm_log2
#[1] 11.19476

2^fpkm_log2 # if you revert the log2, you see that you still need to subtract the pseudocount
#[1] 2344.001

( 2^fpkm_log2 ) - 0.001 # just subtract the pseudocount after reverting log2
#[1] 2344 # it matches the original FPKM value that we started with

You may have problems to revert the log2(FPKM+0.001) due to rounded values, but you'll have a close value to the original.

Although, as I mentioned, I don't know what kind of input IsoformSwitchAnalyzeR requires, if for instance it accepts fraction numbers or not, so you need to read carefully their documentation.

I hope that helps,

António

ADD REPLY
0
Entering edit mode

Thanks so much for the reply.

hey, I just noticed that subtracting the pseudocount leads a few values (e.g. when fpkm_log2 is -9.9658) to be negative.

So I guess I'll have to check if the value after taking antilog is less than 0.001 then I won't be subtracting the pseudocount. On the contrary, if value after antilog turns out to be >0.001, subtraction will be performed. Does that seem alright?

ADD REPLY

Login before adding your answer.

Traffic: 2997 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6