Secondary Analysis Web Services API v2.0 - pb-dyim/SMRT-Analysis GitHub Wiki
- Introduction
- [Security] (#Sec)
- [Overview] (#Ov)
- [Web Services Behavior] (#WSB)
- [HTTP Response Codes] (#HCODE)
- [Search Conventions] (#CONV)
- [Examples] (#EX)
- [Reference Service] (#REF_SVC)
- [List References Function] (#REF_List_Ref)
- [Reference Details Function] (#REF_Ref_Det)
- [List References by Type Function] (#REF_List_Ref_Type)
- [Create Reference Function] (#REF_Create_Ref)
- [Save Reference Function] (#REF_Save_Ref)
- [Delete Reference Function] (#REF_Del_Ref)
- [List Reference Dropbox Files Function] (#REF_List_DB)
- [RSS Feed Function] (#REF_RSS)
- [User Service] (#USER)
- [List Users Function] (#USR_List)
- [User Details Function] (#USR_Det)
- [Create User Function] (#USR_Create)
- [Save User Function] (#USR_Save)
- [Delete User Function] (#USR_Del)
- [Register User Function] (#USR_Reg)
- [Change Password Function] (#USR_CPW)
- [Reset Password Function] (#USR_RPW)
- [List User-Defined Fields Function] (#USR_LUDF)
- [List User-Defined Field Names Function] (#USR_LUDFN)
- [Secondary Analysis Input Service] (#SA_SVC)
- [List Secondary Inputs Function] (#SA_LInput)
- [Secondary Input Details Function] (#SA_InputDet)
- [Create Secondary Input Function] (#SA_CR)
- [Save Secondary Input Function] (#SA_SA)
- [Last Timestamp of Secondary Input Function] (#SA_LTime)
- [Import Secondary Input Metadata Function] (#SA_Imp)
- [Scan for New Input Metadata Function] (#SA_Scan)
- [Delete Secondary Input Function] (#SA_Del)
- [Compatibility Function] (#SA_Comp)
- [Groups Function] (#SA_Group)
- [Cleanup Function] (#SA_Clean)
- [Jobs Service] (#JOB_SVC)
- [List Jobs Function] (#JOB_List)
- [List Jobs by Status Function] (#JOB_ListBStatus)
- [List Jobs By Protocol Function] (#JOB_ListBProt)
- [Job Details Function] (#JOB_Det)
- [Create Job Function] (#JOB_CR)
- [Save Job Function] (#JOB_Save)
- [Delete Job Function] (#JOB_Del)
- [Archive Job Function] (#JOB_Arch)
- [Restore Archived Job Function] (#JOB_RestArch)
- [Get Job Metrics Function] (#JOB_Metrics)
- [Get Job Protocol Function] (#JOB_Prot)
- [Set Job Protocol Function] (#JOB_SetProt)
- [Get Job Inputs Function] (#JOB_Input)
- [Start Job Function] (#JOB_Start)
- [Get Job Status Function] (#JOB_GetStatus)
- [Update Job Status Function] (#JOB_UpStatus)
- [Job History Function] (#JOB_Hist)
- [Job Log Function] (#JOB_Log)
- [Analysis Table of Content Function] (#JOB_TOC)
- [Job Analysis File Function] (#JOB_File)
- [Mark Job Complete Function] (#JOB_COmplete)
- [List Jobs in Dropbox Function] (#JOB_inDrop)
- [Import Job Function] (#JOB_Import)
- [Job Overview Function] (#JOB_OV)
- [Job Last Heartbeat Function] (#JOB_Heart)
- [Job Raw-Read Function] (#JOB_RR)
- [Protocol Service] (#PRO_SVC)
- [List Protocols Function] (#PRO_List)
- [List Protocol Names Function] (#PRO_ListNames)
- [Protocol Details Function] (#PRO_Det)
- [Create Protocol Function] (#PRO_CR)
- [Update Protocol Function] (#PRO_UP)
- [Delete Protocol Function] (#PRO_Del)
- [Sample Sheet Service] (#SAM_SVC)
- [Validate Sample Sheet Function] (#SAM_Val)
- [Settings Service] (#SET_SVC)
- [Check Free Disk Space Function] (#SET_CheckSpace)
- [Get Job Dropbox Function] (#SET_GetDrop)
- [Set Job Dropbox Function] (#SET_SetDrop)
- [Get Reference Sequence Dropbox Function] (#SET_GetRefDrop)
- [Set Reference Sequence Dropbox Function] (#SET_SetRefDrop)
- [Get SMTP Host Function] (#SET_GetSMTP)
- [Set SMTP Host Function] (#SET_SetSMTP)
- [Send Test Email Function] (#SET_Email)
- [Get Input Paths Function] (#SET_GetPath)
- [Add Input Paths Function] (#SET_AddPath)
- [Remove Input Paths Function] (#SET_AddPath)
- [Validate Path for use in pbids Function] (#SET_ValPath)
- [Get Instrument URIs Function] (#SET_GetURI)
- [Add Instrument URIs Function] (#SET_SetURI)
- [Remove Instrument URIs Function] (#SET_DelURI)
- [Test Instrument URIs Function] (#SET_TestURI)
- [Check Anonymous UI Access Function] (#SET_CheckUI)
- [Set Anonymous UI Access Function] (#SET_SetUI)
- [Check Anonymous Web Services Access Function] (#SET_CheckWS)
- [Set Anonymous Web Services Access Function] (#SET_SetWS)
- [Set Anonymous Web and UI Access Function] (#SET_SetUIWS)
- [Get Job Archive Directory Function] (#SET_GetArch)
- [Set Job Archive Directory Path Function] (#SET_SetArch)
- [Groups Service] (#GR_SVC)
- [Create Group Function] (#GR_CR)
- [Save Group Function] (#GR_Save)
- [Delete Group Function] (#GR_Del)
- [List Group Names Function] (#GR_ListNames)
- [List Groups Function] (#GR_List)
This document describes the Secondary Analysis Web Services API provided by Pacific Biosciences. The API allows developers to search, submit and manage secondary analysis jobs, data, results, and user accounts.
Secondary Analysis Web Services follow the REST (Representational State Transfer) model for web services, and use the JSON (JavaScript Object Notation) format. The web services:
- Run as the server-side layer for managing secondary analysis jobs.
- Maintain data integrity in the secondary analysis database and file system.
- Act as a layer on top of SMRT® Pipe, the lower-level code that performs secondary analysis processing.
- Support AJAX access from web clients and can be used from the command line with wget or curl; from scripting languages (PHP, Python, PERL), and from Java and C Sharp.
The API includes functions for:
- Managing reference sequences
- Managing user accounts and passwords
- Managing groups of users
- Managing instrument output (SMRT® Cell data)
- Managing secondary analysis jobs
- Managing protocols
- Validating sample sheets
- Managing settings
The latest version of the API and this documentation are available from the PacBio® Developer’s Network at http://www.pacbiodevnet.com.
- Anonymous read-only access to web services is enabled by default.
- Services that create and modify data require authentication.
- Authentication is enforced for administrator, scientist and technician-level access and cannot be disabled.
- An application setting (
restrictAccess
) in theweb.xml
file turns on or off authentication for all those web services not solely for administrators.
Secondary Analysis Web Services API:
- Run in or under a standard Linux/Apache environment, and can be accessed from Windows, Mac OS or Linux.
- Require MySQL.
- Are installed as part of the secondary analysis system, and require a one-time configuration. Any additional changes can be made using SMRT® Portal.
- Require that SMRT® Pipe be correctly configured and working.
-
URLs and parameters are all case-sensitive.
-
Most requests use the HTTP
GET
command to retrieve an object in JSON (JavaScript Object Notation) format: GET data to view details of an object:/{objects}/{id_or_name}
Example:curl http://{server}/smrtportal/api/jobs/12345
-
Deleting objects uses the HTTP DELETE command:
DELETE data: /{objects}/{id_or_name}
. Example:curl -X DELETE -u administrator:somepassword http://{server}/smrtportal/api/jobs/12345
-
Saving objects to the server, manipulating objects, and operating on the server: These use the HTTP POST command common to standard HTML forms. This is not the same as for file uploads, which use a different mime type (multipart form data). In this case, the request body consists of key-value form pairs. POST data to create a new object:
/{objects}
. Example:
curl -d 'data={the job returned from the GET method, with some edits}' http://{server}/smrtportal/api/
jobs/12345
-
Saving objects to the server also supports the PUT and POST commands with alternative content-types, such as application/json and text/xml. In this case, the request body consists of JSON or XML, and contains no key-value form pairs: PUT/POST data to save/update objects:
/{objects}
-
Most of the time you use
/{objects}/create
for both ways of saving objects. -
Web services requiring authentication use the HTTP header’s Authorization feature. Example:
curl –u “janeuser:somepassword” http://server/secret/sauce
. Alternatively, you could log in using the users/log-on method and store the cookie for use with future web service calls. -
Creating objects can be done using an HTTP POST using the
/create method
, or by using an HTTP PUT with JSON or XML as the request body. The PUT method is considered more of a REST “purist” approach, whereas POST is more widely supported by web browsers. -
By default, most web services return JSON. However, it’s possible in most cases to change the result format by adding an Accept header to the request. Most methods will support
Accept: text/xml
as well asapplication/json
,text/csv
andtext/tsv
(tab-separated values).
###Passing Arguments###
-
Arguments that are primitive types can be passed like the standard HTTP POST parameters:
param1=value1¶m2=value2
-
Arguments that are objects should be serialized as JSON:
param1={“name1”:“value1”,“name2”:“value2”}
-
When using an HTTP PUT, simply pass the JSON or XML object in the request body:
{“name1”: “Value1”, “name2”: “Value2”}
###Date and Time Format###
- All dates and times are in the ISO 8601 Universal Time format.
###Success Conditions###
When successful, a web services call returns an object or list of objects serialized as JSON, unless a different format is requested using an Accept
header. You can deserialize the object in any language as a dictionary/hashtable, a list, or a list of dictionary/hashtables. For more advanced use, you can create custom, strongly-typed objects.
For service calls that don’t return data from a server, a Notice message object with a uniform signatured is returned. For example: {“success”: true, “message”: “It worked”}
-
Return Value:
200 OK
Explanation: The web service call returned successfully. The body of the response contains the requested JSON object. For function calls, the response may be a simple status message object. -
Return Value:
201 Created
Explanation: The web service created a new object on the server. A simple PrimaryKey object is returned, such as:{“idName”:”id”,”idValue”:12345}
. The response will contain a header: Location:http://where/the/new/object/is
###Error Conditions###
When errors occur, the web services return an HTTP error code. The body of the response contains a standard JSON object that can be uniformly deserialized as a strongly typed object, or left as a dictionary/hashtable. For example: {“success”:false, “type”:”IllegalArgumentException”, “message”:“Job id cannot be null”}
-
Return Value:
400 Bad request
Explanation: The arguments were incorrect, or the web service was called incorrectly. -
Return Value:
403 Forbidden
Explanation: The web service requires authentication, and the credentials in the HTTP header’s Authorization section were rejected. -
Return Value:
404 Not Found
Explanation: The search or web service call did not find the requested object. -
Return Value:
409 Not Modified
Explanation: The attempt to update or delete an object failed. -
Return Value:
413 Request Entity Too Large
Explanation: When searching a large database table, there may be practical limits to how many records can be returned. The query asked for too many records. -
Return Value:
500 Internal Server Error
Explanation: An internal error occurred.
Lists of objects are retrieved using either the HTTP GET or POST commands. For objects with a small number of members, a JSON list is returned. Searching and filtering are possible through web services; see the documentation for the jqGrid plugin at http://www.trirand.com/jqgridwiki/.
GET the full list: /jobs
For objects with a large number of records (such as secondary analysis jobs and instrument output), results are paged. A wrapper object specifies the page number, total number of records, rows per page, and the list of objects themselves. The data structure is taken directly from the jqGrid plugin; for details see http://www.trirand.com/blog. Following is a sample structure: {“page”:1,“records”:50,“total”:510,”rows”:[{object1},{obj2}]}
where:
-
page
is the current page. -
records
is the number of rows on the current page. -
total
is the total number of rows. -
rows
is a list of objects for the current page.
###Usage###
-
GET the first page:
/{objects}
Example:curl http://{server}/smrtportal/api/jobs
-
POST search or filtering options to the same url:
/{objects}
Example:curl -d 'options={"page":2,"rows":10,"sortOrder":"desc","sortBy":"jobId"}' http://{server}/smrtportal/api/jobs
The set of search and filtering parameters available is extensive, flexible, and is also derived from the jqGrid plugin. Key options include:
-
Option:
page
Values:int
Description: Page number, starting from 1. -
Option:
rows
Values:int
Description: Rows per page. If the requested number is too large, a413 Request Entity Too Large
error is generated. -
Option:
sortOrder
Values:asc
ordesc
Description: Sort order, ascending or descending. -
Option:
sortBy
Values:String
; object property name Description: ID of the column property to sort on. Example:JobId
.
Arguments can be passed as JSON objects. For example: options={“sortOrder”:“asc”, “sortBy”:“name”, “page”:1}
Commonly-used methods include sample curl commands and sample returned values. The examples include a user named administrator
and a PacBio® instrument located at http://pssc1:8080/
.
The References Service includes functions that you use to manage the reference sequences used in secondary analysis. (Reference sequences are used to map reads against a reference genome for resequencing and for filtering reads.)
Use this function to list the reference sequences available on the system.
-
URL:
/reference-sequences
-
Method:
GET
orPOST
-
Parameters:
options=SearchOptions
(OnlysortOrder
andsortBy
are supported.) -
Returns:
PagedList<ReferenceEntry>
Use this function to obtain details about a specific reference sequence.
-
URL:
/reference-sequences/{id}
-
Method:
GET
-
Parameters:
id=string
-
Returns:
ReferenceEntry
Use this function to list the reference sequences available on the system by their type.
-
URL:
/reference-sequences/by-type/{name}
-
Method:
GET
orPOST
-
Parameters:
-
name= control
orname=sample
-
options=SearchOptions
(OnlysortOrder
,sortBy
andcolumnNames
are supported.)
-
-
Returns:
PagedList<ReferenceEntry>
Use this function to create a new reference sequence.
-
URL:
/reference-sequences/create
(Using POST),/reference-sequences
(Using PUT) -
Method:
POST
orPUT
-
Parameters:
-
data=ReferenceSequence
(Using POST) -
ReferenceSequence
(Using PUT)
-
-
Returns:
PrimaryKey
Use this function to save a reference sequence.
-
URL:
/reference-sequences/{id}
-
Method:
POST
orPUT
-
Parameters:
id=string
data=ReferenceSequence
-
Returns:
A notice message object
Use this function to delete a reference sequence.
-
URL:
/reference-sequences/{id}
-
Method:
DELETE
-
Parameters:
id=string
-
Returns:
A notice message object
Use this function to list the reference files located in the Reference Sequence Dropbox.
-
URL:
/reference-sequences/dropbox-files
-
Method:
GET
-
Returns:
List<String>
Use this function to access an RSS feed which lists when secondary analysis jobs complete or fail.
-
URL:
/rss
-
Method:
GET
-
Returns:
An RSS XML file.
The User Service includes functions used to manage users, roles and passwords.
Use this function to list users on the system. (Administrators only)
-
URL:
/users
-
Method:
GET
orPOST
-
Parameters:
options=SearchOptions
(OnlysortOrder
,sortBy
andcolumnNames
are supported.) -
Returns:
PagedList<User>
Use this function to obtain information about a specific user. (Administrators only)
-
URL:
/users
-
Method:
GET
-
Parameters:
userName=string
-
Returns:
User
Use this function to add a new user to the system. Note that the user needs to be registered to gain access. (Administrators only)
-
URL:
/users/create
(Using POST),/users
(Using PUT) -
Method:
POST
,PUT
- Parameters:
-
data=User
(Using POST) -
User
(Using PUT) -
Returns:
PrimaryKey
Use this function to save changes made to a user. (Administrators only)
-
URL:
/users/{userName}
-
Method:
POST
orPUT
- Parameters:
userName=string
data=User
-
Returns:
A notice message object.
Use this function to delete a user from the system. (Administrators only)
-
URL:
/users/{userName}
-
Method:
DELETE
-
Parameters:
userName=string
-
Returns:
A notice message object.
Use this function to register a new user.
-
URL:
/users/register
-
Method:
POST
- Parameters:
-
data=User
(Required) userName=string
email=string
password=string
confirmPassword=string
-
Returns:
User
Use this function to change a user’s password with a specified replacement password. This functionality is available to administrators for all passwords.
-
URL:
/users/{userName}/change-password
-
Method:
POST
- Parameters:
-
data=User
(Required) userName=string
newPassword=string
password=string
confirmPassword=string
-
Returns:
A notice message object.
Use this function to reset a user’s password. The user is then asked to change their password. (Administrators only)
-
URL:
/users/{userName}/reset-password
-
Method:
GET
-
Returns:
A notice message object.
Use this function to obtain a list of user-defined fields. These fields are created using the RS Remote software. If a run specified a secondary analysis protocol, these fields (if defined) propagate throughout the secondary analysis pipeline.
-
URL:
/custom-fields
-
Method:
GET
-
Parameters:
options=SearchOptions
(**Only **sortOrder
,sortBy
andcolumnNames
are supported.) -
Returns:
PagedList<CustomField>
Use this function to obtain a list of the names of user-defined fields. These fields are created using the RS Remote software. If a run specified a secondary analysis protocol, these fields (if defined) propagate throughout the secondary analysis pipeline.
-
URL:
/custom-fields/names
-
Method:
GET
-
Returns:
List<String>
The Secondary Analysis Input Service includes functions used to manage the data associated with each SMRT® Cell that is included in a secondary analysis job.
Use this function to obtain a list of secondary analysis input.
-
URL:
/inputs
-
Method:
GET
orPOST
-
Parameters:
options=SearchOptions
-
Returns:
PagedList<Input>
Use this function to obtain details for a specfied secondary analysis input.
-
URL:
/inputs
-
Method:
GET
-
Parameters:
id=int
-
Returns:
Input
- Example:
curl http://pssc1:8080/smrtportal/api/jobs/16437/inputs
{
"page" : 1,
"records" : 1,
"total" : 1,
"rows" : [ {
"adapterSequence" : "ATCTCTCTCttttcctcctcctccgttgttgttgttGAGAGAGAT",
"bindingKitBarcode" : "000001001546011123111",
"bindingKitControl" : "Standard_v1",
"bindingKitExpirationDate" : "2011-12-31T00:00:00-0800",
...
} ]
}
Use this function to create secondary analysis input.
-
URL:
/inputs/create
(Using POST),/inputs
(Using PUT) -
Method:
POST
,PUT
-
Parameters:
-
data=Input
(Using POST) -
Input
(Using PUT)
-
-
Returns:
PrimaryKey
Use this function to save secondary analysis input.
-
URL:
/inputs/{id}
-
Method:
POST
,PUT
-
Parameters:
data=Input
id=int
-
Returns:
A notice message object.
Use this function to obtain the time of the last secondary analysis input saved to the database.
-
URL:
/inputs/last-timestamp
-
Method:
GET
-
Returns:
Date
Use this function to import secondary analysis input.
-
URL:
/inputs/import
-
Method:
POST
-
Parameters:
data=array of Collections from instrument
-
Returns:
List<Input>
Use this function to scan for secondary analysis input.
-
URL:
/inputs/scan
-
Method:
POST
-
Parameters:
paths=array of string
-
Returns:
List<Input>
-
Example:
curl -u administrator:administrator#1 -d 'paths=["/data/smrta/smrtanalysis/common/inputs_dropbox"]' http://secondary_host:8088/smrtportal/api/inputs/scan
- Python code example:
import os
import logging
import urllib
import urllib2
import json
import base64
log = logging.getLogger(__name__)
class DefaultProgressErrorHandler(urllib2.HTTPDefaultErrorHandler):
def http_error_default(self, req, fp, code, msg, headers):
result = urllib2.HTTPError(req.get_full_url(), code, msg, headers, fp)
result.status = code
return result
def request_to_string(request):
"for debugging"
buffer = []
buffer.append('Method: %s' % request.get_method())
buffer.append('Host: %s' % request.get_host())
buffer.append('Selector: %s' % request.get_selector())
buffer.append('Data: %s' % request.get_data())
return os.linesep.join(buffer)
def scan():
url = 'http://localhost:8080/smrtportal/api/inputs/scan'
#You'd want to use something like this: /opt/testdata/LIMS/2311013/0002
#Having trouble getting this to work with > 1 path. How to pass multiple form params of same name to urllib2?
c_path = '/data/smrta/smrtanalysis/common/inputs_dropbox'
scan_data = urllib.urlencode({'paths[]': c_path } )
request = urllib2.Request(url, data=scan_data)
request.add_header('User-Agent', 'admin-user')
key = 'Basic %s' % (base64.b64encode("administrator:administrator#1"))
request.add_header('Authorization', key)
opener = urllib2.build_opener(DefaultProgressErrorHandler())
response = opener.open(request)
#response.read() - in this case - returns a list of len == to number of paths you're passing as data
retList = json.loads( response.read() )
return retList[0]['idValue']
def saveJob(inputId):
url = 'http://localhost:8080/smrtportal/api/jobs/create'
job = {
'name':'test_job',
'createdBy':'admin',
'protocolName':'RS_Filter_Only.1',
'groupNames':['all'],
'inputIds':[inputId]
}
job_data = urllib.urlencode( {'data': json.dumps(job) } )
request = urllib2.Request(url, data=job_data)
print request_to_string(request)
request.add_header('User-Agent', 'admin-user')
key = 'Basic %s' % (base64.b64encode("administrator:administrator#1"))
request.add_header('Authorization', key)
opener = urllib2.build_opener(DefaultProgressErrorHandler())
response = opener.open(request)
ret = json.loads( response.read() )
return ret['idValue']
def startJob(jobId):
url = 'http://localhost:8080/smrtportal/api/jobs/{i}/start'.format(i=jobId)
#This is a GET
request = urllib2.Request(url)
print request_to_string(request)
request.add_header('User-Agent', 'admin-user')
key = 'Basic %s' % (base64.b64encode("administrator:administrator#1"))
request.add_header('Authorization', key)
opener = urllib2.build_opener(DefaultProgressErrorHandler())
response = opener.open(request)
ret = json.loads( response.read() )
print( ret )
def test():
inputId = scan()
print( 'Scanned inputId = %s' % inputId )
jobId = saveJob(inputId)
print( 'jobId = %s' % jobId )
startJob(jobId)
Use this function to delete specified secondary analysis input. (Scientists and administrators only)
-
URL:
/inputs/{id}
-
Method:
DELETE
-
Parameters:
id=int
-
Returns:
A notice message object.
Use this function to return information specifying whether the SMRT® Cell inputs for the job are compatible. Mixing data that was generated using v1.2.1 primary analysis software with data generated with later versions may fail. (v1.2.1 calculated Quality Values differently than later versions.)
-
URL:
/inputs/compatibility
-
Method:
GET
-
Parameters:
ids=[array of ids]
-
Returns:
JSON object specifying whether or not the inputs are compatible.
Use this function to add group information to secondary analysis input.
-
URL:
/inputs/{INPUT_ID}/groups
-
Method:
POST
-
Parameters:
data=[name of groups].
Example:data=”[‘grp1’, ‘grp2’]”
-
Returns:
A notice message object.
Use this function to delete any input that is unassociated with a job and has an invalid or empty collectionPathUri. This is useful for cleaning up duplicate SMRT Cells located at different paths. When you scan and import SMRT Cells from SMRT Portal and the same SMRT Cell ID already exists, the existing path is updated to the new location. No duplicate entries are created. (Scientists and administrators only)
-
URL:
/inputs/{INPUT_ID}/cleanup
-
Method:
DELETE
-
Returns:
A notice message object that includes the list of deleted input IDs.
The Jobs Service includes functions used to manage secondary analysis jobs.
Use this function to obtain a list of all secondary analysis jobs.
-
URL:
/jobs
-
Method:
GET
orPOST
-
Parameters:
options=SearchOptions
-
Returns:
PagedList<Job>
- Example:
curl -d 'options={"filters":{"rules":[{"field":"createdBy","op":"eq","data":"AutomationSystem"},{"field":"jobId","op":"lt","data":"30000"}],"groupOp":"and"},"columnNames":["jobId"],"rows":"0"}' http://pssc1:8080/smrtportal/api/jobs
{
"page" : 1,
"records" : 57,
"total" : 1,
"rows" : [ {
"jobId" : 26392
}, {
"jobId" : 26360
}, {
"jobId" : 26359
}, {
...
}]
}
Use this function to obtain a list of secondary analysis jobs, based on their job status.
-
URL:
/jobs/by-status/{jobStatus}
-
Method:
GET
orPOST
-
Parameters:
options=SearchOptions
-
Returns:
PagedList<Job>
- Example:
curl http://pssc1:8080/smrtportal/api/jobs/by-status/Completed
{
"page" : 1,
"records" : 25,
"total" : 3,
"rows" : [ {
"automated" : true,
"collectionProtocol" : "Standard Seq v2",
...
} ]
}
Use this function to list the currently open secondary analysis jobs, based on a specified protocol.
-
URL:
/jobs/by-protocol/{protocol}
-
Method:
GET
orPOST
-
Parameters:
protocol=string
,options=SearchOptions
,jobStatus=
status code such asNotStarted
. -
Returns:
PagedList<Job>
- Example:
curl -d 'jobStatus=Completed' http://pssc1:8080/smrtportal/api/jobs/by-protocol/RS_resequencing.1
{
"page" : 1,
"records" : 1,
"total" : 1,
"rows" : [ {
"automated" : false,
...
"whenStarted" : null
} ]
}
Use this function to display details of a secondary analysis job.
-
URL:
/jobs/{id}
or/jobs/by-name/{name}
-
Method:
GET
-
Parameters:
id=int
,name=string
-
Returns:
Job
- Examples:
By ID:
curl -u administrator:administrator#1 http://pssc1:8080/smrtportal/api/jobs/016437
{
"jobId" : 16437,
"protocolName" : "RS_Site_Acceptance_Test.1",
"referenceSequenceName" : "lambda",
"jobStatus" : "Completed",
...
"whenModified" : "2012-01-31T09:12:48-0800",
"modifiedBy" : null
}
By Name:
curl -u administrator:administrator#1 http://pssc1:8080/smrtportal/api/jobs/by-name/2311084_0002
{
"jobId" : 16437,
"protocolName" : "RS_Site_Acceptance_Test.1",
"referenceSequenceName" : "lambda",
"jobStatus" : "Completed",
...
"whenModified" : "2012-01-31T09:12:48-0800",
"modifiedBy" : null
}
Use this function to create a new secondary analysis job.
-
URL:
/jobs/create
(Using POST),/jobs
(Using PUT) -
Method:
POST
orPUT
-
Parameters:
data=Job
(Using POST),job
(Using PUT). In both cases, the name must be unique, andCreatedBy
must be non-null. -
Returns:
PrimaryKey
- Example:
curl -u administrator:administrator#1 -d 'data={"name":"DemoJobName", "createdBy":"testuser", "description":"demo job", "protocolName":"RS_Resequencing.1", "groupNames":["all"], "inputIds":["78807"]}' http://pssc1:8080/smrtportal/api/jobs/create
{
"idValue" : 16478,
"idProperty" : "jobId"
}
Use this function to save a secondary analysis job.
-
URL:
/jobs/{id}
-
Method:
POST
,PUT
-
Parameters:
id=int
,data=Job
-
Returns:
A notice message object.
Use this function to delete a secondary analysis job. (Administrators only)
-
URL:
/jobs/{id}
-
Method:
DELETE
-
Parameters:
id=int
-
Returns:
A notice message object.
- Example:
curl -u "administrator:administrator#1" -X DELETE http://pssc1:8080/smrtportal/api/jobs/16478
{
"success" : true,
"message" : "Job 16478 has been permanently deleted"
}
Use this function to archive a secondary analysis job. (Administrators only)
-
URL:
/jobs/{id}/archive
(Using GET),/jobs/archive
(Using POST) -
Method:
GET
,POST
-
Parameters:
id=int
(Using GET),ids=int[]
(Using POST) -
Returns:
A notice message object.
- Example:
curl -u administrator:administrator#1 -d 'ids=[16437,16438]' http://pssc1:8080/smrtportal/api/jobs/archive
{
"success" : true,
"message" : "Archived 2 jobs."
}
Use this function to restore a secondary analysis job that was archived. (Administrators only)
-
URL:
/jobs/{id}/restore
(Using GET),/jobs/restore
(Using POST) -
Method:
GET
,POST
-
Parameters:
id=int
(Using GET),ids=int[]
(Using POST) -
Returns:
A notice message object.
- Example:
curl -u administrator:administrator#1 -d 'ids=[16437,16438]' http://pssc1:8080/smrtportal/api/jobs/restore
{
"success" : true,
"message" : "Restored 2 jobs."
}
Use this function to retrieve metrics for one or more secondary analysis jobs, in CSV format.
-
URL:
/jobs/{id}/metrics
(Using GET),/jobs/metrics
(Using POST) -
Method:
GET
,POST
-
Parameters:
id=int
(Using GET),ids=int[]
(Using POST) -
Returns:
A notice message object
containing the following fields: - Job ID: Numeric ID for the job.
- Job Name: Name given to the job when created in SMRT Portal.
- Adapter Dimers (%): The % of pre-filter ZMWs which have observed inserts of 0-10bp. These are likely adapter dimers.
- Short Inserts (%): The % of pre-filter ZMWs which have observed inserts of 11-100bp. These are likely short fragment contamination.
- Medium Insert (%):
- Pre-Filter Polymerase Read Bases: The number of bases in the polymerase reads before filtering, including adaptors.
- Post-Filter Polymerase Read Bases: The number of bases in the polymerase reads after filtering, including adaptors.
- Pre-Filter Polymerase Reads: The number of polymerases generating trimmed reads before filtering. Polymerase reads include bases from adaptors and multiple passes around a circular template.
- Post-Filter Polymerase Reads: The number of polymerases generating trimmed reads after filtering. Polymerase reads include bases from adaptors and multiple passes around a circular template.
- Pre-Filter Polymerase Read Length: The mean trimmed read length of all polymerase reads before filtering. The value includes bases from adaptors as well as multiple passes around a circular template.
- Post-Filter Polymerase Read Length: The mean trimmed read length of all polymerase reads after filtering. The value includes bases from adaptors as well as multiple passes around a circular template.
- Pre-Filter Polymerase Read Quality: The mean single-pass read quality of all polymerase reads before filtering.
- Post-Filter Polymerase Read Quality: The mean single-pass read quality of all polymerase reads after filtering.
- Coverage: The mean depth of coverage across the reference sequence.
- Missing Bases (%): The percentage of the reference sequence that has zero coverage.
- Post-Filter Reads: The number of reads that passed filtering.
- Mapped Subread Accuracy: The mean accuracy of post-filter subreads that mapped to the reference sequence.
- Mapped Reads: The number of post-filter reads that mapped to the reference sequence.
- Mapped Subreads: The number of post-filter subreads that mapped to the reference sequence.
- Mapped Polymerase Bases: The number of post-filter bases that mapped to the reference sequence.
- Mapped Subread Bases: The number of post-filter bases that mapped to the reference sequence. This does not include adapters.
- Mapped Polymerase Read Length: The mean trimmed read length of all polymerase reads. The value includes bases from adaptors as well as multiple passes around a circular template.
- Mapped Subread Length: The mean read length of post-filter subreads that mapped to the reference sequence. This does not include adapters.
- Mapped Polymerase Read Length 95%: The 95th percentile of read length of post-filter polymerase reads that mapped to the reference sequence.
- Mapped Read Length of Insert: The average length of the Read of Insert, which is a representative read of a DNA molecule from a single ZMW; that is, the sequence of a DNA molecule read from a single ZMW. On circularized SMRTbell™ templates that are shorter than the read length, a Read of Insert length distribution will closely resemble the insert size distribution.
- Mapped Polymerase Read Length Max: The maximum read length of post-filter polymerase reads that mapped to the reference sequence.
- Mapped Full Subread Length: The lengths of full subreads, which includes only mapped subreads. Full subreads are subreads flanked by two adapters.
- First Subread Length:
- Reads Starting Within 50 bp (%):
- Reads Starting Within 100 bp (%):
- Reference Length: The length of the reference sequence.
- Bases Called (%): The percentage of reference sequence that has ≥ 1x coverage. % Bases Called + % Missing Bases should equal 100.
- Consensus Accuracy: The accuracy of the consensus sequence compared to the reference.
- Coverage: The mean depth of coverage across the reference sequence.
- SMRT Cells: The number of SMRT Cells used in the job.
- Movies: The number of movies generated in the job.
- Example Notice Message Object returned:
{
"Job ID" : 58765,
"Job Name" : "20130404_891_Final_v2_q1",
"Adapter Dimers (%)" : "0.46",
"Short Inserts (%)" : "0.04",
"Medium Insert (%)" : "0.03",
"Pre-Filter Polymerase Read Bases" : "342682225",
"Post-Filter Polymerase Read Bases" : "321587405",
"Pre-Filter Polymerase Reads" : "450918",
"Post-Filter Polymerase Reads" : "103439",
"Pre-Filter Polymerase Read Length" : "760",
"Post-Filter Polymerase Read Length" : "3109",
"Pre-Filter Polymerase Read Quality" : "0.203",
"Post-Filter Polymerase Read Quality" : "0.844",
"Coverage" : "137.94",
"Missing Bases (%)" : "0.00",
"Post-Filter Reads" : "103439",
"Mapped Subread Accuracy" : "86.49",
"Mapped Reads" : "95308",
"Mapped Subreads" : "117348",
"Mapped Polymerase Bases" : "278385730",
"Mapped Subread Bases" : "274408990",
"Mapped Polymerase Read Length" : "2921",
"Mapped Subread Length" : "2338",
"Mapped Polymerase Read Length 95%" : "7997",
"Mapped Read Length of Insert" : "2564",
"Mapped Polymerase Read Length Max" : "15085",
"Mapped Full Subread Length" : "2025",
"First Subread Length" : "2488",
"Reads Starting Within 50 bp (%)" : "0.06",
"Reads Starting Within 100 bp (%)" : "0.06",
"Reference Length - Campylobacter_891_8523_chromosome|quiver" : "1853005",
"Bases Called (%) - Campylobacter_891_8523_chromosome|quiver" : "100.00",
"Consensus Accuracy - Campylobacter_891_8523_chromosome|quiver" : "100.0000",
"Coverage - Campylobacter_891_8523_chromosome|quiver" : "137.94",
"SMRT Cells" : "6",
"Movies" : "6"
}
- Example command to call the function:
curl -u administrator:administrator#1 -d 'ids=[16437,16438]' http://pssc1:8080/smrtportal/api/jobs/metrics
[ {
"Job ID" : 16437,
"Job Name" : "2311084_0002",
...
},{
...
}]
Use this function to return the protocol used by a secondary analysis job.
-
URL:
/jobs/{id}/protocol
-
Method:
GET
-
Parameters:
id=int
-
Returns:
Protocol XML document
- Example:
curl http://pssc1:8080/smrtportal/api/jobss/16437/protocol
<smrtpipeSettings>
<protocol version="1.3.0" id="RS_Site_Acceptance_Test.1" editable="false">
<param name="name" label="Protocol Name" editable="false">
...
<fileName>settings.xml</fileName>
</smrtpipeSettings>
Use this function to specify the protocol used by a secondary analysis job.
-
URL:
/jobs/{id}/protocol
-
Method:
POST
-
Parameters:
id=int
,data=Xml(escaped)
This is a function used for transmission from a web browser, such as the Javascript escape function. -
Returns:
A notice message object.
Use this function to return information about the SMRT® Cell data used for a secondary analysis job.
-
URL:
/jobs/{id}/inputs
-
Method:
GET
-
Parameters:
id=int
-
Returns:
PagedList<Input>
Use this function to start a secondary analysis job.
-
URL:
/jobs/{id}/start
-
Method:
GET
-
Parameters:
id=int
-
Returns:
JobStatus
- Example:
curl -u administrator:administrator#1 http://pssc1:8080/smrtportal/api/jobs/16479/start
{
"jobStatusId" : 1775,
"jobId" : 16479,
"code" : "Submitted",
"jobStage" : null,
"moduleName" : null,
"percentComplete" : 0,
"message" : "Job submitted",
"name" : null,
"description" : null,
"whenCreated" : null,
"createdBy" : null,
"whenModified" : null,
"modifiedBy" : null
}
Use this function to obtain the status of a secondary analysis job.
-
URL:
/jobs/{id}/status
-
Method:
GET
-
Parameters:
id=int
-
Returns:
JobStatus
- Example:
curl http://pssc1:8080/smrtportal/api/jobs/16479/status
{
"jobStatusId" : 1780,
"jobId" : 16479,
"code" : "In Progress",
"jobStage" : "Filtering",
"moduleName" : "P_FilterReports/adapterRpt",
"percentComplete" : 100,
"message" : "task://016479/P_FilterReports/adapterRpt complete",
"name" : null,
"description" : null,
"whenCreated" : "2012-02-03T17:38:06-0800",
"createdBy" : "smrtpipe",
"whenModified" : "2012-02-03T17:38:06-0800",
"modifiedBy" : null
}
Use this function to modify the status of a secondary analysis job. (Scientists and administrators only)
-
URL:
/jobs/{id}/status
-
Method:
POST
,PUT
-
Parameters:
id=int
,progress=JobStatus
-
Returns:
PrimaryKey
- Example:
curl -u administrator:administrator#1 -d 'progress={"code":"Failed"}' http://pssc1:8080/smrtportal/api/jobs/16471/status
{
"success" : true,
"message" : "Job status updated"
}
Use this function to obtain the history of a secondary analysis job.
-
URL:
/jobs/{id}/history
-
Method:
GET
-
Parameters:
id=int
-
Returns:
List<JobStatus>
- Example:
curl http://pssc1:8080/smrtportal/api/jobs/16437/history
[ {
"jobStatusId" : 1773,
"jobId" : 16437,
"code" : "Completed",
"jobStage" : null,
"moduleName" : null,
"percentComplete" : 0,
"message" : null,
"name" : null,
"description" : null,
"whenCreated" : "2012-02-03T17:13:31-0800",
"createdBy" : null,
"whenModified" : "2012-02-03T17:13:31-0800",
"modifiedBy" : null
}, {
...
}]
Use this function to obtain the log for a secondary analysis job.
-
URL:
/jobs/{id}/log
-
Method:
GET
-
Parameters:
id=int
-
Returns:
Text file
- Example:
curl http://pssc1:8080/smrtportal/api/jobs/16437/log
[INFO] 2012-01-30 23:52:41,437 [SmrtPipeContext 139] Configuration override for PROGRESS_URL: Old: --> New: http://pssc1:8080/smrtportal/api
[INFO] 2012-01-30 23:52:41,437 [SmrtPipeContext 150] Changing working directory to /tmp/tmpTKPKi4
...
[INFO] 2012-01-31 00:35:10,443 [SmrtPipeContext 362] Removed 2 temporary directories
[INFO] 2012-01-31 00:35:10,450 [SmrtPipeContext 365] Removed 1 temporary files
[INFO] 2012-01-31 00:35:10,450 [SmrtPipeMain 394] Successfully exiting smrtpipe
***
Use this function to returns a JSON object listing the reports and data files that were generated for a secondary analysis job. This function is used primarily for SMRT® Portal to display the report and data links in the View Data/Job Details page.
-
URL:
/jobs/{id}/contents
-
Method:
GET
-
Parameters:
id=int
-
Returns:
JSON object listing contents.
- Example:
curl http://pssc1:8080/smrtportal/api/jobs/16437/contents
{
"reportGroups" : [ {
"name" : "General",
"members" : [ {
"group" : "General",
"title" : "Workflow",
"links" : [ {
"path" : "workflow/Workflow.summary.html",
"format" : "text/html"
...
}
Use this function to obtain any specified file that was generated during a secondary analysis job.
-
URL:
/jobs/{id}/contents/{file}
or/jobs/{id}/contents/{dir}/{file}
-
Method:
GET
-
Parameters:
id=int
,file=filename
,dir=directory
-
Returns:
Data file, report XML, image, and so on.
- Example:
curl http://pssc1:8080/smrtportal/api/jobs/16437/contents/results/overview.xml
<?xml version="1.0" encoding="UTF-8"?>
<report>
<layout onecolumn="true"/>
<title>General Attribute Report</title>
<attributes>
<attribute id="n_smrt_cells" name="# of SMRT Cells" value="1">1</attribute>
<attribute id="n_movies" name="# of Movies" value="2">2</attribute>
</attributes>
</report>
Use this function to specify that a job using more than one SMRT® Cell is complete
-
URL:
/jobs/{id}/complete
-
Method:
GET
-
Returns:
A notice message object.
- Example:
http://pssc1:8080/smrtportal/api/jobs/16477/complete
{
"jobStatusId" : 1844,
"jobId" : 16477,
"code" : "Submitted",
"jobStage" : null,
"moduleName" : null,
"percentComplete" : 0,
"message" : "Job submitted",
"name" : null,
"description" : null,
"whenCreated" : null,
"createdBy" : null,
"whenModified" : null,
"modifiedBy" : null
}
Use this function to list the jobs located in the Job Import Dropbox.
-
URL:
/jobs/dropbox-paths
-
Method:
GET
-
Returns:
List<String>
- Example:
curl -u administrator:administrator#1 http://pssc1:8080/smrtportal/api/jobs/dropbox-paths
[ "999991" ]
Use this function to import a job located in the Job Import Dropbox.
-
URL:
/jobs/import
-
Method:
POST
-
Parameters:
paths=array of strings
-
Returns:
List<PrimaryKey>
- Example:
curl -u administrator:administrator#1 -d 'paths=["/opt/smrtanalysis/common/jobs_dropbox/035169"]' http://pssc1:8080/smrtportal/api/jobs/import
[ {
"idValue" : 16480,
"idProperty" : "jobId"
} ]
Use this function to obtain metrics and reports for a job. (These are displayed on the SMRT® Portal Overview page.)
-
URL:
/jobs/{id}/Overview
-
Method:
GET
-
Returns:
JSON object listing jobs attributes in the file metadata.rdf.
- Example:
curl -u administrator:administrator#1 http://pssc1:8080/smrtportal/api/jobs/16437/overview
{
"metrics" : {
"Job ID" : 16437,
"Job Name" : "2311084_0002",
"# of SMRT Cells" : "1",
"% Adapter Dimer (0-10bp)" : "0.34",
"% Short Insert (11-100bp)" : "0.13",
"# of Control Reads" : "208",
"% Control Reads" : "0.33",
"Mean Accuracy of Control Reads" : "76.07",
"Mean Mapped Readlength of Control Reads" : "62",
"95th Percentile Mapped Readlength of Control Reads" : "81",
"Post-Filter # of Bases" : "264941458",
"Post-Filter # of Reads" : "63280",
"Post-Filter Mean Readlength" : "2793",
"Post-Filter Mean Read Quality" : "0.834",
"Mean Depth of Coverage" : "2556.35",
"% Missing Bases" : "0.00",
"Mean Mapped Subread Accuracy" : "83.24",
"# of Mapped Reads" : "58774",
"Mean Mapped Readlength" : "2675",
"Mean Mapped Subread Readlength" : "668",
"# of Movies" : "2"
},
"thumbnails" : [ {
"report" : "Adapters",
"title" : "Observed Insert Length Distribution Histogram",
"link" : "results/filterReports_adapters.xml",
"image" : "results/adapter_observed_insert_length_distribution_thumb.png"
}, {
"report" : "Coverage",
"title" : "Depth of Coverage Across Reference",
"link" : "results/coverage.xml",
"image" : "results/coveragePlot_ref000001_thmb.png"
}, {
"report" : "Coverage",
"title" : "Depth of Coverage Histogram",
"link" : "results/coverage.xml",
"image" : "results/coverageHistogram_thmb.png"
}, {
"report" : "Mapping",
"title" : "Accuracy Histogram",
"link" : "results/quality.xml",
"image" : "results/accuracyHistogram_thmb.png"
} ]
Use this function to find out if a job is still alive.
-
URL:
/jobs/{id}/status/heartbeat
-
Method:
GET
-
Returns:
A notice message object.
- Example:
curl -u administrator:administrator#1 -d "data={'lastHeartbeat':'2011-06-20T00:50:20-0700'}" http://pssc1:8080/smrtportal/api/jobs/016471/status/heartbeat
{
"success" : true,
"message" : "Job lastHeartbeat status updated"
}
Use this function to download a data file generated by a job.
-
URL:
/jobs/{id}/raw-reads
-
Method:
GET
-
Returns:
Data file, report XML, image, and so on.
- Example:
curl http://pssc1:8080/smrtportal/api/jobs/16437/raw-reads?format=fasta
The Protocol Service includes functions that you use to manage the protocols used by secondary analysis jobs.
Use this function to obtain all the active and inactive protocols in the system.
-
URL:
/protocols
-
Method:
GET
-
Returns:
PagedList<Protocol>
Use this function to obtain the names of all the active protocols in the system.
-
URL:
/protocols/names
-
Method:
GET
-
Returns:
List<string>
Use this function to obtain details about a protocol.
-
URL:
/protocols/{id}
-
Method:
GET
-
Parameters:
id=string
-
Returns:
An XML protocol file.
Use this function to add a new protocol to the system.
-
URL:
/protocols/create
(Using POST),/protocols
(Using PUT) -
Method:
POST
,PUT
-
Parameters:
data=Xml(escaped)
(Using POST),Xml
(Using PUT).Xml
a function used for transmission from a web browser, such as the Javascript escape function. -
Returns:
PrimaryKey
Use this function to update a protocol.
-
URL:
/protocols/{id}
-
Method:
POST
,PUT
-
Parameters:
id=string
,data=Xml
-
Returns:
A notice message object.
Use this function to permanently delete a protocol.
-
URL:
/protocols/{id}
-
Method:
DELETE
-
Parameters:
id=string
-
Returns:
A notice message object.
The Sample Sheet Service includes a function to validate a specified sample sheet.
-
URL:
/sample-sheets/validate
-
Method:
POST
-
Parameters:
sampleSheet=SampleSheet
-
Returns:
A notice message object.
The Settings Service includes functions that you use to manage the SMTP host, send test email, manage instrument URIs, and manage the file input paths where SMRT® Portal looks for secondary analysis input, reference sequences, and jobs to import.
Use this function to check how much free space resides on the disk containing the jobs directory, by default located at /opt/smrtanalysis/common/jobs
.
-
URL:
/settings/free-space
-
Method:
GET
-
Returns:
Floating point value between 0 and 1, representing the fraction of disk space that is free.
Use this function to obtain the location of the dropbox where SMRT® Portal looks for jobs to import.
-
URL:
/settings/job-dropbox
-
Method:
GET
-
Returns:
The path for the job dropbox directory.
Use this function to specify the location of the Job Import Dropbox where SMRT® Portal looks for jobs to import.
-
URL:
/settings/job-dropbox
-
Method:
POST
,PUT
-
Parameters:
path=string
-
Returns:
A notice message object.
Use this function to obtain the location of the Reference Sequence Dropbox where SMRT® Portal looks for reference sequences.
-
URL:
/settings/reference-dropbox
-
Method:
GET
-
Returns:
The path for the reference sequence dropbox directory.
Use this function to specify the location of the Reference Sequence Dropbox where SMRT® Portal looks for reference sequences.
-
URL:
/settings/reference-dropbox
-
Method:
POST
,PUT
-
Parameters:
path=string
-
Returns:
A notice message object.
Use this function to obtain the name of the current SMTP host.
-
URL:
/settings/smtp-host
-
Method:
GET
-
Returns:
The host name.
Use this function to specify the name of the SMTP host to use.
-
URL:
/settings/smtp-host
-
Method:
POST
,PUT
-
Parameters:
host=string
-
Returns:
A notice message object.
Use this function to send a test email to the administrator, using the specified SMTP Host.
-
URL:
/settings/smtp-host/test
-
Method:
GET
-
Parameters:
host=string
-
Returns:
A notice message object, then sends an email to the administrator.
Use this function to obtain the file input paths where SMRT® Portal looks for secondary analysis input.
-
URL:
/settings/input-paths
-
Method:
GET
-
Returns:
List<String>
Use this function to add file input paths where SMRT® Portal looks for secondary analysis input.
-
URL:
/settings/input-paths
-
Method:
POST
,PUT
-
Parameters:
data=array of paths
-
Returns:
A notice message object.
Use this function to remove file input paths where SMRT® Portal looks for secondary analysis input.
-
URL:
/settings/input-paths
-
Method:
DELETE
-
Parameters:
data=array of paths
-
Returns:
A notice message object.
Use this function to validate the URI (Universal Resource Identifier) path that specifies where the primary analysis data is stored. You specify the path using the RS Remote software; the path uses the pbids
format.
-
URL:
/settings/validate-path
-
Method:
POST
-
Parameters:
path=string
-
Returns:
A notice message object.
Use this function to obtain the URI (Universal Resource Identifier) that specifies the location of the PacBio® instrument(s) running the Instrument Control Web Services.
-
URL:
/settings/instrument-uris
-
Method:
GET
-
Returns:
List<String>
Use this function to specify the URI (Universal Resource Identifier) that specifies the location of the PacBio® instrument(s) running the Instrument Control Web Services.
-
URL:
/settings/instrument-uris
-
Method:
POST
,PUT
-
Parameters:
data=array of URIs
-
Returns:
A notice message object.
Use this function to remove the URI (Universal Resource Identifier) that specifies the location of the PacBio® instrument(s) running the Instrument Control Web Services.
-
URL:
/settings/instrument-uris
-
Method:
DELETE
-
Parameters:
data=array of URIs
-
Returns:
A notice message object.
Use this function to test the URI (Universal Resource Identifier) that specifies the location of the PacBio® instrument(s) running the Instrument Control Web Services.
-
URL:
settings/instrument-uris/test
-
Method:
POST
-
Parameters:
uri=instrument URI
-
Returns:
A notice message object.
Use this function to check whether users have read-only access to SMRT® Portal without logging in. (Users must still log in to create or modify jobs.)
-
URL:
/settings/restrict-web-access
-
Method:
GET
-
Returns:
True/False
Use this function to specify whether users have read-only access to SMRT® Portal without logging in. (Users must still log in to create or modify jobs.)
-
URL:
/settings/restrict-web-access
-
Method:
POST
,PUT
-
Parameters:
value=true|false
-
Returns:
A notice message object.
Use this function when your organization has written custom software to access SMRT® Pipe, or integrate with a LIMS system. The function checks whether software can have access to certain web services methods without authentication.
-
URL:
/settings/restrict-service-access
-
Method:
GET
-
Returns:
True/False
Use this function when your organization has written custom software to access SMRT® Pipe, or integrate with a LIMS system. The function specifies whether software can have access to certain web services methods without authentication. (The software would supply the credentials programmatically.)
-
URL:
/settings/restrict-service-access
-
Method:
POST
,PUT
-
Parameters:
value=true|false
-
Returns:
A notice message object.
Use this function to specify 1) Whether a user has read-only access to SMRT® Portal and 2) Whether software can use certain web services methods without authentication.
-
URL:
/settings/restrict-access
-
Method:
POST
-
Parameters:
web=true|false
,service=true|false
-
Returns:
A notice message object.
Use this function to obtain the path to the directory used to store archived jobs.
-
URL:
/settings/job-archive
-
Method:
GET
-
Returns:
The path for the job archive directory.
Use this function to set the path to the directory used to store archived jobs.
-
URL:
/settings/job-archive
-
Method:
POST
,PUT
-
Parameters:
path=string
-
Returns:
A notice message object.
The Group Service includes functions that you use to manage groups of SMRT® Portal users.
Use this function to create a new group of users. (Administrators only).
-
URL:
/groups/create
(Using POST),/groups
(Using PUT) -
Method:
POST
orPUT
-
Parameters:
data=Group
(Using POST),group
(Using PUT). In both cases, the name must be unique, andCreatedBy
must be non-null. -
Returns:
PrimaryKey
Use this function to save a specified group of users. (Administrators only).
-
URL:
/groups/{id}
-
Method:
POST
orPUT
-
Parameters:
id=int
,data=group
-
Returns:
A notice message object.
Use this function to delete a specified group of users. (Administrators only).
-
URL:
/groups/{id}
-
Method:
DELETE
-
Parameters:
id=int
-
Returns:
A notice message object.
Use this function to get a list of the names of groups of users on the system. (Administrators only).
-
URL:
/groups/names
-
Method:
GET
-
Returns:
List<String>
Use this function to return information about the groups of users available on the system. (Administrators only).
-
URL:
/groups
-
Method:
GET
,POST
-
Parameters:
options=SearchOptions
-
Returns:
PagedList<Group>
For Research Use Only. Not for use in diagnostic procedures. © Copyright 2010 - 2013, Pacific Biosciences of California, Inc. All rights reserved. Information in this document is subject to change without notice. Pacific Biosciences assumes no responsibility for any errors or omissions in this document. Certain notices, terms, conditions and/or use restrictions may pertain to your use of Pacific Biosciences products and/or third party products. Please refer to the applicable Pacific Biosciences Terms and Conditions of Sale and the applicable license terms at http://www.pacificbiosciences.com/licenses.html.