Batch_Similarity_Clustering_Utility
Batch Similarity Clustering Utility
ℹ️ Утилита проводит многомерный статистический анализ (PCA/HCA):
• Расстояние Махаланобиса (≤3.0)
• Принадлежность к основному кластеру
• Z-Score ключевых маркеров (±2σ)
⚠️ КРИТИЧНО: Природное сырье вариабельно!
Статистические методы позволяют отличить норму от брака.
Использование:
BatchSimilarityClusteringUtility.exe → демо-режим (вывод в консоль)
BatchSimilarityClusteringUtility.exe input.csv output.json → оценка ваших данных
Формат input.csv:
BatchNumber,ProductName,Marker_1_Conc,Marker_2_Conc,Marker_3_Conc,Marker_4_Conc,Ref_Marker_1_Mean,Ref_Marker_1_StDev,Ref_Marker_2_Mean,Ref_Marker_2_StDev,Mahalanobis_Distance,Cluster_ID
Пример:
TCM-CLUS-2026-001,Panax Notoginseng,25.0,30.0,10.0,80.0,24.0,1.0,29.0,1.5,1.2,1.0
— ЗАЧЕМ ЭТО НУЖНО?
Статистическая оценка сходства критична для стандартизации ТСМ (Yunnan Baiyao, Tong Ren Tang):
• Химический состав трав зависит от почвы, климата и времени сбора
• Одиночные лимиты не всегда отражают общее качество профиля
• Методы PCA (Principal Component Analysis) и HCA (Hierarchical Cluster Analysis) позволяют визуализировать группировку партий
• Выявление "выбросов" (outliers) помогает предотвратить выпуск нетипичного сырья
⚠️ КРИТИЧЕСКИ ВАЖНО:
• Расстояние Махаланобиса ≤3.0 — партия находится внутри доверительного эллипса "хороших" партий
• Принадлежность к Кластеру 1 — соответствие основному историческому профилю
• Z-Score маркеров в пределах ±2σ — отсутствие аномалий по ключевым веществам
• Стабильность кластеризации при добавлении новых данных
Ключевые особенности утилиты:
• Многомерный анализ вместо одномерного контроля
• Расчет статистического расстояния до центра распределения
• Автоматическое определение принадлежности к кластеру
• Поддержка исторических данных для построения референсной модели
Критические параметры:
• Mahalanobis Distance: ≤3.0
• Cluster ID: 1 (Main)
• Z-Score: ±2.0 σ
💡 Советы по использованию:
1. Используйте минимум 20-30 исторических партий для построения надежной модели
2. Обновляйте референсные средние и стандартные отклонения при изменении поставщика
3. Сочетайте кластеризацию с хроматографическим фингерпринтингом
4. Исследуйте причины попадания партии в другой кластер (география, погода)
5. Визуализируйте данные на графике PCA Score Plot для наглядности
⚠️ Особенность: В отличие от синтетических препаратов, где каждая партия должна быть идентичной, в травах допускается естественная вариабельность. Утилита помогает определить границы этой "нормальной" вариабельности, используя статистические границы вместо жестких спецификаций.
input.csv
BatchNumber,ProductName,Marker_1_Conc,Marker_2_Conc,Marker_3_Conc,Marker_4_Conc,Ref_Marker_1_Mean,Ref_Marker_1_StDev,Ref_Marker_2_Mean,Ref_Marker_2_StDev,Mahalanobis_Distance,Cluster_ID TCM-CLUS-2026-001,Panax Notoginseng,25.0,30.0,10.0,80.0,24.0,1.0,29.0,1.5,1.2,1.0 TCM-CLUS-2026-002,Panax Notoginseng,24.5,29.5,10.2,79.0,24.0,1.0,29.0,1.5,0.8,1.0 TCM-CLUS-2026-003,Panax Notoginseng,20.0,25.0,8.0,70.0,24.0,1.0,29.0,1.5,5.5,2.0
Batch Similarity Clustering Utility — URS и FS
Ниже приведены русские версии пользовательских требований и функциональной спецификации.
Batch Similarity Clustering Utility — URS
Batch Similarity Clustering Utility
Документ сформирован для русской локализации. Для английской и остальных языков используется отдельная английская версия без смешения языков.
Назначение
Определить пользовательские требования к автономной FUZKK-утилите, которая принимает CSV-файл лабораторных данных, выполняет проверку по зашитым в код правилам и формирует LabWare-compatible JSON.
Область применения
Утилита предназначена для предварительной QC/QA-оценки, интеграционного тестирования, LIMS/LabWare flow и подготовки evidence trail. Окончательное решение остаётся за валидированной процедурой лаборатории и ответственным персоналом.
Пользователи
QC analyst, QA reviewer, CSV/validation engineer, LIMS/LabWare integration engineer, responsible laboratory specialist.
Пользовательские требования
- Утилита должна запускаться без параметров и выводить самоописание, пример input.csv из GetDemoData() и demo evaluation для встроенного набора данных.
- Утилита должна запускаться с двумя параметрами: input.csv output.json.
- Утилита не должна читать input.csv и не должна писать output.json при запуске без параметров.
- CSV должен читаться с CultureInfo.InvariantCulture для числовых значений.
- Результат должен формироваться в LabWare-compatible JSON с Header, Samples, Results, Status, StatusCode, ErrorMessage, Description и DescriptionEN.
- При PASS поле ErrorMessage должно быть пустой строкой.
- Зашитые лимиты должны следовать приоритету: Ph. Eur. → British Pharmacopoeia / UK implementation → ЕАЭС / региональные требования → EMA/ICH/EU guidance → USP fallback.
- Если точная монография неизвестна, применяются строгие стандартные API-лимиты: Assay 98–102%, total impurities ≤1.0%, individual impurity ≤0.5%, если это применимо к типу утилиты.
- Для биопрепаратов и mAb-like продуктов должны учитываться агрегаты, стерильность и эндотоксины, если такие параметры релевантны назначению утилиты.
- Если параметр может приходить в разных единицах, единица должна быть отдельным входным полем или явно отражаться в имени поля input.csv.
Входной CSV
BatchNumber,ProductName,Marker_1_Conc,Marker_2_Conc,Marker_3_Conc,Marker_4_Conc,Ref_Marker_1_Mean,Ref_Marker_1_StDev,Ref_Marker_2_Mean,Ref_Marker_2_StDev,Mahalanobis_Distance,Cluster_ID TCM-CLUS-2026-001,Panax Notoginseng,25.0,30.0,10.0,80.0,24.0,1.0,29.0,1.5,1.2,1.0 TCM-CLUS-2026-002,Panax Notoginseng,24.5,29.5,10.2,79.0,24.0,1.0,29.0,1.5,0.8,1.0 TCM-CLUS-2026-003,Panax Notoginseng,20.0,25.0,8.0,70.0,24.0,1.0,29.0,1.5,5.5,2.0
Поля input.csv
| Field | Sample |
|---|---|
| BatchNumber | TCM-CLUS-2026-001 |
| ProductName | Panax Notoginseng |
| Marker_1_Conc | 25.0 |
| Marker_2_Conc | 30.0 |
| Marker_3_Conc | 10.0 |
| Marker_4_Conc | 80.0 |
| Ref_Marker_1_Mean | 24.0 |
| Ref_Marker_1_StDev | 1.0 |
| Ref_Marker_2_Mean | 29.0 |
| Ref_Marker_2_StDev | 1.5 |
| Mahalanobis_Distance | 1.2 |
| Cluster_ID | 1.0 |
Описание утилиты
Batch Similarity Clustering Utility — Утилита кластеризации и оценки сходства партий ТСМ
Batch Similarity Clustering Utility — Утилита кластеризации и оценки сходства партий ТСМ
ℹ️ Утилита проводит многомерный статистический анализ (PCA/HCA):
• Расстояние Махаланобиса (≤3.0)
• Принадлежность к основному кластеру
• Z-Score ключевых маркеров (±2σ)
⚠️ КРИТИЧНО: Природное сырье вариабельно!
Статистические методы позволяют отличить норму от брака.
Использование:
BatchSimilarityClusteringUtility.exe → демо-режим (вывод в консоль)
BatchSimilarityClusteringUtility.exe input.csv output.json → оценка ваших данных
Формат input.csv:
BatchNumber,ProductName,Marker_1_Conc,Marker_2_Conc,Marker_3_Conc,Marker_4_Conc,Ref_Marker_1_Mean,Ref_Marker_1_StDev,Ref_Marker_2_Mean,Ref_Marker_2_StDev,Mahalanobis_Distance,Cluster_ID
Пример:
TCM-CLUS-2026-001,Panax Notoginseng,25.0,30.0,10.0,80.0,24.0,1.0,29.0,1.5,1.2,1.0
— ЗАЧЕМ ЭТО НУЖНО?
Статистическая оценка сходства критична для стандартизации ТСМ (Yunnan Baiyao, Tong Ren Tang):
• Химический состав трав зависит от почвы, климата и времени сбора
• Одиночные лимиты не всегда отражают общее качество профиля
• Методы PCA (Principal Component Analysis) и HCA (Hierarchical Cluster Analysis) позволяют визуализировать группировку партий
• Выявление "выбросов" (outliers) помогает предотвратить выпуск нетипичного сырья
⚠️ КРИТИЧЕСКИ ВАЖНО:
• Расстояние Махаланобиса ≤3.0 — партия находится внутри доверительного эллипса "хороших" партий
• Принадлежность к Кластеру 1 — соответствие основному историческому профилю
• Z-Score маркеров в пределах ±2σ — отсутствие аномалий по ключевым веществам
• Стабильность кластеризации при добавлении новых данных
Ключевые особенности утилиты:
• Многомерный анализ вместо одномерного контроля
• Расчет статистического расстояния до центра распределения
• Автоматическое определение принадлежности к кластеру
• Поддержка исторических данных для построения референсной модели
Критические параметры:
• Mahalanobis Distance: ≤3.0
• Cluster ID: 1 (Main)
• Z-Score: ±2.0 σ
💡 Советы по использованию:
1. Используйте минимум 20-30 исторических партий для построения надежной модели
2. Обновляйте референсные средние и стандартные отклонения при изменении поставщика
3. Сочетайте кластеризацию с хроматографическим фингерпринтингом
4. Исследуйте причины попадания партии в другой кластер (география, погода)
5. Визуализируйте данные на графике PCA Score Plot для наглядности
⚠️ Особенность: В отличие от синтетических препаратов, где каждая партия должна быть идентичной, в травах допускается естественная вариабельность. Утилита помогает определить границы этой "нормальной" вариабельности, используя статистические границы вместо жестких спецификаций.
Трассируемость и ограничения
- URS используется как исходный документ для functional specification, CSV review и последующей CSV/validation работы.
- Документ не является заменой утверждённой фармакопейной монографии, валидированного метода или внутренней спецификации продукта.
- Для product-specific лимитов приоритет имеет утверждённая спецификация заказчика.
Batch Similarity Clustering Utility — FS
Batch Similarity Clustering Utility
Функциональная спецификация описывает поведение автономной консольной утилиты FUZKK, формат входных данных, алгоритм оценки и структуру выходного JSON.
Функциональный поток
- Main() проверяет количество аргументов.
- Если аргументов нет: PrintHello() выводит описание и встроенный пример input.csv, затем RunDemoEvaluation() выполняет Evaluate() по GetDemoData() и печатает demo JSON.
- Если передано два аргумента: RunWithFiles(input.csv, output.json) читает CSV, выполняет Evaluate() по каждой строке и записывает LabWare-compatible JSON.
- LoadData() использует CultureInfo.InvariantCulture и не должен вызываться в no-args режиме.
- Evaluate() возвращает именованный кортеж с BatchNumber, ProductName, Parameters, CriticalFailCount, WarningCount, Recommendation и RecommendationEN.
- GetIssues() формирует сообщения для ErrorMessage при WARNING/FAIL.
Правила оценки
- PASS: CriticalFailCount = 0 и WarningCount = 0.
- WARNING: CriticalFailCount = 0 и WarningCount > 0.
- FAIL: CriticalFailCount > 0.
- ERROR: исключение при чтении или обработке данных.
- ErrorMessage остаётся пустым при PASS.
- Лимиты зашиты в Program.cs; внешняя конфигурация лимитов не требуется.
Ввод и поля
BatchNumber,ProductName,Marker_1_Conc,Marker_2_Conc,Marker_3_Conc,Marker_4_Conc,Ref_Marker_1_Mean,Ref_Marker_1_StDev,Ref_Marker_2_Mean,Ref_Marker_2_StDev,Mahalanobis_Distance,Cluster_ID TCM-CLUS-2026-001,Panax Notoginseng,25.0,30.0,10.0,80.0,24.0,1.0,29.0,1.5,1.2,1.0 TCM-CLUS-2026-002,Panax Notoginseng,24.5,29.5,10.2,79.0,24.0,1.0,29.0,1.5,0.8,1.0 TCM-CLUS-2026-003,Panax Notoginseng,20.0,25.0,8.0,70.0,24.0,1.0,29.0,1.5,5.5,2.0
| Field | Sample |
|---|---|
| BatchNumber | TCM-CLUS-2026-001 |
| ProductName | Panax Notoginseng |
| Marker_1_Conc | 25.0 |
| Marker_2_Conc | 30.0 |
| Marker_3_Conc | 10.0 |
| Marker_4_Conc | 80.0 |
| Ref_Marker_1_Mean | 24.0 |
| Ref_Marker_1_StDev | 1.0 |
| Ref_Marker_2_Mean | 29.0 |
| Ref_Marker_2_StDev | 1.5 |
| Mahalanobis_Distance | 1.2 |
| Cluster_ID | 1.0 |
Выходной JSON
{
"Header": {
"UtilityName": "Batch_Similarity_Clustering_Utility",
"Version": "1.0.0",
"Timestamp": "UTC",
"InstrumentID": "FUZKK-QC-WORKSTATION",
"OperatorID": "Admin"
},
"Samples": [
{
"SampleID": "from BatchNumber",
"BatchNumber": "from CSV",
"ProductName": "from CSV",
"TestName": "utility-specific test",
"AnalysisCode": "utility-specific code",
"Status": "PASS | WARNING | FAIL | ERROR",
"StatusCode": "1 | 2 | 0 | -1",
"ErrorMessage": "",
"Description": "Russian recommendation",
"DescriptionEN": "English recommendation",
"Results": [
{
"ParameterName": "parameter",
"ResultValue": 0.0,
"UnitOfMeasure": "unit",
"SpecificationLimit": "limit",
"IsWithinSpec": true
}
]
}
]
}Входит в пакеты
Herbal / TCM / Ayurveda instrumental QC
Herbal / TCM / Ayurveda instrumental QC: пакет утилит FUZKK для CSV→JSON QC-проверок с EU-first приоритетом лимитов.
Открыть