Hello all, I�m creating a ChipDb package for a protein-based assay. To generate a template package structure and the SQLite database file, I used `AnnotationForge::makeDBPackage()` with a "HUMANCHIP_DB" schema. I�m now trying to add new tables to the database by modifying the `zzz.R` file, following the instructions in the AnnotationForge vignette and the RSQLite vignette. However, I�m unable to write to the SQLite db file, even after modifying the permissions.
See below for a reprex reproducing the �readonly database� error I�m getting: ``` reprex::reprex({ suppressPackageStartupMessages(library(AnnotationForge)) suppressPackageStartupMessages(library(DBI)) # Preparing for package creation df <- data.frame(probeID = c("probe1", "probe2", "probe3"), entrezID = c("9570", "7421", "56")) write.table(df, "example_ids.txt", sep = "\t", col.names = FALSE, row.names = FALSE, quote = FALSE) # Generating package suppressMessages(AnnotationForge::makeDBPackage("HUMANCHIP_DB", affy = FALSE, prefix = "Example", fileName = "example_ids.txt", baseMapType = "eg", # Using Entrez Gene IDs version = "0.1.0", manufacturer = "Example", chipName = "ExampleReprex", author = "Example Author")) # Connecting to database (based on code from package zzz.R file) dbfile <- "Example.db/inst/extdata/Example.sqlite" dbconn <- AnnotationDbi::dbFileConnect(dbfile) # Testing connection DBI::dbGetQuery(dbconn, 'SELECT * FROM probes') file.access(dbfile, mode = 2) # -1 = failure # Modifying permissions of SQLite database file and parent dir Sys.chmod("Example.db/inst/extdata/Example.sqlite", "755") Sys.chmod("Example.db/inst/extdata/", "755") # 0 = success (file is writable) file.access(dbfile, mode = 2) DBI::dbIsReadOnly(dbconn) # Checking with another method new_table <- data.frame(probeID = c("probe1", "probe2", "probe3"), diseaseRisk = c("high", "low", "med")) # Attempting to write new table to DB, using code example from RSQLite vignette # https://cran.r-project.org/web/packages/RSQLite/vignettes/RSQLite.html DBI::dbWriteTable(dbconn, "disease_risk", new_table) }) ``` According to the output of `file.access()` and `dbIsReadOnly()`, I should be able to write to the database. I�ve done some Googling to see if I�m missing a step, and it looks like others frequently run into this problem when either A) the parent directory (in this instance, `extdata`) doesn�t have write permissions, or B) the user attempting to perform the writing action is not the user that was granted writing permissions. I�ve attempted to address both, but neither has solved the problem. I�m still unable to write to the database. Is there a step that I�m missing or some other commonly overlooked factor that could be causing the database to be read-only? What specifically needs to be done to make the �.sqlite� file (in `inst/extdata`) writable? Thank you! Amanda The information contained in this message is intended fo...{{dropped:8}}
_______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel