# HG changeset patch
# User kellrott
# Date 1371060086 14400
# Node ID 601d2704b3811fe6185f35475f31bfcd2e5ddf8d
Uploaded
diff -r 000000000000 -r 601d2704b381 synapse_interface/._synapse_create.xml
Binary file synapse_interface/._synapse_create.xml has changed
diff -r 000000000000 -r 601d2704b381 synapse_interface/._synapse_download.xml
Binary file synapse_interface/._synapse_download.xml has changed
diff -r 000000000000 -r 601d2704b381 synapse_interface/._synapse_query.xml
Binary file synapse_interface/._synapse_query.xml has changed
diff -r 000000000000 -r 601d2704b381 synapse_interface/synapse_create.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/synapse_interface/synapse_create.xml Wed Jun 12 14:01:26 2013 -0400
@@ -0,0 +1,124 @@
+
+ Create Synapse
+ synapse_galaxy_client.py upload $script_file
+$etype
+$properties_file
+$annotations_file
+$outfile
+
+#if str($attachment) != ''
+$attachment
+#else
+-
+#end if
+
+#if str($attachment_name) != ''
+$attachment_name
+#else
+-
+#end if
+
+
+#if str($synid) != ''
+$synid
+#else
+-
+#end if
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #if str($sessionToken) != ''
+token
+$sessionToken
+#else
+password
+$user
+$pass
+#end if
+
+ parentId $parentId
+#for a in $properties:
+${a.name} ${a.value}
+#end for
+#if str($name) != ''
+name $name
+#end if
+
+ #for a in $annotations:
+${a.name} ${a.value}
+#end for
+
+
+
+
+
+Login via OpenID |location_link|.
+
+.. |location_link| raw:: html
+
+ <a href="https://synapse.sagebase.org/Portal/openid?OPEN_ID_PROVIDER=https://www.google.com/accounts/o8/id&RETURN_TO_URL=${host_url}?tool_id=synapse_upload&" target="_blank">at Synapse</a>
+
+
+
+
diff -r 000000000000 -r 601d2704b381 synapse_interface/synapse_download.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/synapse_interface/synapse_download.xml Wed Jun 12 14:01:26 2013 -0400
@@ -0,0 +1,45 @@
+
+ Download Synapse Entity
+ synapse_galaxy_client.py get $script_file $synid $outfile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #if str($sessionToken) != ''
+token
+$sessionToken
+#else
+password
+$user
+$pass
+#end if
+
+
+
+
+Login via OpenID |location_link|.
+
+.. |location_link| raw:: html
+
+ <a href="https://synapse.sagebase.org/Portal/openid?OPEN_ID_PROVIDER=https://www.google.com/accounts/o8/id&RETURN_TO_URL=${host_url}?tool_id=synapse_download&" target="_blank">at Synapse</a>
+
+
+
diff -r 000000000000 -r 601d2704b381 synapse_interface/synapse_galaxy_client.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/synapse_interface/synapse_galaxy_client.py Wed Jun 12 14:01:26 2013 -0400
@@ -0,0 +1,133 @@
+#!/usr/bin/env python
+
+import synapseclient
+import sys
+import json
+import os
+import shutil
+import csv
+
+def dict_list_to_tsv(data, handle):
+ headers = {}
+ for row in data:
+ for col in row:
+ if col not in headers:
+ headers[col] = len(headers)
+
+ head = headers.keys()
+ head.sort(key=lambda x : headers[x])
+
+ writer = csv.writer(handle, delimiter="\t", lineterminator="\n")
+ writer.writerow(head)
+
+ for row in data:
+ out = []
+ for c in head:
+ out.append(row.get(c, ""))
+ writer.writerow(out)
+
+
+if __name__ == "__main__":
+ cmd = sys.argv[1]
+ info_file = sys.argv[2]
+
+ handle = open(info_file)
+ mode = handle.readline().rstrip("\n\r")
+ syn = None
+ if mode == 'password':
+ username = handle.readline().rstrip("\n\r")
+ password = handle.readline().rstrip("\n\r")
+ syn = synapseclient.Synapse()
+ syn.login(username, password)
+ elif mode == 'token':
+ token = handle.readline().rstrip("\n\r")
+ syn = synapseclient.Synapse()
+ syn.login(sessionToken=token)
+ handle.close()
+
+ if syn is None:
+ sys.stderr.write("No login info\n")
+ sys.exit(1)
+
+ if cmd == "query":
+ querypath = sys.argv[3]
+ outpath = sys.argv[4]
+ handle = open(querypath)
+ query = handle.read()
+ handle.close()
+ ohandle = open(outpath, "w")
+ dict_list_to_tsv(syn.query(query)['results'], ohandle)
+ ohandle.close()
+
+
+ if cmd == "get":
+ synid = sys.argv[3]
+ outpath = sys.argv[4]
+
+ ent = syn.downloadEntity(synid)
+ src_path = os.path.join(ent['cacheDir'], ent['files'][0])
+ shutil.copy(src_path, outpath)
+
+ if cmd == "upload":
+ etype = sys.argv[3]
+ properties_file = sys.argv[4]
+ annotations_file = sys.argv[5]
+ outfile = sys.argv[6]
+ attach_file = sys.argv[7]
+ attach_file_name = os.path.basename(sys.argv[8])
+ synid = sys.argv[9]
+
+ handle = open(properties_file)
+ props = {}
+ for line in handle:
+ tmp = line.rstrip("\r\n").split("\t")
+ props[tmp[0]] = tmp[1]
+ handle.close()
+
+ handle = open(annotations_file)
+ annon = {}
+ for line in handle:
+ tmp = line.rstrip("\r\n").split("\t")
+ if tmp[0] in annon:
+ annon[tmp[0]].append( tmp[1] )
+ else:
+ annon[tmp[0]] = [tmp[1]]
+ handle.close()
+
+
+ if synid is not None and synid.startswith("syn"):
+ entity = syn.getEntity(synid)
+ else:
+ entityData = { u'entityType': u'org.sagebionetworks.repo.model.Data' }
+ if etype == 'folder':
+ entityData = { u'entityType': u'org.sagebionetworks.repo.model.Folder' }
+ entityData['name'] = attach_file_name
+ entityData['parentId'] = props['parentId']
+ entity = syn.createEntity(entityData)
+ synid = entity['id']
+
+ if len(props):
+ for p in props:
+ if p != 'parentId':
+ entity[p] = props[p]
+ entity = syn.updateEntity(entity)
+
+ if len(annon):
+ ann = syn.getAnnotations(entity)
+ for a in annon:
+ ann[a] = annon[a]
+ syn.setAnnotations(entity, ann)
+
+ if attach_file != '-' and attach_file_name != '-':
+ if not os.path.exists(attach_file_name):
+ os.symlink(attach_file, attach_file_name)
+ attach_file = attach_file_name
+ print "upload", attach_file
+ entity = syn.getEntity(synid)
+ syn.uploadFile(entity, attach_file)
+
+ handle = open(outfile, "w")
+ handle.write(json.dumps(dict(entity)))
+ handle.close()
+
+
diff -r 000000000000 -r 601d2704b381 synapse_interface/synapse_query.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/synapse_interface/synapse_query.xml Wed Jun 12 14:01:26 2013 -0400
@@ -0,0 +1,56 @@
+
+ Query Synapse
+ synapse_galaxy_client.py query $script_file $query_file $outfile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #if str($sessionToken) != ''
+token
+$sessionToken
+#else
+password
+$user
+$pass
+#end if
+
+ $query
+
+
+
+Login via OpenID |location_link|.
+
+.. |location_link| raw:: html
+
+ <a href="https://synapse.sagebase.org/Portal/openid?OPEN_ID_PROVIDER=https://www.google.com/accounts/o8/id&RETURN_TO_URL=${host_url}?tool_id=synapse_query&" target="_blank">at Synapse</a>
+
+Example Query:
+
+select * from entity where parentId=="syn300013"
+
+
+
+
diff -r 000000000000 -r 601d2704b381 synapse_interface/tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/synapse_interface/tool_dependencies.xml Wed Jun 12 14:01:26 2013 -0400
@@ -0,0 +1,13 @@
+
+
+
+
+
+ synapseclient == 0.3.0
+
+
+
+A client for Synapse, a collaborative compute space that allows scientists to share and analyze data together. Synapse brings together scientific data, tools, and disease models into a commons that enables true collaborative research. The platform consists of a web portal, web services, and integration with data analysis tools such as R, python, Galaxy and Java.
+
+
+
\ No newline at end of file