diff --git a/.$model.drawio.bkp b/.$model.drawio.bkp new file mode 100644 index 0000000..31ee13a --- /dev/null +++ b/.$model.drawio.bkp @@ -0,0 +1,847 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api_docs.json b/api_docs.json new file mode 100644 index 0000000..89e632a --- /dev/null +++ b/api_docs.json @@ -0,0 +1,4383 @@ +{ + "swagger": "2.0", + "info": { + "description": "A web service for supplying JSON formatted data to cBioPortal clients. Please note that this API is currently in beta and subject to change.", + "version": "1.0 (beta). Backwards compatibility will be maintained (after 1.0 release)", + "title": "cBioPortal web Public API [Beta]", + "contact": { + "name": "cBioPortal", + "url": "https://www.cbioportal.org", + "email": "cbioportal@googlegroups.com" + }, + "license": { + "name": "License", + "url": "https://github.com/cBioPortal/cbioportal/blob/master/LICENSE" + } + }, + "host": "www.cbioportal.org", + "basePath": "/api", + "tags": [ + { "name": "Cancer Types" }, + { "name": "Studies" }, + { "name": "Patients" }, + { "name": "Samples" }, + { "name": "Sample Lists" }, + { "name": "Clinical Attributes" }, + { "name": "Clinical Data" }, + { "name": "Molecular Data" }, + { "name": "Molecular Profiles" }, + { "name": "Mutations" }, + { "name": "Discrete Copy Number Alterations" }, + { "name": "Copy Number Segments" }, + { "name": "Genes" }, + { "name": "Gene Panels" }, + { "name": "Generic Assays" }, + { "name": "Generic Assay Data" }, + { "name": "Info" }, + { "name": "Gene Panel Data", "description": " " }, + { + "name": "Server running status", + "description": "This end point does not require authentication" + }, + { "name": "Treatments", "description": " " } + ], + "paths": { + "/cancer-types": { + "get": { + "tags": ["Cancer Types"], + "summary": "Get all cancer types", + "operationId": "getAllCancerTypesUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "cancerTypeId", + "dedicatedColor", + "name", + "parent", + "shortName" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/TypeOfCancer" } + } + } + } + } + }, + "/cancer-types/{cancerTypeId}": { + "get": { + "tags": ["Cancer Types"], + "summary": "Get a cancer type", + "operationId": "getCancerTypeUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "cancerTypeId", + "in": "path", + "description": "Cancer Type ID e.g. acc", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/TypeOfCancer" } + } + } + } + }, + "/clinical-attributes": { + "get": { + "tags": ["Clinical Attributes"], + "summary": "Get all clinical attributes", + "operationId": "getAllClinicalAttributesUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "clinicalAttributeId", + "datatype", + "description", + "displayName", + "patientAttribute", + "priority", + "studyId" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalAttribute" } + } + } + } + } + }, + "/clinical-attributes/fetch": { + "post": { + "tags": ["Clinical Attributes"], + "summary": "Fetch clinical attributes", + "operationId": "fetchClinicalAttributesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "in": "body", + "name": "studyIds", + "description": "List of Study IDs", + "required": true, + "schema": { "type": "array", "items": { "type": "string" } } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalAttribute" } + } + } + } + } + }, + "/clinical-data/fetch": { + "post": { + "tags": ["Clinical Data"], + "summary": "Fetch clinical data by patient IDs or sample IDs (all studies)", + "operationId": "fetchClinicalDataUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "clinicalDataMultiStudyFilter", + "description": "List of patient or sample identifiers and attribute IDs", + "required": true, + "schema": { "$ref": "#/definitions/ClinicalDataMultiStudyFilter" } + }, + { + "name": "clinicalDataType", + "in": "query", + "description": "Type of the clinical data", + "required": false, + "type": "string", + "default": "SAMPLE", + "enum": ["PATIENT", "SAMPLE"] + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalData" } + } + } + } + } + }, + "/copy-number-segments/fetch": { + "post": { + "tags": ["Copy Number Segments"], + "summary": "Fetch copy number segments by sample ID", + "operationId": "fetchCopyNumberSegmentsUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "name": "chromosome", + "in": "query", + "description": "Chromosome", + "required": false, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "in": "body", + "name": "sampleIdentifiers", + "description": "List of sample identifiers", + "required": true, + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/SampleIdentifier" } + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/CopyNumberSeg" } + } + } + } + } + }, + "/gene-panel-data/fetch": { + "post": { + "tags": ["Gene Panel Data"], + "summary": "Fetch gene panel data", + "operationId": "fetchGenePanelDataInMultipleMolecularProfilesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "genePanelDataMultipleStudyFilter", + "description": "Gene panel data filter object", + "required": true, + "schema": { + "$ref": "#/definitions/GenePanelDataMultipleStudyFilter" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenePanelData" } + } + } + } + } + }, + "/gene-panels": { + "get": { + "tags": ["Gene Panels"], + "summary": "Get all gene panels", + "operationId": "getAllGenePanelsUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["description", "genePanelId"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenePanel" } + } + } + } + } + }, + "/gene-panels/fetch": { + "post": { + "tags": ["Gene Panels"], + "summary": "Get gene panel", + "operationId": "fetchGenePanelsUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "genePanelIds", + "description": "List of Gene Panel IDs", + "required": true, + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenePanel" } + } + } + } + } + }, + "/gene-panels/{genePanelId}": { + "get": { + "tags": ["Gene Panels"], + "summary": "Get gene panel", + "operationId": "getGenePanelUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "genePanelId", + "in": "path", + "description": "Gene Panel ID e.g. NSCLC_UNITO_2016_PANEL", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/GenePanel" } + } + } + } + }, + "/generic-assay-data/{molecularProfileId}/generic-assay/{genericAssayStableId}": { + "get": { + "tags": ["Generic Assay Data"], + "summary": "Get generic_assay_data in a molecular profile", + "operationId": "getGenericAssayDataInMolecularProfileUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "genericAssayStableId", + "in": "path", + "description": "Generic Assay stable ID", + "required": true, + "type": "string" + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenericAssayData" } + } + } + } + } + }, + "/generic-assay-meta/generic-assay/{genericAssayStableId}": { + "get": { + "tags": ["Generic Assays"], + "summary": "Fetch meta data for generic-assay by ID", + "operationId": "getGenericAssayMeta_gaUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "genericAssayStableId", + "in": "path", + "description": "Generic Assay stable ID", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenericAssayMeta" } + } + } + } + } + }, + "/generic-assay-meta/{molecularProfileId}": { + "get": { + "tags": ["Generic Assays"], + "summary": "Fetch meta data for generic-assay by ID", + "operationId": "getGenericAssayMetaUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenericAssayMeta" } + } + } + } + } + }, + "/generic_assay_data/fetch": { + "post": { + "tags": ["Generic Assay Data"], + "summary": "Fetch generic_assay_data", + "operationId": "fetchGenericAssayDataInMultipleMolecularProfilesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "genericAssayDataMultipleStudyFilter", + "description": "List of Molecular Profile ID and Sample ID pairs or List of MolecularProfile IDs and Generic Assay IDs", + "required": true, + "schema": { + "$ref": "#/definitions/GenericAssayDataMultipleStudyFilter" + } + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenericAssayData" } + } + } + } + } + }, + "/generic_assay_data/{molecularProfileId}/fetch": { + "post": { + "tags": ["Generic Assay Data"], + "summary": "fetch generic_assay_data in a molecular profile", + "operationId": "fetchGenericAssayDataInMolecularProfileUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "genericAssayDataFilter", + "description": "List of Sample IDs/Sample List ID and Generic Assay IDs", + "required": true, + "schema": { "$ref": "#/definitions/GenericAssayFilter" } + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenericAssayData" } + } + } + } + } + }, + "/generic_assay_meta/fetch": { + "post": { + "tags": ["Generic Assays"], + "summary": "Fetch meta data for generic-assay by ID", + "operationId": "fetchGenericAssayMetaUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "genericAssayMetaFilter", + "description": "List of Molecular Profile ID or List of Stable ID", + "required": true, + "schema": { "$ref": "#/definitions/GenericAssayMetaFilter" } + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenericAssayMeta" } + } + } + } + } + }, + "/genes": { + "get": { + "tags": ["Genes"], + "summary": "Get all genes", + "operationId": "getAllGenesUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "alias", + "in": "query", + "description": "Alias of the gene", + "required": false, + "type": "string" + }, + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "keyword", + "in": "query", + "description": "Search keyword that applies to hugo gene symbol of the genes", + "required": false, + "type": "string" + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "cytoband", + "entrezGeneId", + "hugoGeneSymbol", + "length", + "type" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Gene" } + } + } + } + } + }, + "/genes/fetch": { + "post": { + "tags": ["Genes"], + "summary": "Fetch genes by ID", + "operationId": "fetchGenesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "geneIds", + "description": "List of Entrez Gene IDs or Hugo Gene Symbols", + "required": true, + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "geneIdType", + "in": "query", + "description": "Type of gene ID", + "required": false, + "type": "string", + "default": "ENTREZ_GENE_ID", + "enum": ["ENTREZ_GENE_ID", "HUGO_GENE_SYMBOL"] + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Gene" } + } + } + } + } + }, + "/genes/{geneId}": { + "get": { + "tags": ["Genes"], + "summary": "Get a gene", + "operationId": "getGeneUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "geneId", + "in": "path", + "description": "Entrez Gene ID or Hugo Gene Symbol e.g. 1 or A1BG", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Gene" } + } + } + } + }, + "/genes/{geneId}/aliases": { + "get": { + "tags": ["Genes"], + "summary": "Get aliases of a gene", + "operationId": "getAliasesOfGeneUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "geneId", + "in": "path", + "description": "Entrez Gene ID or Hugo Gene Symbol e.g. 1 or A1BG", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "type": "array", "items": { "type": "string" } } + } + } + } + }, + "/health": { + "get": { + "tags": ["Server running status"], + "summary": "Get the running status of the server", + "operationId": "getServerStatusUsingGET", + "produces": ["application/json"], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ServerStatusMessage" } + } + } + } + }, + "/info": { + "get": { + "tags": ["Info"], + "summary": "Get information about the running instance", + "operationId": "getInfoUsingGET", + "produces": ["application/json"], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Info" } + } + } + } + }, + "/molecular-data/fetch": { + "post": { + "tags": ["Molecular Data"], + "summary": "Fetch molecular data", + "operationId": "fetchMolecularDataInMultipleMolecularProfilesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "molecularDataMultipleStudyFilter", + "description": "List of Molecular Profile ID and Sample ID pairs or List of MolecularProfile IDs and Entrez Gene IDs", + "required": true, + "schema": { + "$ref": "#/definitions/MolecularDataMultipleStudyFilter" + } + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/NumericGeneMolecularData" } + } + } + } + } + }, + "/molecular-profiles": { + "get": { + "tags": ["Molecular Profiles"], + "summary": "Get all molecular profiles", + "operationId": "getAllMolecularProfilesUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "datatype", + "description", + "molecularAlterationType", + "molecularProfileId", + "name", + "showProfileInAnalysisTab" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/MolecularProfile" } + } + } + } + } + }, + "/molecular-profiles/fetch": { + "post": { + "tags": ["Molecular Profiles"], + "summary": "Fetch molecular profiles", + "operationId": "fetchMolecularProfilesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "molecularProfileFilter", + "description": "List of Molecular Profile IDs or List of Study IDs", + "required": true, + "schema": { "$ref": "#/definitions/MolecularProfileFilter" } + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/MolecularProfile" } + } + } + } + } + }, + "/molecular-profiles/{molecularProfileId}": { + "get": { + "tags": ["Molecular Profiles"], + "summary": "Get molecular profile", + "operationId": "getMolecularProfileUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID e.g. acc_tcga_mutations", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/MolecularProfile" } + } + } + } + }, + "/molecular-profiles/{molecularProfileId}/discrete-copy-number": { + "get": { + "tags": ["Discrete Copy Number Alterations"], + "summary": "Get discrete copy number alterations in a molecular profile", + "operationId": "getDiscreteCopyNumbersInMolecularProfileUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "discreteCopyNumberEventType", + "in": "query", + "description": "Type of the copy number event", + "required": false, + "type": "string", + "default": "HOMDEL_AND_AMP", + "enum": [ + "ALL", + "AMP", + "DIPLOID", + "GAIN", + "HETLOSS", + "HOMDEL", + "HOMDEL_AND_AMP" + ] + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID e.g. acc_tcga_gistic", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sampleListId", + "in": "query", + "description": "Sample List ID e.g. acc_tcga_all", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/DiscreteCopyNumberData" } + } + } + } + } + }, + "/molecular-profiles/{molecularProfileId}/discrete-copy-number/fetch": { + "post": { + "tags": ["Discrete Copy Number Alterations"], + "summary": "Fetch discrete copy number alterations in a molecular profile by sample ID", + "operationId": "fetchDiscreteCopyNumbersInMolecularProfileUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "name": "discreteCopyNumberEventType", + "in": "query", + "description": "Type of the copy number event", + "required": false, + "type": "string", + "default": "HOMDEL_AND_AMP", + "enum": [ + "ALL", + "AMP", + "DIPLOID", + "GAIN", + "HETLOSS", + "HOMDEL", + "HOMDEL_AND_AMP" + ] + }, + { + "in": "body", + "name": "discreteCopyNumberFilter", + "description": "List of Sample IDs/Sample List ID and Entrez Gene IDs", + "required": true, + "schema": { "$ref": "#/definitions/DiscreteCopyNumberFilter" } + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID e.g. acc_tcga_gistic", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/DiscreteCopyNumberData" } + } + } + } + } + }, + "/molecular-profiles/{molecularProfileId}/gene-panel-data/fetch": { + "post": { + "tags": ["Gene Panel Data"], + "summary": "Get gene panel data", + "operationId": "getGenePanelDataUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "genePanelDataFilter", + "description": "List of Sample IDs/Sample List ID and Entrez Gene IDs", + "required": true, + "schema": { "$ref": "#/definitions/GenePanelDataFilter" } + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID e.g. nsclc_unito_2016_mutations", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/GenePanelData" } + } + } + } + } + }, + "/molecular-profiles/{molecularProfileId}/molecular-data": { + "get": { + "tags": ["Molecular Data"], + "summary": "Get all molecular data in a molecular profile", + "operationId": "getAllMolecularDataInMolecularProfileUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "entrezGeneId", + "in": "query", + "description": "Entrez Gene ID e.g. 1", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID e.g. acc_tcga_rna_seq_v2_mrna", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sampleListId", + "in": "query", + "description": "Sample List ID e.g. acc_tcga_all", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/NumericGeneMolecularData" } + } + } + } + } + }, + "/molecular-profiles/{molecularProfileId}/molecular-data/fetch": { + "post": { + "tags": ["Molecular Data"], + "summary": "Fetch molecular data in a molecular profile", + "operationId": "fetchAllMolecularDataInMolecularProfileUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "molecularDataFilter", + "description": "List of Sample IDs/Sample List ID and Entrez Gene IDs", + "required": true, + "schema": { "$ref": "#/definitions/MolecularDataFilter" } + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID e.g. acc_tcga_rna_seq_v2_mrna", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/NumericGeneMolecularData" } + } + } + } + } + }, + "/molecular-profiles/{molecularProfileId}/mutations": { + "get": { + "tags": ["Mutations"], + "summary": "Get mutations in a molecular profile by Sample List ID", + "operationId": "getMutationsInMolecularProfileBySampleListIdUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "entrezGeneId", + "in": "query", + "description": "Entrez Gene ID", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID e.g. acc_tcga_mutations", + "required": true, + "type": "string" + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sampleListId", + "in": "query", + "description": "Sample List ID e.g. acc_tcga_all", + "required": true, + "type": "string" + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "aminoAcidChange", + "center", + "endPosition", + "entrezGeneId", + "keyword", + "mutationStatus", + "mutationType", + "ncbiBuild", + "normalAltCount", + "normalRefCount", + "proteinChange", + "proteinPosEnd", + "proteinPosStart", + "referenceAllele", + "refseqMrnaId", + "startPosition", + "tumorAltCount", + "tumorRefCount", + "validationStatus", + "variantAllele", + "variantType" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Mutation" } + } + } + } + } + }, + "/molecular-profiles/{molecularProfileId}/mutations/fetch": { + "post": { + "tags": ["Mutations"], + "summary": "Fetch mutations in a molecular profile", + "operationId": "fetchMutationsInMolecularProfileUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "molecularProfileId", + "in": "path", + "description": "Molecular Profile ID e.g. acc_tcga_mutations", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "mutationFilter", + "description": "List of Sample IDs/Sample List ID and Entrez Gene IDs", + "required": true, + "schema": { "$ref": "#/definitions/MutationFilter" } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "aminoAcidChange", + "center", + "endPosition", + "entrezGeneId", + "keyword", + "mutationStatus", + "mutationType", + "ncbiBuild", + "normalAltCount", + "normalRefCount", + "proteinChange", + "proteinPosEnd", + "proteinPosStart", + "referenceAllele", + "refseqMrnaId", + "startPosition", + "tumorAltCount", + "tumorRefCount", + "validationStatus", + "variantAllele", + "variantType" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Mutation" } + } + } + } + } + }, + "/mutations/fetch": { + "post": { + "tags": ["Mutations"], + "summary": "Fetch mutations in multiple molecular profiles by sample IDs", + "operationId": "fetchMutationsInMultipleMolecularProfilesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "in": "body", + "name": "mutationMultipleStudyFilter", + "description": "List of Molecular Profile IDs or List of Molecular Profile ID / Sample ID pairs, and List of Entrez Gene IDs", + "required": true, + "schema": { "$ref": "#/definitions/MutationMultipleStudyFilter" } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "aminoAcidChange", + "center", + "endPosition", + "entrezGeneId", + "keyword", + "mutationStatus", + "mutationType", + "ncbiBuild", + "normalAltCount", + "normalRefCount", + "proteinChange", + "proteinPosEnd", + "proteinPosStart", + "referenceAllele", + "refseqMrnaId", + "startPosition", + "tumorAltCount", + "tumorRefCount", + "validationStatus", + "variantAllele", + "variantType" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Mutation" } + } + } + } + } + }, + "/patients": { + "get": { + "tags": ["Patients"], + "summary": "Get all patients", + "operationId": "getAllPatientsUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "keyword", + "in": "query", + "description": "Search keyword that applies to ID of the patients", + "required": false, + "type": "string" + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["patientId"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Patient" } + } + } + } + } + }, + "/patients/fetch": { + "post": { + "tags": ["Patients"], + "summary": "fetchPatients", + "operationId": "fetchPatientsUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "patientFilter", + "description": "List of patient identifiers", + "required": true, + "schema": { "$ref": "#/definitions/PatientFilter" } + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Patient" } + } + } + } + } + }, + "/sample-lists": { + "get": { + "tags": ["Sample Lists"], + "summary": "Get all sample lists", + "operationId": "getAllSampleListsUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "category", + "description", + "name", + "sampleListId", + "studyId" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/SampleList" } + } + } + } + } + }, + "/sample-lists/fetch": { + "post": { + "tags": ["Sample Lists"], + "summary": "Fetch sample lists by ID", + "operationId": "fetchSampleListsUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "in": "body", + "name": "sampleListIds", + "description": "List of sample list IDs", + "required": true, + "schema": { "type": "array", "items": { "type": "string" } } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/SampleList" } + } + } + } + } + }, + "/sample-lists/{sampleListId}": { + "get": { + "tags": ["Sample Lists"], + "summary": "Get sample list", + "operationId": "getSampleListUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "sampleListId", + "in": "path", + "description": "Sample List ID e.g. acc_tcga_all", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/SampleList" } + } + } + } + }, + "/sample-lists/{sampleListId}/sample-ids": { + "get": { + "tags": ["Sample Lists"], + "summary": "Get all sample IDs in a sample list", + "operationId": "getAllSampleIdsInSampleListUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "sampleListId", + "in": "path", + "description": "Sample List ID e.g. acc_tcga_all", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "type": "array", "items": { "type": "string" } } + } + } + } + }, + "/samples": { + "get": { + "tags": ["Samples"], + "summary": "Get all samples matching keyword", + "operationId": "getSamplesByKeywordUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "keyword", + "in": "query", + "description": "Search keyword that applies to the study ID", + "required": false, + "type": "string" + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["sampleId", "sampleType"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Sample" } + } + } + } + } + }, + "/samples/fetch": { + "post": { + "tags": ["Samples"], + "summary": "Fetch samples by ID", + "operationId": "fetchSamplesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "in": "body", + "name": "sampleFilter", + "description": "List of sample identifiers", + "required": true, + "schema": { "$ref": "#/definitions/SampleFilter" } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Sample" } + } + } + } + } + }, + "/studies": { + "get": { + "tags": ["Studies"], + "summary": "Get all studies", + "operationId": "getAllStudiesUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "keyword", + "in": "query", + "description": "Search keyword that applies to name and cancer type of the studies", + "required": false, + "type": "string" + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "cancerTypeId", + "citation", + "description", + "groups", + "importDate", + "name", + "pmid", + "publicStudy", + "status", + "studyId" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/CancerStudy" } + } + } + } + } + }, + "/studies/fetch": { + "post": { + "tags": ["Studies"], + "summary": "Fetch studies by IDs", + "operationId": "fetchStudiesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "in": "body", + "name": "studyIds", + "description": "List of Study IDs", + "required": true, + "schema": { "type": "array", "items": { "type": "string" } } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/CancerStudy" } + } + } + } + } + }, + "/studies/tags/fetch": { + "post": { + "tags": ["Studies"], + "summary": "Get the study tags by IDs", + "operationId": "getTagsForMultipleStudiesUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "studyIds", + "description": "List of Study IDs", + "required": true, + "schema": { "type": "array", "items": { "type": "string" } } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/CancerStudyTags" } + } + } + } + } + }, + "/studies/{studyId}": { + "get": { + "tags": ["Studies"], + "summary": "Get a study", + "operationId": "getStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/CancerStudy" } + } + } + } + }, + "/studies/{studyId}/clinical-attributes": { + "get": { + "tags": ["Clinical Attributes"], + "summary": "Get all clinical attributes in the specified study", + "operationId": "getAllClinicalAttributesInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "clinicalAttributeId", + "datatype", + "description", + "displayName", + "patientAttribute", + "priority", + "studyId" + ] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalAttribute" } + } + } + } + } + }, + "/studies/{studyId}/clinical-attributes/{clinicalAttributeId}": { + "get": { + "tags": ["Clinical Attributes"], + "summary": "Get specified clinical attribute", + "operationId": "getClinicalAttributeInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "clinicalAttributeId", + "in": "path", + "description": "Clinical Attribute ID e.g. CANCER_TYPE", + "required": true, + "type": "string" + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ClinicalAttribute" } + } + } + } + }, + "/studies/{studyId}/clinical-data": { + "get": { + "tags": ["Clinical Data"], + "summary": "Get all clinical data in a study", + "operationId": "getAllClinicalDataInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "attributeId", + "in": "query", + "description": "Attribute ID e.g. CANCER_TYPE", + "required": false, + "type": "string" + }, + { + "name": "clinicalDataType", + "in": "query", + "description": "Type of the clinical data", + "required": false, + "type": "string", + "default": "SAMPLE", + "enum": ["PATIENT", "SAMPLE"] + }, + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["clinicalAttributeId", "value"] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalData" } + } + } + } + } + }, + "/studies/{studyId}/clinical-data/fetch": { + "post": { + "tags": ["Clinical Data"], + "summary": "Fetch clinical data by patient IDs or sample IDs (specific study)", + "operationId": "fetchAllClinicalDataInStudyUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "clinicalDataSingleStudyFilter", + "description": "List of patient or sample IDs and attribute IDs", + "required": true, + "schema": { "$ref": "#/definitions/ClinicalDataSingleStudyFilter" } + }, + { + "name": "clinicalDataType", + "in": "query", + "description": "Type of the clinical data", + "required": false, + "type": "string", + "default": "SAMPLE", + "enum": ["PATIENT", "SAMPLE"] + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalData" } + } + } + } + } + }, + "/studies/{studyId}/molecular-profiles": { + "get": { + "tags": ["Molecular Profiles"], + "summary": "Get all molecular profiles in a study", + "operationId": "getAllMolecularProfilesInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "datatype", + "description", + "molecularAlterationType", + "molecularProfileId", + "name", + "showProfileInAnalysisTab" + ] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/MolecularProfile" } + } + } + } + } + }, + "/studies/{studyId}/patients": { + "get": { + "tags": ["Patients"], + "summary": "Get all patients in a study", + "operationId": "getAllPatientsInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["patientId"] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Patient" } + } + } + } + } + }, + "/studies/{studyId}/patients/{patientId}": { + "get": { + "tags": ["Patients"], + "summary": "Get a patient in a study", + "operationId": "getPatientInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "patientId", + "in": "path", + "description": "Patient ID e.g. TCGA-OR-A5J2", + "required": true, + "type": "string" + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Patient" } + } + } + } + }, + "/studies/{studyId}/patients/{patientId}/clinical-data": { + "get": { + "tags": ["Clinical Data"], + "summary": "Get all clinical data of a patient in a study", + "operationId": "getAllClinicalDataOfPatientInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "attributeId", + "in": "query", + "description": "Attribute ID e.g. AGE", + "required": false, + "type": "string" + }, + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "patientId", + "in": "path", + "description": "Patient ID e.g. TCGA-OR-A5J2", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["clinicalAttributeId", "value"] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalData" } + } + } + } + } + }, + "/studies/{studyId}/patients/{patientId}/samples": { + "get": { + "tags": ["Samples"], + "summary": "Get all samples of a patient in a study", + "operationId": "getAllSamplesOfPatientInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "patientId", + "in": "path", + "description": "Patient ID e.g. TCGA-OR-A5J2", + "required": true, + "type": "string" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["sampleId", "sampleType"] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Sample" } + } + } + } + } + }, + "/studies/{studyId}/sample-lists": { + "get": { + "tags": ["Sample Lists"], + "summary": "Get all sample lists in a study", + "operationId": "getAllSampleListsInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "category", + "description", + "name", + "sampleListId", + "studyId" + ] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/SampleList" } + } + } + } + } + }, + "/studies/{studyId}/samples": { + "get": { + "tags": ["Samples"], + "summary": "Get all samples in a study", + "operationId": "getAllSamplesInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["sampleId", "sampleType"] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/Sample" } + } + } + } + } + }, + "/studies/{studyId}/samples/{sampleId}": { + "get": { + "tags": ["Samples"], + "summary": "Get a sample in a study", + "operationId": "getSampleInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "sampleId", + "in": "path", + "description": "Sample ID e.g. TCGA-OR-A5J2-01", + "required": true, + "type": "string" + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Sample" } + } + } + } + }, + "/studies/{studyId}/samples/{sampleId}/clinical-data": { + "get": { + "tags": ["Clinical Data"], + "summary": "Get all clinical data of a sample in a study", + "operationId": "getAllClinicalDataOfSampleInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "attributeId", + "in": "query", + "description": "Attribute ID e.g. CANCER_TYPE", + "required": false, + "type": "string" + }, + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 10000000, + "maximum": 10000000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sampleId", + "in": "path", + "description": "Sample ID e.g. TCGA-OR-A5J2-01", + "required": true, + "type": "string" + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": ["clinicalAttributeId", "value"] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalData" } + } + } + } + } + }, + "/studies/{studyId}/samples/{sampleId}/copy-number-segments": { + "get": { + "tags": ["Copy Number Segments"], + "summary": "Get copy number segments in a sample in a study", + "operationId": "getCopyNumberSegmentsInSampleInStudyUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "chromosome", + "in": "query", + "description": "Chromosome", + "required": false, + "type": "string" + }, + { + "name": "direction", + "in": "query", + "description": "Direction of the sort", + "required": false, + "type": "string", + "default": "ASC", + "enum": ["ASC", "DESC"] + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number of the result list", + "required": false, + "type": "integer", + "default": 0, + "minimum": 0, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size of the result list", + "required": false, + "type": "integer", + "default": 20000, + "maximum": 20000, + "exclusiveMaximum": false, + "minimum": 1, + "exclusiveMinimum": false, + "format": "int32" + }, + { + "name": "projection", + "in": "query", + "description": "Level of detail of the response", + "required": false, + "type": "string", + "default": "SUMMARY", + "enum": ["DETAILED", "ID", "META", "SUMMARY"] + }, + { + "name": "sampleId", + "in": "path", + "description": "Sample ID e.g. TCGA-OR-A5J2-01", + "required": true, + "type": "string" + }, + { + "name": "sortBy", + "in": "query", + "description": "Name of the property that the result list is sorted by", + "required": false, + "type": "string", + "enum": [ + "chromosome", + "end", + "numberOfProbes", + "segmentMean", + "start" + ] + }, + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/CopyNumberSeg" } + } + } + } + } + }, + "/studies/{studyId}/tags": { + "get": { + "tags": ["Studies"], + "summary": "Get the tags of a study", + "operationId": "getTagsUsingGET", + "produces": ["application/json"], + "parameters": [ + { + "name": "studyId", + "in": "path", + "description": "Study ID e.g. acc_tcga", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { "description": "OK", "schema": { "type": "object" } } + } + } + }, + "/treatments/display-patient": { + "post": { + "tags": ["Treatments"], + "summary": "Should patient level treatments be displayed", + "operationId": "getContainsTreatmentDataUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "studyIds", + "description": "List of Study IDs", + "required": true, + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "tier", + "in": "query", + "description": "tier", + "required": false, + "type": "string", + "default": "Agent", + "enum": ["Agent", "AgentClass", "AgentTarget"] + } + ], + "responses": { + "200": { "description": "OK", "schema": { "type": "boolean" } } + } + } + }, + "/treatments/display-sample": { + "post": { + "tags": ["Treatments"], + "summary": "Should sample level treatments be displayed", + "operationId": "getContainsSampleTreatmentDataUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "studyIds", + "description": "List of Study IDs", + "required": true, + "schema": { "type": "array", "items": { "type": "string" } } + }, + { + "name": "tier", + "in": "query", + "description": "tier", + "required": false, + "type": "string", + "default": "Agent", + "enum": ["Agent", "AgentClass", "AgentTarget"] + } + ], + "responses": { + "200": { "description": "OK", "schema": { "type": "boolean" } } + } + } + }, + "/treatments/patient": { + "post": { + "tags": ["Treatments"], + "summary": "Get all patient level treatments", + "operationId": "getAllPatientTreatmentsUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "studyViewFilter", + "description": "Study view filter", + "required": true, + "schema": { "$ref": "#/definitions/StudyViewFilter" } + }, + { + "name": "tier", + "in": "query", + "description": "tier", + "required": false, + "type": "string", + "default": "Agent", + "enum": ["Agent", "AgentClass", "AgentTarget"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/PatientTreatmentRow" } + } + } + } + } + }, + "/treatments/sample": { + "post": { + "tags": ["Treatments"], + "summary": "Get all sample level treatments", + "operationId": "getAllSampleTreatmentsUsingPOST", + "consumes": ["application/json"], + "produces": ["application/json"], + "parameters": [ + { + "in": "body", + "name": "studyViewFilter", + "description": "Study view filter", + "required": true, + "schema": { "$ref": "#/definitions/StudyViewFilter" } + }, + { + "name": "tier", + "in": "query", + "description": "tier", + "required": false, + "type": "string", + "default": "Agent", + "enum": ["Agent", "AgentClass", "AgentTarget"] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { "$ref": "#/definitions/SampleTreatmentRow" } + } + } + } + } + } + }, + "definitions": { + "AlleleSpecificCopyNumber": { + "type": "object", + "properties": { + "ascnIntegerCopyNumber": { "type": "integer", "format": "int32" }, + "ascnMethod": { "type": "string" }, + "ccfExpectedCopies": { "type": "number", "format": "float" }, + "ccfExpectedCopiesUpper": { "type": "number", "format": "float" }, + "clonal": { "type": "string" }, + "expectedAltCopies": { "type": "integer", "format": "int32" }, + "minorCopyNumber": { "type": "integer", "format": "int32" }, + "totalCopyNumber": { "type": "integer", "format": "int32" } + }, + "title": "AlleleSpecificCopyNumber" + }, + "AlterationFilter": { + "type": "object", + "properties": { + "copyNumberAlterationEventTypes": { + "type": "object", + "additionalProperties": { "type": "boolean" } + }, + "includeDriver": { "type": "boolean" }, + "includeGermline": { "type": "boolean" }, + "includeSomatic": { "type": "boolean" }, + "includeUnknownOncogenicity": { "type": "boolean" }, + "includeUnknownStatus": { "type": "boolean" }, + "includeUnknownTier": { "type": "boolean" }, + "includeVUS": { "type": "boolean" }, + "mutationEventTypes": { + "type": "object", + "additionalProperties": { "type": "boolean" } + }, + "structuralVariants": { "type": "boolean" }, + "tiersBooleanMap": { + "type": "object", + "additionalProperties": { "type": "boolean" } + } + }, + "title": "AlterationFilter" + }, + "AndedPatientTreatmentFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { "$ref": "#/definitions/OredPatientTreatmentFilters" } + } + }, + "title": "AndedPatientTreatmentFilters" + }, + "AndedSampleTreatmentFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { "$ref": "#/definitions/OredSampleTreatmentFilters" } + } + }, + "title": "AndedSampleTreatmentFilters" + }, + "CancerStudy": { + "type": "object", + "required": ["studyId"], + "properties": { + "allSampleCount": { "type": "integer", "format": "int32" }, + "cancerType": { "$ref": "#/definitions/TypeOfCancer" }, + "cancerTypeId": { "type": "string" }, + "citation": { "type": "string" }, + "cnaSampleCount": { "type": "integer", "format": "int32" }, + "completeSampleCount": { "type": "integer", "format": "int32" }, + "description": { "type": "string" }, + "groups": { "type": "string" }, + "importDate": { "type": "string", "example": "yyyy-MM-dd HH:mm:ss" }, + "massSpectrometrySampleCount": { "type": "integer", "format": "int32" }, + "methylationHm27SampleCount": { "type": "integer", "format": "int32" }, + "miRnaSampleCount": { "type": "integer", "format": "int32" }, + "mrnaMicroarraySampleCount": { "type": "integer", "format": "int32" }, + "mrnaRnaSeqSampleCount": { "type": "integer", "format": "int32" }, + "mrnaRnaSeqV2SampleCount": { "type": "integer", "format": "int32" }, + "name": { "type": "string" }, + "pmid": { "type": "string" }, + "publicStudy": { "type": "boolean" }, + "readPermission": { "type": "boolean" }, + "referenceGenome": { "type": "string" }, + "rppaSampleCount": { "type": "integer", "format": "int32" }, + "sequencedSampleCount": { "type": "integer", "format": "int32" }, + "status": { "type": "integer", "format": "int32" }, + "studyId": { "type": "string" }, + "treatmentCount": { "type": "integer", "format": "int32" } + }, + "title": "CancerStudy" + }, + "CancerStudyTags": { + "type": "object", + "properties": { + "cancerStudyId": { "type": "integer", "format": "int32" }, + "studyId": { "type": "string" }, + "tags": { "type": "string" } + }, + "title": "CancerStudyTags" + }, + "ClinicalAttribute": { + "type": "object", + "required": [ + "clinicalAttributeId", + "displayName", + "patientAttribute", + "studyId" + ], + "properties": { + "clinicalAttributeId": { "type": "string" }, + "datatype": { "type": "string" }, + "description": { "type": "string" }, + "displayName": { "type": "string" }, + "patientAttribute": { "type": "boolean" }, + "priority": { "type": "string" }, + "studyId": { "type": "string" } + }, + "title": "ClinicalAttribute" + }, + "ClinicalData": { + "type": "object", + "required": ["clinicalAttributeId", "patientId", "studyId"], + "properties": { + "clinicalAttribute": { "$ref": "#/definitions/ClinicalAttribute" }, + "clinicalAttributeId": { "type": "string" }, + "patientAttribute": { "type": "boolean" }, + "patientId": { "type": "string" }, + "sampleId": { "type": "string" }, + "studyId": { "type": "string" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" }, + "value": { "type": "string" } + }, + "title": "ClinicalData" + }, + "ClinicalDataFilter": { + "type": "object", + "properties": { + "attributeId": { "type": "string" }, + "values": { + "type": "array", + "items": { "$ref": "#/definitions/DataFilterValue" } + } + }, + "title": "ClinicalDataFilter" + }, + "ClinicalDataIdentifier": { + "type": "object", + "properties": { + "entityId": { "type": "string" }, + "studyId": { "type": "string" } + }, + "title": "ClinicalDataIdentifier" + }, + "ClinicalDataMultiStudyFilter": { + "type": "object", + "properties": { + "attributeIds": { "type": "array", "items": { "type": "string" } }, + "identifiers": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalDataIdentifier" } + } + }, + "title": "ClinicalDataMultiStudyFilter" + }, + "ClinicalDataSingleStudyFilter": { + "type": "object", + "properties": { + "attributeIds": { "type": "array", "items": { "type": "string" } }, + "ids": { "type": "array", "items": { "type": "string" } } + }, + "title": "ClinicalDataSingleStudyFilter" + }, + "ClinicalEventSample": { + "type": "object", + "properties": { + "patientId": { "type": "string" }, + "sampleId": { "type": "string" }, + "studyId": { "type": "string" }, + "timeTaken": { "type": "integer", "format": "int32" } + }, + "title": "ClinicalEventSample" + }, + "CopyNumberSeg": { + "type": "object", + "required": [ + "chromosome", + "end", + "numberOfProbes", + "patientId", + "sampleId", + "segmentMean", + "start", + "studyId" + ], + "properties": { + "chromosome": { "type": "string" }, + "end": { "type": "integer", "format": "int32" }, + "numberOfProbes": { "type": "integer", "format": "int32" }, + "patientId": { "type": "string" }, + "sampleId": { "type": "string" }, + "segmentMean": { "type": "number" }, + "start": { "type": "integer", "format": "int32" }, + "studyId": { "type": "string" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" } + }, + "title": "CopyNumberSeg" + }, + "DataFilter": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { "$ref": "#/definitions/DataFilterValue" } + } + }, + "title": "DataFilter" + }, + "DataFilterValue": { + "type": "object", + "properties": { + "end": { "type": "number" }, + "start": { "type": "number" }, + "value": { "type": "string" } + }, + "title": "DataFilterValue" + }, + "DiscreteCopyNumberData": { + "type": "object", + "required": [ + "alteration", + "entrezGeneId", + "molecularProfileId", + "patientId", + "sampleId", + "studyId" + ], + "properties": { + "alteration": { "type": "integer", "format": "int32" }, + "driverFilter": { "type": "string" }, + "driverFilterAnnotation": { "type": "string" }, + "driverTiersFilter": { "type": "string" }, + "driverTiersFilterAnnotation": { "type": "string" }, + "entrezGeneId": { "type": "integer", "format": "int32" }, + "gene": { "$ref": "#/definitions/Gene" }, + "molecularProfileId": { "type": "string" }, + "namespaceColumns": { + "type": "object", + "additionalProperties": { "type": "object" } + }, + "patientId": { "type": "string" }, + "sampleId": { "type": "string" }, + "studyId": { "type": "string" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" } + }, + "title": "DiscreteCopyNumberData" + }, + "DiscreteCopyNumberFilter": { + "type": "object", + "properties": { + "entrezGeneIds": { + "type": "array", + "items": { "type": "integer", "format": "int32" } + }, + "sampleIds": { "type": "array", "items": { "type": "string" } }, + "sampleListId": { "type": "string" } + }, + "title": "DiscreteCopyNumberFilter" + }, + "Gene": { + "type": "object", + "required": ["entrezGeneId", "geneticEntityId", "hugoGeneSymbol"], + "properties": { + "entrezGeneId": { "type": "integer", "format": "int32" }, + "geneticEntityId": { "type": "integer", "format": "int32" }, + "hugoGeneSymbol": { "type": "string" }, + "type": { "type": "string" } + }, + "title": "Gene" + }, + "GeneFilter": { + "type": "object", + "properties": { + "geneQueries": { + "type": "array", + "items": { + "type": "array", + "items": { "$ref": "#/definitions/GeneFilterQuery" } + } + }, + "molecularProfileIds": { + "type": "array", + "uniqueItems": true, + "items": { "type": "string" } + } + }, + "title": "GeneFilter" + }, + "GeneFilterQuery": { + "type": "object", + "properties": { + "alterations": { + "type": "array", + "items": { + "type": "string", + "enum": ["AMP", "DIPLOID", "GAIN", "HETLOSS", "HOMDEL"] + } + }, + "entrezGeneId": { "type": "integer", "format": "int32" }, + "hugoGeneSymbol": { "type": "string" }, + "includeDriver": { "type": "boolean" }, + "includeGermline": { "type": "boolean" }, + "includeSomatic": { "type": "boolean" }, + "includeUnknownOncogenicity": { "type": "boolean" }, + "includeUnknownStatus": { "type": "boolean" }, + "includeUnknownTier": { "type": "boolean" }, + "includeVUS": { "type": "boolean" }, + "tiersBooleanMap": { + "type": "object", + "additionalProperties": { "type": "boolean" } + } + }, + "title": "GeneFilterQuery" + }, + "GenePanel": { + "type": "object", + "required": ["genePanelId"], + "properties": { + "description": { "type": "string" }, + "genePanelId": { "type": "string" }, + "genes": { + "type": "array", + "items": { "$ref": "#/definitions/GenePanelToGene" } + } + }, + "title": "GenePanel" + }, + "GenePanelData": { + "type": "object", + "required": [ + "molecularProfileId", + "patientId", + "profiled", + "sampleId", + "studyId" + ], + "properties": { + "genePanelId": { "type": "string" }, + "molecularProfileId": { "type": "string" }, + "patientId": { "type": "string" }, + "profiled": { "type": "boolean" }, + "sampleId": { "type": "string" }, + "studyId": { "type": "string" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" } + }, + "title": "GenePanelData" + }, + "GenePanelDataFilter": { + "type": "object", + "properties": { + "sampleIds": { "type": "array", "items": { "type": "string" } }, + "sampleListId": { "type": "string" } + }, + "title": "GenePanelDataFilter" + }, + "GenePanelDataMultipleStudyFilter": { + "type": "object", + "properties": { + "molecularProfileIds": { + "type": "array", + "items": { "type": "string" } + }, + "sampleMolecularIdentifiers": { + "type": "array", + "items": { "$ref": "#/definitions/SampleMolecularIdentifier" } + } + }, + "title": "GenePanelDataMultipleStudyFilter" + }, + "GenePanelToGene": { + "type": "object", + "required": ["entrezGeneId", "hugoGeneSymbol"], + "properties": { + "entrezGeneId": { "type": "integer", "format": "int32" }, + "hugoGeneSymbol": { "type": "string" } + }, + "title": "GenePanelToGene" + }, + "GenericAssayData": { + "type": "object", + "required": [ + "genericAssayStableId", + "molecularProfileId", + "patientId", + "sampleId", + "studyId", + "value" + ], + "properties": { + "genericAssayStableId": { "type": "string" }, + "molecularProfileId": { "type": "string" }, + "patientId": { "type": "string" }, + "sampleId": { "type": "string" }, + "stableId": { "type": "string" }, + "studyId": { "type": "string" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" }, + "value": { "type": "string" } + }, + "title": "GenericAssayData" + }, + "GenericAssayDataFilter": { + "type": "object", + "properties": { + "profileType": { "type": "string" }, + "stableId": { "type": "string" }, + "values": { + "type": "array", + "items": { "$ref": "#/definitions/DataFilterValue" } + } + }, + "title": "GenericAssayDataFilter" + }, + "GenericAssayDataMultipleStudyFilter": { + "type": "object", + "properties": { + "genericAssayStableIds": { + "type": "array", + "items": { "type": "string" } + }, + "molecularProfileIds": { + "type": "array", + "items": { "type": "string" } + }, + "sampleMolecularIdentifiers": { + "type": "array", + "items": { "$ref": "#/definitions/SampleMolecularIdentifier" } + } + }, + "title": "GenericAssayDataMultipleStudyFilter" + }, + "GenericAssayFilter": { + "type": "object", + "properties": { + "genericAssayStableIds": { + "type": "array", + "items": { "type": "string" } + }, + "sampleIds": { "type": "array", "items": { "type": "string" } }, + "sampleListId": { "type": "string" } + }, + "title": "GenericAssayFilter" + }, + "GenericAssayMeta": { + "type": "object", + "properties": { + "entityType": { "type": "string" }, + "genericEntityMetaProperties": { + "type": "object", + "additionalProperties": { "type": "string" } + }, + "stableId": { "type": "string" } + }, + "title": "GenericAssayMeta" + }, + "GenericAssayMetaFilter": { + "type": "object", + "properties": { + "genericAssayStableIds": { + "type": "array", + "items": { "type": "string" } + }, + "molecularProfileIds": { + "type": "array", + "items": { "type": "string" } + } + }, + "title": "GenericAssayMetaFilter" + }, + "GenomicDataFilter": { + "type": "object", + "properties": { + "hugoGeneSymbol": { "type": "string" }, + "profileType": { "type": "string" }, + "values": { + "type": "array", + "items": { "$ref": "#/definitions/DataFilterValue" } + } + }, + "title": "GenomicDataFilter" + }, + "Info": { + "type": "object", + "required": [ + "dbVersion", + "gitBranch", + "gitCommitId", + "gitCommitIdAbbrev", + "gitCommitIdDescribe", + "gitCommitIdDescribeShort", + "gitCommitMessageFull", + "gitCommitMessageShort", + "gitCommitMessageUserEmail", + "gitCommitMessageUserName", + "gitDirty", + "portalVersion" + ], + "properties": { + "dbVersion": { "type": "string" }, + "gitBranch": { "type": "string" }, + "gitCommitId": { "type": "string" }, + "gitCommitIdAbbrev": { "type": "string" }, + "gitCommitIdDescribe": { "type": "string" }, + "gitCommitIdDescribeShort": { "type": "string" }, + "gitCommitMessageFull": { "type": "string" }, + "gitCommitMessageShort": { "type": "string" }, + "gitCommitMessageUserEmail": { "type": "string" }, + "gitCommitMessageUserName": { "type": "string" }, + "gitDirty": { "type": "boolean" }, + "portalVersion": { "type": "string" } + }, + "title": "Info" + }, + "MolecularDataFilter": { + "type": "object", + "properties": { + "entrezGeneIds": { + "type": "array", + "items": { "type": "integer", "format": "int32" } + }, + "sampleIds": { "type": "array", "items": { "type": "string" } }, + "sampleListId": { "type": "string" } + }, + "title": "MolecularDataFilter" + }, + "MolecularDataMultipleStudyFilter": { + "type": "object", + "properties": { + "entrezGeneIds": { + "type": "array", + "items": { "type": "integer", "format": "int32" } + }, + "molecularProfileIds": { + "type": "array", + "items": { "type": "string" } + }, + "sampleMolecularIdentifiers": { + "type": "array", + "items": { "$ref": "#/definitions/SampleMolecularIdentifier" } + } + }, + "title": "MolecularDataMultipleStudyFilter" + }, + "MolecularProfile": { + "type": "object", + "required": ["molecularProfileId", "patientLevel", "studyId"], + "properties": { + "datatype": { "type": "string" }, + "description": { "type": "string" }, + "genericAssayType": { "type": "string" }, + "molecularAlterationType": { + "type": "string", + "enum": [ + "COPY_NUMBER_ALTERATION", + "GENERIC_ASSAY", + "GENESET_SCORE", + "METHYLATION", + "METHYLATION_BINARY", + "MICRO_RNA_EXPRESSION", + "MRNA_EXPRESSION", + "MRNA_EXPRESSION_NORMALS", + "MUTATION_EXTENDED", + "MUTATION_UNCALLED", + "PHOSPHORYLATION", + "PROTEIN_ARRAY_PHOSPHORYLATION", + "PROTEIN_ARRAY_PROTEIN_LEVEL", + "PROTEIN_LEVEL", + "RNA_EXPRESSION", + "STRUCTURAL_VARIANT" + ] + }, + "molecularProfileId": { "type": "string" }, + "name": { "type": "string" }, + "patientLevel": { "type": "boolean" }, + "pivotThreshold": { "type": "number", "format": "float" }, + "showProfileInAnalysisTab": { "type": "boolean" }, + "sortOrder": { "type": "string" }, + "study": { "$ref": "#/definitions/CancerStudy" }, + "studyId": { "type": "string" } + }, + "title": "MolecularProfile" + }, + "MolecularProfileFilter": { + "type": "object", + "properties": { + "molecularProfileIds": { + "type": "array", + "uniqueItems": true, + "items": { "type": "string" } + }, + "studyIds": { "type": "array", "items": { "type": "string" } } + }, + "title": "MolecularProfileFilter" + }, + "Mutation": { + "type": "object", + "required": [ + "entrezGeneId", + "molecularProfileId", + "patientId", + "sampleId", + "studyId" + ], + "properties": { + "alleleSpecificCopyNumber": { + "$ref": "#/definitions/AlleleSpecificCopyNumber" + }, + "aminoAcidChange": { "type": "string" }, + "center": { "type": "string" }, + "chr": { "type": "string" }, + "driverFilter": { "type": "string" }, + "driverFilterAnnotation": { "type": "string" }, + "driverTiersFilter": { "type": "string" }, + "driverTiersFilterAnnotation": { "type": "string" }, + "endPosition": { "type": "integer", "format": "int64" }, + "entrezGeneId": { "type": "integer", "format": "int32" }, + "gene": { "$ref": "#/definitions/Gene" }, + "keyword": { "type": "string" }, + "molecularProfileId": { "type": "string" }, + "mutationStatus": { "type": "string" }, + "mutationType": { "type": "string" }, + "namespaceColumns": { + "type": "object", + "additionalProperties": { "type": "object" } + }, + "ncbiBuild": { "type": "string" }, + "normalAltCount": { "type": "integer", "format": "int32" }, + "normalRefCount": { "type": "integer", "format": "int32" }, + "patientId": { "type": "string" }, + "proteinChange": { "type": "string" }, + "proteinPosEnd": { "type": "integer", "format": "int32" }, + "proteinPosStart": { "type": "integer", "format": "int32" }, + "referenceAllele": { "type": "string" }, + "refseqMrnaId": { "type": "string" }, + "sampleId": { "type": "string" }, + "startPosition": { "type": "integer", "format": "int64" }, + "studyId": { "type": "string" }, + "tumorAltCount": { "type": "integer", "format": "int32" }, + "tumorRefCount": { "type": "integer", "format": "int32" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" }, + "validationStatus": { "type": "string" }, + "variantAllele": { "type": "string" }, + "variantType": { "type": "string" } + }, + "title": "Mutation" + }, + "MutationFilter": { + "type": "object", + "properties": { + "entrezGeneIds": { + "type": "array", + "items": { "type": "integer", "format": "int32" } + }, + "sampleIds": { "type": "array", "items": { "type": "string" } }, + "sampleListId": { "type": "string" } + }, + "title": "MutationFilter" + }, + "MutationMultipleStudyFilter": { + "type": "object", + "properties": { + "entrezGeneIds": { + "type": "array", + "items": { "type": "integer", "format": "int32" } + }, + "molecularProfileIds": { + "type": "array", + "items": { "type": "string" } + }, + "sampleMolecularIdentifiers": { + "type": "array", + "items": { "$ref": "#/definitions/SampleMolecularIdentifier" } + } + }, + "title": "MutationMultipleStudyFilter" + }, + "NumericGeneMolecularData": { + "type": "object", + "required": [ + "entrezGeneId", + "molecularProfileId", + "patientId", + "sampleId", + "studyId", + "value" + ], + "properties": { + "entrezGeneId": { "type": "integer", "format": "int32" }, + "gene": { "$ref": "#/definitions/Gene" }, + "molecularProfileId": { "type": "string" }, + "patientId": { "type": "string" }, + "sampleId": { "type": "string" }, + "studyId": { "type": "string" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" }, + "value": { "type": "number" } + }, + "title": "NumericGeneMolecularData" + }, + "OredPatientTreatmentFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { "$ref": "#/definitions/PatientTreatmentFilter" } + } + }, + "title": "OredPatientTreatmentFilters" + }, + "OredSampleTreatmentFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { "$ref": "#/definitions/SampleTreatmentFilter" } + } + }, + "title": "OredSampleTreatmentFilters" + }, + "Patient": { + "type": "object", + "required": ["patientId", "studyId"], + "properties": { + "cancerStudy": { "$ref": "#/definitions/CancerStudy" }, + "patientId": { "type": "string" }, + "studyId": { "type": "string" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" } + }, + "title": "Patient" + }, + "PatientFilter": { + "type": "object", + "properties": { + "patientIdentifiers": { + "type": "array", + "items": { "$ref": "#/definitions/PatientIdentifier" } + }, + "uniquePatientKeys": { "type": "array", "items": { "type": "string" } } + }, + "title": "PatientFilter" + }, + "PatientIdentifier": { + "type": "object", + "properties": { + "patientId": { "type": "string" }, + "studyId": { "type": "string" } + }, + "title": "PatientIdentifier" + }, + "PatientTreatmentFilter": { + "type": "object", + "properties": { "treatment": { "type": "string" } }, + "title": "PatientTreatmentFilter" + }, + "PatientTreatmentRow": { + "type": "object", + "properties": { + "count": { "type": "integer", "format": "int32" }, + "samples": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/definitions/ClinicalEventSample" } + }, + "treatment": { "type": "string" } + }, + "title": "PatientTreatmentRow" + }, + "Sample": { + "type": "object", + "required": ["patientId", "sampleId", "studyId"], + "properties": { + "copyNumberSegmentPresent": { "type": "boolean" }, + "patientId": { "type": "string" }, + "sampleId": { "type": "string" }, + "sampleType": { + "type": "string", + "enum": [ + "BLOOD_NORMAL", + "METASTATIC", + "PRIMARY_BLOOD_TUMOR", + "PRIMARY_SOLID_TUMOR", + "RECURRENT_BLOOD_TUMOR", + "RECURRENT_SOLID_TUMOR", + "SOLID_NORMAL" + ] + }, + "sequenced": { "type": "boolean" }, + "studyId": { "type": "string" }, + "uniquePatientKey": { "type": "string" }, + "uniqueSampleKey": { "type": "string" } + }, + "title": "Sample" + }, + "SampleFilter": { + "type": "object", + "properties": { + "sampleIdentifiers": { + "type": "array", + "items": { "$ref": "#/definitions/SampleIdentifier" } + }, + "sampleListIds": { "type": "array", "items": { "type": "string" } }, + "uniqueSampleKeys": { "type": "array", "items": { "type": "string" } } + }, + "title": "SampleFilter" + }, + "SampleIdentifier": { + "type": "object", + "properties": { + "sampleId": { "type": "string" }, + "studyId": { "type": "string" } + }, + "title": "SampleIdentifier" + }, + "SampleList": { + "type": "object", + "required": ["sampleListId"], + "properties": { + "category": { "type": "string" }, + "description": { "type": "string" }, + "name": { "type": "string" }, + "sampleCount": { "type": "integer", "format": "int32" }, + "sampleIds": { "type": "array", "items": { "type": "string" } }, + "sampleListId": { "type": "string" }, + "studyId": { "type": "string" } + }, + "title": "SampleList" + }, + "SampleMolecularIdentifier": { + "type": "object", + "properties": { + "molecularProfileId": { "type": "string" }, + "sampleId": { "type": "string" } + }, + "title": "SampleMolecularIdentifier" + }, + "SampleTreatmentFilter": { + "type": "object", + "properties": { + "time": { "type": "string", "enum": ["Post", "Pre"] }, + "treatment": { "type": "string" } + }, + "title": "SampleTreatmentFilter" + }, + "SampleTreatmentRow": { + "type": "object", + "properties": { + "count": { "type": "integer", "format": "int32" }, + "samples": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/definitions/ClinicalEventSample" } + }, + "time": { "type": "string", "enum": ["Post", "Pre"] }, + "treatment": { "type": "string" } + }, + "title": "SampleTreatmentRow" + }, + "ServerStatusMessage": { + "type": "object", + "properties": { "status": { "type": "string" } }, + "title": "ServerStatusMessage" + }, + "StructuralVariantFilterQuery": { + "type": "object", + "properties": { + "gene1Query": { "$ref": "#/definitions/StructuralVariantGeneSubQuery" }, + "gene2Query": { "$ref": "#/definitions/StructuralVariantGeneSubQuery" }, + "includeDriver": { "type": "boolean" }, + "includeGermline": { "type": "boolean" }, + "includeSomatic": { "type": "boolean" }, + "includeUnknownOncogenicity": { "type": "boolean" }, + "includeUnknownStatus": { "type": "boolean" }, + "includeUnknownTier": { "type": "boolean" }, + "includeVUS": { "type": "boolean" }, + "tiersBooleanMap": { + "type": "object", + "additionalProperties": { "type": "boolean" } + } + }, + "title": "StructuralVariantFilterQuery" + }, + "StructuralVariantGeneSubQuery": { + "type": "object", + "properties": { + "entrezId": { "type": "integer", "format": "int32" }, + "hugoSymbol": { "type": "string" }, + "specialValue": { "type": "string", "enum": ["ANY_GENE", "NO_GENE"] } + }, + "title": "StructuralVariantGeneSubQuery" + }, + "StudyViewFilter": { + "type": "object", + "properties": { + "alterationFilter": { "$ref": "#/definitions/AlterationFilter" }, + "caseLists": { + "type": "array", + "items": { "type": "array", "items": { "type": "string" } } + }, + "clinicalDataFilters": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalDataFilter" } + }, + "clinicalEventFilters": { + "type": "array", + "items": { "$ref": "#/definitions/DataFilter" } + }, + "customDataFilters": { + "type": "array", + "items": { "$ref": "#/definitions/ClinicalDataFilter" } + }, + "geneFilters": { + "type": "array", + "items": { "$ref": "#/definitions/GeneFilter" } + }, + "genericAssayDataFilters": { + "type": "array", + "items": { "$ref": "#/definitions/GenericAssayDataFilter" } + }, + "genomicDataFilters": { + "type": "array", + "items": { "$ref": "#/definitions/GenomicDataFilter" } + }, + "genomicProfiles": { + "type": "array", + "items": { "type": "array", "items": { "type": "string" } } + }, + "patientTreatmentFilters": { + "$ref": "#/definitions/AndedPatientTreatmentFilters" + }, + "patientTreatmentGroupFilters": { + "$ref": "#/definitions/AndedPatientTreatmentFilters" + }, + "patientTreatmentTargetFilters": { + "$ref": "#/definitions/AndedPatientTreatmentFilters" + }, + "sampleIdentifiers": { + "type": "array", + "items": { "$ref": "#/definitions/SampleIdentifier" } + }, + "sampleTreatmentFilters": { + "$ref": "#/definitions/AndedSampleTreatmentFilters" + }, + "sampleTreatmentGroupFilters": { + "$ref": "#/definitions/AndedSampleTreatmentFilters" + }, + "sampleTreatmentTargetFilters": { + "$ref": "#/definitions/AndedSampleTreatmentFilters" + }, + "structuralVariantFilters": { + "type": "array", + "items": { "$ref": "#/definitions/StudyViewStructuralVariantFilter" } + }, + "studyIds": { "type": "array", "items": { "type": "string" } } + }, + "title": "StudyViewFilter" + }, + "StudyViewStructuralVariantFilter": { + "type": "object", + "properties": { + "molecularProfileIds": { + "type": "array", + "uniqueItems": true, + "items": { "type": "string" } + }, + "structVarQueries": { + "type": "array", + "items": { + "type": "array", + "items": { "$ref": "#/definitions/StructuralVariantFilterQuery" } + } + } + }, + "title": "StudyViewStructuralVariantFilter" + }, + "TypeOfCancer": { + "type": "object", + "required": ["cancerTypeId"], + "properties": { + "cancerTypeId": { "type": "string" }, + "dedicatedColor": { "type": "string" }, + "name": { "type": "string" }, + "parent": { "type": "string" }, + "shortName": { "type": "string" } + }, + "title": "TypeOfCancer" + } + } +} diff --git a/cbioportal/adapters/cbioportal_adapter.py b/cbioportal/adapters/cbioportal_adapter.py index 77000b3..ab7f700 100644 --- a/cbioportal/adapters/cbioportal_adapter.py +++ b/cbioportal/adapters/cbioportal_adapter.py @@ -62,7 +62,6 @@ def get_data_from_api(self, _type): if _type in [SampleField, samplePatientAssociationField]: if "samples" in self.api_called: return self.api_called["samples"] self.api_called["samples"] = [] - # studies = self.cbioportal.Studies.getAllStudiesUsingGET().result() studies = self.check_api_called(StudyField) print(f"Getting samples of {len(studies)} studies") for i, study in enumerate(studies): @@ -75,12 +74,11 @@ def get_data_from_api(self, _type): if "sample_lists" in self.api_called: return self.api_called["sample_lists"] self.api_called["sample_lists"] = self.cbioportal.Sample_Lists.getAllSampleListsUsingGET().result()[0:self.limit] return self.api_called["sample_lists"] - if _type == GeneField: if "genes" in self.api_called: return self.api_called["genes"] self.api_called["genes"] = self.cbioportal.Genes.getAllGenesUsingGET().result()[0:self.limit] return self.api_called["genes"] - if _type in [GenePanelField, GenePanelGeneAssociationField]: + if _type in [GenePanelField]: if "gene_panels" in self.api_called: return self.api_called["gene_panels"] self.api_called["gene_panels"] = self.cbioportal.Gene_Panels.getAllGenePanelsUsingGET().result()[0:self.limit] return self.api_called["gene_panels"] @@ -92,36 +90,42 @@ def get_data_from_api(self, _type): if "clinical_attributes" in self.api_called: return self.api_called["clinical_attributes"] self.api_called["clinical_attributes"] = self.cbioportal.Clinical_Attributes.getAllClinicalAttributesUsingGET().result()[0:self.limit] return self.api_called["clinical_attributes"] - if _type in [PatientSampleStudyEntityField, PatientToPatientSampleStudyEntityField, SampleToPatientSampleStudyEntityField, StudyToPatientSampleStudyEntityField]: - print("not correctly implemeted yet!") - return [] - if "patient_sample_study_entities" in self.api_called: return self.api_called["patient_sample_study_entities"] - patients = self.check_api_called(PatientField) - samples = self.check_api_called(SampleField) - studies = self.check_api_called(StudyField) - self.api_called["patient_sample_study_entities"] = [] - counter = 0 - for _id1 in patients: - for _id2 in samples: - for _id3 in studies: - id = hash(f"{_id1.patientId}_{_id2.sampleId}_{_id3.studyId}") - self.api_called["patient_sample_study_entities"].append({"patientId":_id1.patientId, "sampleId":_id2.sampleId, "studyId":_id3.studyId, "id":id}) - counter += 1 - if counter == self.limit: - return self.api_called["patient_sample_study_entities"] - return self.api_called["patient_sample_study_entities"] - + if _type in [MutationField, mutationToSampleField, mutationToGeneField, mutationToStudyField, mutationToPatientField, mutationToMolecularProfileField]: + if "mutations" in self.api_called: return self.api_called["mutations"] + profiles = self.check_api_called(MolecularProfileField) + # get a list of all molecular profile ids of all the profiles + molecularProfileIds = [profile["molecularProfileId"] for profile in profiles] + print(f"Getting mutations in {len(molecularProfileIds)} molecular profiles") + mutations_per_profile = {} + def get_mutations_in_profile(profile_id): + try: + return self.cbioportal.Mutations.fetchMutationsInMultipleMolecularProfilesUsingPOST(mutationMultipleStudyFilter = {"molecularProfileIds":[profile_id]}).result()[0:self.limit] + except HTTPNotFound: + return [] + for i, profile_id in enumerate(molecularProfileIds): + mutations_per_profile[profile_id] = get_mutations_in_profile(profile_id) + print(f"Profile {i+1}/{len(molecularProfileIds)}: {len(mutations_per_profile[profile_id])} mutations") + + self.api_called["mutations"] = [mutation for mutations in mutations_per_profile.values() for mutation in mutations] + print(f"found {len(self.api_called['mutations'])} mutations in {len(molecularProfileIds)} molecular profiles") + return self.api_called["mutations"] if _type == "test": print(dir(self.cbioportal)) - gene_panels = self.cbioportal.Gene_Panels.getAllGenePanelsUsingGET().result() - print(gene_panels[0]) + + else: raise ValueError(f"Node type {_type} not supported.") def _yield_node_type(self, items, node_type): for item in items: - _id = item[node_type._ID.value] + if isinstance(node_type._ID.value, str): + _id = item[node_type._ID.value] + elif isinstance(node_type._ID.value, list): + _id = str(hash("_".join([str(item[field]) for field in node_type._ID.value]))) + else: + raise ValueError("ID field must be a string or a list of strings.") + _type = node_type._LABEL.value _props = {"version": self.version} for field in node_type: @@ -151,8 +155,19 @@ def get_nodes(self): def _yield_edge_type(self, items, edge_type): for item in items: - _subject = item[edge_type._SUBJECT.value] - _object = item[edge_type._OBJECT.value] + if isinstance(edge_type._SUBJECT.value, str): + _subject = item[edge_type._SUBJECT.value] + elif isinstance(edge_type._SUBJECT.value, list): + _subject = str(hash("_".join([str(item[field]) for field in edge_type._SUBJECT.value]))) + else: + raise ValueError("_subject field must be a string or a list of strings.") + + if isinstance(edge_type._OBJECT.value, str): + _object = item[edge_type._OBJECT.value] + elif isinstance(edge_type._OBJECT.value, list): + _object = str(hash("_".join([str(item[field]) for field in edge_type._OBJECT.value]))) + else: + raise ValueError("_subject field must be a string or a list of strings.") try: item[edge_type._ID.value] diff --git a/cbioportal/adapters/edge_field_classes.py b/cbioportal/adapters/edge_field_classes.py index c8c90c0..519820c 100644 --- a/cbioportal/adapters/edge_field_classes.py +++ b/cbioportal/adapters/edge_field_classes.py @@ -35,14 +35,6 @@ class samplePatientAssociationField(Enum): _OBJECT = "patientId" _LABEL = "fromPatient" -class GenePanelGeneAssociationField(Enum): - """ - Define possible fields the adapter can provide for genePanel-gene associations. - """ - _SUBJECT = "genePanelId" - _OBJECT = "genes" - _LABEL = "hasGene" - class MolecularProfiletoStudyField(Enum): """ Define possible fields the adapter can provide for molecular profile - study associations. @@ -75,27 +67,42 @@ class CopyNumberSegmentToSampleField(Enum): _OBJECT = "sampleId" _LABEL = "fromSample" +class mutationToSampleField(Enum): + """ + Define possible fields the adapter can provide for mutation - sample associations. + """ + _SUBJECT = ["molecularProfileId", "sampleId", "patientId", "entrezGeneId", "studyId"] + _OBJECT = "sampleId" + _LABEL = "fromSample" -class PatientToPatientSampleStudyEntityField(Enum): +class mutationToGeneField(Enum): """ - Define possible fields the adapter can provide for patient - patient sample study entity associations. + Define possible fields the adapter can provide for mutation - gene associations. """ - _SUBJECT = "patientId" - _OBJECT = "id" - _LABEL = "partOf" + _SUBJECT = ["molecularProfileId", "sampleId", "patientId", "entrezGeneId", "studyId"] + _OBJECT = "entrezGeneId" + _LABEL = "fromGene" -class SampleToPatientSampleStudyEntityField(Enum): +class mutationToStudyField(Enum): """ - Define possible fields the adapter can provide for sample - patient sample study entity associations. + Define possible fields the adapter can provide for mutation - study associations. """ - _SUBJECT = "sampleId" - _OBJECT = "id" - _LABEL = "partOf" + _SUBJECT = ["molecularProfileId", "sampleId", "patientId", "entrezGeneId", "studyId"] + _OBJECT = "studyId" + _LABEL = "hasStudy" -class StudyToPatientSampleStudyEntityField(Enum): +class mutationToPatientField(Enum): """ - Define possible fields the adapter can provide for study - patient sample study entity associations. + Define possible fields the adapter can provide for mutation - patient associations. """ - _SUBJECT = "studyId" - _OBJECT = "id" - _LABEL = "partOf" + _SUBJECT = ["molecularProfileId", "sampleId", "patientId", "entrezGeneId", "studyId"] + _OBJECT = "patientId" + _LABEL = "fromPatient" + +class mutationToMolecularProfileField(Enum): + """ + Define possible fields the adapter can provide for mutation - molecular profile associations. + """ + _SUBJECT = ["molecularProfileId", "sampleId", "patientId", "entrezGeneId", "studyId"] + _OBJECT = "molecularProfileId" + _LABEL = "fromMolecularProfile" \ No newline at end of file diff --git a/cbioportal/adapters/node_field_classes.py b/cbioportal/adapters/node_field_classes.py index b88cb9d..eaddd82 100644 --- a/cbioportal/adapters/node_field_classes.py +++ b/cbioportal/adapters/node_field_classes.py @@ -48,7 +48,6 @@ class SampleListField(Enum): NAME = "name" CATEGORY = "category" SAMPLE_COUNT = "sampleCount" - SAMPLE_IDS = "sampleIds" class GeneField(Enum): _ID = "entrezGeneId" @@ -111,14 +110,38 @@ class CopyNumberSegmentField(Enum): SEGMENT_MEAN = "segmentMean" START = "start" STUDY_ID = "studyId" - -class PatientSampleStudyEntityField(Enum): - """ - Define possible fields the adapter can provide for patient-sample-study entities. - """ - PATIENT_ID = "patientId" - SAMPLE_ID = "sampleId" - STUDY_ID = "studyId" - _LABEL = "PatientSampleStudyEntity" - _ID = "id" +# EXAMPLE +# Mutation(alleleSpecificCopyNumber=None, aminoAcidChange=None, center='MSKCC', chr='15', driverFilter=None, driverFilterAnnotation=None, driverTiersFilter=None, driverTiersFilterAnnotation=None, endPosition=30700159, entrezGeneId=101059918, gene=None, keyword='GOLGA8R W275 missense', molecularProfileId='acbc_mskcc_2015_mutations', mutationStatus='SOMATIC', mutationType='Missense_Mutation', namespaceColumns=None, ncbiBuild='GRCh37', normalAltCount=None, normalRefCount=None, patientId='AdCC3T', proteinChange='W275R', proteinPosEnd=275, proteinPosStart=275, referenceAllele='A', refseqMrnaId='NM_001282484.1', sampleId='AdCC3T', startPosition=30700159, studyId='acbc_mskcc_2015', tumorAltCount=20, tumorRefCount=80, uniquePatientKey='QWRDQzNUOmFjYmNfbXNrY2NfMjAxNQ', uniqueSampleKey='QWRDQzNUOmFjYmNfbXNrY2NfMjAxNQ', validationStatus='Unknown', variantAllele='G', variantType='SNP') +class MutationField(Enum): + ALLELE_SPECIFIC_COPY_NUMBER = "alleleSpecificCopyNumber" + AMINO_ACID_CHANGE = "aminoAcidChange" + CENTER = "center" + CHROMOSOME = "chr" + DRIVER_FILTER = "driverFilter" + DRIVER_FILTER_ANNOTATION = "driverFilterAnnotation" + DRIVER_TIERS_FILTER = "driverTiersFilter" + DRIVER_TIERS_FILTER_ANNOTATION = "driverTiersFilterAnnotation" + END_POSITION = "endPosition" + KEYWORD = "keyword" + MUTATION_STATUS = "mutationStatus" + MUTATION_TYPE = "mutationType" + NAMESPACE_COLUMNS = "namespaceColumns" + NCBI_BUILD = "ncbiBuild" + NORMAL_ALT_COUNT = "normalAltCount" + NORMAL_REF_COUNT = "normalRefCount" + PROTEIN_CHANGE = "proteinChange" + PROTEIN_POS_END = "proteinPosEnd" + PROTEIN_POS_START = "proteinPosStart" + REFERENCE_ALLELE = "referenceAllele" + REFSEQ_MRNA_ID = "refseqMrnaId" + START_POSITION = "startPosition" + TUMOR_ALT_COUNT = "tumorAltCount" + TUMOR_REF_COUNT = "tumorRefCount" + UNIQUE_PATIENT_KEY = "uniquePatientKey" + UNIQUE_SAMPLE_KEY = "uniqueSampleKey" + VALIDATION_STATUS = "validationStatus" + VARIANT_ALLELE = "variantAllele" + VARIANT_TYPE = "variantType" + _ID = ["molecularProfileId", "sampleId", "patientId", "entrezGeneId", "studyId"] + _LABEL = "Mutation" \ No newline at end of file diff --git a/config/schema_config.yaml b/config/schema_config.yaml index d8af17b..2cc0eea 100644 --- a/config/schema_config.yaml +++ b/config/schema_config.yaml @@ -97,6 +97,41 @@ clinical attribute: patientAttribute: str priority: str +mutation: + is_a: molecular entity + represented_as: node + input_label: Mutation + properties: + allele_specific_copy_number: str + amino_acid_change: str + c_position: str + chromosome: str + end_position: str + start_position: str + keyword: str + mutation_status: str + mutation_type: str + ncbi_build: str + normal_alt_count: str + normal_ref_count: str + protein_change: str + protein_pos_start: str + protein_pos_end: str + reference_allele: str + variant_allele: str + refseq_mrna_id: str + tumor_alt_count: str + tumor_ref_count: str + unique_sample_key: str + unique_patient_key: str + validation_status: str + variant_type: str + + + +# --------------------------------------------------- +# associations + is child of: is_a: [association, disease disease association] represented_as: edge @@ -127,12 +162,22 @@ has clinical attribute: represented_as: edge input_label: hasClinicalAttribute -has gene: +part of: is_a: association represented_as: edge - input_label: hasGene + input_label: partOf -part of: +from sample: + is_a: association + represented_as: edge + input_label: fromSample + +from gene: + is_a: association + represented_as: edge + input_label: fromGene + +from molecular profile: is_a: association represented_as: edge - input_label: partOf \ No newline at end of file + input_label: fromMolecularProfile diff --git a/create_knowledge_graph.py b/create_knowledge_graph.py index fb72bef..21bca1c 100644 --- a/create_knowledge_graph.py +++ b/create_knowledge_graph.py @@ -10,29 +10,31 @@ bc = BioCypher() node_types = [ - PatientSampleStudyEntityField, + MutationField, MolecularProfileField, - SampleListField, - ClinicalAttributesField, + # SampleListField, + # ClinicalAttributesField, GeneField, - GenePanelField, - CancerTypeField, + # GenePanelField, + # CancerTypeField, StudyField, PatientField, - SampleField + SampleField, ] edge_types = [ - PatientToPatientSampleStudyEntityField, - SampleToPatientSampleStudyEntityField, - StudyToPatientSampleStudyEntityField, - SampleListToStudyField, - StudyToClinicalDataField, - MolecularProfiletoStudyField, - GenePanelGeneAssociationField, - DiseaseDiseaseAssociationField, - StudyDiseaseAssociationField, - studyPatientAssociationField, - samplePatientAssociationField + # SampleListToStudyField, + # StudyToClinicalDataField, + # MolecularProfiletoStudyField, + # DiseaseDiseaseAssociationField, + # StudyDiseaseAssociationField, + # studyPatientAssociationField, + # samplePatientAssociationField, + mutationToMolecularProfileField, + mutationToSampleField, + mutationToGeneField, + mutationToStudyField, + mutationToPatientField + ] # Create a protein adapter instance diff --git a/get_api_data.py b/get_api_data.py new file mode 100644 index 0000000..84fe65b --- /dev/null +++ b/get_api_data.py @@ -0,0 +1,4 @@ +from bravado.client import SwaggerClient + +SwaggerClient.from_url('https://www.cbioportal.org/api/v2/api-docs', + config={"validate_requests":False,"validate_responses":False,"validate_swagger_spec": False}) diff --git a/mermaid_diagram.py b/mermaid_diagram.py new file mode 100644 index 0000000..3714b68 --- /dev/null +++ b/mermaid_diagram.py @@ -0,0 +1,98 @@ +## creating a mermaid diagram based on the api_docs.json file +## the api_docs.json file contains some tags, which will be the nodes of the diagram +## in the 'paths', there are some enum parameters which show the attributes of those nodes +## sometimes the api needs some input id in order to retrieve the data. + +import json + +mermaid_text = "classDiagram \n" + +# load the api_docs.json file +api_docs = json.load(open('api_docs.json')) +print(api_docs.keys()) +# print(api_docs["definitions"]["Studies"].keys()) +# get the tags, these will be the classes +tags = [tag["name"] for tag in api_docs['tags']] + +# print(mermaid_text) +tag_to_definition = {} +for path, info in api_docs["paths"].items(): + + if "get" in info: + response = info["get"]["responses"]["200"]["schema"] + if "items" in response: + if "$ref" in response["items"]: + # print(path) + tag_to_definition[info["get"]["tags"][0]] = response["items"]["$ref"].split("/")[-1] + + # print(info["get"]["tags"]) + + # print(response["items"]["$ref"]) + # print() + +# print(set(tags) - set(tag_to_definition.keys())) +# print(tags) +tag_to_object = {} +for definition, data in api_docs["definitions"].items(): + if definition not in tag_to_definition.values(): + continue + + # print(definition) + if "required" not in data: + continue + tag_to_object[definition] = data["required"][0] + # print(data["required"][1:-1]) + mermaid_text += f"class {definition}{{ \n" + for attribute, value in data['properties'].items(): + if "type" in value: + # print(attribute) + if attribute not in data["required"][1:]: + mermaid_text += f" +{value['type']}: {attribute} \n" + + mermaid_text += f" }}\n" + +relations = "" +for definition, data in api_docs["definitions"].items(): + if definition not in tag_to_definition.values(): + continue + print(definition) + for attribute, value in data['properties'].items(): + print("\t", attribute, value) + obj = None + + # optional + for obj, identifier in tag_to_object.items(): + if attribute == identifier: + if definition != obj: + s = f" {definition} --> {obj} \n" + print(s) + relations += s + + if "$ref" in value: + val = value['$ref'].split('/')[-1] + if obj == val: + continue + s: str = f" {definition} --> {val} \n" + relations +=s + if "type" in value: + if value["type"] == "array": + if "$ref" in value["items"]: + relations += f" {definition} --> {value['items']['$ref'].split('/')[-1]} \n" + + + +# for subject,identifier in tag_to_object.items(): +# # for prop in valueProps: +# if identifier.endswith("Id"): +# print(subject, identifier) +# for obj, objProps in tag_to_object.items(): +# if subject == obj: +# continue + # if valueProps[0] in objProps: + # mermaid_text += f"{obj} --|> {subject}\n" + # print(obj, subject) + +# print("\n".join(set(relations.split("\n")))) +print(mermaid_text+ "\n"+ "\n".join(set(relations.split("\n")))) + + diff --git a/model.drawio b/model.drawio new file mode 100644 index 0000000..4e1f9f7 --- /dev/null +++ b/model.drawio @@ -0,0 +1,1167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +