Добици:
- Способност да се верује детерминистичком излазу писањем кода који чита и чисти биолошке податке вештачкој интелигенцији и самим покретањем помоћу Пандас, НумПи и Биопитхон
- Бити у могућности да избегнемо ризик од 'погрешног кода који ради без грешака' тестирањем кода са малом ситуацијом чији је резултат познат и тестом потврђивања.
- Способност успостављања поновљиве анализе са закачењем верзија, насумичном сејањем и навикама очувања сирових података
Језик модерне биологије све више постаје Пајтон. Ручна обрада у лабораторијској бележници сада се претвара у линије за обраду кода десетине хиљада линија табела у секунди. У овој јединици ћемо научити да користимо АИ као копрограмер који штампа Питхон код који чита, чисти и сумира ваше биолошке податке. Важно је да напишете код вештачкој интелигенцији, покренете га сами и проверите резултат; То је зато што се не ослања на вербално предвиђање модела, већ на детерминистички (који даје исти резултат у сваком покретању) излаз кода.
Не морате да знате како да кодирате у овој јединици; Научићете да исправно изразите намеру и пружите резултат.
Зашто Питхон и које библиотеке?
Најчешће коришћене Питхон библиотеке (библиотека: пакет готових функција) у биологији су:
- пандас: За читање табеларних података (ЦСВ, Екцел) и обављање операција ред-колона. Основни алат за филтрирање, груписање, спајање табеле експресије гена.
- НумПи: За нумеричке низове и матричне операције; Трчи под пандама.
- Биопитхон: За рад са секвенцама ДНК/РНА/протеина, читање ФАСТА датотека, превод (превођење ДНК у протеин).
- матплотлиб / сеаборн: За цртање парцела.
- СциПи/статсмоделс: За статистичке тестове.
Вештачка интелигенција веома добро познаје ове библиотеке. Ваш посао је да јасно наведете шта желите да радите са којом библиотеком и да покренете и верификујете генерисани код.
Савет: Модел понекад може да "измисли" (халуцинира) функцију библиотеке која не постоји. Ако код даје грешку, немојте паничити; лепљење грешке назад у модел као што је обично исправља. Ако и даље не ради, проверите званичну документацију.
Корак по корак: чишћење табеле за бројање
Рецимо да имате цоунтс.цсв: редови су гени, колоне су узорци, ћелије су необрађени бројеви читања. Типични први кораци:
- Учитавање: Прочитајте табелу са пандама.
- Откриће: Проверите величину (колико гена, колико узорака), недостајуће вредности, дуплирана имена гена.
- Филтрирање: одбацити гене који нису очитани ни у једном узорку (укупан број 0); ово су бука.
- Резимирајте: Израчунајте укупан број читања по узорку (величина библиотеке); Узорак који је пренизак можда није успео.
Овај ток посла можете препустити вештачкој интелигенцији на следећи начин:
Улога: Ви сте Питхон асистент фокусиран на биоинформатику. Задатак: Прочитајте датотеку цоунтс.цсв са пандама. Подаци: редови су ген (индекс=гене_ид), колоне су 24 узорка, вредности су целобројни необрађени бројеви. Желим: (1) одштампати величину, (2) одбацити гене који никада нису прочитани, (3) приказати укупна очитавања по узорку у тракастом графикону. Додајте кратке турске коментаре у сваки ред. Само дајте радни код.
Генерише код модела; ти га водиш. Ако видите 24 колоне и разуман број гена (нпр. 15.000-25.000) у излазу, на правом сте путу. Ако један узорак садржи једну десетину толико очитавања од осталих, запишите тај узорак.
три мини кофера
Случај 1 — Замка вредности која недостаје: Ученик је имао средњу вредност израчунату у табели метаболомије од 30 узорака; Резултат је био апсурдан. Проблем: ћелије које недостају биле су попуњене текстом „НД“ уместо НаН (не бројем), тако да је колона прочитана као текст. Поправљено је када сам натерао вештачку интелигенцију да каже „Направи НД вредности НаН и претвори колону у бројеве“. Лекција: увек прво истражите необрађене податке.
Случај 2 — Грешка спајања: Истраживач је спојио две табеле (израз и напомену гена), али је изгубљено 2.000 гена. Узрок: у једној табели су ИД-ови били "ЕНСГ00000141510", у другој су били "ЕНСГ00000141510.14" (са бројем верзије). Модел је написао један ред кода који је обрисао број верзије; Губитак је смањен на 40 гена. Лекција: поравнајте ИД формате пре него што их спојите.
Случај 3 — Тихи губитак података: Техничар није приметио да је након филтрирања број гена опао са 22.000 на 8.000; праг је погрешно постављен (>10 укупно уместо >10 очитавања у сваком узорку). Познати ген (ген за домаћинство: гени као што је ГАПДХ који се константно експримирају у свакој ћелији) је на крају недостајао. Поука: проверите да ли постоји "муст хаве" ген пост-филтер.
Тестирање са познатом ситуацијом (најважнија навика)
Најсигурнији начин да верујете у тачност кода који је написала вештачка интелигенција јесте да га тестирате са малим узорком чији резултат знате унапред. На пример, дајте лажну табелу са 5 редова; израчунајте укупно ручно; Погледајте да ли код даје исти резултат.
Додајте тест коду за филтрирање који сте написали: Генеришите мали ДатаФраме који се састоји од 5 гена, 3 узорка, намерно поставите 2 гена на нулу, потврдите са тврдњом да филтер одбацује тачно ова 2 гена. Учините тест извршним.
ассерт вас упозорава ако код одступа од очекиваног понашања. Ово је најјачи штит од ризика од „тихог лажног закључка“.
Слаби промпт / Јаки промпт
Слабо: "Очисти мој графикон."
Моћно: "цоунтс.цсв: ген редова (гене_ид индекс), 24 колоне узорак, вредности сирови цео број. Урадите следеће: пријавите вредности које недостају, одбаците гене који сума 0 у свим узорцима, одштампајте укупна очитавања за сваки узорак, упоредите број гена пре/после филтера. Само дајте радни, коментарисани Питхон код."
Разлика: Јака промпт наводи структуру података, кораке и излаз валидације (пре/после поређења). Модел не мора да погађа.
Упоредна табела: АИ или приручник?
трансакција
Штампајте до вештачке интелигенције
проверите сами
ЦСВ читање, конверзија формата
Да
Проверите величину и типове
Филтрирање, груписање
Да
Рачунајте пре/после
Статистички тест
да (шифра)
Потврдите претпоставке и тестирајте
"Колико је редова остало?"
Не (нека се број рачуна)
Прочитајте излаз
Биолошко значење резултата
делимично
Потребан је коментар стручњака
Уобичајене грешке
- Ослањајући се на број који модел производи: „Који је просечан израз?“ Поставите питање коду, а не моделу.
- Не проверавамо типове података: Колоне бројева које се читају као текст нечујно враћају нетачне резултате.
- Не проверава пост-филтер: Проверите да ли је очекивани ген још увек тамо.
- Заборављање семена случајности: Ако семе није фиксирано у коду који садржи насумичне операције, резултат се мења сваки пут; поновљивост је нарушена.
- Покретање кода без читања: Барем прочитајте коментаре и следите логику.
Пажња: Само зато што код ради не значи да је код исправан. „Погрешан код који ради без грешака” је најопаснија ситуација у биологији; јер се нечујно производи погрешан резултат. Тестирање са познатим стањем елиминише овај ризик.
Репродуцибилност: научна вредност кода
У биологији, научна вредност резултата зависи од способности других (и вашег будућег ја) да га репродукују. Ручне операције табеле се не бележе; Нико не зна која се ћелија мења и како. Код документује сваки корак. Стога, размислите о анализи коју правите помоћу вештачке интелигенције као о сачуваном и заједничком запису, а не као о једнократној кутији.
Три навике су важне за поновљиву анализу. Први је качење верзије: забележите коју верзију библиотеке користите (нпр. пандас 2.2); Различите верзије могу дати различите резултате. Друго је семе насумице: поправи семе у сваком коду који садржи насумичне операције тако да резултат буде исти у сваком покретању. Треће, никада не мењајте необрађене податке: не дирајте оригиналну датотеку, урадите све трансформације у коду тако да се може вратити назад.
Додајте линије које штампају верзије библиотека које су коришћене на почетку кода за анализу који сте написали, и ако постоји случајни процес, поправите семе са санп.рандом.сеед(42). Уопште не мењајте сирови ЦСВ, сачувајте сав излаз у засебној датотеци.
Јупитер свеска: комбинација анализе и нарације
Највише коришћено окружење у биоинформатици је Јупитер нотебоок (бележница: алатка која комбинује код, излаз и опис у истом документу). Ако АИ генерише код према ћелијама бележнице, са сваким кораком одвојеним објашњењем Маркдовн-а, и вама и вашим колегама је лакше да пратите анализу. Ово чини анализу читљивом лабораторијском бележницом, а не „црном кутијом“.
Препознавање биолошких формата датотека
Приликом обраде биолошких података са Питхон-ом, стално ћете се сусрести са одређеним форматима датотека. Пре него што модел може исправно да прочита датотеку, мора знати у ком је формату; Ако погрешно схватите формат, упашћете у замку „погрешан код који ради без грешака“. Најчешћи су:
формату
Садржај
одговарајуће возило
ЦСВ/ТСВ
Подаци табеле (израз, мерење)
панде
ФАСТА (.фа/.фаста)
ДНК/РНА/протеинске секвенце
биопитхон
ФАСТК (.фк)
Необрађено секвенцирање чита + квалитет
Биопитхон, прилагођени алати
ВЦФ
Листа варијанти (мутација).
пандас/писам
ГФФ/ГТФ
Анотација генома (положаји гена)
панде, гффутилс
Ако не препознајете формат, прво нека га модел идентификује тако што ће показати неколико примера линија, а затим затражити прочитани код:
Дајем првих 5 редова датотеке испод. Који је ово формат биофајла? Објасните значење колона/поља, а затим дајте код који безбедно чита (проверава формат) ову датотеку у Питхон-у. Првих 5 редова: [налепи]
Овај приступ спречава прећутне грешке које произилазе из претпоставке форме на првом месту.
Укратко
Питхон је главни језик за обраду биолошких података; пандас, НумПи и Биопитхон су основни алати. АИ брзо пише овај код, али ви га покренете и проверите. Најкритичнија навика је да тестирате код са малим узорком чији резултат знате и уградите очекивање у код помоћу ассерт-а. Ослоните се на детерминистички излаз кода који покрећете, а не на вербално нагађање.
Задатак апликације
Одштампајте код у коме АИ чита ЦСВ табелу коју имате (или узорак), одштампајте његову величину и филтрирајте празне гене. Затим додајте тест потврђивања из модела са 5 линија лажних података. Покрените код; Обратите пажњу на број гена пре и после филтера. Проверите да ли је ген за одржавање домаћинства (нпр. ГАПДХ/АЦТБ) још увек присутан у резултату.
контролна листа
- [ ] Проверио сам величину и типове података пре обраде.
- [ ] Експлицитно сам обрадио недостајуће вредности.
- [ ] Упоредио сам број редова пре/после филтера.
- [ ] Додао сам тест потврђивања са познатим условом.
- [ ] Препустио сам бројање/рачунање коду, а не моделу.
- [ ] Прочитао сам коментаре кода и следио логику.