Skip to content

Entity Viewer Sidebar Payload

Manoj Pandian Sakthivel edited this page Feb 28, 2020 · 19 revisions

GraphQL Schema:

type Assembly {
  name: String!
  accession_id: String!
  species: Species!
}

type Species {
  scientific_name: String!
  name: String
  strains: [Strain!]
}

type Allele = {
    allele_name: String!,
    stable_id: String!
}

type Homeologue = {
    type: string,
    stable_id: string
}

type Strain = {
    strain_name: string,
    stable_id: string
}

type Attribute = {
    description: String!
    displayName: String!
    code: String!
}

type MetadataSource {
  name: String!
  uri: String!
}

type Metadata {
  key: String!
  value: String!
  source_uri: String!
  source: MetadataSource!
}

type Xref { 
    description: String
    label: String!
    value: String!
}

type GeneAttribute {
    value: String!
    attribute_type: String!
}


type Gene { 
    symbol: String!
    externl_reference: Xref!
    additional_attributes: [Attribute]
    metadata {
        function: Metadata
        name: Metadata!
        synonyms: [Metadata!]!
    }
    allele { 
        alternative_alleles: [Allele]
    }
    assembly {
        current_assembly: Assembly!
        other_assemblies: [Assembly]
    }
    homeologues: [Homeologue] ???
}

Suggested structure of the transformed payload:

type Option = {
    "value": string,
    "label": string
};

type ExternalLink = {
    "label": string | null,
    "url": string,
    "anchor_text": string
}

type Assembly = {
    "species_name": string,
    "assembly_name": string,
    "stable_id": string
}

type Allele = {
    "allele_name": string,
    "stable_id": string
}

enum DataSetType{
    "Current assembly",
    "Gene",
    "Protein"
}

type DataSet = {
    "type": DataSetType,
    "stable_id": string
}

type Homeologue = {
    "type": string,
    "stable_id": string
}

type Strain = {
    "strain_name": string,
    "stable_id": string
}

type AdditionalAttribute = {
    description,
    displayName,
    code
}
type EntityViewerSidebarResponse = {
    "gene_symbol": string,
    "gene_name": string,
    "stable_id" : string,
    "dbprimary_acc" : string, // HGNC:1101
    "synonyms": string[],
    "additional_attributes" : AdditionalAttribute[],
    "function": {
        "description": string | null,
        "provider" : ExternalLink
    },
    "sequence": {
        "transcripts" : Option[],
        "gene": Option[], // Find out if there is any indication to enable these options
        "tark_url" : ExternalLink
    },
    "other_data_sets": DataSet[],
    "other_assemblies": {
        "assemblies": Assembly[],
        "strains": Strain[]
    },
    "homeologues": Homeologue[],
    "alternative_alleles" : Allele[],
    "external_references" : ExternalLink[]

}

Questions to ask Kieron:

  • Display name for biotypes
  • A way to retrieve alternative assemblies { assemblies -> gene_id => {species, name}}
  • Specifically retrieve all the external references from the metadata

Clone this wiki locally