Partek Flow Documentation

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

With the Partek Flow REST API, you can create custom solutions to query or drive your server. Here Below are some examples of how use cases for the REST API can be used:

Table of Contents
maxLevel2
minLevel2
excludeAdditional Assistance

 

A complete  of list of all the commands available for the API can be found  on on the REST API Command List

 

The public key and Python libraries can be downloaded here:  PartekFlow-REST.zip

Generate an authentication token

An access token can be generated from the System information section of the settings page. 

 

Alternatively, GetToken.py will generate a token.:

Code Block
>python GetToken.py --server localhost:8080 --user admin

Example output: 

Code Block
TOKEN: cUOWY0VvkSFagrDUANVtM7A8SPal8Gx0cf0ee24bfa9fe68e2b5564dab2b6a27e1fb525e5...

This token can be specified as the --password parameter for the Python API. If the token is not supplied, then the Python API will prompt for the password and encrypt it.

When accessing the API directly, the encrypt parameter must be specified with the RSA value to use the token.For example:

Code Block
curl --form username=admin --form encrypt=RSA --form password=cUOWY0VvkSFagr...

...

 http://localhost:8080/flow/api/v1/users/list

Upload and analyze a group of samples

...

Get the name of a pipeline from the GUI or from the API

...

Use UploadSamples.py to upload the samples and launch the pipeline:

Code Block
> python UploadSamples.py -v --server http://localhost:8080 --user admin --password [access token]

...

 --files ~/sample1.fastq.gz ~/sample2.fastq.gz --project ProjectName --pipeline AlignAndQuantify --inputs 28061,145855

Add a collaborator to a project

To add a collaborator to a project:

Code Block
curl -X PUT "http://localhost:8080/flow/api/v1/projects?project=ProjectName&collaborator=user1&role=Collaborator&username=admin&encrypt=RSA&password=[url encoded token]"

 

Monitor a folder and upload files as they are created

Code Block
#!/bin/bash
inotifywait -m $PATH_TO_MONITOR -e create -e moved_to |
  while read path action file; do
      if [[ $file == *.fastq.gz ]]; then
              echo "Uploading $file"
              python UploadSamples.py -v --server $SERVER --user $USER --password $TOKEN --files $path/$file --project "$PROJECT" 
      fi
  done

 

Monitor the queue and send a notification if there are too many waiting tasks:

Code Block
#!/bin/bash
while true; do
      result=`python QueueStatistics.py --server $SERVER --user $USER --password $TOKEN --max_waiting $MAX_WAITING`
      if [ $? -eq 1 ]; then
              /usr/bin/notify-send $result
              exit 1
      fi
      sleep $INTERVAL
done

 

 

Additional assistance

 

Rate Macro
allowUsersfalse