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: "synapse  -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
 
In order to download data from Synapse, synapse user account 
is required. 
[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.tsv
Python-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 ~]$