Open ZheFrench opened 2 years ago
J'ai aussi tenté de charger le package BulkSignalR avec .packages mais il aime pas non plus. (à voir en passant par l'installation brut , chargeant la library et l'utilisation de .packages)
Ok donc ça marche mais pas quand on utilise le devtools::load_all)( parcke qu'il trouve pas .packages="BulkSignalR"
if (foreach::getDoParWorkers() > 1)
foreach::foreach(k = seq_len(n.rand), .combine = 'c',
.export = c(".getCorrelatedLR",".buildPermutatedCountMatrix",".shufflePermutationIndices"),
.verbose=TRUE,.packages="BulkSignalR"
) %dopar% {
ncounts(r.ds) <- .buildPermutatedCountMatrix(ncounts, pindices)
list(.getCorrelatedLR(r.ds, min.cor = min.cor))
}
devtools::load_all(glue("{switch}/code/refactoringPackagesR/JC/BulkSignalR/"),TRUE) Le worker ne réussit pas à trouver le package .
Learning ligand-receptor correlation null distribution... discovered package(s): automatically exporting the following variables from the local environment: min.cor, ncounts, pindices, r.ds explicitly exporting variables(s): .getCorrelatedLR, .buildPermutatedCountMatrix, .shufflePermutationIndices explicitly exporting package(s): BulkSignalR Erreur dans e$fun(obj, substitute(ex), parent.frame(), e$data) : worker initialization failed: aucun package nommé ‘BulkSignalR’ n'est trouvé Appels : learnParameters ... .local -> .getEmpiricalNullCorrLR -> %dopar% ->
J'ai testé avec les functions exports. C'est pas mieux. Jgarde le loading du package via .packages="BulkSignalR" dans le call du foreach::foreach. Je laisse tomber devtools::load_all / je fais un devtools::install et je charge la library. On verra plus tard si ça génére d'autre bug quand on test pr Bioconductor.
Remove point in front of each functions, add @export . Add in Namespace... Didn't work as expected.
export(buildPermutatedCountMatrix)
export(shufflePermutationIndices)
export(getCorrelatedLR)
export(checkReceptorSignaling)
J'ai un bug.
Dans
.getEmpiricalNullCorrLR
Ca marche en mode registerDoSEQ... mais en parallel , ça plante.
Il arrive pas à charger les functions non déclarés dans le namespace qui sont appelés depuis le foreach. Tu m'avais pas parlé d'un truc du style ?
J'ai tenté d'exporte les functions avec arg .export du foreach. Ca couine plus pour buildPermutatedCountMatrix mais ça va gueuler pour .shufflePermutationIndices qui est ensuite appelé dans buildPermutated....
J'ai aussi tenté de charger le package BulkSignalR avec .packages mais il aime pas non plus. (à voir en passant par l'installation brut , chargeant la library et l'utilisation de .packages)
Je teste avec devtools.(vu que ça me sert pr bioconductor après)
devtools::load_all(glue("pathVersPackageDIr/BulkSignalR/"),TRUE)
Toi t réinstalles directement le package à chaque fois et tu tests,Je suis pas seul. https://stackoverflow.com/questions/41117127/r-parallel-programming-error-in-task-1-failed-could-not-find-function https://stackoverflow.com/questions/42561088/nested-do-call-within-a-foreach-dopar-environment-cant-find-function-passed-w
Je mets ça la en attendant de trouver.