Skip to content

Graphql Endpoints

rlreamy edited this page Sep 16, 2024 · 43 revisions

Endpoints

Graphql endpoint Description Application
autocomplete Used for the gene and cell type searches Explorer
cellTypeHierarchy returns results for the Cell structure on Explorer home page Explorer
geneExpressionSummary with gene symbol, gives table on sc/sn viz page, with cell type, gives diffex results Explorer
getClusterHieararchies used to build up the cell type summary page results Explorer
getUmapPlotData gets the points to display in the dynamic umap for the sc/sn viz pages Explorer
[dataTypesForConcept] Used to determine which datasets are avaiable based on gene or cluster selected Explorer
[getDataTypeSummaryInformation] Given a gene, will give back the datasets reading this gene and participant counts for the summary pages Explorer
getRTGeneExpressionByTissue gets the necessary data for the Regional Proteomics data visualization across regions Explorer
[getRPGeneExpressionByTissue]
[getRPGeneExpressionByTissueAndProtein]
getRTGeneExpressionByStructure Diffex results for regional transcriptomics Explorer
[getRPGeneExpressionByStructure]
getSummaryData
getDataTypeInformationByParticipant Returns the "Counts By Experimental Strategy" section of the SV Participant report Spatial Viewer
getRepoDataTypeInformationByParticipant Returns the 'Counts By Experimental Strategy' section of the SV Participant report Spatial Viewer
participantSummaryDataset Returns the 'Participant Summary' portion of the Participant reports Repository, Spatial Viewer
getTotalParticipantFilesCount Returns the total files for the participant on the Participant report Repository
getTissueTypeSummaryData
getAtlasSummaryRows Atlas Home
[getAtlasMessages] Atlas Home, Explorer, Spatial Viewer, Repository

autocomplete

ENDPOINT DEFINITION:

autocomplete(searchTerm: String): [AutoCompleteResult]

INPUT

  • searchTerm: REQUIRED (even though it is not marked as such, you will get 0 results if you send a blank string. String is expected to be a partial or full gene symbol OR a cell type, partial or full)
  • Takes in a string that is a full or partial gene symbol

OUTPUT

0 or more

type AutoCompleteResult {
  value: String
  name: String
  type: String
  id: ID
  aliases: [String]
}

DESCRIPTION

Queries the following:

  • MyGene.info for the string provided to look for gene symbols or gene aliases that contain the provided string.
  • Cell types in the knowledge environment containing the provided string
  • Cell type synonyms containing the provided string
  • Cell type structure regions containing the provided string
  • Cell type structure subregions containing the provided string

Converts the results into a common class so the front-end can interpret the results from either gene or cell type.

Method in Query.java

public List<AutocompleteResult> autocomplete(String searchTerm) throws IOException, Exception


cellTypeHierarchy

ENDPOINT DEFINITION:

cellTypeHierarchy: CellTypeHierarchy

INPUT

-None-

OUTPUT

Returns 1:

 type CellTypeHierarchy {
   cellTypeRegions: [CellTypeStructureRegion]
 }

 type CellTypeStructureRegion {
   cellTypeSubregions: [CellTypeStructureSubregion]
   regionName: String
 }

 type CellTypeStructureSubregion {
   cellTypes: [CellType]
   subregionName: String
 }

 type CellType {
 	cellType: String
 }

Example:

{
   cellTypeRegions: [
     regionName: "Glomerulus / Renal Corpuscle",
     cellTypeSubregions: [
       subregionName: "Glomerular Parietal Epithelium", 
       cellTypes: [
         cellType: "Parietal Epithelial Cell"
       ], 
     ],
   ]
}

DESCRIPTION

This queries the Knowledge Environment to determine the overall structure of cell types within the Kidney. It is currently used on the Explorer home page on the tissue structure diagram at the bottom of the page.

Method in Query.java

public CellTypeHierarchy getCellTypeHierarchy() throws IOException


geneExpressionSummary

ENDPOINT DEFINITION:

geneExpressionSummary(dataType: String, geneSymbol: String, cellType: String, tissueType: String) : [GeneExpressionSummary]

INPUT

This endpoint is overloaded, and thus all of these values are optional. See description to explain what is returned based on what is provided.

  • dataType: OPTIONAL (ex: single-cell, single-nuc, etc)
  • geneSymbol :OPTIONAL
  • cellType : OPTIONAL
  • tissueType: OPTIONAL (ex: ckd, aki, etc)

OUTPUT

Returns 0 or more:

type GeneExpressionSummary {
    id: ID
    tissueType: String
    gene: String
    pVal: Float
    pValAdj: Float
    foldChange: Float
    pct1: Float
    pct2: Float
    avgExp: Float
    cluster: String
    clusterName: String
    dataType: String
    cellCount: Int
}

DESCRIPTION

When the user provides a gene symbol, data type and tissue type it returns the gene expression information for that gene, tissue type, data type provided. This is currently used on the Explorer visualization page to populate the table for single-cell and single-nuc data.

If data type is not provided, we get the results for BOTH single-cell and single-nuc data. NOTE I do not know where this call is used.

When the user provides a cell type, data type and tissue type it returns a list of responses for each gene for the given cell type, tissue type and data type. This is currently used on the Explorer differential expression page that you can see when selecting a cell type.

Method in Query.java

public List<? extends GeneExpressionSummary> geneExpressionSummary(String dataType, String geneSymbol, String cellType, String tissueType) throws IOException


getClusterHieararchies

ENDPOINT DEFINITION:

getClusterHieararchies(cellType: String!): [ClusterHierarchy]

INPUT

  • cellType: REQUIRED

OUTPUT

Returns a list of:

type ClusterHierarchy {
	cellType: String
	cellTypeId: Int
	structureRegion: String
	structureSubregion: String
	clusterId: Int
	clusterName: String
	isSingleNucCluster: String
	isSingleCellCluster: String
        isRegionalTranscriptomics: String
        cellTypeOrder: Float
}

DESCRIPTION

Builds up the cluster hierarchies that we use in Explorer on the cluster summary page. We gather the set of clusters and determine whether they belong in Single Cell, Single Nuc, Regional Transcriptomics, or Regional Proteomics via a view built on top of views.

Method in Query.java

public CellTypeHierarchy getCellTypeHierarchy() throws IOException


getUmapPlotData

ENDPOINT DEFINITION:

getUmapPlotData(dataType: String!, geneSymbol: String!, tissueType: String): PlotData

INPUT

  • dataType: REQUIRED (ex: single-cell, single-nuc, etc)
  • geneSymbol: REQUIRED
  • tissueType: OPTIONAL (ex: ckd, aki, etc)

OUTPUT

type PlotData {
   referenceData: [ReferenceCluster] 	
   featureData: [FeatureData]
}

type ReferenceCluster {
   xValues: [Float]
   yValues: [Float]
   color: String
   clusterName: String
   clusterAbbreviation: String
}

type FeatureData {
   xValues: [Float]
   yValues: [Float]
   expression: [Float]
   hoverDisplay: [String]
}

DESCRIPTION

The method will get the

Method in Query.java


dataTypesForConcept

ENDPOINT DEFINITION: dataTypesForConcept(geneSymbol: String, clusterName: String): [String]

INPUT

OUTPUT

DESCRIPTION

Method in Query.java


getRTGeneExpressionByTissue

ENDPOINT DEFINITION:

getRTGeneExpressionByTissue(comparisonType: String, geneSymbol: String): RTGeneExpressionByTissue

INPUT

  • comparisonType: OPTIONAL (options are "all_segments" or "glom_tub". If not provided or does not match, method returns null)
  • geneSymbol: OPTIONAL (if empty or not found, no results will be returned)

OUTPUT

type RTGeneExpressionByTissue {
    all: [RTGeneExpression]
    hrt: [RTGeneExpression]
    ckd: [RTGeneExpression]
    dmr: [RTGeneExpression]
    aki: [RTGeneExpression]
}

type RTGeneExpression {
    id: ID
    geneSymbol: String
    segment: String
    segmentName: String
    foldChange: Float
    pVal: Float
    stdDev: Float
    pValLog10: Float
    tissueType: String
    sampleCount: Int
}

DESCRIPTION

This endpoint is used for getting the necessary data for the Regional Proteomics data visualization across regions. It takes in whether it is getting the data for the more fine-grained regions, or just the glom v tub visualization as well as which gene is measured. We return a list of gene expression objects per disease type (aki, ckd, etc). These objects contain information on which segment they measure, as well as some additional statistics that are used to generate the graph on the regionalViz page for Regional Transcriptomics.

Method in Query.java

public RTExpressionByTissueType getRTGeneExpressionByTissue(String comparisonType, String geneSymbol)


getRTGeneExpressionByStructure

ENDPOINT DEFINITION:

getRTGeneExpressionByStructure(structure: String!): [RTGeneExpression]

INPUT

  • structure: REQUIRED (cell structure)

OUTPUT

type RTGeneExpression {
    id: ID
    geneSymbol: String
    segment: String
    segmentName: String
    foldChange: Float
    pVal: Float
    stdDev: Float
    pValLog10: Float
    tissueType: String
    sampleCount: Int
}

DESCRIPTION

Returns the diffex results for Regional Transcriptomics. Given a structure (cell/cluster) it will get all of the diffex results across all genes.

Method in Query.java

public List<? extends RTExpressionData> getRTGeneExpressionByStructure(String structure) throws Exception


getSummaryData

ENDPOINT DEFINITION:

getSummaryData: [GeneDatasetInformation]

INPUT

OUTPUT

DESCRIPTION

Method in Query.java


getDataTypeInformationByParticipant

ENDPOINT DEFINITION:

getDataTypeInformationByParticipant(redcapId: String!): ParticipantDataTypeSummary

INPUT

  • redcapId: REQUIRED

OUTPUT

type ParticipantDataTypeSummary {
  spatialViewerDataTypes: [ParticipantDataTypeInformation]
  explorerDataTypes: [ParticipantDataTypeInformation]
}

type ParticipantDataTypeInformation {
  dataType: String
  count: Long
  isAggregatedData: Boolean
}

DESCRIPTION

Used in the Spatial Viewer Participant Report to fill in the "Counts By Experimental Strategy" section of the report.

Method in Query.java

public ParticipantDataTypeSummary getDataTypeInformationByParticipant(String redcapId)


participantSummaryDataset

ENDPOINT DEFINITION:

participantSummaryDataset(redcapId: String!): ParticipantSummaryDataset

INPUT

  • redcapId: REQUIRED

OUTPUT

type ParticipantSummaryDataset {
  participantId: String
  redcapId: String
  tissueType: String
  clinicalData: String
}

DESCRIPTION

Used on the Participant Report inside of Atlas Repository and Atlas Spatial Viewer to fill in the Participant Summary section at the top of the report. Also used to get the clinical data for the Atlas Repository and Atlas Spatial Viewer Participant Report Clinical sections.

Method in Query.java

public ParticipantSummaryDataset participantSummaryDataset(String redcap_id) throws Exception


getTissueTypeSummaryData

ENDPOINT DEFINITION:

getTissueTypeSummaryData: [ParticipantTissueTypeSummary]

INPUT

OUTPUT

DESCRIPTION

Method in Query.java

getAtlasSummaryRows

ENDPOINT DEFINITION:

getAtlasSummaryRows: AtlasRepoSummaryResult

INPUT

No input

OUTPUT

type AtlasRepoSummaryResult {
  totalFiles: Int
  summaryRows: [AtlasRepoSummaryRow]
}

type AtlasRepoSummaryRow {
  akiCount: Long
  ckdCount: Long
  hrtCount: Long
  dmrCount: Long
  omicsType: String
  linkInformation: AtlasRepositoryLinkInformation
}

DESCRIPTION

Returns the file counts per tissue type for each -omics type.

Method in Query.java

public AtlasRepoSummaryResult getAtlasSummaryRows() throws Exception

getRepoDataTypeInformationByParticipant

ENDPOINT DEFINITION:

getDataTypeInformationByParticipant(redcapId: String!): ParticipantDataTypeSummary

INPUT

  • redcapId: REQUIRED

OUTPUT

type ParticipantDataTypeSummary {
  spatialViewerDataTypes: [ParticipantDataTypeInformation]
  explorerDataTypes: [ParticipantDataTypeInformation]
}

type ParticipantDataTypeInformation {
  dataType: String
  count: Long
  isAggregatedData: Boolean
}

DESCRIPTION

Used by the Participant Report in Spatial Viewer to give the results seen in the 'Counts By Experimental Strategy' table. Gets the number of datasets (or files) for each data type (experiment type) for a given participant. It is split between Spatial Viewer data types and Explorer data types so that we can create the necessary links to the data in the front-end.

Method in Query.java

public ParticipantDataTypeSummary getDataTypeInformationByParticipant(String redcapId)


getTotalParticipantFilesCount

ENDPOINT DEFINITION:

getTotalParticipantFilesCount(redcapId: String!): ParticipantRepoDataTypeInformation

INPUT

  • redcapId: REQUIRED

OUTPUT

type ParticipantRepoDataTypeInformation {
  dataType: String
  count: Long
  linkInformation: AtlasRepoSummaryLinkInformation
}

type AtlasRepoSummaryLinkInformation {
  linkType: String
  linkValue: String
}

DESCRIPTION

Used on the Atlas Repository Participant Info page to get the total number of files in the Repository for this participant. It also includes link information to allow a user to click the number and filter to those files. Found on the top right of the Participant Report in Atlas Repository.

Method in Query.java

public ParticipantRepoDataTypeInformation getTotalParticipantFilesCount(String redcap_id) throws Exception {