Mercurial > repos > kellrott > synapse_interface
view synapse_download.xml @ 1:7a60e992bfb0
Uploaded
author | kellrott |
---|---|
date | Tue, 24 Jul 2012 17:34:14 -0400 |
parents | |
children | 93c4d2fad9af |
line wrap: on
line source
<tool id="synapse_download" name="Synapse Download" version="1.0"> <description>Download Synapse Entity</description> <command interpreter="python">$script_file #if str( $user ) != '': -u "$user" #end if #if str( $pass ) != '': -p "$pass" #end if -s $synid $data_type -o $outfile </command> <inputs> <param name="user" type="text" size="90" label="Username"/> <param name="pass" type="text" size="90" label="Password"/> <param name="synid" type="text" label="Synapse ID"/> <param name="data_type" type="select" label="Data Type"> <option value="-e">Affy Eset</option> <option value="-a">Attachment</option> </param> </inputs> <outputs> <data format="txt" name="outfile" label="${synid}" /> </outputs> <configfiles> <configfile name="script_file"><![CDATA[#!/usr/bin/env python rcode = """ library('getopt'); library(affy) require(synapseClient) opt = getopt(c( 'user', 'u', 2, "character", 'pass', 'p', 2, "character", 'outfile', 'o', 2, "character", 'synid', 's', 2, "character", 'eset', 'e', 0, "logical", 'attach', 'a', 0, "logical" )); if ( !is.null(opt\$user) && !is.null(opt\$pass)) { synapseLogin(username=user, password=pass) } ent <- loadEntity(opt\$synid); if (!is.null(opt\$eset)) { eset <- exprs(ent\$objects\$eset); write(paste(c("PROBE", colnames(eset)), collapse="\\t"), file=opt\$outfile) write.table(eset, opt\$outfile, col.names=FALSE, sep="\\t", quote=FALSE, append=TRUE); } if (!is.null(opt\$attach)) { fpath <- file.path(ent\$cacheDir, ent\$files[[1]]); file.copy(fpath, opt\$outfile, overwrite=T); } """ import tempfile import os import sys import subprocess h, path = tempfile.mkstemp() os.write(h,rcode) os.close(h) print subprocess.check_output( ["Rscript", path] + sys.argv[1:], stderr=subprocess.STDOUT ) os.unlink(path) ]]></configfile> </configfiles> </tool>