Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
90eed36
ODM-12847: cell analysis: diff expression
m-smazhevsky Oct 24, 2025
ab524ef
ODM-12847: response model fix
m-smazhevsky Oct 24, 2025
fbe6d07
Merge branch 'develop' into feature/ODM-12847_diff-expression
m-smazhevsky Oct 29, 2025
745abb6
Merge branch 'develop' into feature/ODM-12847_diff-expression
m-smazhevsky Oct 30, 2025
b28773c
Merge branch 'develop' into feature/ODM-12847_diff-expression
m-smazhevsky Nov 1, 2025
5065e71
Merge remote-tracking branch 'origin/develop' into feature/ODM-12847_…
m-smazhevsky Nov 3, 2025
658d76a
ODM-12847: diff expression
m-smazhevsky Nov 3, 2025
2284fdd
ODM-12847: bugfix
m-smazhevsky Nov 4, 2025
1267fd4
ODM-12847: bugfix
m-smazhevsky Nov 4, 2025
10e0d77
ODM-12847: allowing NaN and Infs in sdk?
m-smazhevsky Nov 4, 2025
e7eaf5e
ODM-12847: test python gen
m-smazhevsky Nov 5, 2025
7233d7e
ODM-12847: test python gen2
m-smazhevsky Nov 5, 2025
bae14d0
ODM-12847: one more version...
m-smazhevsky Nov 5, 2025
28aba9a
ODM-12847: switching back to number
m-smazhevsky Nov 5, 2025
85168b6
ODM-12846: Cell analytics - Gene Summary - added endpoint skeleton fo…
marijan-mihaljev Nov 5, 2025
a720ee0
ODM-12846: Cell analytics - Gene Summary - added endpoint skeleton fo…
marijan-mihaljev Nov 5, 2025
76adcb2
ODM-12847: shorten names (to shorten "DifferentialExpressionResultRes…
m-smazhevsky Nov 5, 2025
0ec015d
ODM-12847: Mann–Whitney U test
m-smazhevsky Nov 5, 2025
32ecefe
ODM-12846: Cell analytics - Gene Summary - added GeneSummaryRequest f…
marijan-mihaljev Nov 5, 2025
3d25f6d
ODM-12846: Cell analytics - Gene Summary - added GeneSummaryResponse …
marijan-mihaljev Nov 5, 2025
ace5a54
ODM-12846: Cell analytics - Gene Summary - added GeneSummaryRequest a…
marijan-mihaljev Nov 5, 2025
9cbacf4
ODM-12846: Cell analytics - Gene Summary - added GeneSummaryRequest a…
marijan-mihaljev Nov 6, 2025
1b204a1
ODM-12846: Cell analytics - Gene Summary - removed trailing whitespace
marijan-mihaljev Nov 6, 2025
9cbca74
ODM-12846: Cell analytics - Gene Summary - renamed request property
marijan-mihaljev Nov 6, 2025
9654dee
ODM-12846: Cell analytics - Gene Summary - added summary for Curator …
marijan-mihaljev Nov 6, 2025
dfc96ec
Merge branch 'feature/ODM-12847_diff-expression' into feature/ODM-128…
marijan-mihaljev Nov 6, 2025
6fdd84b
Merge branch 'develop' into feature/ODM-12847_diff-expression
m-smazhevsky Nov 6, 2025
84f2551
ODM-12847: code review comment
m-smazhevsky Nov 6, 2025
72adc74
Merge branch 'feature/ODM-12847_diff-expression' into feature/ODM-128…
marijan-mihaljev Nov 6, 2025
fe37afd
ODM-12846: Cell analytics - Gene Summary - fixed user's endpoint
marijan-mihaljev Nov 7, 2025
431bf0a
ODM-12846: Cell analytics - Gene Summary - fixed user's endpoint
marijan-mihaljev Nov 7, 2025
617cab5
Merge branch 'develop' into feature/ODM-12847_diff-expression
eeliane Nov 10, 2025
54bf9e0
ODM-12847: minor
m-smazhevsky Nov 10, 2025
dc94a51
Merge branch 'feature/ODM-12847_diff-expression' into feature/ODM-128…
eeliane Nov 10, 2025
46fa2d7
Merge branch 'develop' into feature/ODM-12847_diff-expression
eeliane Nov 11, 2025
ea682e2
Merge branch 'feature/ODM-12847_diff-expression' into feature/ODM-128…
eeliane Nov 11, 2025
3d79e7b
ODM-12846: Cell analytics - Gene Summary - changed analysis to analytics
marijan-mihaljev Nov 12, 2025
be1f0cc
ODM-12846: Cell analytics - Gene Summary - renamed gene summary respo…
marijan-mihaljev Nov 12, 2025
012efda
!!ODM-12847: duplicating params description
m-smazhevsky Nov 12, 2025
7ebcc7f
ODM-12846: Cell analytics - Gene Summary - renamed gene summary respo…
marijan-mihaljev Nov 12, 2025
9aaa96a
Merge branch 'feature/ODM-12847_diff-expression' into feature/ODM-128…
marijan-mihaljev Nov 12, 2025
5787d70
ODM-12846: Cell analytics - Gene Summary - update summary and descrip…
marijan-mihaljev Nov 12, 2025
9000cff
ODM-12846: Cell analytics - Gene Summary - Refactor emphasizing on re…
marijan-mihaljev Nov 12, 2025
6e0aae3
Merge branch 'develop' into feature/ODM-12846-gene-summary-analytics
marijan-mihaljev Nov 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions openapi/v1/integrationCurator.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7075,6 +7075,59 @@ paths:
security:
- Access-token: [ ]
- Genestack-API-Token: [ ]
/api/v1/as-curator/omics/cells/analytics/gene-summary:
post:
operationId: geneSummaryAsCurator
summary: "[BETA] Compute and retrieve descriptive statistics and visual summaries for single-cell data."
tags:
- "[BETA] Analytics omics queries as Curator"
description: |+
This endpoint provides descriptive statistical metrics for gene expression across single-cell datasets.
It aggregates and summarizes expression data for each gene to help assess variability, distribution,
and intensity of expression within the population of cells.

The computed metrics include:
- `Gene name` - gene identifier.
- `Cell count` - number of cells with measurable expression for each gene.
- `Mean expression value`
- `Median expression value`
- `Quantiles` - configurable expression percentiles.
- `Histogram (density)` - binned distribution of expression levels for visualization.
- `Standard deviation` - dispersion of expression values.
- `Minimum and maximum values` - range of expression across cells.

Results are sorted by gene name.
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/GSRequest"
responses:
"200":
description: Gene summary result
content:
application/json:
schema:
$ref: "#/components/schemas/GSResponse"
"400":
content: { }
description: Invalid data in the request. See the error message for details.
"401":
content: { }
description: |+
User is not authenticated. Please supply a valid Access Token in the `Authorization`
HTTP header (e.g. Authorization: bearer [token]) or Genestack API token in the `Genestack-API-Token`
header (this token may be obtained from the Genestack UI _Profile_ page).
"500":
content: { }
description: |+
An internal server error occurred. This indicates an unexpected
failure in the Genestack system, please file a bug report to support@genestack.com,
including the error details."
security:
- Access-token: [ ]
- Genestack-API-Token: [ ]
/api/v1/as-curator/integration/studies/{id}/tasks/publish-versions:
post:
description: This endpoint publishes information from staging and creates new
Expand Down Expand Up @@ -7430,6 +7483,10 @@ components:
$ref: "./schemas/cell/DERequest.yaml"
DEResponse:
$ref: "./schemas/cell/DEResponse.yaml"
GSRequest:
$ref: "./schemas/cell/GSRequest.yaml"
GSResponse:
$ref: "./schemas/cell/GSResponse.yaml"
securitySchemes:
Access-token:
in: header
Expand Down
57 changes: 57 additions & 0 deletions openapi/v1/integrationUser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5526,6 +5526,59 @@ paths:
security:
- Access-token: [ ]
- Genestack-API-Token: [ ]
/api/v1/as-user/omics/cells/analytics/gene-summary:
post:
operationId: geneSummaryAsUser
summary: "[BETA] Compute and retrieve descriptive statistics and visual summaries for single-cell data."
tags:
- "[BETA] Analytics omics queries as User"
description: |+
This endpoint provides descriptive statistical metrics for gene expression across single-cell datasets.
It aggregates and summarizes expression data for each gene to help assess variability, distribution,
and intensity of expression within the population of cells.

The computed metrics include:
- `Gene name` - gene identifier.
- `Cell count` - number of cells with measurable expression for each gene.
- `Mean expression value`
- `Median expression value`
- `Quantiles` - configurable expression percentiles.
- `Histogram (density)` - binned distribution of expression levels for visualization.
- `Standard deviation` - dispersion of expression values.
- `Minimum and maximum values` - range of expression across cells.

Results are sorted by gene name.
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/GSRequest"
responses:
"200":
description: Gene summary result
content:
application/json:
schema:
$ref: "#/components/schemas/GSResponse"
"400":
content: { }
description: Invalid data in the request. See the error message for details.
"401":
content: { }
description: |+
User is not authenticated. Please supply a valid Access Token in the `Authorization`
HTTP header (e.g. Authorization: bearer [token]) or Genestack API token in the `Genestack-API-Token`
header (this token may be obtained from the Genestack UI _Profile_ page).
"500":
content: { }
description: |+
An internal server error occurred. This indicates an unexpected
failure in the Genestack system, please file a bug report to support@genestack.com,
including the error details."
security:
- Access-token: [ ]
- Genestack-API-Token: [ ]
/api/v1/as-user/integration/link/files/by/study/{id}:
get:
operationId: getFilesByStudyAsUser
Expand Down Expand Up @@ -5649,6 +5702,10 @@ components:
$ref: "./schemas/cell/DERequest.yaml"
DEResponse:
$ref: "./schemas/cell/DEResponse.yaml"
GSRequest:
$ref: "./schemas/cell/GSRequest.yaml"
GSResponse:
$ref: "./schemas/cell/GSResponse.yaml"
securitySchemes:
Access-token:
in: header
Expand Down
52 changes: 52 additions & 0 deletions openapi/v1/schemas/cell/GSRequest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
type: object
properties:
cellGroup:
$ref: '#/components/schemas/CellGroupRequest'
geneNames:
type: array
items:
type: string
example:
- "ENSG00000230368"
- "ENSG00000188976"
- "ENSG00000188982"
exQuery:
type: string
example: '-3 < value < 3'
required:
- geneNames
components:
schemas:
CellGroupRequest:
type: object
properties:
studyFilter:
type: string
example: '"Study Source"=ArrayExpress'
studyQuery:
type: string
example: 'RNA-Seq of human dendritic cells'
sampleFilter:
type: string
example: '"Species or strain"="Homo sapiens"'
sampleQuery:
type: string
example: 'Clozapine'
libraryFilter:
type: string
example: '"Library Type"=RNA-Seq-1'
libraryQuery:
type: string
example: 'illumina HiSeq500'
preparationFilter:
type: string
example: 'Digestion=Trypsin'
preparationQuery:
type: string
example: 'reversed-phase liquid chromatography'
cellQuery:
type: string
example: 'cellType=Macrophage,Monocyte'
searchSpecificTerms:
type: boolean
example: false
68 changes: 68 additions & 0 deletions openapi/v1/schemas/cell/GSResponse.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
type: object
properties:
resultsPerGene:
type: array
items:
$ref: '#/components/schemas/GeneSummaryEntry'
components:
schemas:
GeneSummaryEntry:
type: object
description: Per-gene summary statistics.
properties:
geneId:
type: string
description: Gene identifier.
example: "ENSG00000111640"
cellCount:
type: integer
format: int32
description: Number of cells expressing the gene.
example: 8968167
mean:
type: number
format: double
description: Mean expression
example: 7.747614311820911
median:
type: number
format: double
description: Median expression
example: 7
stdDev:
type: number
format: double
description: Standard deviation
example: 6.499314669429827
min:
type: number
format: double
description: Minimum value
example: 1
max:
type: number
format: double
description: Maximum value
example: 496
quantiles:
type: array
description: |
List of quantile values from 0 to 1 (inclusive), with step 0.1
example: |
[1, 1, 2, 3, 5, 7, 10, 12, 15, 27, 192]
items:
type: number
format: double
histogram:
type: array
description: |
Histogram as a list of [binStart, binEnd, count] triples.
Length depends of the selected sample size, maximum is 20.
example: |
[(1, 15.50289002318, 7686678.375), (15.50289002318, 35.49570418233824, 1229164),
(35.49570418233824, 56.93121325335453, 36531.25), (56.93121325335453, 77.21467372919479, 6910.625)]
items:
type: array
items:
type: number
format: double
Loading