Dissolution_Profile_f2_Calculator
Dissolution Profile f2 Calculator
Описание утилиты: Dissolution Profile f2 Calculator
Dissolution Profile f2 Calculator — Расчет фактора подобия профилей растворения ℹ️ Утилита проверяет подобие профилей растворения двух партий (например, тестовой и референсной): • Фактор подобия f2: 50–100 (подобие), <50 (различие) • Минимальное количество точек: 3 (не считая t=0) • Максимальная разница в последней точке: ≤10% ⚠️ КРИТИЧНО: f2 < 50 → профили растворения НЕ подобны! Это может потребовать дополнительных исследований биоэквивалентности. Использование: Dissolution_Profile_f2_Calculator.exe → демо-режим (вывод в консоль) Dissolution_Profile_f2_Calculator.exe input.csv output.json → оценка ваших данных Формат input.csv: Batch,RefT1,TestT1,RefT2,TestT2,...,RefTn,TestTn Пример: DISS-F2-2026-001,25.0,26.0,50.0,52.0,75.0,76.0,90.0,91.0,98.0,99.0 — ЗАЧЕМ ЭТО НУЖНО? Сравнение профилей растворения необходимо при изменении состава, процесса производства или места производства твердых лекарственных форм. • Фактор f2 (factor of similarity) — модельно-независимый подход, рекомендованный FDA и EMA. • Значение f2 между 50 и 100 указывает на отсутствие клинически значимых различий в скорости и степени растворения. • Метод применим, если растворение превышает 85% менее чем за 15 минут (тогда профили считаются подобными автоматически) или если используется минимум 3-4 точки до достижения 85% растворения. • Автоматизация расчета исключает ошибки ручного вычисления сумм квадратов разностей. ⚠️ КРИТИЧЕСКИ ВАЖНО: • f2 >= 50 является стандартным критерием подобия. • Разница в средних значениях растворения в любой точке времени не должна превышать 10-15% (в зависимости от регуляторных требований). • Разница в последней точке времени не должна превышать 10%. • Дисперсия (RSD) в ранних точках не должна превышать 20%, в поздних — 10%. Ключевые особенности утилиты: • Расчет f2 по формуле USP <711>. • Проверка количества точек и разницы в конечной точке. • Генерация JSON-отчета для LIMS. Критические параметры: • Similarity Factor f2: 50-100 • Time Points: >= 3 • Max Diff at Last Point: <= 10% 💡 Советы по использованию: 1. Используйте одинаковые временные точки для референсного и тестового профилей. 2. Если растворение очень быстрое (<85% за 15 мин), f2 может быть нечувствительным; рассмотрите другие метрики. 3. Учитывайте, что f2 чувствителен к количеству точек: больше точек -> меньше f2 при той же разнице. 4. Для профилей с высокой вариабельностью используйте бутстреп-методы (не реализовано в этой версии). ⚠️ Особенность: Формула f2 логарифмическая и обратная: чем больше разница между профилями, тем меньше f2. Значение 100 означает идентичность профилей.
input.csv
Batch,Ref15,Test15,Ref30,Test30,Ref45,Test45,Ref60,Test60,Ref90,Test90 DISS-F2-2026-001,25.0,26.0,50.0,52.0,75.0,76.0,90.0,91.0,98.0,99.0 DISS-F2-2026-002,25.0,30.0,50.0,58.0,75.0,85.0,90.0,95.0,98.0,99.5 DISS-FAIL-2026-003,25.0,10.0,50.0,20.0,75.0,30.0,90.0,40.0,98.0,50.0
Описание утилиты
Dissolution Profile f2 Calculator — Расчет фактора подобия профилей растворения ℹ️ Утилита проверяет подобие профилей растворения двух партий (например, тестовой и референсной): • Фактор подобия f2: 50–100 (подобие), <50 (различие) • Минимальное количество точек: 3 (не считая t=0) • Максимальная разница в последней точке: ≤10% ⚠️ КРИТИЧНО: f2 < 50 → профили растворения НЕ подобны! Это может потребовать дополнительных исследований биоэквивалентности. Использование: Dissolution_Profile_f2_Calculator.exe → демо-режим (вывод в консоль) Dissolution_Profile_f2_Calculator.exe input.csv output.json → оценка ваших данных Формат input.csv: Batch,RefT1,TestT1,RefT2,TestT2,...,RefTn,TestTn Пример: DISS-F2-2026-001,25.0,26.0,50.0,52.0,75.0,76.0,90.0,91.0,98.0,99.0 — ЗАЧЕМ ЭТО НУЖНО? Сравнение профилей растворения необходимо при изменении состава, процесса производства или места производства твердых лекарственных форм. • Фактор f2 (factor of similarity) — модельно-независимый подход, рекомендованный FDA и EMA. • Значение f2 между 50 и 100 указывает на отсутствие клинически значимых различий в скорости и степени растворения. • Метод применим, если растворение превышает 85% менее чем за 15 минут (тогда профили считаются подобными автоматически) или если используется минимум 3-4 точки до достижения 85% растворения. • Автоматизация расчета исключает ошибки ручного вычисления сумм квадратов разностей. ⚠️ КРИТИЧЕСКИ ВАЖНО: • f2 >= 50 является стандартным критерием подобия. • Разница в средних значениях растворения в любой точке времени не должна превышать 10-15% (в зависимости от регуляторных требований). • Разница в последней точке времени не должна превышать 10%. • Дисперсия (RSD) в ранних точках не должна превышать 20%, в поздних — 10%. Ключевые особенности утилиты: • Расчет f2 по формуле USP <711>. • Проверка количества точек и разницы в конечной точке. • Генерация JSON-отчета для LIMS. Критические параметры: • Similarity Factor f2: 50-100 • Time Points: >= 3 • Max Diff at Last Point: <= 10% 💡 Советы по использованию: 1. Используйте одинаковые временные точки для референсного и тестового профилей. 2. Если растворение очень быстрое (<85% за 15 мин), f2 может быть нечувствительным; рассмотрите другие метрики. 3. Учитывайте, что f2 чувствителен к количеству точек: больше точек -> меньше f2 при той же разнице. 4. Для профилей с высокой вариабельностью используйте бутстреп-методы (не реализовано в этой версии). ⚠️ Особенность: Формула f2 логарифмическая и обратная: чем больше разница между профилями, тем меньше f2. Значение 100 означает идентичность профилей.
URS & FS — спецификация пользователя и функциональная спецификация
Документ описывает контролируемый интерфейс, требования пользователя и функциональное поведение утилиты Dissolution_Profile_f2_Calculator. Назначение: автоматизированная проверка лабораторных, фармакопейных, аналитических или производственных QC-параметров на основе данных input.csv с формированием структурированного результата output.json.
Предметные ограничения и критические параметры
- • f2 >= 50 является стандартным критерием подобия.
- • Разница в средних значениях растворения в любой точке времени не должна превышать 10-15% (в зависимости от регуляторных требований).
- • Разница в последней точке времени не должна превышать 10%.
- • Дисперсия (RSD) в ранних точках не должна превышать 20%, в поздних — 10%.
- • Расчет f2 по формуле USP <711>.
- • Проверка количества точек и разницы в конечной точке.
- • Генерация JSON-отчета для LIMS.
- • Similarity Factor f2: 50-100
- • Time Points: >= 3
- • Max Diff at Last Point: <= 10%
- • Максимальная разница в последней точке: ≤10%
URS — пользовательские требования
| ID | Требование | Критичность | Критерий приемки |
|---|---|---|---|
| URS-001 | Утилита должна принимать файл input.csv с точными заголовками из контракта данных. | High | Файл обрабатывается без ручной правки заголовков. |
| URS-002 | Утилита должна выполнять детерминированную проверку для Dissolution Profile f2 Calculator на основе входных значений, утверждённых пределов и предметных правил. | High | Для каждой строки формируется статус PASS / WARNING / FAIL. |
| URS-003 | Утилита должна проверять обязательные поля, типы данных, числовые диапазоны, единицы измерения и предметную правдоподобность. | High | Ошибки схемы, формата и преобразования явно отражаются в результате. |
| URS-004 | Утилита должна выявлять критические отклонения по показателям, указанным в описании и спецификации метода. | High | Критическое отклонение приводит к FAIL или отдельному critical finding. |
| URS-005 | Утилита должна формировать output.json с машинно-читаемыми результатами, исходными значениями, предупреждениями и отказами. | High | JSON пригоден для LIMS/ELN/MES, QA/QC review и архивирования. |
| URS-006 | Результат не должен зависеть от машинного обучения или недокументированных эвристик. | Medium | Все решения основаны на явно заданных правилах, порогах и входных значениях. |
| URS-007 | Система должна сохранять трассируемость между серией, входными данными, применёнными правилами и итоговым статусом. | High | Выход содержит идентификатор серии/образца и перечень проверенных параметров. |
| URS-008 | Документация должна поддерживать подготовку IQ/OQ/PQ и обсуждение при инспекции. | Medium | URS, FS, контракт CSV/JSON и тестовые сценарии поставляются вместе с утилитой. |
| URS-009 | Утилита должна быть пригодна для пакетной обработки нескольких строк input.csv. | Medium | Каждая строка получает независимую оценку; ошибки одной строки не скрывают ошибки других строк. |
| URS-010 | Утилита должна поддерживать простую операционную модель: запуск в demo-mode и запуск с входным/выходным файлом. | Medium | CLI-сценарий воспроизводим на тестовом и продуктивном окружении. |
Контракт input.csv
| # | Поле | Тип | Пример | Назначение |
|---|---|---|---|---|
| 1 | Batch | string | DISS-F2-2026-001 | Идентификатор серии/партии для трассируемости, review и последующего расследования отклонений. |
| 2 | Ref15 | string / decimal | 25.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 3 | Test15 | string / decimal | 26.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 4 | Ref30 | string / decimal | 50.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 5 | Test30 | string / decimal | 52.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 6 | Ref45 | string / decimal | 75.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 7 | Test45 | string / decimal | 76.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 8 | Ref60 | string / decimal | 90.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 9 | Test60 | string / decimal | 91.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 10 | Ref90 | string / decimal | 98.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
| 11 | Test90 | string / decimal | 99.0 | Контролируемый входной параметр для детерминированных QC-правил и трассируемого результата. |
Batch,Ref15,Test15,Ref30,Test30,Ref45,Test45,Ref60,Test60,Ref90,Test90 DISS-F2-2026-001,25.0,26.0,50.0,52.0,75.0,76.0,90.0,91.0,98.0,99.0 DISS-F2-2026-002,25.0,30.0,50.0,58.0,75.0,85.0,90.0,95.0,98.0,99.5 DISS-FAIL-2026-003,25.0,10.0,50.0,20.0,75.0,30.0,90.0,40.0,98.0,50.0
FS — функциональная спецификация
| ID | Функция | Реализация |
|---|---|---|
| FS-001 | CSV import | Прочитать input.csv в UTF-8/CSV-совместимом формате, проверить наличие заголовка и ожидаемых колонок. |
| FS-002 | Schema validation | Проверить обязательные поля, количество колонок, отсутствие критических пропусков и корректность структуры строк. |
| FS-003 | Type conversion | Преобразовать числовые, флаговые и текстовые значения; некорректный формат фиксировать как ошибку строки. |
| FS-004 | Domain rule engine | Применить предметные правила для Dissolution Profile f2 Calculator, включая лимиты из описания утилиты и утверждённой спецификации. |
| FS-005 | Status aggregation | Сформировать итоговый статус: FAIL при критическом отказе, WARNING при некритическом отклонении, PASS при соответствии. |
| FS-006 | JSON export | Записать output.json с детализацией проверок, исходными значениями, предупреждениями, отказами и critical findings. |
| FS-007 | Audit support | Сохранять структуру результата пригодной для review, расследования отклонений, воспроизведения расчёта и подготовки IQ/OQ/PQ. |
| FS-008 | Integration contract | Поддерживать сценарий: LIMS/ELN/MES формирует input.csv, утилита возвращает output.json, портал отображает описание и документацию. |
| FS-009 | Error handling | Отражать ошибки без неоднозначных сообщений; не подменять отсутствующие значения расчетными значениями без явного правила. |
| FS-010 | Version control support | Документировать версию утилиты, входной контракт, контрольную сумму исполняемого файла и дату применения правил. |
Пример output.json
{
"utilityId": "dissolution-profile-f2-calculator",
"utilityName": "Dissolution_Profile_f2_Calculator",
"overallStatus": "PASS|WARNING|FAIL",
"sourceFile": "input.csv",
"checks": [
{
"parameter": "Batch",
"value": "DISS-F2-2026-001",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Ref15",
"value": "25.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Test15",
"value": "26.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Ref30",
"value": "50.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Test30",
"value": "52.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Ref45",
"value": "75.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Test45",
"value": "76.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Ref60",
"value": "90.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Test60",
"value": "91.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Ref90",
"value": "98.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
},
{
"parameter": "Test90",
"value": "99.0",
"status": "PASS|WARNING|FAIL",
"message": "Rule-based check result"
}
],
"criticalFindings": [],
"warnings": [],
"generatedFor": "QA/QC review and LIMS integration"
}
Матрица трассируемости
| URS | FS | OQ/PQ покрытие |
|---|---|---|
| URS-001, URS-003 | FS-001, FS-002, FS-003 | OQ-001/OQ-002/OQ-003 |
| URS-002, URS-004 | FS-004, FS-005 | OQ-004/PQ-001 |
| URS-005, URS-007 | FS-006, FS-007 | OQ-005/PQ-002 |
| URS-008, URS-010 | FS-008, FS-010 | IQ-001/OQ-006 |
OQ/PQ тестовые сценарии
| ID | Сценарий | Ожидаемый результат |
|---|---|---|
| OQ-001 | Валидная строка из примера | PASS или допустимый WARNING согласно правилам. |
| OQ-002 | Отсутствует обязательная колонка | Ошибка схемы или FAIL. |
| OQ-003 | Нечисловое значение в числовом поле | Ошибка преобразования типа. |
| OQ-004 | Значение критического параметра за пределом | FAIL и critical finding. |
| OQ-005 | Несколько строк с разными статусами | Независимая оценка каждой строки. |
| PQ-001 | Реальная серия/партия пользователя | Согласованный результат review с сохранением input/output. |
QA/QC и change control
- Не менять имена колонок без обновления валидатора, документации и тестового набора.
- Хранить
input.csv,output.json, версию исполняемого файла, документацию и checksum. - Перед продуктивным использованием провести IQ/OQ/PQ или эквивалентную CSV/CSA-проверку.
- Критические пределы должны быть сверены с утверждённой спецификацией, локальными SOP и регистрационным досье.
Входит в пакеты
Наркология
Пакет QC-утилит для наркологии и регулируемых лекарственных средств: препараты для терапии зависимости, опиоиды, бензодиазепины, стимуляторы, седативные средства, летучие примеси, assay/identity/dissolution/release checks.
ОткрытьСтоматология и стоматологические материалы
Пакет QC-утилит для стоматологических лекарственных продуктов, средств для полости рта и стоматологических материалов: анестетики, антисептики, обезболивание/антибиотики, полимеры/минералы, смолы, бондинги, микробиология, стабильность и material QC.
ОткрытьИнфекционистика
Пакет QC-утилит для инфекционистики: антибактериальные, противовирусные, противогрибковые и противопаразитарные продукты, микробиология, стерильность, эндотоксины, вирусная безопасность, вакцинные release-checks.
ОткрытьLumex QC Suite
Единый пакет Lumex, объединяющий исходные Lumex и Lumex2: инструментальный и общий фармацевтический QC, AAS/ICP, CE, HPLC, NIR/PAT, стабильность, растворение, однородность дозирования, системная пригодность и статистический контроль.
Открыть