DOI: 10.5281/zenodo.15785218
title: RNAdecayCafe: a uniformly reprocessed atlas of human RNA half-lives across 12 cell lines

description: RNA half-life estimates from uniformly reprocessed/reanalyzed, published, high quality nucleotide recoding RNA-seq (NR-seq; namely SLAM-seq and TimeLapse-seq) datasets. 12 human cell lines are represented. Data can be browsed at this website.

Analysis notes:



Data was processed using fastq2EZbakR. All config files used are provided in fastq2EZbakR_config.tar.gz (as well as some for data not included in the final RNAdecayCafe due to QC issues). Some general notes:



Multi-mapping reads were filtered out completely. It is difficult to do anything accurate/intelligent with such reads (see discussion here for instance), so better to just get rid of these completely. Does mean that some classes of features rich in repetitive sequences will be underrepresented in this database. 

Adapters were trimmed. For 3'-end data, 12 additional nucleotides were trimmed from the 5' end of the reads, as suggested by the developers of the popular Quant-seq kit, and as is done by default in SLAMDUNK. Quality score end trimming and polyX trimming is also done for all samples.



Data was analyzed using EZbakR. Some general notes:



If -s4U data was included, this data was used to infer a global pold to stabilize pnew estimation (see Methods here for brief discussion). Dropout was also corrected using a previously devleoped strategy now implemented in EZbakR's CorrectDropout() function.

Half-lives are estimated on a gene-level. That is, all reads that map to exonic regions of a gene (i.e., regions that are exonic in at least one annotated isoform) are combined and used to estimate a half-life for that gene. Thus, you should think of these half-life estimates as a weighted average over all isoforms expressed from that gene, weighted by the relative abundances of those isoforms. Future releases may include isoform-resolution estimates as well, given that EZbakR can now perform this type of analysis.



A unique feature of RNAdecayCafe is that it includes what I am referring to as "dropout normalized" half-life and kdeg estimates. As not all datasets analyzed include -s4U data, dropout correction is not possible for all samples. This can lead to global biases in the average time scale of half-lives that is unlikely to represent real biology (that is, two different K562 datasets may have median half-life estimates of 4 hours and 15 hours).  To address this problem and faciltiate comparison across datasets, I developed a strategy (implemented in EZbakR's NormalizeForDropout() function) that uses a model of dropout to normalize estimates with respect to a low dropout sample.



These "donorm" estimates will often be a more accurate reflection of rate constants and half-lives in a given cell line.

This strategy can normalize out real global differences in turnover kinetics though, so interpret these values with care. 




Relevant data provided in this repository are as follows:



hg38_Strict.gtf: annotation used for analysis. Filtered similarly to how is described here.

AvgKdegs_genes_v1.csv: Table of cell-line average half-lives and degradation rate constants (kdegs). Average log(kdeg)'s are calculated for all samples from a given cell line, weighting by the uncertainty in the log(kdeg) estimate. Columns in this table are as follows:



feature_ID: Gene ID (symbol) from hg38_Strict.gtf

cell_line: Human cell line for which averages are calculated

avg_log_kdeg: Weighted log(kdeg) average

avg_donorm_log_kdeg: Weighted dropout normalized log(kdeg) average.

avg_log_RPKM_total: Average log(RPKM) value from total RNA data. A value of exactly 0 means that there was no total RNA data for this cell line (i.e., all data was 3'-end data).

avg_log_RPKM_3pend: Average log(RPKM) value from 3'-end data. Technically no length normalization is performed as this is 3'-end data, so it is really an log(RPM). A value of exactly 0 means that there was no 3'-end data for this cell line (i.e., all data was for total RNA).

avg_kdeg: e^avg_log_kdeg

avg_donorm_kdeg: e^avg_donorm_log_kdeg

avg_halflife: log(2)/avg_kdeg; can be thought of as average lifetime of the RNA.

avg_donorm_halflife: log(2)/avg_donorm_kdeg

avg_RPKM_total: e^avg_log_RPKM_total

avg_RPKM_3pend: e^avg_log_RPKM_3pend.



FeatureDetails_gene_v1.csv: Table of details about each gene measured; information comes from hg38_Strict.gtf and the corresponding hg38 genome FASTA file.



seqnames: chromosome name

strand: strand on which gene is transcribed

start: genomic start position for gene (most 5'-end coordinate; will be location of TES for - strand genes).

end: end position for gene

type: all "gene" for now, as all analyses are currently gene-level average half-life calculations

exon_length: length of union of exons for a given gene. A read is considered exonic, and thus used for half-life estimation, if it exclusively overlaps with the region defined by the union of all annotated exons for that gene.

exon_GC_fraction: fraction of nucleotides in union of exons that are Gs or Cs.

end_GC_fraction: fraction of nucleotides in last 1000 nts of 3'end of transcript that are Gs or Cs. Useful for assessing GC biases in 3'-end data.

feature_ID: Gene ID (symbol) from hg38_Strict.gtf



SampleDetails_v1.csv: Table of details about all samples represented in RNAdecayCafe



sample: SRA accession ID for sample

dataset: Citation-esque summary of the dataset of origin

pnew: EZbakR estimated T-to-C mutation rate in reads from new (labeled) RNA. You can see these blogs (here and here) for some intuition as to how to interpret these. More technical explanations of the models involved can be found here and here.

pold: EZbakR estimated T-to-C mutation rate in reads from old (unlabeled) RNA. Same citations for pnew apply. Best samples are those with the largest gap between the pold and pnew; can think of this like a signal-to-noise ratio

label_time: How long (in hours) were cells labeled with s4U for?

cell_line: Cell line used for that sample.

threePseq: TRUE or FALSE; TRUE if 3'-end sequencing was used.

total_reads: Total number of aligned, exonic reads in the sample.

median_halflife: Median, unnormalized half-life estimate. Differences between cell lines could represent real biology, but could also be evidence of dropout (see here and here for discussion of this phenomenon).



RateConstants_gene_v1.csv



sample: SRA accession ID for sample.

kdeg: e ^ log_kdeg

halflife: log(2) /  kdeg. Can be thought of as the average lifetime of the RNA.

donorm_kdeg: e ^ donorm_log_kdeg

donorm_halflife: log(2) / donorm_kdeg

log_kdeg: log degradation rate constant estimated by EZbakR

donorm_log_kdeg: dropout normalized log degradation rate constant

reads: number of reads that contributed to estimates

donorm_reads: dropout normalization corrected read count

feature_ID: Gene ID (symbol) from hg38_Strict.gtf 



RNAdecayCafe_database_v1.rds: compressed RDS file that stores a list containing the above 4 tables in the following entries:



kdegs = RateConstants_gene_v1.csv

sample_metadata = SampleDetails_v1.csv

feature_metadata = FeatureDetails_v1.csv

average_kdegs = AvgKdegs_gene_v1.csv



RNAdecayCafe_v1_onetable.csv: Inner joining of all but the averages table in this database. Thus, is one mega table containing all sample-specific estimates, sample metadata, and feature information.


Datasets included:



Finkel et al. 2021  (Calu3 cells; PMID: 35313595)

Harada et al. 2022 (MV411 cells; PMID: 35301220)

Ietswaart et al. 2024 (K562 cells; PMID: 38964322); whole-cell data used

Luo et al. 2020 (HEK293T cells; PMID: 33357462)

Mabin et al. 2025 (HEK293T cells; PMID: 40161772); only dataset for which data is not yet publicly available

Mowery et al. 2018 (Nalm6 cells; PMID: 30428356)

Muhar et al. 2018 (K562, MV411, and MOLM13 cell data; PMID: 29622725)

Narain et al. 2021 (U2OS cells; PMID: 34233157)

Schofield et al. 2018 (K562 cells; PMID: 29355846)

Sheppard et al. 2021 (CH22 cells; PMID: 33521702)

Shimoda et al. 2021 (BC1 cells; PMID: 38695538)

Swartzel et al. 2022 (MOLM14 cells; PMID: 35749470)

Thiecke et al. 2020 (HeLa cells; PMID: 32698000)

Williams et al. 2025 (MDA-MB-452 cells; PMID: 39753105); whole-cell data used

Zhou et al. 2024 (HEK293T cells; PMID: 39577428)

Zuckerman et al. 2020 (MCF7 cells; PMID: 32504555); cytoplasmic data used (no whole-cell data included)