Универсальный конвертер представлений
Явные форматы молекул и реакций с проверкой сохранения информации.
Явно задавайте форматы
Используйте MCP convert_representation или POST /v1/chemistry/convert-representation:
{"data":"C[C@H](O)Cl","input_format":"smiles","output_format":"sdf","allow_lossy":false}| Входные форматы | Выходные форматы |
|---|---|
smiles, inchi, mol, sdf | smiles, inchi, inchikey, mol, mol_v3000, sdf, formula, unicode_formula |
reaction_smiles, rxn | reaction_smiles, rxn, rxn_v3000, formula, unicode_formula |
Не угадывайте формат по названию вещества. Брутто-формула и InChIKey не восстанавливают структуру однозначно, поэтому это выходные проекции, а не входные структурные форматы. Поиск структуры по названию во внешних сервисах не подразумевается.
Сохранение структуры и потери
Ответ содержит output, record_count, канонические структуры записей и preservation: молекулярный граф, стереохимия, изотопы, заряд, атомные карты, свойства, координаты. Проверяйте lossy, warnings, limitations.
По умолчанию allow_lossy:false отклоняет известную потерю информации. Разрешайте её явно только для нужной проекции — например, формулы или удаления координат/свойств SDF. Разрешение не делает потерянную информацию представимой в целевом формате.
from cyberrxn import Client
with Client() as client:
result = client.convert_representation(
"CCO", input_format="smiles", output_format="unicode_formula", allow_lossy=True
)
print(result.output)import { CyberRXN } from 'cyberrxn';
const client = new CyberRXN();
const result = await client.convertRepresentation('CCO', {
inputFormat: 'smiles', outputFormat: 'inchi', allowLossy: false,
});
console.log(result.output);Наборы молекул и реакции
Многообъектный SDF ограничен 32 записями и 2000 атомами суммарно. SMILES/InChI сохраняет отдельные записи отдельными строками. Набор из нескольких записей не помещается в один MOL: выберите SDF. При конвертации реакции сохраняются участники, агенты, кратности и атомные карты, если формат позволяет.
Фрагменты с wildcard или полимерной структурой можно конвертировать как структуры. Они не задают конечную молекулярную формулу полимера и не предсказывают полимеризацию. Границы работы с полимерами.
Для быстрого отображения уже имеющегося SMILES есть convert_smiles / POST /v1/chemistry/convert: ASCII- и Unicode-формулы, необязательные InChI/InChIKey. Формула теряет структурную и изомерную идентичность; сохраняйте рядом канонический SMILES.
Фрагменты с точками присоединения, например *CC*, могут конвертироваться как граф. Полимерные substance groups форматов MOL/SDF, включая SRU, явно отклоняются: сервис не превращает их в вымышленную конечную молекулу.
RXN с непустым названием или комментарием заголовка и с данными после конца записи отклоняется, если эти метаданные нельзя сохранить. allow_lossy принимает JSON boolean, а не строку или число.