I did all of the installations from scratch in a virtual conda
environment. Then I tried to run R
script from within javascript
in the following way:
let shCMD = 'Rscript --vanilla R/full_analysis.R ';
shCMD += '--diff_1 ' + diff_str_1 + '--diff_2 ' + diff_str_2;
shCMD += '--markers ' + filterStr + '--markers-highlighted ' + colorStr;
shCMD += '--datasets ' + datasetStr;
console.log('constructed command for full analysis: ');
console.log(shCMD);
shell.exec('source activate rmain', function(env_code, env_stdout,
env_stderr) {
console.log('activated rmain environment')
if (env_code === 0) {
shell.exec(shCMD, function(code, stdout, stderr) {
As can be seen I am activating the environment by source activate rmain
and I am pretty sure that the next shell command that invokes R
script runs in that environment because R
script needs argparse
package and it is installed only in the rmain
virtual environment: in rmain
argparse
package is successfully imported, but outside of it it gives an error for the argparse
absence.
So, now the following line in the R
script:
sce <- SingleCellExperiment(list(counts=as.matrix(data[,-1])))
gives me the error:
Error in `rownames<-`(`*tmp*`, value = c("0610007P14Rik", "0610009B22Rik", :
invalid rownames length
Calls: SingleCellExperiment ... elementMetadata -> .local -> rownames<- -> rownames<-
Execution halted
However, if I launch Rstudio
from within the rmain
environment, the line runs successfully... So, I am puzzled now on what is going on.