# NOT RUN {
## Insert, update and delete
## Note that users must have the necessary permissions in the database
## to be able to modify data through the use of these functions
# library(Rlabkey)
newrow <- data.frame(
DisplayFld="Inserted from R"
, TextFld="how its done"
, IntFld= 98
, DoubleFld = 12.345
, DateTimeFld = "03/01/2010"
, BooleanFld= FALSE
, LongTextFld = "Four score and seven years ago"
# , AttachmentFld = NA #attachment fields not supported
, RequiredText = "Veni, vidi, vici"
, RequiredInt = 0
, Category = "LOOKUP2"
, stringsAsFactors=FALSE)
insertedRow <- labkey.insertRows("http://localhost:8080/labkey",
folderPath="/apisamples", schemaName="lists", queryName="AllTypes",
toInsert=newrow)
newRowId <- insertedRow$rows[[1]]$RowId
selectedRow<-labkey.selectRows("http://localhost:8080/labkey",
folderPath="/apisamples", schemaName="lists", queryName="AllTypes",
colFilter=makeFilter(c("RowId", "EQUALS", newRowId)))
updaterow=data.frame(
RowId=newRowId
, DisplayFld="Updated from R"
, TextFld="how to update"
, IntFld= 777
, stringsAsFactors=FALSE)
updatedRow <- labkey.updateRows("http://localhost:8080/labkey",
folderPath="/apisamples", schemaName="lists", queryName="AllTypes",
toUpdate=updaterow)
selectedRow<-labkey.selectRows("http://localhost:8080/labkey",
folderPath="/apisamples", schemaName="lists", queryName="AllTypes",
colFilter=makeFilter(c("RowId", "EQUALS", newRowId)))
deleterow <- data.frame(RowId=newRowId, stringsAsFactors=FALSE)
result <- labkey.deleteRows(baseUrl="http://localhost:8080/labkey",
folderPath="/apisamples", schemaName="lists", queryName="AllTypes",
toDelete=deleterow)
## Example of creating a provenance run with an initial step with material inputs, a second step
## with provenance mapping to link existing samples with newly inserted samples, and a final step
## with a data output
##
mi <- data.frame(lsid=c("urn:lsid:labkey.com:Sample.251.MySamples:sample1",
"urn:lsid:labkey.com:Sample.251.MySamples:sample2"))
p <- labkey.provenance.createProvenanceParams(name="step1", description="initial step",
materialInputs=mi)
ra <- labkey.provenance.startRecording(baseUrl="https://labkey.org/labkey/",
folderPath = "Provenance", provenanceParams=p)
rows <- fromJSON(txt='[{
"name" : "sample3",
"protein" : "p3",
"prov:objectInputs" : [
"urn:lsid:labkey.com:Sample.251.MySamples:sample21",
"urn:lsid:labkey.com:Sample.251.MySamples:sample22"
]
},{
"name" : "sample4",
"protein" : "p4",
"prov:objectInputs" : [
"urn:lsid:labkey.com:Sample.251.MySamples:sample21",
"urn:lsid:labkey.com:Sample.251.MySamples:sample22"
]
}
]')
labkey.insertRows(baseUrl="https://labkey.org/labkey/", folderPath = "Provenance",
schemaName="samples", queryName="MySamples", toInsert=rows,
provenanceParams=labkey.provenance.createProvenanceParams(name="query step",
recordingId=ra$recordingId))
labkey.provenance.stopRecording(baseUrl="https://labkey.org/labkey/", folderPath = "Provenance",
provenanceParams=labkey.provenance.createProvenanceParams(name="final step",
recordingId=ra$recordingId, dataOutputs=do))
# }
Run the code above in your browser using DataLab