@jax-data-science/api-clients 0.0.1 → 0.1.0-a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@jax-data-science/api-clients",
3
- "version": "0.0.1",
3
+ "version": "0.1.0-a.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^19.2.14",
6
- "@angular/core": "^19.2.14",
5
+ "@angular/common": "^20.3.0",
6
+ "@angular/core": "^20.3.0",
7
7
  "rxjs": "^7.8.0",
8
8
  "@microsoft/fetch-event-source": "^2.0.1"
9
9
  },
@@ -1,4 +0,0 @@
1
- export interface BaseResponse {
2
- errors?: Error[];
3
- info?: Record<string, any>;
4
- }
@@ -1,5 +0,0 @@
1
- export interface ErrorResponse {
2
- code?: string;
3
- num_code?: number;
4
- message: string;
5
- }
@@ -1,75 +0,0 @@
1
- /**
2
- * This module defines the data models for representing the Investigation-Study-Assay (ISA)
3
- * data model, which is a standard for describing life science experiments and their results.
4
- *
5
- * Key Concepts:
6
- * - Investigation: The overall research project or study.
7
- * - Study: A specific experimental design within an investigation.
8
- * - Assay: A specific test or measurement performed on samples within a study.
9
- *
10
- * Measures represent the actual data points collected from assay executions, including:
11
- * - Measure: a single assay results with unique identifier
12
- * - MeasureSeries: a collection of measures that share common metadata and characteristics
13
- *
14
- * Each measure/series contains values, metadata about the experimental conditions,
15
- * and characteristics that describe sample properties or experimental parameters.
16
- */
17
- export interface Measure {
18
- id: string;
19
- values?: MeasureValue[];
20
- metadata?: MeasureMetadata;
21
- characteristics?: IsaCharacteristic[];
22
- }
23
- export interface MeasureSeries {
24
- id: string;
25
- values?: MeasureValue[];
26
- measures?: string[];
27
- metadata?: MeasureSeriesMetadata;
28
- characteristics?: IsaCharacteristic[];
29
- }
30
- export interface MeasureMetadata {
31
- assay_id: number;
32
- description: string;
33
- measure_id: number;
34
- method: string;
35
- study_id: string;
36
- units: string;
37
- treatment: string;
38
- variable_name: string;
39
- characteristics?: Record<string, string[]>;
40
- }
41
- export interface MeasureSeriesMetadata {
42
- assay_id: number;
43
- description: string;
44
- initiated_at_units?: string;
45
- measure_ids: string[];
46
- measure_series_id: string;
47
- measurement_units: string;
48
- method: string;
49
- study_id?: number;
50
- treatment: string;
51
- treatment_units: string;
52
- variable_name: string;
53
- characteristics?: Record<string, string[]>;
54
- }
55
- export interface MeasureValue {
56
- value: string | number;
57
- measure_id: string;
58
- measure_series_id?: string;
59
- study_id?: string;
60
- source_id: string;
61
- }
62
- export interface IsaCharacteristicValue {
63
- value: string | number | boolean | Date;
64
- label: string;
65
- count?: number;
66
- description?: string;
67
- metadata: Record<string, string>;
68
- }
69
- export interface IsaCharacteristic {
70
- name: string;
71
- value: IsaCharacteristicValue | IsaCharacteristicValue[];
72
- type?: string;
73
- unit?: string;
74
- description?: string;
75
- }
@@ -1,13 +0,0 @@
1
- export interface PagingLinks {
2
- first?: string;
3
- previous?: string;
4
- next?: string;
5
- last?: string;
6
- }
7
- export interface Paging {
8
- page?: number;
9
- items?: number;
10
- total_pages?: number;
11
- total_items?: number;
12
- links?: PagingLinks;
13
- }
@@ -1,9 +0,0 @@
1
- import { BaseResponse } from './base-response';
2
- import { Paging } from './paging';
3
- export interface Response<T> extends BaseResponse {
4
- object?: T;
5
- }
6
- export interface CollectionResponse<T> extends BaseResponse {
7
- data: T[];
8
- paging?: Paging;
9
- }
@@ -1,164 +0,0 @@
1
- /**
2
- * AsyncTask Service Models
3
- *
4
- * This module contains TypeScript interfaces for the AsyncTask service API.
5
- * These models are based on the OpenAPI specification and represent the
6
- * core entities used in the AsyncTask workflow system.
7
- */
8
- /**
9
- * Represents the current execution status of a workflow.
10
- * Based on temporalio.api.enums.v1.WorkflowExecutionStatus
11
- */
12
- export declare enum WorkflowExecutionStatus {
13
- RUNNING = 1,
14
- COMPLETED = 2,
15
- FAILED = 3,
16
- CANCELED = 4,
17
- TERMINATED = 5,
18
- CONTINUED_AS_NEW = 6,
19
- TIMED_OUT = 7
20
- }
21
- /**
22
- * Represents a configuration of input parameters for a workflow run.
23
- */
24
- export interface Input {
25
- /**
26
- * Auto-generated primary key
27
- */
28
- id?: number | null;
29
- /**
30
- * Type of the input
31
- */
32
- type?: string | null;
33
- /**
34
- * Foreign key to the user who created this input
35
- */
36
- owner_id: number;
37
- /**
38
- * JSON dictionary containing input parameters
39
- */
40
- values: Record<string, any>;
41
- /**
42
- * Optional descriptive name
43
- */
44
- name?: string | null;
45
- /**
46
- * Optional detailed description
47
- */
48
- description?: string | null;
49
- }
50
- /**
51
- * Lightweight reference to an input configuration.
52
- * Used for list endpoints to minimize data transfer.
53
- */
54
- export interface InputReference {
55
- /**
56
- * Input identifier
57
- */
58
- id: number;
59
- /**
60
- * Optional descriptive name
61
- */
62
- name?: string | null;
63
- /**
64
- * Optional detailed description
65
- */
66
- description?: string | null;
67
- }
68
- /**
69
- * Input submission for creating a new workflow run
70
- */
71
- export interface InputSubmission {
72
- /**
73
- * Optional descriptive name
74
- */
75
- name?: string | null;
76
- /**
77
- * Optional detailed description
78
- */
79
- description?: string | null;
80
- /**
81
- * Type of task to execute
82
- */
83
- task_type: string;
84
- /**
85
- * Input values specific to the task type
86
- */
87
- values: Record<string, any> | string;
88
- }
89
- /**
90
- * Represents output data from a completed workflow run.
91
- */
92
- export interface Result {
93
- /**
94
- * Auto-generated primary key
95
- */
96
- id: number;
97
- /**
98
- * Foreign key to the associated run
99
- */
100
- run_id: number;
101
- /**
102
- * JSON dictionary containing result data
103
- */
104
- values: Record<string, any>;
105
- /**
106
- * Optional descriptive name
107
- */
108
- name?: string | null;
109
- /**
110
- * Optional detailed description
111
- */
112
- description?: string | null;
113
- }
114
- /**
115
- * Lightweight reference to a result.
116
- * Used for list endpoints to minimize data transfer.
117
- */
118
- export interface ResultReference {
119
- /**
120
- * Result identifier
121
- */
122
- id: number;
123
- /**
124
- * Associated run identifier
125
- */
126
- run_id: number;
127
- /**
128
- * Optional descriptive name
129
- */
130
- name?: string | null;
131
- /**
132
- * Optional detailed description
133
- */
134
- description?: string | null;
135
- }
136
- /**
137
- * Represents an execution instance of a workflow.
138
- */
139
- export interface Run {
140
- /**
141
- * Auto-generated primary key
142
- */
143
- id: number;
144
- /**
145
- * Foreign key to the input configuration
146
- */
147
- input_id: number;
148
- /**
149
- * Foreign key to the user who initiated the run
150
- */
151
- owner_id: number;
152
- /**
153
- * Temporal workflow identifier
154
- */
155
- workflow_id: string;
156
- /**
157
- * Current execution status from Temporal
158
- */
159
- status: WorkflowExecutionStatus;
160
- /**
161
- * Run start time in ISO 8601 format
162
- */
163
- init_time?: string | null;
164
- }
@@ -1,60 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { Input, InputReference, InputSubmission, Result, ResultReference, Run } from './asynctask.model';
3
- import { CollectionResponse, Response } from '../../models/response';
4
- import * as i0 from "@angular/core";
5
- export declare class AsyncTaskService {
6
- private apiBaseUrl;
7
- private apiServiceFactory;
8
- private apiBaseService;
9
- setApiBaseUrl(baseUrl: string): void;
10
- getApiBaseUrl(): string;
11
- addInput(inputSubmission: InputSubmission): Observable<Response<Input>>;
12
- getInput(id: number): Observable<Response<Input>>;
13
- getInputs(): Observable<CollectionResponse<InputReference>>;
14
- /**
15
- * Updates an existing input - only 'name' and 'description' can be updated
16
- * @param inputId
17
- * @param name - (optional) name to update
18
- * @param description - (optional) description to update
19
- */
20
- updateInput(inputId: number, name?: string, description?: string): Observable<Response<InputReference>>;
21
- createRun(inputId?: number, inputSubmission?: InputSubmission): Observable<Response<Run>>;
22
- getRun(id: number): Observable<Response<Run>>;
23
- /**
24
- *
25
- * @param workflowId - (optional) workflow identifier
26
- */
27
- getRuns(workflowId?: string): Observable<CollectionResponse<Run>>;
28
- /**
29
- * Gets the input associated with the specific run ID. One run is associated
30
- * with only one input, so this function returns a single input object.
31
- * @param runId
32
- */
33
- getRunInput(runId: number): Observable<Response<Input>>;
34
- /**
35
- * Gets the result associated with the specific run ID. One run is associated
36
- * with only one result, so this function returns a single result object.
37
- * @param runId
38
- */
39
- getRunResult(runId: number): Observable<Response<Result>>;
40
- /**
41
- * Calls the fetchEventSource() function, which is a wrapper around the native
42
- * EventSource API. This function is used to establish connection to an API
43
- * endpoint and listen to event streaming data associated with task runs.
44
- * TO-DO [GIK 7/9/2025]: needs to add a reconnect logic
45
- * @return an observable that emits run events
46
- */
47
- getRunEvents(accessToken: string): Observable<Run>;
48
- getResult(resId: number): Observable<Response<Result>>;
49
- getResults(): Observable<CollectionResponse<ResultReference>>;
50
- /**
51
- * Updates an existing result record - 'name' and 'description' can be updated
52
- * @param resId
53
- * @param name - (optional) result's name to update
54
- * @param description - (optional) result's description to update
55
- */
56
- updateResult(resId: number, name?: string, description?: string): Observable<Response<ResultReference>>;
57
- getHealthCheck(): Observable<any>;
58
- static ɵfac: i0.ɵɵFactoryDeclaration<AsyncTaskService, never>;
59
- static ɵprov: i0.ɵɵInjectableDeclaration<AsyncTaskService>;
60
- }
@@ -1,74 +0,0 @@
1
- import { HttpClient, HttpErrorResponse, HttpParams } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import { Response, CollectionResponse } from './../models/response';
4
- import * as i0 from "@angular/core";
5
- export declare class ApiBaseServiceFactory {
6
- private http;
7
- constructor(http: HttpClient);
8
- create(baseUrl: string): ApiBaseService;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<ApiBaseServiceFactory, never>;
10
- static ɵprov: i0.ɵɵInjectableDeclaration<ApiBaseServiceFactory>;
11
- }
12
- export declare class ApiBaseService {
13
- private http;
14
- private baseUrl;
15
- constructor(http: HttpClient, baseUrl: string);
16
- /**
17
- * Handles API response errors and HTTP errors
18
- * @param response The API response
19
- * @private
20
- */
21
- private handleResponse;
22
- /**
23
- * Handles HTTP errors by catching them and rethrowing a consistent
24
- * error response that contains an error code, numeric code, and
25
- * a user-friendly message.
26
- * TO-DO: [GIK 6/10/2025] consider adding error logging capabilities to an external service
27
- * @param error an error object, typically an HttpErrorResponse
28
- * @returns an Observable that emits an ErrorResponse object
29
- */
30
- private handleHttpError;
31
- /**
32
- * Get a user-friendly error message based on the HTTP status code
33
- *
34
- * @param error
35
- * @return a string containing the error message
36
- */
37
- getErrorMessage(error: HttpErrorResponse): string;
38
- /**
39
- * Get a single resource
40
- * @param url The endpoint URL
41
- * @param params Optional query parameters
42
- */
43
- get<T>(url: string, params?: HttpParams): Observable<Response<T>>;
44
- /**
45
- * Get a collection of resources
46
- * @param url The endpoint URL
47
- * @param params Optional query parameters
48
- */
49
- private handleCollectionResponse;
50
- getCollection<T>(url: string, params?: HttpParams): Observable<CollectionResponse<T>>;
51
- /**
52
- * Create a new resource
53
- * @param url The endpoint URL
54
- * @param body The resource to create
55
- */
56
- post<T>(url: string, body: any): Observable<Response<T>>;
57
- /**
58
- * Update an existing resource
59
- * @param url The endpoint URL
60
- * @param body The resource updates
61
- */
62
- put<T>(url: string, body: any): Observable<Response<T>>;
63
- /**
64
- * Partially update an existing resource
65
- * @param url The endpoint URL
66
- * @param body The partial resource updates
67
- */
68
- patch<T>(url: string, body: any): Observable<Response<T>>;
69
- /**
70
- * Delete a resource
71
- * @param url The endpoint URL
72
- */
73
- delete<T>(url: string): Observable<Response<T>>;
74
- }
@@ -1,60 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { Response } from '../../models/response';
3
- import { MeasureSeriesMetadata, MeasureMetadata, IsaCharacteristic } from '../../models/isa-data/isa-data.model';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * service for interacting with ISA (Investigation-Study-Assay) data model API.
7
- */
8
- export declare class ISADataService {
9
- private readonly apiConfig;
10
- private readonly apiServiceFactory;
11
- private readonly apiBaseService;
12
- constructor();
13
- getApiBaseUrl(): string;
14
- /**
15
- * Fetches measure series metadata for the given measure series IDs and study IDs.
16
- *
17
- * @param measureSeriesIds - measure series identifiers to fetch metadata for. ONLY ONE ID IS SUPPORTED.
18
- * @param studyIds - ONLY ONE ID IS SUPPORTED. REQUIRED!! WILL BE REMOVED IN THE FUTURE.
19
- *
20
- * @return Observable<Response<MeasureSeriesMetadata>> - an observable containing the measure series metadata.
21
- */
22
- getMeasureSeriesMetadata(measureSeriesIds: string[], studyIds: string[]): Observable<Response<MeasureSeriesMetadata>>;
23
- /**
24
- * THIS METHOD SHOULD NOT BE USED. PLACEHOLDER FOR FUTURE IMPLEMENTATION ONCE THE API GROWS.
25
- */
26
- getMeasuresMetadata(measureIds: string[], studyIds: string[]): Observable<Response<MeasureMetadata>>;
27
- /**
28
- * Fetches measure series characteristics for the given measure series IDs and study IDs.
29
- *
30
- * @param measureSeriesIds - measure series identifiers to fetch metadata for. ONLY ONE ID IS SUPPORTED.
31
- * @param studyIds - ONLY ONE ID IS SUPPORTED. REQUIRED!! WILL BE REMOVED IN THE FUTURE.
32
- *
33
- * @return Observable<Response<MeasureSeriesMetadata>> - an observable containing the measure series metadata.
34
- */
35
- getMeasureSeriesCharacteristics(measureSeriesIds: string[], studyIds: string[]): Observable<Response<IsaCharacteristic>>;
36
- /**
37
- * Placeholder for assay operations
38
- * TODO: Implement assay-related methods
39
- */
40
- /**
41
- * Placeholder for study operations
42
- * TODO: Implement study-related methods
43
- */
44
- /**
45
- * Placeholder for investigation operations
46
- * TODO: Implement investigation-related methods
47
- */
48
- /**
49
- * Builds the URL for the ISA data service.
50
- *
51
- * @param endpoint - the API endpoint path.
52
- * @param params - optional query parameters as key-value pairs.
53
- *
54
- * @return complete URL with query string parameters.
55
- */
56
- private buildUrl;
57
- getHealthCheck(): Observable<any>;
58
- static ɵfac: i0.ɵɵFactoryDeclaration<ISADataService, never>;
59
- static ɵprov: i0.ɵɵInjectableDeclaration<ISADataService>;
60
- }
@@ -1,92 +0,0 @@
1
- export interface VariantResults {
2
- variantCount: number;
3
- variants: Variant[];
4
- }
5
- export interface Variant {
6
- accession: string;
7
- alt: string;
8
- aminoAcidChange: string;
9
- assembly: string;
10
- canonVarIdentifier: {
11
- caID: string;
12
- id: number;
13
- variantRefTxt: string;
14
- };
15
- chr: string;
16
- dnaHgvsNotation: string;
17
- functionalClassCode: string;
18
- functionalClasses: SequenceOntologyTerm[];
19
- gene: {
20
- chr: string;
21
- description: string;
22
- ensemblGeneId: string;
23
- entrezGeneId: string;
24
- id: number;
25
- mgiId: string;
26
- name: string;
27
- symbol: string;
28
- synonyms: {
29
- id: number;
30
- }[];
31
- transcripts: {
32
- id: number;
33
- }[];
34
- type: string;
35
- };
36
- id: number;
37
- impact: string;
38
- parentRefInd: boolean;
39
- position: number;
40
- proteinHgvsNotation: string;
41
- proteinPosition: string;
42
- ref: string;
43
- sources: {
44
- id: number;
45
- name: string;
46
- sourceVersion: string;
47
- url: string;
48
- }[];
49
- transcripts: {
50
- description: string;
51
- geneSymbol: string;
52
- id: number;
53
- mRnaId: string;
54
- primaryIdentifier: string;
55
- }[];
56
- type: string;
57
- variantHgvsNotation: string;
58
- variantRefTxt: string;
59
- }
60
- export interface SequenceOntologyTerm {
61
- definition: string;
62
- id: number;
63
- label: string;
64
- soId: string;
65
- subClassOf: string;
66
- mpdTerm: string;
67
- }
68
- export interface SNP {
69
- alternate_bases: string;
70
- calls: Call[];
71
- chr: string;
72
- observed: string;
73
- reference_base: string;
74
- rs: string;
75
- start_position: number | null;
76
- annotation?: Variant | null;
77
- }
78
- export interface Call {
79
- strain_name: string;
80
- sample_id: number;
81
- genotype: string;
82
- prob: number;
83
- base: string;
84
- }
85
- export interface SNPSearchRegion {
86
- chromosome: string;
87
- start_position: number;
88
- end_position: number;
89
- reference_base?: string;
90
- alternate_base?: string;
91
- }
92
- export declare const MUS_CHRS: string[];
@@ -1,9 +0,0 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- export declare class MvarClientModule {
5
- static forRoot(environment: any): ModuleWithProviders<MvarClientModule>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<MvarClientModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<MvarClientModule, never, [typeof i1.CommonModule], never>;
8
- static ɵinj: i0.ɵɵInjectorDeclaration<MvarClientModule>;
9
- }
@@ -1,35 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Observable } from "rxjs";
3
- import { SequenceOntologyTerm, SNP, SNPSearchRegion, Variant } from './models/response/dtos';
4
- import * as i0 from "@angular/core";
5
- export declare class MVarService {
6
- private http;
7
- private environment;
8
- private api;
9
- sequenceOntologyMapping: Record<string, SequenceOntologyTerm>;
10
- private soTerms;
11
- soTerms$: Observable<SequenceOntologyTerm[]>;
12
- constructor(http: HttpClient, environment: any);
13
- /**
14
- * Gets Variants from mvar for a given set snp regions
15
- * @param regions Array of snp regions
16
- * @param pageStart snp start location
17
- * @param pageEnd snp end location
18
- * @param assembly Desired assembly version. Acceptable values are 'mm10' (GRCm38) and 'mm39' (GRCm39)
19
- */
20
- getVariants(regions: SNPSearchRegion[], pageStart: SNP, pageEnd: SNP, assembly: string): Observable<Variant[]>;
21
- /**
22
- * Returns all sequence ontology terms in MVAR
23
- */
24
- getSequenceOntologyTerms(): Observable<SequenceOntologyTerm[]>;
25
- /**
26
- * Translates the regions requested from MUSter and the regions actually displayed on the current page into
27
- * regions to request from MVAR
28
- * @param requestedRegions - regions included in the request to MUSter
29
- * @param pageStart - first SNP from the sorted results from MUSter to display in the table
30
- * @param pageEnd - last SNP from the sorted results from MUSter to display in the table
31
- */
32
- getRegionsToRequestVariantsFor(requestedRegions: SNPSearchRegion[], pageStart: SNP, pageEnd: SNP): SNPSearchRegion[];
33
- static ɵfac: i0.ɵɵFactoryDeclaration<MVarService, never>;
34
- static ɵprov: i0.ɵɵInjectableDeclaration<MVarService>;
35
- }