multicore and AnnotaionDBI (bioconductor) problem
The problem appears to be that the child processes that are forked by the mclapply function are not able to use the database connection that they inherited from their parent. You need to figure out some way for the child processes to create their own database connection after they are created. I'm not sure of the best strategy for doing that in your case. You could do some kind of test in the getSymbol function, or use the lower level functions in the multicore package instead of mclapply, but there might be a better option that I'm not aware of. - Steve
On Fri, Aug 21, 2009 at 4:24 AM, Morten Hansen<mhansen at sund.ku.dk> wrote:
I am trying to use mclapply from package multicore on a Bioconductor function, but I get an error with the function mget from library AnnotationDbi. When I run the following code: ? ? ? ?# You need to install Biobase from http://www.bioconductor.org ? ? ? ?require( Biobase ) ? ? ? ?require( hgu95av2.db ) ? ? ? ?getSymbol <- function ( x ) { ? ? ? ? ? ? ? ?return( AnnotationDbi::mget( x , hgu95av2SYMBOL ) ) ? ? ? ?} ? ? ? ?x <- list( "36090_at" , "38785_at" ) ? ? ? ?mclapply( x , getSymbol ) I get this error: [[1]] [1] "Error in sqliteExecStatement(con, statement, bind.data) : \n ?RS-DBI driver: (invalid dbManager handle)\n" [[2]] [1] "Error in sqliteExecStatement(con, statement, bind.data) : \n ?RS-DBI driver: (invalid dbManager handle)\n" It work fine with lapply instead of mclapply: [[1]] [[1]]$`36090_at` [1] "TBL2" [[2]] [[2]]$`38785_at` [1] "MUC1" This could of course be a problem in the AnnotationDbi::mget function, but it looks like multicore is having some problem with RS-DBI driver. Any suggestions? Regards - Morten Hansen MD, Ph.D. student ICMM Panum Institute Blegdamsvej 3B DK-2200 Copenhagen N
_______________________________________________ R-sig-hpc mailing list R-sig-hpc at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-hpc
Steve Weston REvolution Computing One Century Tower | 265 Church Street, Suite 1006 New Haven, CT 06510 P: 203-777-7442 x266 | www.revolution-computing.com