Перенос данных путей из ~700 строк инлайн-объекта PATHWAYS в biochem-pathways.html
в БД. Document-подход: каждый путь — самодостаточный документ data_json (граф
узлов/рёбер + шаги с квизами); путь всегда читается целиком, реляционных
запросов нет — нормализация не нужна.
- migration 045_bio_pathways: таблица bio_pathways(slug, name, color, ord, data_json).
- backend/scripts/biochem_pathways_data.js: данные 4 путей (извлечены из инлайн-
объекта, теперь самодостаточный источник правды).
- seed_biochem_pathways.js: идемпотентный upsert по slug.
- biochemController.getPathways + GET /biochem/pathways (карта slug->данные).
- js/api.js: biochemGetPathways.
- biochem-pathways.html: инлайн PATHWAYS (-238 строк) заменён на загрузку из API
в init (loadPathways); форма данных идентична — рендер не изменён.
Проверено: API отдаёт 4 пути в форме фронта, сидер идемпотентен.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
{id:'glc',label:'Глюкоза',formula:'C₆H₁₂O₆',x:400,y:60,role:'substrate',desc:'Исходный субстрат гликолиза. 6-углеродный сахар, главный источник энергии клетки.',props:[]},
{id:'g6p',label:'Глюкозо-6-Ф',formula:'C₆H₁₃O₉P',x:400,y:145,role:'inter',desc:'Глюкозо-6-фосфат. Образуется при фосфорилировании глюкозы за счёт АТФ. Удерживает молекулу в клетке.',props:['−1 АТФ']},
{id:'f6p',label:'Фруктозо-6-Ф',formula:'C₆H₁₃O₉P',x:400,y:225,role:'inter',desc:'Изомер глюкозо-6-фосфата. Образуется при изомеризации ферментом фосфоглюкоизомеразой.',props:[]},
{id:'dhap',label:'ДГАФ',formula:'C₃H₇O₆P',x:260,y:395,role:'inter',desc:'Дигидроксиацетонфосфат — один из двух триозофосфатов при расщеплении фруктозо-1,6-бисфосфата. Быстро конвертируется в ГАФ.',props:[]},
{id:'gap',label:'ГАФ',formula:'C₃H₇O₆P',x:540,y:395,role:'inter',desc:'Глицеральдегид-3-фосфат (ГАФ) — непосредственный субстрат следующих реакций. Оба триозофосфата канализируются через ГАФ.',props:[]},
{id:'bpg',label:'1,3-бФГ',formula:'C₃H₈O₁₀P₂',x:540,y:480,role:'inter',desc:'1,3-бисфосфоглицерат. Образуется при окислении ГАФ, сопряжённом с восстановлением НАД⁺ в НАДН.',props:['2 НАДН']},
{id:'pg2',label:'2-ФГК',formula:'C₃H₇O₇P',x:540,y:635,role:'inter',desc:'2-фосфоглицерат. Образуется при перемещении фосфатной группы с 3 на 2 положение.',props:[]},
{id:'pep',label:'ФЕП',formula:'C₃H₅O₆P',x:540,y:710,role:'inter',desc:'Фосфоенолпируват (ФЕП) — высокоэнергетический промежуточный продукт. Образуется при дегидратации 2-ФГК.',props:[]},
{id:'pyr',label:'Пируват',formula:'C₃H₄O₃',x:400,y:795,role:'product',desc:'Конечный продукт гликолиза. В аэробных условиях переходит в ацетил-КоА (цикл Кребса). В анаэробных <svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> лактат или этанол.',props:['+2 АТФ','2 молекулы']},
desc:'Гексокиназа катализирует перенос фосфатной группы с АТФ на глюкозу, образуя глюкозо-6-фосфат (Г6Ф). Реакция необратима и «ловит» глюкозу в клетке.',
energy:[{label:'-1 АТФ',cls:'atp-used'}],
quiz:{q:'Зачем глюкозу фосфорилируют в первой реакции?',opts:['Для выхода из клетки','Чтобы удержать глюкозу в клетке','Для образования НАДН','Для расщепления кольца'],ans:1}
},
{
title:'Изомеризация',
mol:'f6p',
desc:'Фосфоглюкоизомераза превращает Г6Ф в фруктозо-6-фосфат (Ф6Ф). Реакция обратима и перестраивает альдозный сахар в кетозный.',
quiz:{q:'Чем восстанавливается НАД⁺ в этой реакции?',opts:['ГАФ','Пируват','ДГАФ','АТФ'],ans:0}
},
{
title:'Первая выработка АТФ',
mol:'pg3',
desc:'Фосфоглицераткиназа переносит фосфат с 1,3-бФГ на АДФ <svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> АТФ. Это субстратное фосфорилирование — первый синтез АТФ в гликолизе. С каждой глюкозы получаем 2 АТФ.',
energy:[{label:'+2 АТФ',cls:'atp-prod'}],
quiz:{q:'Как называется тип синтеза АТФ в этой реакции?',opts:['Окислительное фосфорилирование','Субстратное фосфорилирование','Фотофосфорилирование','Трансфосфорилирование'],ans:1}
},
{
title:'Мутация фосфатной группы',
mol:'pg2',
desc:'Фосфоглицератмутаза перемещает фосфатную группу с 3-го на 2-е углеродное положение, подготавливая молекулу к дегидратации.',
energy:[],
quiz:{q:'Какой продукт образуется из 3-ФГК под действием мутазы?',opts:['ФЕП','2-ФГК','Пируват','1,3-бФГ'],ans:1}
quiz:{q:'Почему ФЕП называют «высокоэнергетическим»?',opts:['Содержит много атомов С','Большая ΔG° гидролиза фосфатной связи','Растворяется в жирах','Содержит двойную связь'],ans:1}
{id:'acetcoa',label:'Ацетил-КоА',formula:'CH₃CO-SCoA',x:440,y:80,role:'substrate',desc:'Активированный ацетат. Образуется из пирувата (гликолиз), жирных кислот (β-окисление) и аминокислот.',props:['Входит в цикл']},
{id:'oaa',label:'ОАА',formula:'C₄H₄O₅',x:260,y:140,role:'key',desc:'Оксалоацетат — акцептор ацетил-КоА. Регенерируется в каждом обороте цикла. Ключевой анаплеротический метаболит.',props:['Акцептор']},
{id:'cit',label:'Цитрат',formula:'C₆H₈O₇',x:160,y:260,role:'inter',desc:'Цитрат — первый продукт цикла. Синтезируется цитратсинтазой из ацетил-КоА и ОАА.',props:[]},
{id:'akg',label:'α-КГ',formula:'C₅H₆O₅',x:160,y:520,role:'inter',desc:'α-кетоглутарат (α-КГ). Образуется при окислительном декарбоксилировании изоцитрата. Выделяется CO₂.',props:['−CO₂','+НАДН']},
{id:'succoa',label:'Сукцинил-КоА',formula:'C₅H₆O₃S',x:300,y:620,role:'inter',desc:'Сукцинил-КоА — высокоэнергетический тиоэфир. Образуется при окислительном декарбоксилировании α-КГ.',props:['+НАДН','+ГТФ','-CO₂']},
{id:'succ',label:'Сукцинат',formula:'C₄H₆O₄',x:480,y:620,role:'inter',desc:'Сукцинат. Окисляется сукцинатдегидрогеназой (СДГ) — единственным мембранным ферментом цикла.',props:['+ФАДН₂']},
{id:'fum',label:'Фумарат',formula:'C₄H₄O₄',x:620,y:520,role:'inter',desc:'Фумарат — транс-изомер. Образуется при окислении сукцината. Гидратируется фумаразой.',props:[]},
{id:'mal',label:'Малат',formula:'C₄H₆O₅',x:660,y:390,role:'inter',desc:'Малат (яблочная кислота). Образуется при гидратации фумарата. Окисляется малатдегидрогеназой.',props:['+НАДН']},
{title:'Конденсация с ОАА',mol:'cit',desc:'Цитратсинтаза присоединяет ацетил-КоА (2C) к оксалоацетату (4C) <svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> цитрат (6C). Это необратимая реакция, запускающая цикл.',energy:[],quiz:{q:'Сколько углеродов в цитрате?',opts:['2','4','6','8'],ans:2}},
{title:'Изомеризация цитрата',mol:'isocit',desc:'Аконитаза через промежуточный цис-аконитат превращает цитрат в изоцитрат. Реакция обратима, равновесие сдвинуто в сторону цитрата.',energy:[],quiz:{q:'Какой фермент изомеризует цитрат?',opts:['Фумараза','Аконитаза','Малатдегидрогеназа','Цитратсинтаза'],ans:1}},
{title:'Второе окислительное декарбоксилирование',mol:'succoa',desc:'α-кетоглутаратдегидрогеназный комплекс (аналог ПДК) окисляет α-КГ <svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> сукцинил-КоА. Выделяется ещё одна CO₂ и НАДН.',energy:[{label:'+НАДН',cls:'nadh'},{label:'-CO₂',cls:'co2'}],quiz:{q:'Чем структурно похож α-КГДК на пируватдегидрогеназный комплекс?',opts:['Использует ФАДН₂','Механизм окислительного декарбоксилирования с КоА','Находится в цитоплазме','Требует витамин К'],ans:1}},
{title:'Субстратное фосфорилирование',mol:'succ',desc:'Сукцинил-КоА-синтетаза расщепляет тиоэфирную связь сукцинил-КоА, сопрягая это с синтезом ГТФ (или АТФ). Единственная реакция субстратного фосфорилирования в цикле.',energy:[{label:'+ГТФ',cls:'atp-prod'}],quiz:{q:'Что синтезируется при реакции сукцинил-КоА-синтетазы?',opts:['НАДН','ФАДН₂','ГТФ','CO₂'],ans:2}},
{title:'Гидратация фумарата',mol:'mal',desc:'Фумараза присоединяет воду к фумарату <svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> L-малат. Реакция стереоспецифична — образуется только L-изомер.',energy:[],quiz:{q:'Что присоединяется к фумарату в этой реакции?',opts:['CO₂','АТФ','H₂O','НАДН'],ans:2}},
{title:'Регенерация ОАА',mol:'oaa',desc:'Малатдегидрогеназа окисляет малат <svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> оксалоацетат с образованием НАДН. Регенерируется акцептор для следующего оборота цикла.',energy:[{label:'+НАДН',cls:'nadh'}],quiz:{q:'Сколько оборотов цикла Кребса нужно на 1 молекулу глюкозы?',opts:['1','2','4','10'],ans:1}},
]
},
oxidation:{
name:'β-Окисление',
color:'#fb923c',
colorRgb:'251,146,60',
desc:'Повторяющиеся циклы окисления жирных кислот в митохондриях. Каждый цикл отщепляет 2C в виде ацетил-КоА и выделяет 1 НАДН + 1 ФАДН₂.',
{id:'fac',label:'Жирная к-та',formula:'R-COOH',x:400,y:60,role:'substrate',desc:'Свободная жирная кислота (напр. пальмитиновая C₁₆). Активируется в ацил-КоА перед входом в митохондрии.',props:[]},
{id:'acylcoa',label:'Ацил-КоА',formula:'R-CO-SCoA',x:400,y:150,role:'key',desc:'Активированная жирная кислота. Образуется при участии ацил-КоА-синтетазы за счёт АТФ (<svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>АМФ+PPi). Не проходит через мембрану — транспортируется как карнитиновый эфир.',props:['-АТФ (<svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>АМФ)']},
{id:'enoylcoa',label:'Транс-еноил-КоА',formula:'R-CH=CH-CO-SCoA',x:400,y:250,role:'inter',desc:'Транс-Δ²-еноил-КоА. Образуется при ФАД-зависимом окислении ацил-КоА ацил-КоА-дегидрогеназой.',props:['+ФАДН₂']},
{id:'hydroxy',label:'L-β-гидрокси-КоА',formula:'R-CHOH-CH₂-CO-SCoA',x:400,y:345,role:'inter',desc:'L-β-гидроксиацил-КоА. Образуется при гидратации двойной связи еноил-КоА гидратазой.',props:[]},
{id:'ketoacoa',label:'β-кето-КоА',formula:'R-CO-CH₂-CO-SCoA',x:400,y:440,role:'inter',desc:'β-кетоацил-КоА. Образуется при НАД⁺-зависимом окислении L-β-гидроксиацил-КоА.',props:['+НАДН']},
{id:'newacyl',label:'Ацил-КоА (−2C)',formula:'R\'—CO-SCoA',x:240,y:540,role:'inter',desc:'Укороченный на 2 углерода ацил-КоА. Возвращается на начало цикла β-окисления.',props:['Следующий цикл']},
{id:'acetcoa2',label:'Ацетил-КоА',formula:'CH₃CO-SCoA',x:560,y:540,role:'product',desc:'Ацетил-КоА — входит в цикл Кребса. Из пальмитиновой кислоты (C₁₆) образуется 8 ацетил-КоА за 7 циклов β-окисления.',props:['<svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> Цикл Кребса']},
{id:'mrna',label:'мРНК',formula:'5′-AUG…-3′',x:400,y:60,role:'substrate',desc:'Матричная РНК — несёт генетическую информацию от ДНК к рибосоме в виде кодонов (триплетов нуклеотидов).',props:['Матрица']},
{id:'ribosome',label:'Рибосома',formula:'60S+40S',x:400,y:160,role:'key',desc:'Эукариотическая рибосома (80S). Состоит из малой (40S) и большой (60S) субъединиц. Имеет 3 сайта: A (аминоацильный), P (пептидильный), E (выход).',props:['A-P-E сайты']},
{id:'trna',label:'аминоацил-тРНК',formula:'aa-tRNA',x:230,y:260,role:'inter',desc:'тРНК с присоединённой аминокислотой. Распознаёт кодон мРНК через антикодон. Доставляется в A-сайт в комплексе с EF-Tu·ГТФ.',props:['-2 ГТФ']},
{id:'peptide',label:'Растущая цепь',formula:'...aa-aa-aa',x:560,y:260,role:'inter',desc:'Нарастающая полипептидная цепь в P-сайте. Пептидилтрансфераза (23S rRNA) катализирует образование пептидной связи.',props:['P-сайт']},
{id:'peptbond',label:'Пептидная связь',formula:'—CO—NH—',x:400,y:360,role:'inter',desc:'Образование пептидной связи катализируется рибозимом (23S rRNA) — пептидилтрансферазой. Выделяется тРНК из P-сайта.',props:[]},
{id:'translo',label:'Транслокация',formula:'EF-G·ГТФ',x:400,y:460,role:'inter',desc:'Фактор EF-G (с ГТФ) сдвигает рибосому на 1 кодон (3 нт) в направлении 5′<svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>3′. Освобождается Е-сайт. Расходуется ГТФ.',props:['-1 ГТФ']},
{id:'protein',label:'Белок',formula:'[полипептид]',x:400,y:560,role:'product',desc:'Готовый полипептид. Освобождается при встрече со стоп-кодоном (UAA, UAG, UGA) при участии факторов высвобождения RF1/RF2.',props:['Готовый продукт']},
{title:'Инициация',mol:'ribosome',desc:'Малая субъединица рибосомы распознаёт 5′-кэп мРНК при помощи факторов инициации (eIF4E/4G). Инициаторная Met-тРНК занимает P-сайт. Присоединяется большая субъединица.',energy:[{label:'-3 ГТФ',cls:'atp-used'}],quiz:{q:'Какой сайт занимает инициаторная Met-тРНК?',opts:['A-сайт','P-сайт','E-сайт','Все три'],ans:1}},
{title:'Элонгация — доставка аа-тРНК',mol:'trna',desc:'EF-Tu·ГТФ доставляет аминоацил-тРНК в A-сайт. При правильном спаривании кодон–антикодон ГТФ гидролизуется, EF-Tu·ГДФ уходит.',energy:[{label:'-1 ГТФ',cls:'atp-used'}],quiz:{q:'Какой фактор доставляет аа-тРНК в А-сайт?',opts:['EF-G','EF-Tu','eIF2','RF1'],ans:1}},
{title:'Пептидная связь',mol:'peptbond',desc:'Пептидилтрансфераза переносит пептидильную группу с P-сайта на аминогруппу в A-сайте, образуя пептидную связь. Энергия — из гидролиза аминоацильной связи тРНК.',energy:[],quiz:{q:'Что катализирует образование пептидной связи?',opts:['Белковый фермент','23S rRNA (рибозим)','ДНК-полимераза','АТФ-синтаза'],ans:1}},
{title:'Транслокация',mol:'translo',desc:'EF-G·ГТФ сдвигает рибосому на 3 нуклеотида по мРНК. Цепь с тРНК перемещается из A <svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> P, пустая тРНК из P <svg class="ic" viewBox="0 0 24 24"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> E и уходит. Расходуется ГТФ.',energy:[{label:'-1 ГТФ',cls:'atp-used'}],quiz:{q:'На сколько нуклеотидов сдвигается рибосома при транслокации?',opts:['1','2','3','4'],ans:2}},
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.