@datagrok-libraries/statistics 1.1.8 → 1.2.1
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/.eslintrc.json +6 -1
- package/CHANGELOG.md +49 -0
- package/package.json +4 -4
- package/src/box-plot-statistics.d.ts +9 -0
- package/src/box-plot-statistics.d.ts.map +1 -0
- package/src/box-plot-statistics.js +57 -0
- package/src/correlation-coefficient.d.ts +1 -1
- package/src/correlation-coefficient.d.ts.map +1 -1
- package/src/correlation-coefficient.js +1 -2
- package/src/fit/fit-curve.d.ts +213 -0
- package/src/fit/fit-curve.d.ts.map +1 -0
- package/src/fit/fit-curve.js +422 -0
- package/src/fit/fit-data.d.ts +28 -0
- package/src/fit/fit-data.d.ts.map +1 -0
- package/src/fit/fit-data.js +86 -0
- package/src/parameter-estimation/fit-curve.d.ts +0 -56
- package/src/parameter-estimation/fit-curve.d.ts.map +0 -1
- package/src/parameter-estimation/fit-curve.js +0 -263
package/.eslintrc.json
CHANGED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# statistics changelog
|
|
2
|
+
|
|
3
|
+
## 1.2.1 (2023-08-02)
|
|
4
|
+
|
|
5
|
+
This release focuses on adding new functionality and improving stability.
|
|
6
|
+
|
|
7
|
+
*Dependency: datagrok-api >= 1.16.0*
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* [#2101](https://github.com/datagrok-ai/public/issues/2101): Improved curves properties and rendering:
|
|
12
|
+
* Added points log in fit
|
|
13
|
+
* Added droplines calculation for IC50
|
|
14
|
+
* Don't render confidence intervals by default
|
|
15
|
+
* [#2106](https://github.com/datagrok-ai/public/issues/2106): Wrote TS docs for the code
|
|
16
|
+
|
|
17
|
+
## 1.2.0 (2023-07-21)
|
|
18
|
+
|
|
19
|
+
This release focuses on adding new functionality and improving stability.
|
|
20
|
+
|
|
21
|
+
*Dependency: datagarok-api >= 1.16.0*
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* Added fit function determination.
|
|
26
|
+
* Added the capability to run user-defined Javascript fitting functions with caching.
|
|
27
|
+
* Added box plot statistics.
|
|
28
|
+
* Added `candlesticks` and `both` render parameter types.
|
|
29
|
+
* Added different marker types.
|
|
30
|
+
* [#2101](https://github.com/datagrok-ai/public/issues/2101): Improved curves properties and rendering:
|
|
31
|
+
* Added interface for custom parameters.
|
|
32
|
+
* Added the capability to control parameter bounds.
|
|
33
|
+
|
|
34
|
+
### Bug Fixes
|
|
35
|
+
|
|
36
|
+
* Fixed inputs in the property panel.
|
|
37
|
+
* Fixed confidence intervals and statistics methods.
|
|
38
|
+
* Fixed confidence interval stroke color opacity.
|
|
39
|
+
* Fixed fit function creation.
|
|
40
|
+
|
|
41
|
+
## 1.1.8 (2023-05-21)
|
|
42
|
+
|
|
43
|
+
This release focuses on adding new functionality.
|
|
44
|
+
|
|
45
|
+
*Dependency: datagarok-api >= 1.13.11*
|
|
46
|
+
|
|
47
|
+
### Features
|
|
48
|
+
|
|
49
|
+
* Exposed AUC and R2 functions.
|
package/package.json
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"friendlyName": "statistics",
|
|
7
|
-
"version": "1.1
|
|
7
|
+
"version": "1.2.1",
|
|
8
8
|
"description": "",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"datagrok-api": "^1.
|
|
11
|
-
"@datagrok-libraries/utils": "^4",
|
|
10
|
+
"datagrok-api": "^1.16.0",
|
|
11
|
+
"@datagrok-libraries/utils": "^4.0.0",
|
|
12
12
|
"cash-dom": "latest",
|
|
13
13
|
"jstat": "latest",
|
|
14
|
-
"dayjs": "
|
|
14
|
+
"dayjs": "^1.11.7"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"ts-loader": "^9.2.6",
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare type BoxPlotStatistics = {
|
|
2
|
+
q1: number;
|
|
3
|
+
q2: number;
|
|
4
|
+
q3: number;
|
|
5
|
+
lowerAdjacentValue: number;
|
|
6
|
+
upperAdjacentValue: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function calculateBoxPlotStatistics(values: number[]): BoxPlotStatistics;
|
|
9
|
+
//# sourceMappingURL=box-plot-statistics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box-plot-statistics.d.ts","sourceRoot":"","sources":["box-plot-statistics.ts"],"names":[],"mappings":"AACA,oBAAY,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAGF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAiC9E"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export function calculateBoxPlotStatistics(values) {
|
|
2
|
+
values.sort();
|
|
3
|
+
const q1 = values[Math.trunc(values.length / 4)];
|
|
4
|
+
const q2 = values.length % 2 === 0 ?
|
|
5
|
+
(values[Math.trunc(values.length / 2)] + values[Math.trunc(values.length / 2) - 1]) / 2 :
|
|
6
|
+
values[Math.trunc(values.length / 2)];
|
|
7
|
+
const q3 = values[Math.trunc(values.length * 3 / 4)];
|
|
8
|
+
const hSpread = q3 - q1;
|
|
9
|
+
const step = hSpread * 1.5;
|
|
10
|
+
let upperIdx = arrayBinarySearch(values, q3 + step);
|
|
11
|
+
if (upperIdx < 0)
|
|
12
|
+
upperIdx = ~upperIdx;
|
|
13
|
+
let upperAdjacentValue = values[Math.max(0, upperIdx - 1)];
|
|
14
|
+
if (upperAdjacentValue < q3)
|
|
15
|
+
upperAdjacentValue = q3;
|
|
16
|
+
let lowerIdx = arrayBinarySearch(values, q1 - step);
|
|
17
|
+
if (lowerIdx < 0)
|
|
18
|
+
lowerIdx = ~lowerIdx;
|
|
19
|
+
let lowerAdjacentValue = values[lowerIdx];
|
|
20
|
+
if (lowerAdjacentValue > q1)
|
|
21
|
+
lowerAdjacentValue = q1;
|
|
22
|
+
return {
|
|
23
|
+
q1: q1,
|
|
24
|
+
q2: q2,
|
|
25
|
+
q3: q3,
|
|
26
|
+
lowerAdjacentValue: lowerAdjacentValue,
|
|
27
|
+
upperAdjacentValue: upperAdjacentValue,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function arrayBinarySearch(items, value, left = 0, right) {
|
|
31
|
+
if (items.length === 0)
|
|
32
|
+
return -1; //~0;
|
|
33
|
+
if (right === undefined)
|
|
34
|
+
right = items.length - 1;
|
|
35
|
+
if (value < items[left])
|
|
36
|
+
return -1; //~left;
|
|
37
|
+
if (value > items[right])
|
|
38
|
+
return -(right + 1); //~(right+1);
|
|
39
|
+
while (right - left > 1) {
|
|
40
|
+
const mid = Math.trunc((right + left) / 2);
|
|
41
|
+
if (value === items[mid])
|
|
42
|
+
return mid;
|
|
43
|
+
if (value < items[mid])
|
|
44
|
+
right = mid;
|
|
45
|
+
else
|
|
46
|
+
left = mid;
|
|
47
|
+
}
|
|
48
|
+
if (items[left] === value)
|
|
49
|
+
return left;
|
|
50
|
+
if (items[right] === 0)
|
|
51
|
+
return right;
|
|
52
|
+
// no match - returning inverted index
|
|
53
|
+
if (value < items[left])
|
|
54
|
+
return -(left + 1); //~left;
|
|
55
|
+
return -(right + 1); //~right;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LXBsb3Qtc3RhdGlzdGljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJveC1wbG90LXN0YXRpc3RpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE1BQWdCO0lBQ3pELE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVkLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekYsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckQsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUN4QixNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBRTNCLElBQUksUUFBUSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDcEQsSUFBSSxRQUFRLEdBQUcsQ0FBQztRQUNkLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUN2QixJQUFJLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUFJLGtCQUFrQixHQUFHLEVBQUU7UUFDekIsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTFCLElBQUksUUFBUSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDcEQsSUFBSSxRQUFRLEdBQUcsQ0FBQztRQUNkLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUN2QixJQUFJLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxJQUFJLGtCQUFrQixHQUFHLEVBQUU7UUFDekIsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTFCLE9BQU87UUFDTCxFQUFFLEVBQUUsRUFBRTtRQUNOLEVBQUUsRUFBRSxFQUFFO1FBQ04sRUFBRSxFQUFFLEVBQUU7UUFDTixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsa0JBQWtCLEVBQUUsa0JBQWtCO0tBQ3ZDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFlLEVBQUUsS0FBYSxFQUFFLE9BQWUsQ0FBQyxFQUFFLEtBQWM7SUFDekYsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDcEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7SUFFbEIsSUFBSSxLQUFLLEtBQUssU0FBUztRQUNyQixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFM0IsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNyQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtJQUNyQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWE7SUFFcEMsT0FBTyxLQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDdEIsT0FBTyxHQUFHLENBQUM7UUFDYixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3BCLEtBQUssR0FBRyxHQUFHLENBQUM7O1lBRVosSUFBSSxHQUFHLEdBQUcsQ0FBQztLQUNkO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFFZixzQ0FBc0M7SUFDdEMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNyQixPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0lBQzlCLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXRhYnMgKi9cbmV4cG9ydCB0eXBlIEJveFBsb3RTdGF0aXN0aWNzID0ge1xuICBxMTogbnVtYmVyLFxuXHRxMjogbnVtYmVyLFxuXHRxMzogbnVtYmVyLFxuXHRsb3dlckFkamFjZW50VmFsdWU6IG51bWJlcixcblx0dXBwZXJBZGphY2VudFZhbHVlOiBudW1iZXIsXG59O1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVCb3hQbG90U3RhdGlzdGljcyh2YWx1ZXM6IG51bWJlcltdKTogQm94UGxvdFN0YXRpc3RpY3Mge1xuICB2YWx1ZXMuc29ydCgpO1xuXG4gIGNvbnN0IHExID0gdmFsdWVzW01hdGgudHJ1bmModmFsdWVzLmxlbmd0aCAvIDQpXTtcbiAgY29uc3QgcTIgPSB2YWx1ZXMubGVuZ3RoICUgMiA9PT0gMCA/XG4gICAgKHZhbHVlc1tNYXRoLnRydW5jKHZhbHVlcy5sZW5ndGggLyAyKV0gKyB2YWx1ZXNbTWF0aC50cnVuYyh2YWx1ZXMubGVuZ3RoIC8gMikgLSAxXSkgLyAyIDpcbiAgICB2YWx1ZXNbTWF0aC50cnVuYyh2YWx1ZXMubGVuZ3RoIC8gMildO1xuICBjb25zdCBxMyA9IHZhbHVlc1tNYXRoLnRydW5jKHZhbHVlcy5sZW5ndGggKiAzIC8gNCldO1xuXG4gIGNvbnN0IGhTcHJlYWQgPSBxMyAtIHExO1xuICBjb25zdCBzdGVwID0gaFNwcmVhZCAqIDEuNTtcblxuICBsZXQgdXBwZXJJZHggPSBhcnJheUJpbmFyeVNlYXJjaCh2YWx1ZXMsIHEzICsgc3RlcCk7XG4gIGlmICh1cHBlcklkeCA8IDApXG4gICAgdXBwZXJJZHggPSB+dXBwZXJJZHg7XG4gIGxldCB1cHBlckFkamFjZW50VmFsdWUgPSB2YWx1ZXNbTWF0aC5tYXgoMCwgdXBwZXJJZHggLSAxKV07XG4gIGlmICh1cHBlckFkamFjZW50VmFsdWUgPCBxMylcbiAgICB1cHBlckFkamFjZW50VmFsdWUgPSBxMztcblxuICBsZXQgbG93ZXJJZHggPSBhcnJheUJpbmFyeVNlYXJjaCh2YWx1ZXMsIHExIC0gc3RlcCk7XG4gIGlmIChsb3dlcklkeCA8IDApXG4gICAgbG93ZXJJZHggPSB+bG93ZXJJZHg7XG4gIGxldCBsb3dlckFkamFjZW50VmFsdWUgPSB2YWx1ZXNbbG93ZXJJZHhdO1xuICBpZiAobG93ZXJBZGphY2VudFZhbHVlID4gcTEpXG4gICAgbG93ZXJBZGphY2VudFZhbHVlID0gcTE7XG5cbiAgcmV0dXJuIHtcbiAgICBxMTogcTEsXG4gICAgcTI6IHEyLFxuICAgIHEzOiBxMyxcbiAgICBsb3dlckFkamFjZW50VmFsdWU6IGxvd2VyQWRqYWNlbnRWYWx1ZSxcbiAgICB1cHBlckFkamFjZW50VmFsdWU6IHVwcGVyQWRqYWNlbnRWYWx1ZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXJyYXlCaW5hcnlTZWFyY2goaXRlbXM6IG51bWJlcltdLCB2YWx1ZTogbnVtYmVyLCBsZWZ0OiBudW1iZXIgPSAwLCByaWdodD86IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChpdGVtcy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIC0xOyAvL34wO1xuXG4gIGlmIChyaWdodCA9PT0gdW5kZWZpbmVkKVxuICAgIHJpZ2h0ID0gaXRlbXMubGVuZ3RoIC0gMTtcblxuICBpZiAodmFsdWUgPCBpdGVtc1tsZWZ0XSlcbiAgICByZXR1cm4gLTE7IC8vfmxlZnQ7XG4gIGlmICh2YWx1ZSA+IGl0ZW1zW3JpZ2h0XSlcbiAgICByZXR1cm4gLShyaWdodCArIDEpOyAvL34ocmlnaHQrMSk7XG5cbiAgd2hpbGUgKHJpZ2h0ISAtIGxlZnQgPiAxKSB7XG4gICAgY29uc3QgbWlkID0gTWF0aC50cnVuYygocmlnaHQgKyBsZWZ0KSAvIDIpO1xuICAgIGlmICh2YWx1ZSA9PT0gaXRlbXNbbWlkXSlcbiAgICAgIHJldHVybiBtaWQ7XG4gICAgaWYgKHZhbHVlIDwgaXRlbXNbbWlkXSlcbiAgICAgIHJpZ2h0ID0gbWlkO1xuICAgIGVsc2VcbiAgICAgIGxlZnQgPSBtaWQ7XG4gIH1cblxuICBpZiAoaXRlbXNbbGVmdF0gPT09IHZhbHVlKVxuICAgIHJldHVybiBsZWZ0O1xuICBpZiAoaXRlbXNbcmlnaHRdID09PSAwKVxuICAgIHJldHVybiByaWdodDtcblxuICAvLyBubyBtYXRjaCAtIHJldHVybmluZyBpbnZlcnRlZCBpbmRleFxuICBpZiAodmFsdWUgPCBpdGVtc1tsZWZ0XSlcbiAgICByZXR1cm4gLShsZWZ0ICsgMSk7IC8vfmxlZnQ7XG4gIHJldHVybiAtKHJpZ2h0ICsgMSk7IC8vfnJpZ2h0O1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Options } from '
|
|
1
|
+
import { Options } from '@datagrok-libraries/utils/src/type-declarations';
|
|
2
2
|
/**
|
|
3
3
|
* Calculates Kendall's tau, a correlation measure for ordinal data, and an associated p-value.
|
|
4
4
|
* Returns: Kendall's tau, two-tailed p-value.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlation-coefficient.d.ts","sourceRoot":"","sources":["correlation-coefficient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"correlation-coefficient.d.ts","sourceRoot":"","sources":["correlation-coefficient.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,iDAAiD,CAAC;AAuDxE;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAiC7D"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//import {Options} from '@datagrok-libraries/utils/src/type-declarations';
|
|
2
1
|
/**
|
|
3
2
|
* Returns the error function erf(x).
|
|
4
3
|
*
|
|
@@ -97,4 +96,4 @@ export function kendallsTau(x, y) {
|
|
|
97
96
|
const prob = erfc(Math.abs(z) / 1.4142136);
|
|
98
97
|
return { test: tau, z: z, prob: prob };
|
|
99
98
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVsYXRpb24tY29lZmZpY2llbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb3JyZWxhdGlvbi1jb2VmZmljaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7Ozs7O0dBTUc7QUFDSCxTQUFTLEdBQUcsQ0FBQyxDQUFTO0lBQ3BCLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7UUFDNUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQjtRQUNoRSxrQkFBa0IsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsaUJBQWlCO1FBQzNELGlCQUFpQixFQUFFLGVBQWUsRUFBRSxDQUFDLGVBQWU7UUFDcEQsY0FBYyxFQUFFLGNBQWMsRUFBRSxDQUFDLGNBQWM7UUFDL0MsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVk7UUFDNUMsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVc7UUFDdkMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVM7UUFDakMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUTtRQUM5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ1osSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNYLElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksRUFBRSxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztJQUFDLElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztJQUVoRixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDVCxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFD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LElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMzQyxPQUFPLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHtPcHRpb25zfSBmcm9tICcuLi8uLi91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy90eXBlLWRlY2xhcmF0aW9ucyc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZXJyb3IgZnVuY3Rpb24gZXJmKHgpLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IEFuIGFyZ3VtZW50LlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgcmVzdWx0LlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2pzdGF0L2pzdGF0L2Jsb2IvNjVjZTA5NmE5OWY3NTNkNmEyMjQ4MmU1ZTc0YWNjYmZjMWMzMzc2Ny9kaXN0L2pzdGF0LmpzI0wxNTYyXG4gKi9cbmZ1bmN0aW9uIGVyZih4OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBjb2YgPSBbLTEuMzAyNjUzNzE5NzgxNzA5NCwgNi40MTk2OTc5MjM1NjQ5MDI2ZS0xLCAxLjk0NzY0NzMyMDQxODU4MzZlLTIsXG4gICAgLTkuNTYxNTE0Nzg2ODA4NjMxZS0zLCAtOS40NjU5NTM0NDQ4MjAzNmUtNCwgMy42NjgzOTQ5Nzg1Mjc2MWUtNCxcbiAgICA0LjI1MjMzMjQ4MDY5MDdlLTUsIC0yLjAyNzg1NzgxMTI1MzRlLTUsIC0xLjYyNDI5MDAwNDY0N2UtNixcbiAgICAxLjMwMzY1NTgzNTU4MGUtNiwgMS41NjI2NDQxNzIyZS04LCAtOC41MjM4MDk1OTE1ZS04LFxuICAgIDYuNTI5MDU0NDM5ZS05LCA1LjA1OTM0MzQ5NWUtOSwgLTkuOTEzNjQxNTZlLTEwLFxuICAgIC0yLjI3MzY1MTIyZS0xMCwgOS42NDY3OTExZS0xMSwgMi4zOTQwMzhlLTEyLFxuICAgIC02Ljg4NjAyN2UtMTIsIDguOTQ0ODdlLTEzLCAzLjEzMDkyZS0xMyxcbiAgICAtMS4xMjcwOGUtMTMsIDMuODFlLTE2LCA3LjEwNmUtMTUsXG4gICAgLTEuNTIzZS0xNSwgLTkuNGUtMTcsIDEuMjFlLTE2LFxuICAgIC0yLjhlLTE3XTtcbiAgbGV0IGogPSBjb2YubGVuZ3RoIC0gMTtcbiAgbGV0IGlzbmVnID0gZmFsc2U7XG4gIGxldCBkID0gMDtcbiAgbGV0IGRkID0gMDtcbiAgbGV0IHQ6IG51bWJlciA9IDA7IGxldCB0eTogbnVtYmVyID0gMDsgbGV0IHRtcDogbnVtYmVyID0gMDsgbGV0IHJlczogbnVtYmVyID0gMDtcblxuICBpZiAoeCA8IDApIHtcbiAgICB4ID0gLXg7XG4gICAgaXNuZWcgPSB0cnVlO1xuICB9XG5cbiAgdCA9IDIgLyAoMiArIHgpO1xuICB0eSA9IDQgKiB0IC0gMjtcblxuICBmb3IgKDsgaiA+IDA7IGotLSkge1xuICAgIHRtcCA9IGQ7XG4gICAgZCA9IHR5ICogZCAtIGRkICsgY29mW2pdO1xuICAgIGRkID0gdG1wO1xuICB9XG5cbiAgcmVzID0gdCAqIE1hdGguZXhwKC14ICogeCArIDAuNSAqIChjb2ZbMF0gKyB0eSAqIGQpIC0gZGQpO1xuICByZXR1cm4gaXNuZWcgPyByZXMgLSAxIDogMSAtIHJlcztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjb21wbG1lbnRhcnkgZXJyb3IgZnVuY3Rpb24gZXJmYyh4KVxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IEFuIGFyZ3VtZW50LlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgcmVzdWx0LlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2pzdGF0L2pzdGF0L2Jsb2IvNjVjZTA5NmE5OWY3NTNkNmEyMjQ4MmU1ZTc0YWNjYmZjMWMzMzc2Ny9kaXN0L2pzdGF0LmpzI0wxNTk5XG4gKi9cbmZ1bmN0aW9uIGVyZmMoeDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIDEgLSBlcmYoeCk7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyBLZW5kYWxsJ3MgdGF1LCBhIGNvcnJlbGF0aW9uIG1lYXN1cmUgZm9yIG9yZGluYWwgZGF0YSwgYW5kIGFuIGFzc29jaWF0ZWQgcC12YWx1ZS5cbiAqIFJldHVybnM6IEtlbmRhbGwncyB0YXUsIHR3by10YWlsZWQgcC12YWx1ZS5cbiAqIERlcml2ZWQgZnJvbSBvbGRlciBTY2lQeTogaHR0cDovL3dlYi5taXQuZWR1LzYuODYzL3NwcmluZzIwMTEvcGFja2FnZXMvc2NpcHlfc3JjL3NjaXB5L3N0YXRzL3N0YXRzLnB5XG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJbXX0geCBUaGUgZmlyc3QgYXJyYXkuXG4gKiBAcGFyYW0ge251bWJlcltdfSB5IFRoZSBzZWNvbmQgYXJyYXkuXG4gKiBAcmV0dXJuIHtPcHRpb25zfSBUaGUgcmVzdWx0LlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3BkZmVybmhvdXQvbmFycmFmaXJtYS9ibG9iL1xuICogYzljMTIyZDU3N2E0Yjg4NjhjZTYwM2JhZGFiYmI3ZDEwZjQ1NzQwYy93ZWJhcHAvc291cmNlL3N0YXRpc3RpY3Mva2VuZGFsbHNUYXUudHMjTDhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGtlbmRhbGxzVGF1KHg6IG51bWJlcltdLCB5OiBudW1iZXJbXSk6IE9wdGlvbnMge1xuICBsZXQgbjEgPSAwO1xuICBsZXQgbjIgPSAwO1xuICBsZXQgaXNzID0gMDtcbiAgZm9yIChsZXQgaiA9IDA7IGogPCB4Lmxlbmd0aCAtIDE7IGorKykge1xuICAgIGZvciAobGV0IGsgPSBqICsgMTsgayA8IHkubGVuZ3RoOyBrKyspIHtcbiAgICAgIGNvbnN0IGExID0geFtqXSAtIHhba107XG4gICAgICBjb25zdCBhMiA9IHlbal0gLSB5W2tdO1xuICAgICAgY29uc3QgYWEgPSBhMSAqIGEyO1xuICAgICAgaWYgKGFhKSB7XG4gICAgICAgIC8vIG5laXRoZXIgYXJyYXkgaGFzIGEgdGllXG4gICAgICAgIG4xID0gbjEgKyAxO1xuICAgICAgICBuMiA9IG4yICsgMTtcbiAgICAgICAgaWYgKGFhID4gMCkge1xuICAgICAgICAgIGlzcyA9IGlzcyArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNzID0gaXNzIC0gMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGExKSB7XG4gICAgICAgICAgbjEgPSBuMSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEyKSB7XG4gICAgICAgICAgbjIgPSBuMiArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3QgdGF1ID0gaXNzIC8gTWF0aC5zcXJ0KG4xICogbjIpO1xuICBjb25zdCBzdmFyID0gKDQuMCAqIHgubGVuZ3RoICsgMTAuMCkgLyAoOS4wICogeC5sZW5ndGggKiAoeC5sZW5ndGggLSAxKSk7XG4gIGNvbnN0IHogPSB0YXUgLyBNYXRoLnNxcnQoc3Zhcik7XG4gIGNvbnN0IHByb2IgPSBlcmZjKE1hdGguYWJzKHopIC8gMS40MTQyMTM2KTtcbiAgcmV0dXJuIHt0ZXN0OiB0YXUsIHo6IHosIHByb2I6IHByb2J9O1xufVxuIl19
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { Property } from 'datagrok-api/src/entities';
|
|
2
|
+
export declare enum FitErrorModel {
|
|
3
|
+
Constant = 0,
|
|
4
|
+
Proportional = 1
|
|
5
|
+
}
|
|
6
|
+
export declare type FitParamBounds = {
|
|
7
|
+
minBound?: number;
|
|
8
|
+
maxBound?: number;
|
|
9
|
+
};
|
|
10
|
+
/** Fit function description. Applies to custom user fit functions.
|
|
11
|
+
* Requires JS arrow functions for the fit functions and initial parameters. */
|
|
12
|
+
export interface IFitFunctionDescription {
|
|
13
|
+
name: string;
|
|
14
|
+
function: string;
|
|
15
|
+
getInitialParameters: string;
|
|
16
|
+
parameterNames: string[];
|
|
17
|
+
}
|
|
18
|
+
export declare type FitCurve = {
|
|
19
|
+
fittedCurve: (x: number) => number;
|
|
20
|
+
parameters: number[];
|
|
21
|
+
};
|
|
22
|
+
export declare type FitConfidenceIntervals = {
|
|
23
|
+
confidenceTop: (x: number) => number;
|
|
24
|
+
confidenceBottom: (x: number) => number;
|
|
25
|
+
};
|
|
26
|
+
export declare type FitStatistics = {
|
|
27
|
+
rSquared?: number;
|
|
28
|
+
auc?: number;
|
|
29
|
+
interceptX: number;
|
|
30
|
+
interceptY: number;
|
|
31
|
+
slope: number;
|
|
32
|
+
top: number;
|
|
33
|
+
bottom: number;
|
|
34
|
+
};
|
|
35
|
+
export declare type FitInvertedFunctions = {
|
|
36
|
+
inverted: (y: number) => number;
|
|
37
|
+
invertedTop: (y: number) => number;
|
|
38
|
+
invertedBottom: (y: number) => number;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Datagrok curve fitting
|
|
42
|
+
*
|
|
43
|
+
* - Fitting: computing parameters of the specified function to best fit the data
|
|
44
|
+
* - Uses BFGS optimization algorithm (multi-threading for performance).
|
|
45
|
+
* For dose-response curves, we are typically fitting the sigmoid function
|
|
46
|
+
* - Ability to dynamically register custom fitting functions
|
|
47
|
+
* - Automatic fit function determination
|
|
48
|
+
* - Caching of custom fitting functions
|
|
49
|
+
* - Ability to get fitting performance characteristics (r-squared, classification, etc)
|
|
50
|
+
* - Deep integration with the Datagrok grid
|
|
51
|
+
* - Either fitting on the fly, or using the supplied function + parameters
|
|
52
|
+
* - Multiple series in one cell
|
|
53
|
+
* - Candlesticks, confidence intervals, and droplines drawing
|
|
54
|
+
* - Ability to define chart, marker, or fitting options (such as fit function or marker color)
|
|
55
|
+
* on the column level, with the ability to override it on a grid cell or point level
|
|
56
|
+
* - Clicking a point in a chart within a grid makes it an outlier -> curve is re-fitted on the fly
|
|
57
|
+
* - Ability to specify a chart as "reference" so that it is shown on every other chart for comparison
|
|
58
|
+
* - Ability to overlay curves from multiple grid cells (special viewer)
|
|
59
|
+
* - Work with series stored in multiple formats (binary for performance, json for flexibility, etc)
|
|
60
|
+
*/
|
|
61
|
+
export declare const FIT_SEM_TYPE = "fit";
|
|
62
|
+
export declare const FIT_CELL_TYPE = "fit";
|
|
63
|
+
export declare const TAG_FIT = ".fit";
|
|
64
|
+
export declare const CONFIDENCE_INTERVAL_STROKE_COLOR = "rgba(255,191,63,0.4)";
|
|
65
|
+
export declare const CONFIDENCE_INTERVAL_FILL_COLOR = "rgba(255,238,204,0.3)";
|
|
66
|
+
export declare const CURVE_CONFIDENCE_INTERVAL_BOUNDS: {
|
|
67
|
+
TOP: string;
|
|
68
|
+
BOTTOM: string;
|
|
69
|
+
};
|
|
70
|
+
export declare const DROPLINES: string[];
|
|
71
|
+
export declare type FitMarkerType = 'asterisk' | 'circle' | 'cross border' | 'diamond' | 'square' | 'star' | 'triangle bottom' | 'triangle left' | 'triangle right' | 'triangle top';
|
|
72
|
+
/** A point in the fit series. Only x and y are required. Can override some fields defined in IFitSeriesOptions. */
|
|
73
|
+
export interface IFitPoint {
|
|
74
|
+
x: number;
|
|
75
|
+
y: number;
|
|
76
|
+
outlier?: boolean;
|
|
77
|
+
minY?: number;
|
|
78
|
+
maxY?: number;
|
|
79
|
+
marker?: FitMarkerType;
|
|
80
|
+
color?: string;
|
|
81
|
+
}
|
|
82
|
+
/** A series consists of points, has a name, and options.
|
|
83
|
+
* If defined, seriesOptions are merged with {@link IFitChartData.seriesOptions} */
|
|
84
|
+
export interface IFitSeries extends IFitSeriesOptions {
|
|
85
|
+
points: IFitPoint[];
|
|
86
|
+
}
|
|
87
|
+
/** Chart labels options. Controls the chart labels. */
|
|
88
|
+
export interface IFitChartLabelOptions {
|
|
89
|
+
visible: boolean;
|
|
90
|
+
color: string;
|
|
91
|
+
name: string;
|
|
92
|
+
}
|
|
93
|
+
/** Chart options. For fitted curves, this object is stored in the grid column tags and is used by the renderer. */
|
|
94
|
+
export interface IFitChartOptions {
|
|
95
|
+
minX?: number;
|
|
96
|
+
minY?: number;
|
|
97
|
+
maxX?: number;
|
|
98
|
+
maxY?: number;
|
|
99
|
+
xAxisName?: string;
|
|
100
|
+
yAxisName?: string;
|
|
101
|
+
logX?: boolean;
|
|
102
|
+
logY?: boolean;
|
|
103
|
+
showStatistics?: string[];
|
|
104
|
+
labelOptions?: IFitChartLabelOptions[];
|
|
105
|
+
}
|
|
106
|
+
/** Data for the fit chart. */
|
|
107
|
+
export interface IFitChartData {
|
|
108
|
+
chartOptions?: IFitChartOptions;
|
|
109
|
+
seriesOptions?: IFitSeriesOptions;
|
|
110
|
+
series?: IFitSeries[];
|
|
111
|
+
}
|
|
112
|
+
/** Class that implements {@link IFitChartData} interface */
|
|
113
|
+
export declare class FitChartData implements IFitChartData {
|
|
114
|
+
chartOptions: IFitChartOptions;
|
|
115
|
+
seriesOptions: IFitSeriesOptions;
|
|
116
|
+
series: IFitSeries[];
|
|
117
|
+
}
|
|
118
|
+
/** Series options can be either applied globally on a column level, or partially overridden in particular series */
|
|
119
|
+
export interface IFitSeriesOptions {
|
|
120
|
+
name?: string;
|
|
121
|
+
fitFunction?: string | IFitFunctionDescription;
|
|
122
|
+
parameters?: number[];
|
|
123
|
+
parameterBounds?: FitParamBounds[];
|
|
124
|
+
markerType?: FitMarkerType;
|
|
125
|
+
pointColor?: string;
|
|
126
|
+
fitLineColor?: string;
|
|
127
|
+
confidenceIntervalColor?: string;
|
|
128
|
+
showFitLine?: boolean;
|
|
129
|
+
showPoints?: string;
|
|
130
|
+
showCurveConfidenceInterval?: boolean;
|
|
131
|
+
clickToToggle?: boolean;
|
|
132
|
+
labels?: {
|
|
133
|
+
[key: string]: string | number | boolean;
|
|
134
|
+
};
|
|
135
|
+
droplines?: string[];
|
|
136
|
+
}
|
|
137
|
+
/** Properties that describe {@link FitStatistics}. Useful for editing, initialization, transformations, etc. */
|
|
138
|
+
export declare const statisticsProperties: Property[];
|
|
139
|
+
/** Properties that describe {@link IFitChartOptions}. Useful for editing, initialization, transformations, etc. */
|
|
140
|
+
export declare const fitChartDataProperties: Property[];
|
|
141
|
+
/** Properties that describe {@link IFitSeriesOptions}. Useful for editing, initialization, transformations, etc. */
|
|
142
|
+
export declare const fitSeriesProperties: Property[];
|
|
143
|
+
export declare const FIT_FUNCTION_SIGMOID = "sigmoid";
|
|
144
|
+
export declare const FIT_FUNCTION_LINEAR = "linear";
|
|
145
|
+
export declare const FIT_STATS_RSQUARED = "rSquared";
|
|
146
|
+
export declare const FIT_STATS_AUC = "auc";
|
|
147
|
+
/** Class for the fit functions */
|
|
148
|
+
export declare abstract class FitFunction {
|
|
149
|
+
abstract get name(): string;
|
|
150
|
+
abstract get parameterNames(): string[];
|
|
151
|
+
abstract y(params: number[], x: number): number;
|
|
152
|
+
abstract getInitialParameters(x: number[], y: number[]): number[];
|
|
153
|
+
}
|
|
154
|
+
/** Class that implements the linear function */
|
|
155
|
+
export declare class LinearFunction extends FitFunction {
|
|
156
|
+
get name(): string;
|
|
157
|
+
get parameterNames(): string[];
|
|
158
|
+
y(params: number[], x: number): number;
|
|
159
|
+
getInitialParameters(x: number[], y: number[]): number[];
|
|
160
|
+
}
|
|
161
|
+
/** Class that implements the sigmoid function */
|
|
162
|
+
export declare class SigmoidFunction extends FitFunction {
|
|
163
|
+
get name(): string;
|
|
164
|
+
get parameterNames(): string[];
|
|
165
|
+
y(params: number[], x: number): number;
|
|
166
|
+
getInitialParameters(x: number[], y: number[]): number[];
|
|
167
|
+
}
|
|
168
|
+
/** Class that implements user JS functions */
|
|
169
|
+
export declare class JsFunction extends FitFunction {
|
|
170
|
+
private _name;
|
|
171
|
+
private _parameterNames;
|
|
172
|
+
constructor(name: string, yFunc: (params: number[], x: number) => number, getInitParamsFunc: (x: number[], y: number[]) => number[], parameterNames: string[]);
|
|
173
|
+
get name(): string;
|
|
174
|
+
get parameterNames(): string[];
|
|
175
|
+
y(params: number[], x: number): number;
|
|
176
|
+
getInitialParameters(x: number[], y: number[]): number[];
|
|
177
|
+
}
|
|
178
|
+
export declare const fitFunctions: {
|
|
179
|
+
[index: string]: FitFunction;
|
|
180
|
+
};
|
|
181
|
+
export interface IFitOptions {
|
|
182
|
+
errorModel: FitErrorModel;
|
|
183
|
+
confidenceLevel: number;
|
|
184
|
+
statistics: boolean;
|
|
185
|
+
}
|
|
186
|
+
export declare function getOrCreateFitFunction(seriesFitFunc: string | IFitFunctionDescription): FitFunction;
|
|
187
|
+
export declare function fitData(data: {
|
|
188
|
+
x: number[];
|
|
189
|
+
y: number[];
|
|
190
|
+
}, fitFunction: FitFunction, errorModel: FitErrorModel, parameterBounds?: FitParamBounds[]): FitCurve;
|
|
191
|
+
export declare function getFittedCurve(curveFunction: (params: number[], x: number) => number, paramValues: number[]): (x: number) => number;
|
|
192
|
+
export declare function getCurveConfidenceIntervals(data: {
|
|
193
|
+
x: number[];
|
|
194
|
+
y: number[];
|
|
195
|
+
}, paramValues: number[], curveFunction: (params: number[], x: number) => number, confidenceLevel: number | undefined, errorModel: FitErrorModel): FitConfidenceIntervals;
|
|
196
|
+
export declare function getStatistics(data: {
|
|
197
|
+
x: number[];
|
|
198
|
+
y: number[];
|
|
199
|
+
}, paramValues: number[], curveFunction: (params: number[], x: number) => number, statistics?: boolean): FitStatistics;
|
|
200
|
+
export declare function getInvertedFunctions(data: {
|
|
201
|
+
x: number[];
|
|
202
|
+
y: number[];
|
|
203
|
+
}, paramValues: number[], confidenceLevel?: number, statistics?: boolean): FitInvertedFunctions | null;
|
|
204
|
+
export declare function sigmoid(params: number[], x: number): number;
|
|
205
|
+
export declare function getAuc(fittedCurve: (x: number) => number, data: {
|
|
206
|
+
x: number[];
|
|
207
|
+
y: number[];
|
|
208
|
+
}): number;
|
|
209
|
+
export declare function getDetCoeff(fittedCurve: (x: number) => number, data: {
|
|
210
|
+
x: number[];
|
|
211
|
+
y: number[];
|
|
212
|
+
}): number;
|
|
213
|
+
//# sourceMappingURL=fit-curve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-curve.d.ts","sourceRoot":"","sources":["fit-curve.ts"],"names":[],"mappings":"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"}
|