The final configuration will likely change!

Options

The options object is used by developers to specified some options related to the information displayed and the way that it is shown. Configuration
{
    "target": string --mandatory, div name where the component should be displayed.
    "width": int --optional, 600 by default, pixels used to display the sequence when not zoomed. If more than 25 pixels per
            amino acid are available, the width will be adjust.
    "useShapes": true/false --optional, false by default, should predefined shapes for one single aa be used?
    "clickable": boolean --optional, true by default, should the features be clickable?
    "useTooltips": boolean --optional, false by default, should a tooltip be displayed on the mouse over? The tooltip
            will contain information about the type label, cvid, UniProt feature id, start and end positions.
    "ftHeight": int --optional, 10 by default, how many pixels should be used to display the rectangles?
    "transparency": double --optional, 0.3 by default, which transparency should be applied to inside the shapes and
            rectangles?
    "featuresModel": object --A JSON object containing the sequence and categories
}
        

Features model

FeatureModel The features model is the one that should provide all the information related with sequences, categories, types, and features. This is most likely the object provided by web services in order to get the information to be displayed in the visual components.
{
    "sequence": String --sequence of amino acids
    "categories": [Array of Category] --array of categories with types and features
}
    

Categories, types, and features

Category
{
    "category": String --category name in a human readable way.
    "types": [Array of Type]
}
    
Type
{
    "type": String --type name, see documentation about FT types.
        ACT_SITE (circle), METAL (diamond), SITE (chevron), BINDING (cat face), MOD_RED (triangle), LIPID (wave),
        CARBOHYD (hexagon), and NON_STD (pentagon pointing down), NON_TER (trapezium), and NON_CONS (trapezium) are used to determine the corresponding shape, see our
        dictionary for more information about shapes, colors, and endings.
    "label": String --label to be displayed
    "cvid": String --controlled vocabulary id
    "locations": [Array of Location]
}
    
Location #Currently supported types: POSITION, BRIDGE, and CONTINUOUS
{
    "locationType": String --mandatory, any of "POSITION", "BRIDGE", "CONTINUOUS", "PROBABLE_POSITION", "RANGE_POSITION",
        "CONTINUOUS_WITH_UNCERTAINTY", "CONTINUOUS_WITH_RANGE", "CONTINUOUS_WITH_ENVELOPE", "DISCONTINUOUS"
    "features": [Array of Feature] --mandatory
}
    
Feature
{
    "ftid": String --mandatory, unique made-up feature id
    "id": String --optional, internal UniProt feature id
    "description": String --optional
    "status": String --optional, one of "By similarity", "Curated", etc.
    "evidence": [Array of Evidence] --optional

    #Depending on the location containing a feature, different *mandatory* information will be required

    #POSITION
    #usually begin and end should be the same but in some special cases it could be that one-single-aa feature
    #actually has more than one amino acid, so far 2 is possible as well.
    "begin": int --exact position of the amino acid
    "end": int --exact position of the amino acid

    #PROBABLE_POSITION
    "positions": [{
        "position": int --probable position of the amino acid
        "probability": double --reported probability for that position
    }]

    #RANGE_POSITION
    "begin": int --initial position of the range where the feature can occur
    "end": int --final position of the range where the feature can occur
            "position": int --probable position of the amino acid
            "probability": double --reported probability for that position
        }]

    #BRIDGE
    #Some times bridges are formed between two proteins, in those cases, start and end will have the same value
    "begin": int --initial position of the bridge
    "end": int --final position of the bridge

    #CONTINUOUS
    "begin": int --exact initial position of the feature
    "end": int --exact final position of the feature

    #CONTINUOUS_WITH_UNCERTAINTY
    #Recommended only when one of the endings has any kind of uncertainty, if both endings are know, use Continuous
    #start and end uncertainties, will impact the edge style:
    #"-" exact position
    #"~" (around the given position, 1 before, 1 after),
    #"<" (before the given position),
    #">" (after the given position)
    #any unknown symbol will be interpreted as "-"
    #any omitted uncertainty will be interpreted as "-"
    "beginUncertainty": String, one char only --optional, edge style, see comment above
    "begin": int --initial position of the feature
    "endUncertainty": String, one char only --optional, edge style, see comment above
    "end": int --final position of the feature

    #CONTINUOUS_WITH_RANGE
    #Recommenden only when at least one of the edges is a range
    "beginBegins": int --initial start position
    "beginEnds": int --final start position (if equals to startStart edge will be straight rather than range)
    "endBegins": int --initial end position
    "endEnds": int --final end position (if equals to endStart edge will be straight rather than range)

    #CONTINUOUS_WITH_ENVELOPE
    "envelopeBegins": int --initial position of the envelope
    "begin": int --initial position of the feature, must be >= envelopeStart (if equals to envelopeStart edge will look like straight)
    "end": int --final position of the feature
    "envelopeEnds": int --final position of the envelope, must be >= end (if equals to end edge will look like straight)

    #DISCONTINUOUS
    "regions": [
        {
            "begin": int --exact initial position of the sub-feature
            "end": int --exact final position of the sub-feature
        }
    ]
}
    
Evidence
{
    #According to uk.ac.ebi.kraken.xml.jaxb.uniprot.EvidenceType, evidences have 1 numeric key and 1 ECO type as attributes, and 1 ImporteFrom and 1 SourceType as fields
    #We include in our json the type and SourceType
    #According to uk.ac.ebi.kraken.xml.jaxb.uniprot.SourceType, sources for evidences have 1 numeric ref as attribute and 1 DBReferenceType as fields
    #We include in our json either the ref of the DBReferenceType object
    "type": String --evidence code from ECO controlled vocabulary, must start by ECO:
    "source": Source --optional
        #Either a DBReference when the source corresponds to a database
        {
            "dbReferenceType": String --database reference type supporting the evidence
            "dbReferenceId": String --database reference id supporting the evidence
        }
        #Or a numeric reference when the source corresponds to an internal UniProt citation with no PubMed ID
        {
            "ref": Integer
        }
}
    

Location and features examples

POSITION, PROBABLE_POSITION, RANGE_POSITION

For a particular type, this example shows features covering one single amino acid (occasionally it can be two)

"locations": [
    {
        "locationType": "POSITION",
        "features": [
            {
                #Example: Glycosilation at position 5
                
                "ftid": "only one aa (ideally)",
                "begin": 5, "end": 5
            }
            #More POSITION features here
        ]
    },
    {
        "locationType": "PROBABLE_POSITION",
        "features": [
            {
                #Example: Glycosilation (no shapes in use) at position 5 with 80% of probability, and position 7 with 20% of probability
                
                "ftid": "probabilities",
                "positions": [{"position": 5, "probability": 80.0}, {"position": 7, "probability": 20.0}]
            }
            #More PROBABLE_POSITION features here
        ]
    },
    {
        "locationType": "RANGE_POSITION",
        "features": [
            {
                #Example: Glycosilation (no shapes in use) at some position between 21 and 38
                
                #Example: Glycosilation at some position between 21 and 38
                
                "ftid": "position in range",
                "begin": 21, "end": 38
            }
            #More RANGE_POSITION features here
        ]
    }
]

BRIDGE

For a particular type, this example shows bridge features.

"locations": [
    {
        "locationType": "BRIDGE",
        "features": [
            {
                #Example: Disulphide bond bridging positions 10 and 31
                
                "ftid": "bridge",
                "begin": 10, "end": 31
            }
            #More BRIDGE features here
        ]
    }
]

CONTINUOUS, CONTINUOUS_WITH_UNCERTAINTY, CONTINUOUS_WITH_RANGE, CONTINUOUS_WITH_ENVELOPE, DISCONTINUOUS

For one particular type, this example shows locations and their corresponding features covering a region of amino acids.

"locations": [
    {
        "locationType": "CONTINUOUS",
        "features": [
            {
                #Example: Motif from 234 to 287
                
                "ftid": "a continuous region",
                "begin": 250,
                "end": 287
            }
            #More CONTINUOUS features here
        ]
    },
    {
        "locationType": "DISCONTINUOUS",
        "features": [
            {
                #Example: Discontinuous domain from 234 to 250 and then from 261 to 274
                
                "ftid": "a discontinuous domain",
                "regions": [{"begin": 234, "end": 250}, {"begin": 261, "end": 274}]
            }
            #More DISCONTINUOUS features here
        ]
    },
    {
        "locationType": "CONTINUOUS_WITH_UNCERTAINTY",
        "features": [
            {
                #Example: Region starting around 230, ending exactly at 287 (uncertainty omitted, interpreted as "-")
                
                "ftid": "another region",
                "beginUncertainty": "~", "begin": 230,
                "end": 287
            },
            {
                #Example: Region starting after 250, ending exactly at 287 (uncertainty explicit "-")
                
                "ftid": "another region",
                "beginUncertainty": ">", "begin": 250,
                "endUncertainty": "-", "end": 287
            }
            #More CONTINUOUS_WITH_UNCERTAINTY features here
        ]
    }
]

JSON sample file including options

Options object

{
    "target": "target_div",
    "featuresModel": featuresModel
}
        

Options by default: width:600, useShapes: true, useTooltips: false, clickable: true, ftHeight: 10, transparency: 0.3

Features model

{
    "sequence": "ARTWYVQDDCELIFKMSTTTWYVDNMMRRTYWVARTWYVQDDCELIFKMSTTTWYVDNMMRRTYWVARTWYVQDDCELIFKMSTTTWYVDNMMRRTYWV",
    "categories": [
        {
            "category": "Domains and sites",
            "types": [
                {
                    "type": "ACT_SITE",
                    "label": "Active site",
                    "cvid": "SO:0001104",
                    "locations": [
                        {
                            "locationType": "POSITION"
                            "features": [
                                {
                                    "ftid": "only one aa",
                                    "id": "PRO0001",
                                    "description": "Proton acceptor",
                                    "status": "By similarity",
                                    "evidence": [
                                        {
                                            "type": "ECO:0000022",
                                            "source": {"dbReferenceType": "PubMed", "dbReferenceId":"1234567"}
                                        }
                                    ],
                                    "begin": 5, "end": 5
                                }
                            ]
                        },
                        {
                            "locationType": "PROBABLE_POSITION",
                            "features": [
                                {
                                    "ftid": "probabilities",
                                    "positions": [
                                        {"position": 5, "probability": 80.0},
                                        {"position": 7, "probability": 20.0}
                                    ]
                                }
                            ]
                        },
                        {
                            "locationType": "RANGE_POSITION",
                            "features": [
                                {
                                    "ftid": "position in range",
                                    "begin": 21, "end": 38
                                }
                            ]
                        }
                    ]
                },
                {
                    "type": "COIL",
                    "label": "Coiled coil",
                    "cvid": "SO:0001080",
                    "locations": [
                        {
                            "locationType": "CONTINUOUS",
                            "features": [
                                {
                                    "ftid": "a continuous region",
                                    "evidence": [
                                        {
                                            "type": "ECO:0000022",
                                            "source": {"ref": 5}
                                        }
                                    ],
                                    "begin": 234, "end": 287
                                }
                            ]
                        },
                        {
                            "locationType": "CONTINUOUS_WITH_UNCERTAINTY",
                            "features": [
                                {
                                    "ftid": "another region around a start",
                                    "beginUncertainty": "~", "begin": 230, "end": 287
                                },
                                {
                                    "ftid": "region before",
                                    "beginUncertainty": "<", "begin": 240, "endUncertainty": "-", "end": 280
                                },
                                {
                                    "ftid": "region after",
                                    "location": {
                                        "beginUncertainty": ">", "begin": 250, "endUncertainty": "-", "end": 290
                                },
                                {
                                    "ftid": "another after the ending",
                                    "beginUncertainty": "-", "begin": 180, "endUncertainty": ">", "end": 230
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "category": "Structural features",
            "types": [
                {
                    "type": "DISULFIDE",
                    "label": "Disulfide bond",
                    "cvid":  "MOD:00689",
                    "locations": [
                        {
                            "locationType": "BRIDGE",
                            "features": [
                                {
                                    "ftid": "bridge",
                                    "evidence": [
                                        {
                                            "type": "ECO:0000006",
                                            "source": {"dbReferenceType": "PubMed", "dbReferenceId":"1234567"}
                                        }
                                    ],
                                    "begin": 5, "end": 31
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "category": "Molecule processing",
            "types": [
                {
                    "type": "PEPTIDE",
                    "Label": "Signal Peptide",
                    "cvid": "SO:0000418",
                    "locations": [
                        {
                            "locationType": "CONTINUOUS",
                            "features": [
                                {
                                    "ftid": "feature sp1",
                                    "begin": 1, "end": 21
                                }
                            ]
                        }
                    ]
                },
                {
                    "type": "CHAIN",
                    "label": "Mature region",
                    "cvid": "SO:0000419",
                    "locations": [
                        {
                            "locationType": "CONTINUOUS",
                            "features": [
                                {
                                    "ftid": "a chain with a lable",
                                    "id": "PRO_0000410576",
                                    "begin": 22, "end": 480
                                },
                                {
                                    "ftid": "another chain",
                                    "begin": 22, "end": 296
                                },
                                {
                                    "ftid": "next chain",
                                    "begin": 297, "end": 380
                                },
                                {
                                    "ftid": "last chain",
                                    "begin": 300, "end": 382
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "category": "Post translational modifications",
            "types": [
                {
                    "type": "PTM",
                    "label": "Modified residue",
                    "cvid": "SO:0001089",
                    "locations": [
                        {
                            "locationType": "POSITION",
                            "features": [
                                {
                                    "ftid": "feature_7",
                                    "begin": 22, "end": 22
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}