Hello,
There is an initiative to make Bioconductor packages runnable on Linux ARM64 - https://stat.ethz.ch/pipermail/bioc-devel/2023-January/019398.html
We face an error while running CMD check
for DESeq2:
> ### ** Examples
>
>
> # some artificial data
> cts <- matrix(c(80,50,1,100,
+ 1,1,60,100,
+ 0,50,60,100), ncol=4, byrow=TRUE)
> # make a DESeqDataSet
> dds <- DESeqDataSetFromMatrix(cts,
+ data.frame(row.names=seq_len(ncol(cts))), ~1)
converting counts to integer mode
> colnames(dds) <- paste0("sample",1:4)
>
> # note! here you would instead use
> # estimateSizeFactors() to do actual normalization
> sizeFactors(dds) <- rep(1, ncol(dds))
>
> norm.cts <- counts(dds, normalized=TRUE)
>
> # 'pure' should also have normalized counts...
> pure <- matrix(c(10,0,0,
+ 0,0,10,
+ 0,10,0), ncol=3, byrow=TRUE)
> colnames(pure) <- letters[1:3]
>
> # for real data, you need to find alpha after fitting estimateDispersions()
> mix <- unmix(norm.cts, pure, alpha=0.01)
Warning in sqrt(alpha * q) : NaNs produced
Error in optim(par = rep(1, ncol(pure)), fn = sumLossVST, gr = NULL, i, :
L-BFGS-B needs finite values of 'fn'
Calls: unmix -> lapply -> lapply -> FUN -> optim
Execution halted
Full logs: https://yikun.github.io/bioconductor-0301/report/DESeq2/kunpeng1-checksrc.html
The problem seems to be around here - https://github.com/mikelove/DESeq2/blob/master/R/helper.R#L93-L97 But I don't understand it well enough yet to propose an improvement.
Any ideas ?
Thanks! Martin
Thank you for the quick reply and for offering your help, Michael Love !
Here are few options how that come to my mind:
1) use a free cloud VM
E.g. Oracle Cloud offer such. I have an article explaining how to use such as a Github Actions self-hosted runner at https://martin-grigorov.medium.com/github-actions-arm64-runner-on-oracle-cloud-a77cdf7a325a
The downside is that you need to provide credit card details during the registration. They don't charge it as long as you don't use any of their paid services. The best is to use a disposable card
2) use Docker with QEMU emulation
An article: https://martin-grigorov.medium.com/building-linux-packages-for-different-cpu-architectures-with-docker-and-qemu-d29e4ebc9fa5 It boils down to:
The downside is that it is slow because it is an emulation!
3) I can give you a temporary SSH access to my VM. If you prefer this option then please send me a SSH public key and your static IP address to martin.grigorov at gmail com
4) tell me what changes to test and I will do it!
I am in Slack #arm-linux and some more channels
Fixed with Martin's help
https://github.com/mikelove/DESeq2/commit/48b80aaac5efd4b9e0d054fc1e4a6e1fa78e782a