When I docomputeMatrix using all gene regions and extent to 0.5Mb of TSS for Replication timing signal analysis, it has been running for two days. Is there any setting that can speed up the running or other alternative tools to do this?
The code is as follow:
BIN=20000
WIN=500000
RBL=6000
R=hg38GencodeV32.bed
computeMatrix reference-point \
--referencePoint TSS \
-S U2OS_RT_R2-X_z_score_normal.bedgraph.bw \
Clone110_RT_R2-X_z_score_normal.bedgraph.bw \
FUSClone110_RT_R2-X_z_score_normal.bedgraph.bw \
-R $R \
-a $WIN -b $WIN \
--skipZeros \
--missingDataAsZero \
-p 30 \
-out results/R2/matrix_RT_TSS_$R"_"$BIN"_WS_"$WIN.gz
1 answer
I had the same problem. After some testing, it seems better to split the -R files into smaller subsets, calculate matrices with computeMatrix, and then merge them with computeMatrixOperations rbind. computeMatrix reference-point (didn't try scale-region) doesn't scale well with the increasing number of reference positions. For me, the sweet spot is around 5000 per file so I went with that (split -l 5000 in.bed in.chunks) but that might be different in your case. The merge afterwards with computeMatrixOperations rbind is very quick (28 matrices in 7 second). I haven't observed any differences from splitting the -R into chunks vs running it as one file.
Simple results from the testing. Randomly sampled "number of positions" three times for each value (shuf -n 5000 in.bed > in.5000.bed) and made an average of the execution times (all of them were very similar, though).
number of
positions (-R) | time / seconds
—————————————————————————————————————————
1,000 | 4
5,000 | 20
10,000 | 58
25,000 | 275
Log in to answer this question.