Wiki

Clone wiki

JStruct / Overview

<< return to Home page


Functionality

JStruct is a Java-based, free-distribution (*see License), custom-developed, browser-based application using additional open-source software as part of the development. The system stores three-dimensional macromolecular structure files (PDB, CIF, MOE, etc), as well as information parsed from their content.

In addition to storing the structure file and its data, JStruct:

  • provides direct URLs for these files (both downloads and content) allowing other systems direct access to the structure files.
  • allows for the creation of FASTA files that can used in BLAST database searches.

home.png

Structure Storage

The primary purpose of JStruct is for "the storage and retrieval of public and proprietary three-dimensional macromolecular structures". These file are retrieved from:

  • Public: All structure files from the RCSB Protein Data Bank (http://www.rcsb.org/) in PDB or CIF format. Once an initial deposit of files is downloaded into JStruct from the RCSB, automated updates can be configured to import weekly updates from the RCSB. Within JStruct, all users have the ability to view all public structure files.

  • Proprietary: Manually uploaded (single, or in bulk) structure files; supported formats include: PDB, CIF, and MOE. When uploading these 'private' structure files, the owner has the ability identify read/view/grant permissions to other JStruct users. note: these manually uploaded files are only stored in the local system, and unavailable to anyone without a JStruct login.

Structure Data

Uploaded files are read and parsed, the data is then stored in a relational (structured) database. Data for each structure file is presented in a page specific to that structure (with a unique URL for bookmarking), where users (if logged in) can add notes, labels, and mark structures as favorites.

Additional data for manually uploaded files can be edited, and newer versions of the file can be uploaded when structure data is updated.

4hhb.png

Searching

Structure data can searched based on a variety of customizable queries, which can be combined to form robust multi-part searches. Searches can be named, saved and revisited at later times.

jstruct_search.png


Roles/Permissions

JStruct integrates with LDAP for authentication, and a user needs to be logged into the application to get the full set of permissions assigned to them. Assignable roles are:

  • Guest: Not logged in users. Permissions include viewing and searching for structures.

  • Contributor: Guest plus uploading structure files and saving searches.

  • Admin: Contributor plus managing automated/manual processes, lists, and users.

Users can assign read, write, and grant permissions on each manually uploaded structure file; these file permissions can be assigned to all or specific users.

permissions.png


Admin

The Admin role includes enhanced permissions for managing JStruct. This includes:

  • Schedule: Start/Stop the automated process that retrieves weekly updates from the RCSB PDB.

  • Admin Actions: Ability to initiate additional processes related to downloading or re-processing structure file data.

  • Manage Lists: Add, edit and remove items from the Program and Client lists.

  • Users/Roles: Add and manage JStruct users and assign appropriate roles.

  • Properties: Update property values used throughout the application, such as import schedule, email addresses, structure prefix, default URLs, etc.


Web Services

File Download URLs

URL example Comment File Source
http://server:port/jstruct/api/structure/JSTRUCT-12345/file download a specific RCSB file using the JSTRUCT ID RCSB
http://server:port/jstruct/api/structure/4HHB/file download a specific RCSB file using the PDB ID RCSB
http://server:port/jstruct/api/structure/JSTRUCT-12345/file?current download the current version of a RCSB file using the JSTRUCT ID RCSB
http://server:port/jstruct/api/structure/4HHB/file?current download the current version of a RCSB file using the PDB ID RCSB
http://server:port/jstruct/api/structure/JSTRUCT-12345.6/file download a specific manually uploaded file using the JSTRUCT ID manual
http://server:port/jstruct/api/structure/JSTRUCT-12345/file download the current version of a manually uploaded file using the JSTRUCT ID manual
http://server:port/jstruct/api/structure/JSTRUCT-12345/file download a 'coordinates only' PDB formatted file (only if original file is in MOE format) manual

File Display URLs

URL example Comment File Source
http://server:port/jstruct/api/structure/JSTRUCT-12345/display content only of a specific RCSB file using the JSTRUCT ID RCSB
http://server:port/jstruct/api/structure/4HHB/display content only of a specific RCSB file using the PDB ID RCSB
http://server:port/jstruct/api/structure/JSTRUCT-12345/display?current content only of the current version of a RCSB file using the JSTRUCT ID RCSB
http://server:port/jstruct/api/structure/4HHB/display?current content only of the current version of a RCSB file using the PDB ID RCSB
http://server:port/jstruct/api/structure/JSTRUCT-12345.6/display content only of a specific manually uploaded file using the JSTRUCT ID manual
http://server:port/jstruct/api/structure/JSTRUCT-12345/display content only of the current version of a manually uploaded file using the JSTRUCT ID manual

FASTA File URLs

Creating a FASTA File URL is a bit tricky as the caller needs to know the subquery syntax; the following can be used as an example, however it is much easier to use the Search UI to download FASTA files based on the selected search results.

Example with two subqueries:

http://server:port/jstruct/api/sequence/fastafile?sequence_from=SEQRES&chain_types=PROTEIN,NUCLEIC_ACID&output_file_name=seqres.fasta&file_status_rcsb=FILE_STATUS_ACTIVE&file_status_manual=FILE_STATUS_ALL&query_mode=OR&subquery=OWNER;selectedOwnerEqualsOption:OPTION_EQUALS;selectedOwner:jdoe&subquery=TITLE;selectedTitleEnhancedText:OPTION_CONTAINS;inputTitle:banana

example URL creation:

  /api/sequence/fastafile?

     sequence_from=          SEQRES | ATOM 
     chain_types=            PROTEIN | NUCLEIC_ACID | ... (one or more of)

     output_file_name=       anyname.fasta 

     file_status_rcsb=       FILE_STATUS_ACTIVE | FILE_STATUS_OBSOLETE | FILE_STATUS_ALL | FILE_STATUS_NONE 
     file_status_manual=     FILE_STATUS_ACTIVE | FILE_STATUS_OBSOLETE | FILE_STATUS_ALL | FILE_STATUS_NONE 
     query_mode=             AND | OR 

     subquery=               TITLE;foo1:bar1;foo2:bar2,bar2b;foo3:bar3 
     subquery=               OWNER;foo1:bar1

     subquery types: FULL_TEXT | IDENTIFIER | SEQUENCE | LABEL | EVERYTHING | ANY_HEADER | TITLE | AUTHOR | OWNER | MODEL | DEPOSIT_DATES | PDB_REMARK | JRNL | COMPND | SOURCE | etc

Updated