import synapseclient
syn=synapseclient.Synapse()
syn.login()
Welcome, Abhishek Pratap!
#new connection and login using .configSynapse file
syn = synapseclient.Synapse()
syn.login()
Welcome, Abhishek Pratap!
#get info about a current project/folder in Synapse
existing_project = syn.get('syn2171593')
url = 'http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSM649323&format=file&file=GSM649323%2ECEL%2Egz'
data_file = synapseclient.File(path=url,parent=existing_project,synapseStore=False)
data_file = syn.store(data_file)
--------------------------------------------------------------------------- SynapseHTTPError Traceback (most recent call last) <ipython-input-6-fff12acac4c0> in <module>() 4 5 data_file = synapseclient.File(path=url,parent=existing_project,synapseStore=False) ----> 6 data_file = syn.store(data_file) /Users/abhishek/anaconda/lib/python2.7/site-packages/synapseclient/client.pyc in store(self, obj, **kwargs) 671 else: 672 try: --> 673 properties = self._createEntity(properties) 674 except SynapseHTTPError as ex: 675 if createOrUpdate and ex.response.status_code == 409: /Users/abhishek/anaconda/lib/python2.7/site-packages/synapseclient/client.pyc in _createEntity(self, entity) 1975 1976 if self.debug: print "\n\n~~~ creating ~~~\n" + json.dumps(get_properties(entity), indent=2) -> 1977 return self.restPOST(uri='/entity', body=json.dumps(get_properties(entity))) 1978 1979 /Users/abhishek/anaconda/lib/python2.7/site-packages/synapseclient/retry.pyc in with_retry(*args, **kwargs) 53 # Try making the call 54 try: ---> 55 response = fn(*args, **kwargs) 56 except Exception as ex: 57 exc_info = sys.exc_info() /Users/abhishek/anaconda/lib/python2.7/site-packages/synapseclient/client.pyc in restPOST(self, uri, body, endpoint, headers, **kwargs) 2099 if self.debug: 2100 utils.debug_response(response) -> 2101 exceptions._raise_for_status(response) 2102 2103 if response.headers.get('content-type',None) == 'application/json': /Users/abhishek/anaconda/lib/python2.7/site-packages/synapseclient/exceptions.pyc in _raise_for_status(response) 102 ## TODO: Might as well append more information to the exception message 103 --> 104 raise SynapseHTTPError(message, response=response) 105 SynapseHTTPError: 400 Client Error: Bad Request Invalid Entity name: '?acc=GSM649323&format=file&file=GSM649323%2ECEL%2Egz'. Entity names may only contain: letters, numbers, spaces, underscores, hypens, periods, plus signs, and parentheses
existing_project
Project(modifiedOn=u'2013-06-04T20:55:57.107Z', modifiedBy=u'Brian Bot', entityType=u'org.sagebionetworks.repo.model.Project', creationDate=u'1370379357107', name=u'Wondrous Research Example', uri=u'/entity/syn1901847/annotations', etag=u'025f1606-8dc4-40e2-af60-08ab39ac1ab4', createdBy=u'Brian Bot', parentId=u'syn4489', concreteType='org.sagebionetworks.repo.model.Project', uri=u'/repo/v1/entity/syn1901847', annotations=u'/repo/v1/entity/syn1901847/annotations', accessControlList=u'/repo/v1/entity/syn1901847/acl', createdOn=u'2013-06-04T20:55:57.107Z', id=u'syn1901847')
#get only the metadata
proj_metadata_only = syn.get('syn1906480',downloadFile=False)
#create a project
project = synapseclient.Project('test_apratap')
project = syn.store(project)
print project
Project: test_apratap (syn2171593) properties: accessControlList=/repo/v1/entity/syn2171593/acl annotations=/repo/v1/entity/syn2171593/annotations concreteType=org.sagebionetworks.repo.model.Project createdBy=Abhishek Pratap createdOn=2013-08-21T17:09:11.418Z entityType=org.sagebionetworks.repo.model.Project etag=a0431fff-3aa3-46d0-a39a-33cca45a3d8e id=syn2171593 modifiedBy=Abhishek Pratap modifiedOn=2013-08-26T22:20:22.383Z name=test_apratap parentId=syn4489 uri=/repo/v1/entity/syn2171593 annotations: creationDate=1377104951418 etag=a0431fff-3aa3-46d0-a39a-33cca45a3d8e id=syn2171593 uri=/entity/syn2171593/annotations
#print the project entity id
print project.id
syn2171593
#create a folder under a project
data_folder = synapseclient.Folder('Data',parent=project)
data_folder = syn.store(data_folder)
#print the data folder id
print data_folder.id
syn2171607
#poplulate Snyapse with annotation
project.test = 'pass'
project.foo = 'bar'
project = syn.store(project)
import numpy as np
#GET THE FILE WITH RESPONSES
resp_file = syn.get('syn1906479',)
resp = np.loadtxt(resp_file.path, skiprows=1, usecols=(1,))
#GET THE EXPRESSION DATA
expr_file = syn.get('syn1906480')
expr = np.loadtxt(expr_file.path, skiprows=1, usecols=range(1,len(resp) + 1))
#Calculate p-values for the expression differences between response groups
import scipy.stats as stats
pvals = [stats.ttest_ind(row[resp==0], row[resp==1])[1] for row in expr]
#make a p-value histogram and store in synapse
import pylab
pylab.hist(pvals)
pylab.savefig('hist.png')
#store in our folder we created earlier
plot_file = synapseclient.File('hist.png',description='Histogram pf P-values', parentId=data_folder.id)
plot_file = syn.store(plot_file)
..,!! Upload completed in 12 seconds.
syn.onweb(data_folder.id)