erosolar-cli 2.1.296 → 2.1.297
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.
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cancer Research Module
|
|
3
|
+
*
|
|
4
|
+
* This module demonstrates how TypeScript/JavaScript can be used for
|
|
5
|
+
* cancer research data analysis and machine learning pipelines.
|
|
6
|
+
*
|
|
7
|
+
* While real cancer research requires domain expertise and clinical validation,
|
|
8
|
+
* software engineering enables scalable analysis and reproducible research.
|
|
9
|
+
*/
|
|
10
|
+
export interface CancerDataset {
|
|
11
|
+
samples: number;
|
|
12
|
+
features: number;
|
|
13
|
+
data: number[][];
|
|
14
|
+
labels: number[];
|
|
15
|
+
featureNames: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface CancerStatistics {
|
|
18
|
+
nSamples: number;
|
|
19
|
+
nFeatures: number;
|
|
20
|
+
classDistribution: {
|
|
21
|
+
benign: number;
|
|
22
|
+
malignant: number;
|
|
23
|
+
};
|
|
24
|
+
featureMeans: Record<string, number>;
|
|
25
|
+
featureStds: Record<string, number>;
|
|
26
|
+
}
|
|
27
|
+
export interface ModelMetrics {
|
|
28
|
+
accuracy: number;
|
|
29
|
+
precision: number;
|
|
30
|
+
recall: number;
|
|
31
|
+
f1Score: number;
|
|
32
|
+
}
|
|
33
|
+
export declare class CancerResearchPipeline {
|
|
34
|
+
private seed;
|
|
35
|
+
private dataset;
|
|
36
|
+
private results;
|
|
37
|
+
constructor(seed?: number);
|
|
38
|
+
/**
|
|
39
|
+
* Generate synthetic cancer dataset
|
|
40
|
+
*/
|
|
41
|
+
generateSyntheticData(nSamples?: number, nFeatures?: number): CancerDataset;
|
|
42
|
+
/**
|
|
43
|
+
* Compute basic statistics on the dataset
|
|
44
|
+
*/
|
|
45
|
+
computeStatistics(): CancerStatistics;
|
|
46
|
+
/**
|
|
47
|
+
* Simple logistic regression implementation (educational purposes only)
|
|
48
|
+
*/
|
|
49
|
+
trainLogisticRegression(testSize?: number): ModelMetrics;
|
|
50
|
+
/**
|
|
51
|
+
* Run complete pipeline
|
|
52
|
+
*/
|
|
53
|
+
runPipeline(): Record<string, any>;
|
|
54
|
+
/**
|
|
55
|
+
* Export results to JSON file (node.js environment)
|
|
56
|
+
*/
|
|
57
|
+
exportResults(filePath?: string): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=cancerResearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancerResearch.d.ts","sourceRoot":"","sources":["../../src/science/cancerResearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,sBAAsB;IAIrB,OAAO,CAAC,IAAI;IAHxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,OAAO,CAA2B;gBAEtB,IAAI,GAAE,MAAW;IAKrC;;OAEG;IACH,qBAAqB,CAAC,QAAQ,GAAE,MAAa,EAAE,SAAS,GAAE,MAAW,GAAG,aAAa;IAyCrF;;OAEG;IACH,iBAAiB,IAAI,gBAAgB;IAoCrC;;OAEG;IACH,uBAAuB,CAAC,QAAQ,GAAE,MAAY,GAAG,YAAY;IAuF7D;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA+BlC;;OAEG;IACG,aAAa,CAAC,QAAQ,GAAE,MAA0C,GAAG,OAAO,CAAC,IAAI,CAAC;CAUzF"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cancer Research Module
|
|
3
|
+
*
|
|
4
|
+
* This module demonstrates how TypeScript/JavaScript can be used for
|
|
5
|
+
* cancer research data analysis and machine learning pipelines.
|
|
6
|
+
*
|
|
7
|
+
* While real cancer research requires domain expertise and clinical validation,
|
|
8
|
+
* software engineering enables scalable analysis and reproducible research.
|
|
9
|
+
*/
|
|
10
|
+
export class CancerResearchPipeline {
|
|
11
|
+
seed;
|
|
12
|
+
dataset = null;
|
|
13
|
+
results = {};
|
|
14
|
+
constructor(seed = 42) {
|
|
15
|
+
this.seed = seed;
|
|
16
|
+
// Simple seed for reproducibility
|
|
17
|
+
// Note: In production, use proper seeding libraries
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generate synthetic cancer dataset
|
|
21
|
+
*/
|
|
22
|
+
generateSyntheticData(nSamples = 1000, nFeatures = 30) {
|
|
23
|
+
const data = [];
|
|
24
|
+
const labels = [];
|
|
25
|
+
const featureNames = Array.from({ length: nFeatures }, (_, i) => `gene_${i + 1}`);
|
|
26
|
+
// Simple synthetic data generation
|
|
27
|
+
for (let i = 0; i < nSamples; i++) {
|
|
28
|
+
const sample = [];
|
|
29
|
+
let weightedSum = 0;
|
|
30
|
+
for (let j = 0; j < nFeatures; j++) {
|
|
31
|
+
// Generate feature with normal distribution-like values
|
|
32
|
+
const value = (Math.random() * 2 - 1) + (Math.random() * 2 - 1); // Rough normal approximation
|
|
33
|
+
sample.push(value);
|
|
34
|
+
// Simple weight for correlation with label
|
|
35
|
+
weightedSum += value * (j % 3 - 1); // Arbitrary weights
|
|
36
|
+
}
|
|
37
|
+
// Convert to probability using sigmoid
|
|
38
|
+
const probability = 1 / (1 + Math.exp(-weightedSum / nFeatures));
|
|
39
|
+
const label = probability > 0.5 ? 1 : 0;
|
|
40
|
+
// Add some noise
|
|
41
|
+
const finalLabel = Math.random() > 0.8 ? 1 - label : label;
|
|
42
|
+
labels.push(finalLabel);
|
|
43
|
+
data.push(sample);
|
|
44
|
+
}
|
|
45
|
+
this.dataset = {
|
|
46
|
+
samples: nSamples,
|
|
47
|
+
features: nFeatures,
|
|
48
|
+
data,
|
|
49
|
+
labels,
|
|
50
|
+
featureNames
|
|
51
|
+
};
|
|
52
|
+
console.log(`Generated synthetic cancer dataset with ${nSamples} samples, ${nFeatures} features`);
|
|
53
|
+
return this.dataset;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Compute basic statistics on the dataset
|
|
57
|
+
*/
|
|
58
|
+
computeStatistics() {
|
|
59
|
+
if (!this.dataset) {
|
|
60
|
+
throw new Error('No dataset loaded. Call generateSyntheticData() first.');
|
|
61
|
+
}
|
|
62
|
+
const { data, labels, featureNames } = this.dataset;
|
|
63
|
+
// Class distribution
|
|
64
|
+
const benign = labels.filter(l => l === 0).length;
|
|
65
|
+
const malignant = labels.filter(l => l === 1).length;
|
|
66
|
+
// Feature means and stds
|
|
67
|
+
const featureMeans = {};
|
|
68
|
+
const featureStds = {};
|
|
69
|
+
for (let j = 0; j < this.dataset.features; j++) {
|
|
70
|
+
const values = data.map(row => row[j]);
|
|
71
|
+
const mean = values.reduce((a, b) => a + b, 0) / values.length;
|
|
72
|
+
const variance = values.reduce((sq, n) => sq + Math.pow(n - mean, 2), 0) / values.length;
|
|
73
|
+
featureMeans[featureNames[j]] = mean;
|
|
74
|
+
featureStds[featureNames[j]] = Math.sqrt(variance);
|
|
75
|
+
}
|
|
76
|
+
const stats = {
|
|
77
|
+
nSamples: this.dataset.samples,
|
|
78
|
+
nFeatures: this.dataset.features,
|
|
79
|
+
classDistribution: { benign, malignant },
|
|
80
|
+
featureMeans,
|
|
81
|
+
featureStds
|
|
82
|
+
};
|
|
83
|
+
this.results.statistics = stats;
|
|
84
|
+
return stats;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Simple logistic regression implementation (educational purposes only)
|
|
88
|
+
*/
|
|
89
|
+
trainLogisticRegression(testSize = 0.2) {
|
|
90
|
+
if (!this.dataset) {
|
|
91
|
+
throw new Error('No dataset loaded.');
|
|
92
|
+
}
|
|
93
|
+
const { data, labels } = this.dataset;
|
|
94
|
+
const n = data.length;
|
|
95
|
+
const splitIdx = Math.floor(n * (1 - testSize));
|
|
96
|
+
// Simple shuffle (Fisher-Yates)
|
|
97
|
+
const indices = Array.from({ length: n }, (_, i) => i);
|
|
98
|
+
for (let i = n - 1; i > 0; i--) {
|
|
99
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
100
|
+
[indices[i], indices[j]] = [indices[j], indices[i]];
|
|
101
|
+
}
|
|
102
|
+
// Split data
|
|
103
|
+
const trainData = indices.slice(0, splitIdx).map(i => data[i]);
|
|
104
|
+
const trainLabels = indices.slice(0, splitIdx).map(i => labels[i]);
|
|
105
|
+
const testData = indices.slice(splitIdx).map(i => data[i]);
|
|
106
|
+
const testLabels = indices.slice(splitIdx).map(i => labels[i]);
|
|
107
|
+
// Simple logistic regression weights (gradient descent)
|
|
108
|
+
const nFeatures = data[0].length;
|
|
109
|
+
const weights = Array(nFeatures + 1).fill(0); // +1 for bias
|
|
110
|
+
const learningRate = 0.01;
|
|
111
|
+
const epochs = 100;
|
|
112
|
+
for (let epoch = 0; epoch < epochs; epoch++) {
|
|
113
|
+
for (let i = 0; i < trainData.length; i++) {
|
|
114
|
+
const features = [1, ...trainData[i]]; // Add bias term
|
|
115
|
+
let weightedSum = 0;
|
|
116
|
+
for (let j = 0; j < weights.length; j++) {
|
|
117
|
+
weightedSum += weights[j] * features[j];
|
|
118
|
+
}
|
|
119
|
+
const prediction = 1 / (1 + Math.exp(-weightedSum));
|
|
120
|
+
const error = prediction - trainLabels[i];
|
|
121
|
+
// Update weights
|
|
122
|
+
for (let j = 0; j < weights.length; j++) {
|
|
123
|
+
weights[j] -= learningRate * error * features[j];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Evaluate on test set
|
|
128
|
+
let truePositives = 0;
|
|
129
|
+
let falsePositives = 0;
|
|
130
|
+
let falseNegatives = 0;
|
|
131
|
+
let correct = 0;
|
|
132
|
+
for (let i = 0; i < testData.length; i++) {
|
|
133
|
+
const features = [1, ...testData[i]];
|
|
134
|
+
let weightedSum = 0;
|
|
135
|
+
for (let j = 0; j < weights.length; j++) {
|
|
136
|
+
weightedSum += weights[j] * features[j];
|
|
137
|
+
}
|
|
138
|
+
const prediction = weightedSum > 0 ? 1 : 0;
|
|
139
|
+
const actual = testLabels[i];
|
|
140
|
+
if (prediction === actual) {
|
|
141
|
+
correct++;
|
|
142
|
+
if (prediction === 1)
|
|
143
|
+
truePositives++;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
if (prediction === 1)
|
|
147
|
+
falsePositives++;
|
|
148
|
+
else
|
|
149
|
+
falseNegatives++;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
const accuracy = correct / testData.length;
|
|
153
|
+
const precision = truePositives / (truePositives + falsePositives) || 0;
|
|
154
|
+
const recall = truePositives / (truePositives + falseNegatives) || 0;
|
|
155
|
+
const f1Score = 2 * (precision * recall) / (precision + recall) || 0;
|
|
156
|
+
const metrics = {
|
|
157
|
+
accuracy,
|
|
158
|
+
precision,
|
|
159
|
+
recall,
|
|
160
|
+
f1Score
|
|
161
|
+
};
|
|
162
|
+
this.results.modelMetrics = metrics;
|
|
163
|
+
return metrics;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Run complete pipeline
|
|
167
|
+
*/
|
|
168
|
+
runPipeline() {
|
|
169
|
+
console.log('Starting TypeScript cancer research pipeline...');
|
|
170
|
+
// Generate data
|
|
171
|
+
this.generateSyntheticData(800, 25);
|
|
172
|
+
// Compute statistics
|
|
173
|
+
const stats = this.computeStatistics();
|
|
174
|
+
console.log('Statistics:', JSON.stringify(stats, null, 2));
|
|
175
|
+
// Train model
|
|
176
|
+
const metrics = this.trainLogisticRegression();
|
|
177
|
+
console.log('Model metrics:', JSON.stringify(metrics, null, 2));
|
|
178
|
+
// Generate report
|
|
179
|
+
const report = {
|
|
180
|
+
pipelineVersion: '1.0.0',
|
|
181
|
+
timestamp: new Date().toISOString(),
|
|
182
|
+
dataset: {
|
|
183
|
+
samples: this.dataset.samples,
|
|
184
|
+
features: this.dataset.features
|
|
185
|
+
},
|
|
186
|
+
statistics: stats,
|
|
187
|
+
modelMetrics: metrics,
|
|
188
|
+
interpretation: 'This TypeScript implementation demonstrates basic ML for cancer research. Real applications require domain expertise, validated datasets, and clinical trials.'
|
|
189
|
+
};
|
|
190
|
+
this.results.report = report;
|
|
191
|
+
return report;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Export results to JSON file (node.js environment)
|
|
195
|
+
*/
|
|
196
|
+
async exportResults(filePath = 'cancer_research_typescript.json') {
|
|
197
|
+
if (typeof window !== 'undefined') {
|
|
198
|
+
console.warn('Browser environment: cannot write to file system');
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const fs = await import('fs/promises');
|
|
202
|
+
await fs.writeFile(filePath, JSON.stringify(this.results, null, 2));
|
|
203
|
+
console.log(`Results exported to ${filePath}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Example usage (if run directly)
|
|
207
|
+
if (require.main === module) {
|
|
208
|
+
const pipeline = new CancerResearchPipeline();
|
|
209
|
+
const report = pipeline.runPipeline();
|
|
210
|
+
console.log('\n=== TypeScript Cancer Research Pipeline Complete ===');
|
|
211
|
+
console.log('This demonstrates how Node.js/TypeScript can be used for biomedical research.');
|
|
212
|
+
console.log('Key advantages:');
|
|
213
|
+
console.log('- Strong typing for data integrity');
|
|
214
|
+
console.log('- Async/await for large-scale data processing');
|
|
215
|
+
console.log('- Integration with web technologies for visualization');
|
|
216
|
+
console.log('- Cross-platform deployment (server, browser, mobile)');
|
|
217
|
+
pipeline.exportResults().catch(console.error);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=cancerResearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancerResearch.js","sourceRoot":"","sources":["../../src/science/cancerResearch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "erosolar-cli",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.297",
|
|
4
4
|
"description": "Unified AI agent framework for the command line - Multi-provider support with schema-driven tools, code intelligence, and transparent reasoning",
|
|
5
5
|
"main": "dist/bin/erosolar.js",
|
|
6
6
|
"type": "module",
|
|
@@ -127,7 +127,6 @@
|
|
|
127
127
|
"boxen": "^5.1.2",
|
|
128
128
|
"chalk": "^4.1.2",
|
|
129
129
|
"cli-spinners": "^2.9.2",
|
|
130
|
-
"erosolar-cli": "^2.1.248",
|
|
131
130
|
"gradient-string": "^2.0.2",
|
|
132
131
|
"nanospinner": "^1.1.0",
|
|
133
132
|
"nodemailer": "^7.0.10",
|