Synapseclient provides an interface to Synapse, a collaborative workspace
for reproducible data intensive research projects, providing support for:
(1) integrated presentation of data, code and text,
(2) fine grained access control, and
(3) provenance tracking.
Allocate an interactive session and run the program. Sample session:
[user@biowulf]$ sinteractive [user@cn3200 ~]$module load synapseclient [+] Loading synapseclient 4.0.0 [user@cn3200 ~]$ synapse -h usage: synapse [-h] [--version] [-u SYNAPSEUSER] [-p SYNAPSEPASSWORD] [-c CONFIGPATH] [--debug] [-s] {get,sync,store,add,mv,cp,associate,delete,query,submit,show,cat,list,set-provenance,get-provenance,set-annotations,get-annotations,create,onweb,login,test-encoding} ... Interfaces with the Synapse repository. optional arguments: -h, --help show this help message and exit --version show program's version number and exit -u SYNAPSEUSER, --username SYNAPSEUSER Username used to connect to Synapse -p SYNAPSEPASSWORD, --password SYNAPSEPASSWORD Password used to connect to Synapse -c CONFIGPATH, --configPath CONFIGPATH Path to configuration file used to connect to Synapse [default: /home/user/.synapseConfig] --debug -s, --skip-checks suppress checking for version upgrade messages and endpoint redirection commands: The following commands are available: {get,sync,store,add,mv,cp,associate,delete,query,submit,show,cat,list,set-provenance,get-provenance,set-annotations,get-annotations,create,onweb,login,test-encoding} For additional help: "synapseIn order to download data from Synapse, synapse user account is required.-h" get downloads a file from Synapse sync Synchronize files described in a manifest to Synapse store uploads and adds a file to Synapse add uploads and adds a file to Synapse mv Moves a file/folder in Synapse cp Copies specific versions of synapse content such as files, folders and projects by recursively copying all sub-content associate Associate local files with the files stored in Synapse so that calls to "synapse get" and "synapse show" don't re-download the files but use the already existing file. delete removes a dataset from Synapse query Performs SQL like queries on Synapse submit submit an entity or a file for evaluation show show metadata for an entity cat prints a dataset from Synapse list List Synapse entities contained by the given Project or Folder. Note: May not be supported in future versions of the client. set-provenance create provenance records get-provenance show provenance records set-annotations create annotations records get-annotations show annotations records create Creates folders or projects on Synapse onweb opens Synapse website for Entity login login to Synapse and (optionally) cache credentials test-encoding test character encoding to help diagnose problems
[user@cn3200 ~]$ synapse -u <your_synapse_id> -p <your_synapse_password> get syn1899498 Downloading [####################]100.00% 7.1kB/7.1kB (26.3MB/s) matrix_100_by_4.tsv Done... Downloaded file: matrix_100_by_4.tsvPython-based version of synapseclient is also available:
[user@cn3200 ~]$ python Python 3.11.5 | packaged by conda-forge | (main, Aug 27 2023, 03:34:09) [GCC 12.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import synapseclient >>> syn = synapseclient.login(email = "<your_synapse_id>", password="<your_synapse_password>") Welcome, user! >>> entity = syn.get('syn1899498') Downloading [####################]100.00% 7.1kB/7.1kB (4.6MB/s) matrix_100_by_4.tsv Done...The previous command stored the data in the local cache. Here is how we can print the metadata from this cache and then to store the data in a local folder, named "syn1899498_folder" (one folder per data item):
>>> print(entity) File: matrix_100_by_4.tsv (syn1899498) md5=93c712d2f3096b4d4f078ebddc2068f3 fileSize=7266 contentType=text/tab-separated-values externalURL=None cacheDir=/home/user/.synapseCache/117/30117 files=['matrix_100_by_4.tsv'] path=/home/user/.synapseCache/117/30117/matrix_100_by_4.tsv synapseStore=True properties: concreteType=org.sagebionetworks.repo.model.FileEntity createdBy=377358 createdOn=2013-05-30T21:58:47.103Z dataFileHandleId=30117 etag=593af68e-7ab2-11e9-98fa-026b0a0ad230 id=syn1899498 modifiedBy=377358 modifiedOn=2013-05-30T21:58:47.103Z name=matrix_100_by_4.tsv parentId=syn1899495 versionLabel=1 versionNumber=1 annotations: >>> entity = syn.get('syn1899498', downloadLocation="syn1899498_folder")End the interactive session:
[user@cn3200 ~]$ exit salloc.exe: Relinquishing job allocation 46116226 [user@biowulf ~]$