webservices/se.lu.thep.webservices/trunk/websFunc.R

Code
Comments
Other
Rev Date Author Line
257 20 Apr 07 mattias 1 ######################################################################
259 20 Apr 07 jari 2 #
259 20 Apr 07 jari 3 # $Id$
259 20 Apr 07 jari 4 #
257 20 Apr 07 mattias 5 # Copyright (C) Authors contributing to this file.
257 20 Apr 07 mattias 6
257 20 Apr 07 mattias 7 # This file is part of BASE - BioArray Software Environment.
257 20 Apr 07 mattias 8 # Available at http://base.thep.lu.se/
257 20 Apr 07 mattias 9
257 20 Apr 07 mattias 10 # BASE is free software; you can redistribute it and/or
257 20 Apr 07 mattias 11 # modify it under the terms of the GNU General Public License
257 20 Apr 07 mattias 12 # as published by the Free Software Foundation; either version 2
257 20 Apr 07 mattias 13 # of the License, or (at your option) any later version.
257 20 Apr 07 mattias 14
257 20 Apr 07 mattias 15 # BASE is distributed in the hope that it will be useful,
257 20 Apr 07 mattias 16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
257 20 Apr 07 mattias 17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
257 20 Apr 07 mattias 18 # GNU General Public License for more details.
257 20 Apr 07 mattias 19
257 20 Apr 07 mattias 20 # You should have received a copy of the GNU General Public License
257 20 Apr 07 mattias 21 # along with this program; if not, write to the Free Software
257 20 Apr 07 mattias 22 # Foundation, Inc., 59 Temple Place - Suite 330,
257 20 Apr 07 mattias 23 # Boston, MA  02111-1307, USA.
257 20 Apr 07 mattias 24 ######################################################################
257 20 Apr 07 mattias 25
257 20 Apr 07 mattias 26 ######################################################################
257 20 Apr 07 mattias 27 #
257 20 Apr 07 mattias 28 # These R function are just simple wrappers of the
257 20 Apr 07 mattias 29 # methods defined in the BaseWebService perl module.
257 20 Apr 07 mattias 30 #
257 20 Apr 07 mattias 31 # One can use the below functions pretty much in the
257 20 Apr 07 mattias 32 # same ways as the perl module object methods.
257 20 Apr 07 mattias 33 #
257 20 Apr 07 mattias 34 # See the webs-test.R for an example of how to use
257 20 Apr 07 mattias 35 # these R functions.
257 20 Apr 07 mattias 36 ######################################################################
257 20 Apr 07 mattias 37
257 20 Apr 07 mattias 38 # Function to login
257 20 Apr 07 mattias 39 login <- function(url, login, passwd)
257 20 Apr 07 mattias 40 {
257 20 Apr 07 mattias 41   # obj <- .PerlNew("BaseWebService", "baseUrl", "http://localhost:8080/base2")
261 20 Apr 07 jari 42   # obj <- .PerlNew("BaseWebService", "baseUrl", "http://base2.thep.lu.se:8080/demo")
257 20 Apr 07 mattias 43   obj <- .PerlNew("BaseWebService", "baseUrl", url);
257 20 Apr 07 mattias 44   obj$login(login, passwd);
257 20 Apr 07 mattias 45   ret <- obj;
257 20 Apr 07 mattias 46   ret;
257 20 Apr 07 mattias 47 }
257 20 Apr 07 mattias 48
257 20 Apr 07 mattias 49 # Logout
257 20 Apr 07 mattias 50 logout <- function(obj)
257 20 Apr 07 mattias 51 {
257 20 Apr 07 mattias 52   obj$logout();
257 20 Apr 07 mattias 53 }
257 20 Apr 07 mattias 54
257 20 Apr 07 mattias 55
257 20 Apr 07 mattias 56 getProjects <- function(obj)
257 20 Apr 07 mattias 57 {
257 20 Apr 07 mattias 58   # Get the projects
257 20 Apr 07 mattias 59   projs <- obj$getProjects();
257 20 Apr 07 mattias 60
257 20 Apr 07 mattias 61   # Store in better list
257 20 Apr 07 mattias 62   ret = list();
257 20 Apr 07 mattias 63   for (i in 1:length(projs)) {
257 20 Apr 07 mattias 64     name <- as.character(projs[[i]]["name"]);
257 20 Apr 07 mattias 65     desc <- as.character(projs[[i]]["description"]);
257 20 Apr 07 mattias 66     id   <- as.integer(projs[[i]]["id"]);
257 20 Apr 07 mattias 67     ret[[i]] <- list(name=name, description=desc, id=id);
257 20 Apr 07 mattias 68   }
257 20 Apr 07 mattias 69   
257 20 Apr 07 mattias 70   ret;
257 20 Apr 07 mattias 71   # Note that the 'ret' is a list of lists.
257 20 Apr 07 mattias 72 }
257 20 Apr 07 mattias 73
257 20 Apr 07 mattias 74
257 20 Apr 07 mattias 75 setActiveProject <- function(obj, id)
257 20 Apr 07 mattias 76 {
257 20 Apr 07 mattias 77   obj$setActiveProject(as.integer(id));
257 20 Apr 07 mattias 78 }
257 20 Apr 07 mattias 79
257 20 Apr 07 mattias 80
257 20 Apr 07 mattias 81 getExperiments <- function(obj)
257 20 Apr 07 mattias 82 {
257 20 Apr 07 mattias 83   exps <- obj$getExperiments();
257 20 Apr 07 mattias 84   
257 20 Apr 07 mattias 85   # Store in better list
257 20 Apr 07 mattias 86   ret = list();
257 20 Apr 07 mattias 87   for (i in 1:length(exps)) {
257 20 Apr 07 mattias 88     name <- as.character(exps[[i]]["name"]);
257 20 Apr 07 mattias 89     desc <- as.character(exps[[i]]["description"]);
257 20 Apr 07 mattias 90     id   <- as.integer(exps[[i]]["id"]);
257 20 Apr 07 mattias 91     ret[[i]] <- list(name=name, description=desc, id=id);
257 20 Apr 07 mattias 92   }
257 20 Apr 07 mattias 93
257 20 Apr 07 mattias 94   ret;
257 20 Apr 07 mattias 95   # Note that the 'ret' is a list of lists.
257 20 Apr 07 mattias 96 }
257 20 Apr 07 mattias 97
257 20 Apr 07 mattias 98
257 20 Apr 07 mattias 99 getRawBioAssays_by_expID <- function(obj, id)
257 20 Apr 07 mattias 100 {
257 20 Apr 07 mattias 101   files <- obj$getRawBioAssays_by_expID(as.integer(id));
257 20 Apr 07 mattias 102   
257 20 Apr 07 mattias 103   # Store in better list
257 20 Apr 07 mattias 104   ret = list();
257 20 Apr 07 mattias 105   for (i in 1:length(files)) {
257 20 Apr 07 mattias 106     cel <- as.character(files[[i]]["celFile"]);
257 20 Apr 07 mattias 107     cdf <- as.character(files[[i]]["cdfFile"]);
257 20 Apr 07 mattias 108     ret[[i]] <- list(celFile=cel, cdfFile=cdf);
257 20 Apr 07 mattias 109   }
257 20 Apr 07 mattias 110
257 20 Apr 07 mattias 111   ret;
257 20 Apr 07 mattias 112   # Note that the 'ret' is a list of lists.
257 20 Apr 07 mattias 113 }
257 20 Apr 07 mattias 114
257 20 Apr 07 mattias 115
257 20 Apr 07 mattias 116 downloadRawBioAssays_by_expID <- function(obj, id, path)
257 20 Apr 07 mattias 117 {
257 20 Apr 07 mattias 118   obj$downloadRawBioAssays_by_expID(as.integer(id), path);
257 20 Apr 07 mattias 119   
257 20 Apr 07 mattias 120 }