19704: Merge contributed updates to R SDK
[arvados.git] / sdk / R / README.Rmd
diff --git a/sdk/R/README.Rmd b/sdk/R/README.Rmd
deleted file mode 100644 (file)
index 8cc89d9..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-[comment]: # (Copyright (c) The Arvados Authors. All rights reserved.)
-[comment]: # ()
-[comment]: # (SPDX-License-Identifier: CC-BY-SA-3.0)
-
-## R SDK for Arvados
-
-This SDK focuses on providing support for accessing Arvados projects, collections, and the files within collections.
-The API is not final and feedback is solicited from users on ways in which it could be improved.
-
-### Installation
-
-```{r include=FALSE}
-knitr::opts_chunk$set(eval=FALSE)
-```
-
-```{r}
-install.packages("ArvadosR", repos=c("https://r.arvados.org", getOption("repos")["CRAN"]), dependencies=TRUE)
-```
-
-Note: on Linux, you may have to install supporting packages.
-
-On Centos 7, this is:
-
-```{bash}
-yum install libxml2-devel openssl-devel curl-devel
-```
-
-On Debian, this is:
-
-```{bash}
-apt-get install build-essential libxml2-dev libssl-dev libcurl4-gnutls-dev
-```
-
-Minimum R version required to run ArvadosR is 3.3.0.
-
-
-### Usage
-
-#### Initializing API
-
-* Load Library and Initialize API:
-
-```{r}
-library('ArvadosR')
-# use environment variables ARVADOS_API_TOKEN and ARVADOS_API_HOST
-arv <- Arvados$new()
-
-# provide them explicitly
-arv <- Arvados$new("your Arvados token", "example.arvadosapi.com")
-```
-
-Optionally, add numRetries parameter to specify number of times to retry failed service requests.
-Default is 0.
-
-```{r}
-arv <- Arvados$new("your Arvados token", "example.arvadosapi.com", numRetries = 3)
-```
-
-This parameter can be set at any time using setNumRetries
-
-```{r}
-arv$setNumRetries(5)
-```
-
-
-#### Working with collections
-
-* Get a collection:
-
-```{r}
-collection <- arv$collections.get("uuid")
-```
-
-Be aware that the result from `collections.get` is _not_ a
-`Collection` class.  The object returned from this method lets you
-access collection fields like "name" and "description".  The
-`Collection` class lets you access the files in the collection for
-reading and writing, and is described in the next section.
-
-* List collections:
-
-```{r}
-# offset of 0 and default limit of 100
-collectionList <- arv$collections.list(list(list("name", "like", "Test%")))
-
-collectionList <- arv$collections.list(list(list("name", "like", "Test%")), limit = 10, offset = 2)
-
-# count of total number of items (may be more than returned due to paging)
-collectionList$items_available
-
-# items which match the filter criteria
-collectionList$items
-```
-
-* List all collections even if the number of items is greater than maximum API limit:
-
-```{r}
-collectionList <- listAll(arv$collections.list, list(list("name", "like", "Test%")))
-```
-
-* Delete a collection:
-
-```{r}
-deletedCollection <- arv$collections.delete("uuid")
-```
-
-* Update a collection's metadata:
-
-```{r}
-updatedCollection <- arv$collections.update(list(name = "New name", description = "New description"), "uuid")
-```
-
-* Create a new collection:
-
-```{r}
-newCollection <- arv$collections.create(list(name = "Example", description = "This is a test collection"))
-```
-
-
-#### Manipulating collection content
-
-* Initialize a collection object:
-
-```{r}
-collection <- Collection$new(arv, "uuid")
-```
-
-* Get list of files:
-
-```{r}
-files <- collection$getFileListing()
-```
-
-* Get ArvadosFile or Subcollection from internal tree-like structure:
-
-```{r}
-arvadosFile <- collection$get("location/to/my/file.cpp")
-```
-
-or
-
-```{r}
-arvadosSubcollection <- collection$get("location/to/my/directory/")
-```
-
-* Read a table:
-
-```{r}
-arvadosFile   <- collection$get("myinput.txt")
-arvConnection <- arvadosFile$connection("r")
-mytable       <- read.table(arvConnection)
-```
-
-* Write a table:
-
-```{r}
-arvadosFile   <- collection$create("myoutput.txt")[[1]]
-arvConnection <- arvadosFile$connection("w")
-write.table(mytable, arvConnection)
-arvadosFile$flush()
-```
-
-* Write to existing file (overwrites current content of the file):
-
-```{r}
-arvadosFile <- collection$get("location/to/my/file.cpp")
-arvadosFile$write("This is new file content")
-```
-
-* Read whole file or just a portion of it:
-
-```{r}
-fileContent <- arvadosFile$read()
-fileContent <- arvadosFile$read("text")
-fileContent <- arvadosFile$read("raw", offset = 1024, length = 512)
-```
-
-* Get ArvadosFile or Subcollection size:
-
-```{r}
-size <- arvadosFile$getSizeInBytes()
-```
-
-or
-
-```{r}
-size <- arvadosSubcollection$getSizeInBytes()
-```
-
-* Create new file in a collection (returns a vector of one or more ArvadosFile objects):
-
-```{r}
-collection$create(files)
-```
-
-Example:
-
-```{r}
-mainFile <- collection$create("cpp/src/main.cpp")[[1]]
-fileList <- collection$create(c("cpp/src/main.cpp", "cpp/src/util.h"))
-```
-
-* Delete file from a collection:
-
-```{r}
-collection$remove("location/to/my/file.cpp")
-```
-
-You can remove both Subcollection and ArvadosFile.
-If subcollection contains more files or folders they will be removed recursively.
-
-You can also remove multiple files at once:
-
-```{r}
-collection$remove(c("path/to/my/file.cpp", "path/to/other/file.cpp"))
-```
-
-* Delete file or folder from a Subcollection:
-
-```{r}
-subcollection <- collection$get("mySubcollection/")
-subcollection$remove("fileInsideSubcollection.exe")
-subcollection$remove("folderInsideSubcollection/")
-```
-
-* Move or rename a file or folder within a collection (moving between collections is currently not supported):
-
-Directly from collection
-
-```{r}
-collection$move("folder/file.cpp", "file.cpp")
-```
-
-Or from file
-
-```{r}
-file <- collection$get("location/to/my/file.cpp")
-file$move("newDestination/file.cpp")
-```
-
-Or from subcollection
-
-```{r}
-subcollection <- collection$get("location/to/folder")
-subcollection$move("newDestination/folder")
-```
-
-Make sure to include new file name in destination.
-In second example file$move("newDestination/") will not work.
-
-* Copy file or folder within a collection (copying between collections is currently not supported):
-
-Directly from collection
-
-```{r}
-collection$copy("folder/file.cpp", "file.cpp")
-```
-
-Or from file
-
-```{r}
-file <- collection$get("location/to/my/file.cpp")
-file$copy("destination/file.cpp")
-```
-
-Or from subcollection
-
-```{r}
-subcollection <- collection$get("location/to/folder")
-subcollection$copy("destination/folder")
-```
-
-#### Working with Aravdos projects
-
-* Get a project:
-
-```{r}
-project <- arv$projects.get("uuid")
-```
-
-* List projects:
-
-```{r}
-list subprojects of a project
-projects <- arv$projects.list(list(list("owner_uuid", "=", "aaaaa-j7d0g-ccccccccccccccc")))
-
-list projects which have names beginning with Example
-examples <- arv$projects.list(list(list("name","like","Example%")))
-```
-
-* List all projects even if the number of items is greater than maximum API limit:
-
-```{r}
-projects <- listAll(arv$projects.list, list(list("name","like","Example%")))
-```
-
-* Delete a project:
-
-```{r}
-deletedProject <- arv$projects.delete("uuid")
-```
-
-* Update project:
-
-```{r}
-updatedProject <- arv$projects.update(list(name = "new_name", description = "new description"), "uuid")
-```
-
-* Create project:
-
-```{r}
-newProject <- arv$projects.update(list(name = "project_name", description = "project description"))
-```
-
-#### Help
-
-* View help page of Arvados classes by puting ? before class name:
-
-```{r}
-?Arvados
-?Collection
-?Subcollection
-?ArvadosFile
-```
-
-* View help page of any method defined in Arvados class by puting ? before method name:
-
-```{r}
-?collections.update
-?jobs.get
-```
-
-### Building the ArvadosR package
-
-```{bash}
-cd arvados/sdk && R CMD build R
-```
-
-This will create a tarball of the ArvadosR package in the current directory.