Press "Enter" to skip to content

GOTO 2013 • Working on Cancer • Ola Bini


va bene ciao e benvenuto a tutti, grazie
tu per essere venuto
il mio nome è Ola Binney e io lavoro come
lo sviluppatore per il pensiero funziona se lo hai
è stato nella traccia di architettura che hai
probabilmente ho già visto due dei miei
i colleghi mi precedono entrambi, Neal Ford
e Sam Neumann e hanno parlato
A proposito di molto sulla Architettura presso il
prospettiva di ciò che dovresti fare e
cosa non dovresti fare e cose simili
che questo discorso è un po ‘diverso
questo discorso riguarda un progetto che ho guidato
Ho trascorso tutto il 2012 lavorando su a
progetto abbastanza interessante e io sono
fondamentalmente te lo dirò a
un po ‘ su cosa lo rende
po ‘interessante, ma anche un po’ di
architettura che abbiamo usato per
anche rendere possibile in modo da prima di iniziare
Mi è stato detto di ricordare a tutti voi
sull’app e che dovresti votare
nell’app adesso che l’ho fatto io
può iniziare con questo quindi sono uno sviluppatore
Ho fatto un sacco di diversi tipi di
sviluppo attraverso gli anni sono a
programmazione linguaggio geek tra l’altro
cose, ma il mio lavoro di pensiero contro
mi ha permesso di fare un sacco di cose diverse
le cose all’inizio del 2012 ero
incaricato di essere il leader tecnologico di a
progetto per un’azienda chiamata AI
sistemi e siamo entrati e non l’ abbiamo fatto
ha davvero qualche idea sul dominio
e loro non avevano alcuna idea
riguardo a come avrebbero risolto il
problema sapevano che spazio volevano
per fare la soluzione e che tipo di
i vincoli che avevano per arrivare a
una soluzione ma loro non lo sapevano davvero
quale fosse la soluzione così sono
per il primo i primi cinque minuti
o così ti darò una cosa molto veloce
introduzione ai dati pertinenti
il dominio e ciò che è effettivamente rilevante
per risolvere il problema dal nostro
prospettiva e quindi stiamo andando andiamo in
come abbiamo finito per risolvere il
problema potrei usare le parole e due o
Fred entrambi sono le parole per il
la soluzione alla quale abbiamo finito non funziona
importa davvero cosa intendono perché
sono entrambi backronym x ‘se ce l’hai
tutte le domande che affrontiamo
l’app e se c’è tempo alla fine
che spero sarà io sarò in grado di
rispondi alle domande fatte se lo hai
qualcosa che è molto poco chiaro o
qualsiasi cosa del genere appena alza il tuo
mano e chiedere come andiamo lungo un po ‘di questo
roba è un po ‘complicata e io
sappi perché io non sapevo nulla
sulla biologia molecolare prima di me
questo progetto quindi ho dovuto prenderlo come
noi, mentre siamo andati, c’è qualcuno qui
chi conosce la biologia molecolare va benissimo
quindi quando semplificherò nessuno lo farà
avviso ok quindi il problema se io se io se io
dovrebbe semplificare la dichiarazione del problema in
una parola è sua per risolvere un po ‘il cancro
un po ‘più di contesto per risolvere il cancro
sugli attuali progressi tecnici
fatto nel sequenziamento e al tipo di
espandi un po ‘di più su quello
risolvere non significa davvero risolvere ma
dare di meglio per creare un trattamento
opzioni di quante sono disponibili adesso
prima di entrare in tumore stesso è
è utile per essere sicuri di alcuni termini
quindi il DNA è qualcosa di cui tutti abbiamo sentito parlare
Penso che non ti annoierò nemmeno con
quello che in realtà significa, ma è
una stringa di base e queste basi sono
di solito organizzato in un lungo molto lungo
stringa che di solito è vista come una doppia
elica hai visto tutte le foto così
cos’è una base o base nucleare a
la base nucleare è una delle quattro diverse
molecole di solito queste molecole
chiamato CG e T e nella forma ad elica
nella maggior parte dei casi queste volontà
si completano a vicenda quindi da una parte voi
avrà una C poi dall’altra parte te
avrà una G o su un lato lo farai
avere una T o la fine che avrai
una A dall’altra parte così ne hai due
corde che si avvolgono l’una intorno all’altra
e non importa da che parte si legge
otterrete le stesse informazioni
anche se complementari tra loro
L’RNA è ciò che prende il DNA e ne fa fuori
arriva l’ RNA quindi l’RNA è libero
particelle che galleggiano all’interno di
te stesso è molto simile al DNA ma
è usato per comunicare e
un sacco di altre cose all’interno di una cella
vedrai a volte un te al posto di
un tee quando si parla di RNA ma è così
siamo davvero lo stesso tipo di molecole che siamo
parlare di
e infine l’RNA viene tradotto
in proteine e una proteina può anche essere
polipeptidi di nome e si avvicina
composto da una stringa di amminoacidi e
ci sono 20 aminoacidi che sono i
quelli comuni che usiamo le proteine sono i
cose che in realtà fanno roba dentro di
il tuo corpo lì possono essere enzimi o
possono essere tutti i tipi di altre cose
e le proteine ​​sono anche i pezzi di
il corpo che in realtà è in corto
il processo di trasformare il DNA in RNA e
trasformando l’RNA in proteine ​​e così via
è un processo ricorsivo al fine di
traduci il DNA nelle proteine ​​di cui hai bisogno
capirlo così da quando lo abbiamo solo
quattro lettere dell’alfabeto del DNA abbiamo bisogno
un modo per codificarli in modo da ottenere 20
diversi aminoacidi e questo è fatto
usando i codoni un codone è un insieme di
tre basi diverse e questo diventa
tradotto in un aminoacido così abbiamo
64 64 diverse possibilità e così
in realtà significa che il nostro codice nel DNA
il codice è altamente ridondante, quindi qualsiasi singolo
l’amminoacido ha molti diversi
rivestimenti per esso
e poi finalmente cos’è un gene noi
parlato della parola gene è usato molto
aspecifica abbiamo il più delle volte un gene
in realtà solo un pezzo di DNA lo capisce
viene tradotto in una proteina ma il
la vera definizione corretta è un po ‘
più ampio di quello che dice che un gene è
un’unità ereditata sotto selezione e
tutte queste parole sono davvero
importante così ereditato significa che tu
prendi dai tuoi genitori una unità è il
la cosa più piccola possibile che se tu
non smontarlo se si prende a parte
non avrà più alcun significato e
sotto selezione significa che il vantaggio
all’organismo sarà ridotto
se lo porti via in un modo o
un altro
varianti se mi senti dire varianti tu
puoi sostituire mentalmente la mutazione
in realtà non sono gli stessi ma per
i nostri scopi non importa se
leggi la letteratura che troverai no
carte genetiche o no biologia molecolare
documenti che usano la parola mutazione
è che si chiama varianti ora lì
sono due tipi di varianti germinali
varianti e varianti somatiche germinali
le varianti sono quelle che ottieni
i tuoi genitori sono le mutazioni che
ti rendono diversi gli uni dagli altri
le varianti somatiche sono quelle che tu
avere quando hai una malattia che causa
differenze genomiche quindi se hai un
tumore avrai varianti somatiche
che sono differenti in quanto parte della
corpo rispetto al resto del corpo a
tipico umano ha circa 3 miliardi di basi
si accoppia nel nostro DNA in modo che sia completo
ricetta per un umano 3 miliardi di paia di basi
cosa ti rende diverso da qualsiasi altro
umano in questo pubblico o altrove
è all’incirca dell’ordine di 5 milioni
mutazioni germinali e questo è ciò che rende
noi diversi
quindi questo è DNA e genomica quindi io
menzionato all’inizio che il
il motivo per cui questo progetto è stato tempestivo era
a causa dei rapidi aumenti in
sequenziare ora cosa è il sequenziamento
sta prendendo pezzi fisici di DNA
veri e propri ciuffi di DNA e trasformandolo
in bit trasformandolo in stringhe che
possiamo usare in un computer capire
ciò che il codice è per una persona specifica
in un luogo specifico e questo è un
processo interessante che fondamentalmente tu
devi fare molte cose diverse tu
devo preparare il campione fisico quindi
lo riduci in davvero molto piccolo
segmenti una volta che hai fatto quello che prendi
ognuno dei segmenti e tu fai a
processo fisico su ogni pezzo di esso in
per capire quale base ci sia
e poi devi metterlo insieme
di nuovo perché questi pezzi entrano in a
ordine disordinato così non hai idea di dove
venivano e ci sono due pezzi
questo è chiamato assemblaggio e allineamento
e questo è il motivo fino a poco tempo fa
hai bisogno di un supercomputer per poterlo fare
questa parte del sequenziamento era così
Greenly costoso anche ora il grande
i laboratori che fanno queste cose ci vogliono diversi
giorni per loro di fare l’allineamento
perché l’allineamento sta prendendo ognuno di
quelle due 200 coppie di basi si ricordano di noi
abbiamo tre miliardi di paia di basi nella nostra
tutto il corpo e si negozio che in modo casuale
in due cento cose lunghe coppie di basi
l’allineamento sta davvero prendendo ognuno di
loro e facendo una ricerca di stringa fuzzy
contro il riferimento che abbiamo
capire dove dovrebbe essere, ma fuori
ne ricaviamo una lunga sequenza
si spera che corrisponda più o meno a ciò che il
che cos’è il DNA per un individuo specifico
è facoltativo qui è fare qualcosa
chiamato chiamata variante dove si confronta
qualcosa contro qualcos’altro
è fondamentalmente aggiungere se si confronta due
genomi e fuori si ottiene ciò che il
le differenze sono ciò che sono le varianti
ora il primo sequenziamento di un essere umano
l’essere è stato fatto attraverso il progetto Hyuga
e il costo per quello era nell’intervallo
di diversi milioni di dollari e ci sono voluti
molti anni per farlo è stato estremamente
costoso estremamente laborioso
da allora il prezzo e il tempo
necessario fare un sequenziamento per a
la persona è caduta rapidamente e noi siamo
ora molto molto vicino al punto in cui
puoi ottenere il tuo sequenziamento del genoma per a
mille dollari e il migliaio di dollari
il genoma è ciò di cui le persone hanno parlato
all’incirca come questo limite magico una volta arrivati
quel posto allora possiamo fare tutto noi
voglio fare con il sequenziamento del genoma di
Certo non c’è nulla di veramente specifico
circa il numero dieci un numero di
mille dollari ma questo è quello che le persone
hanno parlato e quando noi
iniziato questo progetto il prezzo era basso
a forse diecimila e abbiamo potuto vedere
la scritta sul muro sapevamo che il
il costo sarebbe sceso ulteriormente e
più avanti e molto presto sarai dentro
una situazione in cui in realtà ogni volta
vai da un dottore, la mia visione è quella di te
ti porto ad aprire la porta che prendi il
gestire e il sequenziamento inizia quando
ti scatta il tuo DNA dal tuo
mano e quando ti siedi
il dottore avrà i risultati sul suo
schermo non siamo ancora lì ma
siamo molto vicini al punto in cui per
qualsiasi serio per qualsiasi problema serio voi
avrai una sequenza fatta solo
come parte del trattamento o parte di
la diagnosi
comunque a questo punto genomico
l’informazione non è stata veramente parte di
il pozzo è stato un sacco di ricerche ma
non è una parte del mondo clinico così
quello che volevamo fare era prenderle
avanza e li applica in clinica
mondo e in realtà danno migliori benefici
torna alle persone in modo che ci porti a
cancro cancro non è una malattia che è
davvero una classe di malattie è dieci
mille malattie diverse perché
il cancro è davvero una classificazione ampia
di qualcosa che può causare errori
le tue cellule moltiplicano senza controllo
e ci sono molti modi in cui questo può andare
in realtà non ci sono decine di
migliaia di modi che il genomico
le macchine possono sbagliare per farlo
accadere
così anche noi classifichiamo il cancro basandoci su
dove succede se si ottiene il seno
il cancro è molto diverso da ottenere
il cancro della pelle, per esempio, in realtà
le mutazioni genomiche sono in realtà molto
simili tra loro in molti casi
non devono essere diversi, quindi questi
modifiche del DNA che possono accadere
ce ne sono molti per esempio
può pro em si può avere una mutazione che
impedisce alle cellule di uccidersi
che faranno se qualcosa va
sbagliato, ma se si dispone di una mutazione che
smette di farti un cancro o tu
può avere qualcosa che valorizza il
ciclo di crescita da fare per fabbricare le cellule
moltiplicare molto più velocemente di loro
dovrebbe altrimenti o puoi avere
qualcosa che rimuove uno degli errori
meccanismi di correzione non so se sia così
fatto qualsiasi notizia qui e in Danimarca quando
il nome mi sta sfuggendo c’era a
famosa attrice pochi mesi fa chi
ha deciso di avere il suo seno rimosso e
oh grazie, Angelina Jolie e il
La ragione per cui l’ha fatto è stata lei
ha scoperto che aveva una mutazione molto
in un gene un gene chiamato staffa uno
la staffa uno è una correzione degli errori
meccanismo l’unico motivo per cui hai
quella proteina nel tuo corpo è quella di fermarsi
il tuo corpo dallo sviluppo del cancro al seno
e ci sono molti pezzi diversi
Macchinario all’interno del corpo che solo
esiste per fermare queste cose da
succede ma se avviene una mutazione
uno di loro poi hai un molto più alto
rischio di ottenere uno di questi cancri e
allora molto probabilmente sarà così questi
le modifiche genetiche sono davvero cosa
fa succedere il cancro comunque una volta a
mutazione cancro è successo un sacco di
altre mutazioni di solito spuntano davvero
rapidamente perché molti pezzi di
DNA che è responsabile della custodia
contro quello che sostanzialmente scompare
quando il cancro inizia a moltiplicarsi così
ciò significa che ottieni qualcosa chiamato
quindi le mutazioni del driver sono davvero le
quelli che causano il cancro mentre il
le mutazioni dei passeggeri sono solo avanti
la cavalcata che non contano davvero così
ciò significa che è molto molto rumoroso
ambiente per capire perché un cancro
è successo da un punto di vista genomico ora a
tipico cancro quando lo notiamo
un cancro tipico avrà circa 10.000
diverse mutazioni 10.000 non suona
piace molto ma in realtà è molto
complicato per capire quali di
sono rilevanti e quali no
in modo che mi porti alla parte finale di
il il motivo per cui abbiamo fatto questo progetto
e questo è il problema di trattamento e il
problema di trattamento è davvero questo se tu
prendi il cancro oggi e vai da un dottore
lo standard di cura si basa sul
organo hai quel cancro, quindi se ne hai
cancro ovarico e vai da un dottore
il cancro ovarico è molto mortale
dal modo in cui è uno di quelli
cancri che se tu se sei vivo
entro un anno o se sei vivo un anno
dal punto in cui capisci che sei nel
5% fortunato o qualcosa del genere
quindi è quasi una condanna a morte per ottenere un
cancro variante in termini di tempo ora se
vai da un dottore e loro trovano
che hai un cancro variabile ci sono
tre diverse terapie chemioterapiche
può essere prescritto ciascuno di questi lavori
un po ‘diverso l’uno dall’altro
e quale vi arriverà
davvero nessun modo per il medico di fare un
buona scelta, quindi, in genere
succede che il dottore lancia una moneta
o
usa qualcosa che ha funzionato prima
o ha usato qualcosa che il suo ospedale
prescrive o usa qualcosa che il
la compagnia di assicurazione pensa dovrebbe essere usato
ma il punto importante è che non ha
base reale per fare la scelta tra
uno di questi tre chemos quindi se lo fosse
non funziona prova il prossimo fino a te
trova qualcosa che funzioni
ora naturalmente la chemioterapia è estremamente
dolorosi sono costosi $ 100.000 per
round e tre mesi di tempo e
estrema sofferenza per il paziente e
dolore e danni quindi in questa situazione
è molto importante fare il giusto
scelta prima se si ottiene un cancro variabile
per esempio tre mesi di tempo
in realtà può essere la differenza tra
vita e morte
e così facendo per prima cosa la scelta giusta
è davvero molto importante ora
l’informazione è là fuori c’è molto
di documenti di ricerca che hanno fatto molto
di ricerca su cui lavora la Chema
quali marcatori genetici ma di collegamento
quello con quali mutazioni lo specifico
l’individuo in realtà non è stato
fatto finora ma documenti di ricerca e
i dati della sperimentazione clinica hanno queste informazioni
quindi questo è davvero il problema
dichiarazione questa è l’ informazione dopo
impariamo abbastanza biologia molecolare a
capire cosa significava tutta questa roba
questa è una sintesi delle informazioni
abbiamo avuto quando abbiamo forse due mesi tre
mesi in cui ho iniziato a risolvere davvero
il problema invece di esplorare il
Spazio per la soluzione Sto solo citando un
poche cose rapidamente su di noi perché io
Dicci tutto il tempo per cui stavamo lavorando
questi sistemi di avvio e I hanno fornito
noi con pochi molecole di prima classe
biologi che potrebbero insegnarci ciò che noi
stavano facendo la squadra era per le persone da
ThoughtWorks
non era una squadra standard in alcun modo noi
eravamo tutti sviluppatori, siamo finiti tutti
essendo esperti di dominio, siamo finiti tutti
essendo QAS abbiamo finito per essere affari
gli analisti abbiamo finito per fare un sacco di cose
XD e finimmo tutti per fare le devops
questa è una squadra che eravamo quattro persone
quella
fondamentalmente ha fatto tutto ciò che doveva essere
fatto su questo progetto sin dall’inizio
alla fine e una grande parte dei primi
settimane stava solo comprendendo il dominio
abbastanza per arrivare a un punto in cui potremmo
decidere cosa fare e questo mi porta a
il lato del processo direi che lo abbiamo fatto
le cose in un modo molto agile, ma lo è stato
non capitolare per niente
cambiato processo per lavorare e ci sono
vincoli e ha lavorato con il tipo di
dichiarazione del problema che stavamo facendo eravamo
non abbiamo davvero risolto un problema
beh, piuttosto non eravamo veramente
implementando una soluzione eravamo in realtà
cercando di premere tutto il problema e
trova una soluzione
quindi la prima cosa che abbiamo fatto è stata la prima
per montare la nostra infrastruttura così di giorno
due abbiamo avuto una consegna continua completa
infrastrutture in modo da poterci schierare
e ancora fino a quando tutte le cose nuove
che ci siamo inventati e poi abbiamo iniziato
costruire un back-end di quel tipo
implementato molto del
comprensione della biologia molecolare noi
e allo stesso tempo abbiamo iniziato
la costruzione di tende anteriori che abbiamo testato fuori
su alcuni dei nostri alcuni dei nostri clienti o
la gente del cliente è così fondamentalmente la prima
tre settimane penso che abbiamo costruito forse 16 o
20 diverse interfacce utente da esplorare
diversi aspetti dei dati noi
stavano trattando e poi sul
backend allo stesso tempo stavamo arrivando
fare i conti su quale sia il problema in realtà
era e cosa potrebbe fornire un valore per il nostro
utenti finali e abbiamo continuato così per
alcuni mesi finché non arrivammo al punto
dove lo abbiamo capito abbastanza bene e
poi cambiamo marcia e abbiamo iniziato
lavorando sul tipo di soluzione finale
che questo è un termine molto sfortunato
scusa abbiamo iniziato a lavorare sulla soluzione
abbiamo pensato a quello che pensavamo
in realtà risolve il problema in modo positivo
e continua a fare rapide uscite
attraverso il tutto attraverso il
tutto il progetto che abbiamo fatto più volte
rilascia un giorno ogni singolo giorno
inclusa la produzione una volta che abbiamo avuto un
produzione di stampa – in modo che
mi porta nella parte in cui sono
parlare di come abbiamo effettivamente venduto è
forse dovrei fermarmi qui e chiedere di essere
ci sono domande a questo punto
fantastico mi piace quando non ci sono
domande perché ciò significa che ho
stato cristallino nelle mie spiegazioni
va bene così la nostra soluzione a molto
livello alto quello che abbiamo finito per fare era
era abbastanza semplice e semplice una volta
sapere abbiamo preso un sacco di diverso
database là fuori perché anche noi
voleva usare tanti dati esistenti e
e ci sono molti veramente buoni
database di quali geni ci sono o
quali farmaci sono disponibili e cose simili
che comunque sono tutti buoni ma
sono tutti incomplete o ha un sacco di
errori in loro, così abbiamo finito per dover
utilizzare diversi database per ogni specifico
tipo di dati di cui avevamo bisogno perché dovevamo
arrivi ad un punto in cui loro
si sono completati e abbiamo ottenuto
migliore qualità dei dati rispetto a ciascuno di
loro potrebbero fornire da soli il
il problema è che questo campo è ancora a
molto nel è ancora un campo di ricerca
e se sei un ricercatore che lavora su un
database genetico per esempio puoi scrivere
un foglio e puoi mettere insieme un
database e non è necessario
ripulire i dati che molto si può solo
dire ok questo database ha il 20% di errore come
a lungo come hai documentato sulla carta è
bene ora sono un po ‘
faceto, ma questo è ciò che ci si sente come
quando guardo alcuni di questi dati di
Naturalmente quel tipo di tasso di errore no
funziona davvero se stai facendo clinica
lavoro così abbiamo dovuto ripulirlo abbiamo finito
su con penso tra 15 o 20
diversi database che abbiamo unificato e
normalizzato perché come risulta in
il campo della biologia molecolare anche
tra diversi database
database diversi non hanno realmente usato
gli stessi termini per indicare la stessa cosa in
molti casi e anche quando il dominio
i termini erano gli stessi a volte tu avevi
casi in cui io tipicamente esempio che io
ricorda che un gene può chiamarmi diverso
varianti è qualcosa chiamato
splicing alternativo ea volte
diversi ricercatori non sono d’accordo
se qualcosa è diverso geni o
splicing diversi dello stesso gene e
è davvero un
distinzione ma in un caso un equo
gene comune chiamato ugt1a1 trovato in
un posto aveva nove giunzioni diverse
forme ma nell’altro database era
rappresentato come nove diversi geni
invece, e abbiamo finito per trovare questo
tipo di cose più e più volte
sul posto, quindi abbiamo dovuto unificare
normalizzare e fare un sacco di elaborazione sul
tutti i dati quindi ne avevamo tre diversi
tipi di dati trattati con cui ci siamo occupati
con tutti i dati allo stesso modo di quello che avevamo
dati dei pazienti che sono tutti biologici
dati tutti i dati della storia del paziente tutto
tipi di cose del genere
avevamo dati di riferimento che sono tutti i
basi di dati che contenevano gene
informazioni o informazioni sui farmaci
e cose del genere e poi finalmente siamo
aveva questa cosa chiamata dati di esperienza
e ti ho detto che l’ informazione è fuori
lì bene che le informazioni nella forma
di documenti di ricerca la sperimentazione clinica
dati e cose del genere non sono esattamente
in un formato utile per ingerire effettivamente
e automaticamente in un sistema così noi
aveva quel formato e tipo di
sintetizzato in qualcosa che potremmo
utilizzare e questo è i dati di esperienza e
ciò che i dati dell’esperienza sono realmente è a
connessione tra un trattamento specifico
una mutazione specifica e l’attesa
risultato da quello per birra come v600e
che è una mutazione molto comune
la droga X è veramente buona o la droga Y
fornisce interazioni tossiche tossiche e
insieme a ciò abbiamo anche ottenuto il
informazioni su se provenisse da a
prova clinica quante persone erano dentro
quella sperimentazione clinica e che tipo di
la prova clinica era lì e così via così noi
potrebbe perché tutte queste esperienze
dati abbiamo avuto più linee per ciascuno
combinazione e qualche volta c’era
informazioni contrastanti alcune fonti
detto questo è stato davvero buono e alcuni
le fonti hanno detto che questo era davvero pessimo, quindi noi
dovevo capire un modo per davvero
inserendo tutte le informazioni in
uno anche così prendiamo tutti questi dati noi
metti tutto in un database grafico e
poi abbiamo avuto un po ‘di biologia che penso quasi
tutto il codice è sotto il piccolo
titolo di biologia modello ma
questo è quello che stavamo facendo e
tra l’altro questo è il motivo per cui l’approccio che abbiamo
stavano facendo è quasi l’opposto del
l’approccio Watson per fare per
capire la biologia e cose simili
quello era molto statistico molto io
non conosco una versione non specifica
di comprensione è applicata a a
campo specifico e nel nostro caso noi
non avrei potuto farlo senza effettivamente
costruendo molta comprensione
biologia quindi abbiamo passato molto tempo a fare
quello e finalmente così tutte queste cose come
le informazioni sul paziente abbiamo avuto questo
come abbiamo avuto mutazioni dai nostri pazienti
quell’informazione era molto cruda era
fondamentalmente il più vicino al biologico
livello il più possibile ma ciò non ha davvero
rendere molto facile per noi confrontare e
usalo con gli altri database così noi
usato un processo ricorsivo in cui abbiamo solo
informazioni avanzate che abbiamo avuto con ciò che noi
potrebbe dedurre a quel punto e poi noi
fatto questo ancora e ancora fino a quando non
arrivati ad un punto in cui un sacco di dati
era davvero di alto livello e potremmo
confrontarlo e, infine, abbiamo potuto collegare
quando si tratta di trattamenti
davvero una bella e grossa query sul grafico del grafo dove
abbiamo preso i trattamenti e trovato il
relazioni tra trattamenti e
biomarcatori e una volta arrivati ​​a quel punto
abbiamo una lista di tutti i trattamenti e
una volta che abbiamo avuto una lista di trattamenti noi
potremmo fare abbiamo un molto semplice
algoritmo per classificare il diverso
trattamenti e fuori di esso e io non sono
in realtà ti mostrerò l’utente
interfaccia perché l’ interfaccia utente è
davvero noioso è solo un elenco dei
trattamenti e l’ ordine in loro in
quali sono applicabili, quindi questo è
davvero dove andiamo e abbiamo usato molto
di tecnologia diversa penso di sapere
ha introdotto questo durante questa mattina come
usando molte lingue e sì noi
ha usato un sacco di lingue perché loro
erano le cose giuste da usare ma il
stack di testo primario che abbiamo usato quello
la maggior parte del codice è stata scritta in chiusura
e in e la data del database grafico
era neo4j e poi abbiamo usato JRuby bene noi
effettivamente usato Ruby ma lo abbiamo implementato
JRuby
hanno scoperto quello per le cose che noi
stavano facendo JRuby era tra 10 e 20
tempi più veloci del normale Ruby, così noi
sentivo che era una buona scelta il nostro
il front-end è stato scritto in CoffeeScript it
in realtà ha iniziato a essere scritto dentro
JavaScript ma a metà del
progetto siamo davvero annoiati dalla scrittura
tutte le parentesi graffe finali così abbiamo usato
CoffeeScript è un po ‘più succinto
versione di JavaScript che abbiamo implementato usando
Sinatra e compostezza come front end
le cose e tutto era un pò tutto
sul posto, quindi ho detto che noi
ho usato un database grafico che voglio parlare a
un po ‘a riguardo perché lo era
in realtà una di quelle scelte c’era
non ho visto che non ho speso molto
tempo prima che questo prodotto solo guardando
il diverso modo in cui le persone modellano la biologia
come si occupano della biologia e fino a quando
Non penso di averne visto quasi nessuno
chiunque applichi database di grafici al
compito di modellare la biologia a questo livello
e finì per essere davvero veramente
utile per noi per farlo e molto del
l’intelligenza di come funziona la nostra soluzione
in realtà ha a che fare con il modo in cui strutturiamo
i dati nel database grafico ora abbiamo finito
avere forse 15 diversi tipi di nodi
e molti tipi diversi di
relazioni tra i diversi
nodi per arrivare a un punto in cui
abbiamo avuto quei dati ma la cosa che ha fatto
un database grafico davvero davvero
conveniente per noi era anche questo che noi
continuamente evoluto il database noi
continuamente evoluto la nostra comprensione
di come dovremmo formattare i grafici e
neo4j ha reso davvero facile per noi
evolviamo questa comprensione potremmo solo
aggiungi i nuovi bordi e poi più tardi quando
sapevamo davvero che non avevamo bisogno del
bordi vecchi potremmo rimuoverli se noi
avuto diversi abbiamo diversi casi in cui
abbiamo informazioni duplicate dove noi
strutturare i dati in due modi diversi
per renderlo molto più facile da fare
altri tipi di query a seconda di
dipende da cosa vogliamo fare così dati
la modellazione ha finito per essere molto di più
conveniente in questo tipo di formato e
le query erano molto veloci la query
lingua oh sì
così neo4j arriva con Cypher puoi anche
usa Graham
quelle sono le due scelte principali ora
la cifratura è una buona lingua per il genere
di query che volevamo tranne che per la stringa
basato in modo da mettere le corde e fuori di te
ottenere query e stavamo facendo tutto il nostro
lavoro in chiusura e volevamo davvero
vivere in maggiore flessibilità, quindi ho ottenuto davvero
malato di comporre stringhe per fare
domande così invece ho scritto una piccola domanda
lingua in cima alla parte posteriore di
cifrato quello che usiamo per davvero
buon effetto perché poi potremmo incorporare
cose come funzioni di chiusura all’interno di
la query query in modo che la query potrebbe
effettivamente eseguire la chiusura al volo
mentre stava sfogliando il
materiali e cose del genere sembrava
come se lo stesse eseguendo solo su
vero server neo4j ma è finito
in realtà non è così perché noi
potrebbe compilarlo in modo molto conveniente
in mezzo la cifratura della forma è implementata in
Scala quindi avevamo il codice di chiusura
generato codice di Scala che era tipo di
interessante non l’ho fatto prima
ma sì e voglio dire che questo è un piccolo
investimento è stato un paio di giorni di tempo per
arrivare a questo punto e ci ha dato
miglioramento significativo della capacità
attraverso l’intero progetto abbiamo avuto un buon risultato
infrastrutture abbiamo usato Amazon AWS per
la nostra infrastruttura come ho detto prima
abbiamo iniziato una delle prime cose
abbiamo fatto sul progetto come il giorno 1 giorno 2
era di mettere l’infrastruttura in modo che
potremmo arrivare a un punto in cui potremmo
distribuire molto rapidamente immediatamente in modo che il
l’intera infrastruttura era self-service
tutti potevano fare qualsiasi cosa di da solo
eseguendo alcuni script abbiamo usato burattini
per descrivere i nostri ambienti che abbiamo usato
bo2 e fabric per fare il provisioning di
il diverso del diverso
ambiente abbiamo avuto qualche consuetudine
codice di provisioning scritto in Python per
trattare con cose come uscire
IPS elastico e funzionante con
volumi di dati frusta e cose del genere
e poi sì ok così sì e il tutto
il progetto era fondamentalmente avevamo un sacco di
diversi repository tutti avevano a
lo script singolo chiamato go era abbastanza gentile
il punto di ingresso principale perché dopo
che abbiamo usato qualunque strumento fosse il
strumento giusto per il
linguaggio quindi se fosse un progetto Reba noi
usa Drake se era un prodotto di chiusura noi
fodera usata e così via e così via ma
eravamo soliti andare in sceneggiatura per renderlo possibile
per il nostro server di consegna continua a
in realtà sapere dove andare avanti, non importa
quale abbiamo avuto e anche la sceneggiatura
contiene l’autoinstallazione tramite l’installazione
strumenti in enman virtuale e molti
altri strumenti per renderlo possibile
chiunque per scaricare il codice e avere no
in nessun modo nessuna installazione e
prenderebbe la macchina del diavolo di chiunque
da zero usando questi strumenti anche noi
stavano progettando di rendere possibile la corsa
vm localmente con questo, ma noi in realtà
mai usato è stato molto più facile
solo tu vedi ec2 per tutte le cose che siamo
stavano facendo chiedendo faro ‘parlare
a proposito di quello che mi dispiace più tardi , non lo so
quello che ho sulle diapositive della prossima slide così noi
usato va come la nostra integrazione continua
server un server di distribuzione continua noi
iniziato con Jenkins
era assolutamente infernale da ottenere
consegna continua lavorando su Jenkins
a questo punto vorrei solo raccomandare
se vuoi fare una consegna continua
non preoccuparti di Jenkins, non è così
vale la pena e non è mai andando essere buono
come hai preso uno strumento che è stato costruito
per questo da dal basso così sì
così passiamo ad andare e la vita è stata felice noi
aveva un maestro di go che era anche completamente
descritto nel burattino e potrebbe essere
costruito da qualsiasi macchina di sviluppo e poi da noi
aveva agenti anziani self-service che potevano essere
completamente raccolto dal volo
ogni volta che avevamo bisogno di un nuovo agente lo era
come una cosa di cinque secondi così abbiamo avuto oh
l’altra cosa riguarda andare così abbiamo avuto molto
di elaborazione dei dati da fare e abbiamo avuto un
sacco di cose diverse che abbiamo bisogno
fare nel processo di costruzione
prodotti quindi avevamo pipeline separate
per l’ingestione e il massaggio del
dati nella forma giusta e poi abbiamo corso
alcuni test su di esso e poi lo abbiamo confezionato
tutto su e quando siamo un altro gasdotto
potrebbe usarlo per qualsiasi dato essi
voleva che ciò significasse anche che potessimo metterlo
insieme set di dati personalizzati per specifici
test di prova e così via
sì sì e avevamo pipeline separate
per tutte le varie componenti, naturalmente
e quindi una pipeline finale che viene eseguita
il provisioning e installa tutto il
componenti e poi abbiamo anche usato andare per
fare autotest della nostra infrastruttura
per assicurarsi che fosse tutto
in realtà
in esecuzione e quindi stavamo effettivamente correndo
fare pipeline contro la nostra produzione
servizio di produzione per assicurarsi che
erano ancora in piedi e, naturalmente, noi
aveva un componente sul dispiegato
macchine così anche che sapevano
controlla se stesso per coerenza e così via
così su ogni schieramento per lavorare noi
fornire una nuova istanza di ec2 che copiamo tutti
le chiavi allegate al clone del volume di dati
dalle istantanee installiamo pupazzi che copiamo
vecchi manifesti di marionette si applica burattino e
quindi prendiamo tutti gli RPM che noi
creato da perché abbiamo messo tutti i nostri
cose tra cui il database noi
effettivamente messo in rpm separati e poi
installiamo tutti quegli rpms e poi noi
memorizza il server, quindi eseguiamo autonomamente
test contro il server e poi noi
associare l’IP elastico con il nuovo
scatola e poi terminiamo il vecchio
l’istanza ora nota che questo è ciò che facciamo
un vecchio schieramento quindi abbiamo effettivamente
server completamente immutabili che non abbiamo mai
aggiornare o utilizzare qualsiasi altra cosa abbiamo appena
buttali via perché era Messier
per provare ad affrontare il processo di aggiornamento
piuttosto che installarlo tutto da zero
comunque e lo schieramento era come
meno di un minuto, comunque
non è stato davvero un grosso problema, abbiamo usato un
molti strumenti di monitoraggio diversi ma
principalmente PI che usiamo è quello in
la grafite mi è piaciuta particolarmente
statistiche è così facile da compilare
sostenere che è proprio come qualcosa
dovresti farlo tra cinque minuti e poi
hai finito e poi lo hai
per sempre ci sto lavorando e ho iniziato
logging e iniziato a scuotere usando go so
i dati ingestione ho parlato che
è stato un processo interessante perché noi
aveva un sacco di dati milioni e milioni
di linee di dati tutti in
diversi formati tutti con
diversi problemi con loro quindi abbiamo finito
per scrivere un sacco di codice Ruby per questo
e scegliamo Ruby perché per come
dati come solo la prospettiva munging
era più facile ottenere il codice di Ruby e
codice in esecuzione e Ruby in grado di leggere a
molti formati diversi ora siamo ancora
ha avuto un problema come si ottiene il Ruby
codice o l’ output dei dati
l’ingestione nel database è nostra
la prima soluzione usava Ruby neo per DES
librerie per creare il database
direttamente che è diventato fastidioso
a causa del verso
q librerie e le librerie neo4j per
Il rubino non è in realtà molto veloce, quindi il
la seconda cosa che abbiamo fatto è stata creare un dato
descrizione lingua fondamentalmente un DSL
che il codice Ruby emesso era a
descrizione unificata di tutti i dati noi
aveva nel sistema ora che i dati
strato di script o la descrizione dei dati
il linguaggio è stato quindi utilizzato per creare il
database da esso così in termini reali il nostro
i dati non vivevano nel nostro database neo4j
effettivamente vissuto nei nostri dati
linguaggio descrittivo e noi che eravamo uno
dei motivi per cui potremmo cambiare il
configurazione di neo4j sul grafico
configurazione davvero veloce perché noi
potrebbe solo cambiare il codice che lo ha messo
nel database e quindi rieseguire il
tutto ora cosa abbiamo effettivamente concluso
fare era di creare un dato
linguaggio descrittivo che è anche accaduto
essere chiuso
quindi il DSL attuale era il codice di chiusura
sapeva come mettere se stesso in Neo4j che
finì per essere un po ‘lento una volta noi
ha iniziato a ricevere milioni e milioni di
linee di codice perché limiti di compilazione
e cose del genere quindi abbiamo usato lo stesso
formato, ma non abbiamo molto di base
interprete per fare i dati ingestione noi
aveva un’app di una pagina che era
comunicare completamente su JSON con
i backend quindi l’unica cosa che abbiamo servito
come HTML per il front-end era solo il
pezzo HTML iniziale che carica
JavaScript e quindi era tutto per
il front-end era fatto in JavaScript così
dobbiamo vedere che fondamentalmente abbiamo definito tutto
i servizi come stavamo andando avanti ma
tutto era accessibile a JSON
interfacce pure e questo ha reso molto
più facile da eseguire test su di esso perché abbiamo
potremmo testare il front-end?
separatamente testando JavaScript e
potremmo testare il resto del sistema
colpendo il JSON di JSON
interfacce che erano abbastanza belle, mmm si
quindi abbiamo finito con un sacco di cose diverse
lingue nella nostra architettura abbiamo avuto il nostro
le proprie cellule del dia interno avevamo Ruby e
recinzione abbiamo avuto un sacco di Java e a
un po ‘di Scala ha usato quasi tutto il
Infatti , stavamo girando sulla JVM per
interagire ma abbiamo avuto almeno quattro o
cinque diversi servizi che erano
gestire separatamente servizi separati
Jetty è che eravamo in piedi
comunicare
solo attraverso le API riposanti e
succede che succede più volte
durante il prodotto non eravamo felici
con un pezzo di qualcosa e abbiamo finito
completamente riscrivendolo completamente
modo diverso magari usando diversi
librerie o lingue diverse e così via
e ci siamo alzati di nuovo e il resto
tutte le cose continuano a funzionare
perché stavamo usando lo stesso
interfacce II penso che dipenda da cosa
progetto su cui ti trovi penso in qualcosa
come questo è estremamente
problema complicato abbiamo finito per avere un
molto codice di chiusura una chiusura molto densa
codice per descrivere la biologia
e il progetto complessivo che ricordavamo
eravamo quattro sviluppatori che ci lavoravano
per un anno quindi non abbiamo avuto davvero un
grande squadra e abbiamo finito per venire equamente
vicino a una soluzione e una soluzione
è attualmente in esecuzione nella produzione giusta
ora per un cancro variabile e penso uno
dei motivi per cui potevamo farlo era
perché scrivevamo lingue per
il lavoro giusto e non abbiamo davvero timido
lontano dall’adottare un nuovo linguaggio quando
era il momento giusto per farlo e oh
e un’altra parte del tutto
lingua cosa le altre tre persone su
il team non aveva mai fatto alcun Ruby
non ho mai chiuso affatto, così ero
l’unico con esperienza in tutto il
lingue che stavamo usando e attraverso
siamo finiti in coppia davvero promiscua
avere una squadra dove tutti erano veramente
davvero comodo in questi ambienti
molto rapidamente non credo di voler dire quando
hai la discussione su diversi
lingue e cose come te
tornare sempre alla domanda di
se la tua squadra sarà in grado di prendere
e penso che in realtà dopo questo
esperienza sono più incline che mai a
Dite che in realtà questo è qualcosa che
la maggior parte delle squadre dovrebbero essere in grado di affrontare
finché fai le altre cose bene
fintanto che il tempo che ci si concentra su
qualità del codice finché ti concentri molto
di accoppiamento finché hai il bene
tutoraggio in linea e fintanto che tu
avere qualcuno lì che può insegnare ad alcuni
degli aspetti di una lingua, quindi penso
questa è la chiave del nostro successo in questo
riguardo abbiamo usato alcuni interni dsls I
menzionato la descrizione dei dati DSL noi
aveva anche una piccola DSL per comunicare
con il nostro
smentire gli esperti su qualche biologia
aspetti ma sì, questo non era
qualcosa che abbiamo usato, l’abbiamo usato un po ‘
un po ‘ma la maggior parte è stata effettivamente eseguita
come celle dia interne perché potremmo
fateli nel recinto di Makris che è finito
essere molto molto succinti e molto
facile da gestire allo stesso tempo, quindi alcuni
conclusioni di questa esperienza è quella
in realtà piccole squadre conquistano grandi dimensioni
squadre in molti riguardi soprattutto quando
il problema è davvero complicato e
quando hai cose così complicate che
devi comunicarlo in realtà
la comunicazione sta andando essere più di una
barriera che imparare questo è il motivo per cui noi
finito per vederci come dominio
esperti e analisti di business perché
onestamente se avessimo avuto una base separata
stavano comunicando agli sviluppatori cosa loro
necessario per capire per farlo
la comunicazione di tutti quei dati
tutte queste informazioni sarebbero molto probabilmente
hanno impiegato più tempo e sono stati meno
efficiente di solo noi che lo impariamo
noi stessi direttamente e comunicando
direttamente con il cliente I
pensa se fossimo stati otto invece di
quattro non saremmo stati così veloci
usando la lingua giusta che ho già
ho parlato un po ‘ di questo ora
la biologia molecolare è un campo fantastico
è molto molto interessante è molto
intricato è un campo sotto forte
sviluppo durante il giugno 2012 tutti noi
ho dovuto leggere un sacco di documenti di ricerca
perché arrivava continuamente
nuovi risultati effettivamente cambiando cosa
stavamo facendo o aggiungendo ulteriori informazioni
e nuova comprensione per quello che eravamo
fare ora la ricerca è una ricerca
campo interessante soprattutto quando
arriva a qualcosa di complicato come
biologia molecolare di cui hanno disperatamente bisogno
programmazione di programmazione è al centro
di molte di queste cose, ma ci sono
non molti buoni programmi che sono
effettivamente lavorando su di esso invece il
le persone che scrivono il codice sono di solito
ricercatori che sono veramente bravo a
biologia molecolare e vogliono solo
ottenere qualcosa lavorando così ottengono
qualcosa funziona e poi continuano
alla prossima cosa che vogliono fare
dal punto di vista della ricerca e io no
a giudicare che in ogni modo penso sia così
il modo giusto per farlo, ma anche quello
significa che c’è un’enorme opportunità
per sempre
programmatori di entrare e lavorare su
aiutando a costruire sistemi veramente buoni
perché quello è dove il the
il lato debole è in molti di questi campi
e specialmente la biologia molecolare quindi sì
Penso che dovresti dare un’occhiata e forse
pensare di andare avanti continua
livrea Non penso che potrei mai iniziare
un prodotto senza avere il CD al centro
del prodotto è è solo
inconcepibile come puoi come puoi
costruire software senza continuo
consegna alla base a questo punto
e quando si tratta di cancro questo non lo è
la soluzione finale è la soluzione finale
andando ad arrivare in forse 10 15 anni
quando quando abbiamo un completo
comprensione di come funziona il genoma
in questo momento ne capiamo una molto piccola
parte di esso ma una volta arrivati a quel punto
potremmo essere in grado di avere una migliore
soluzione al cancro fino a quel punto
pensa qualcosa come questo no
necessariamente questo sistema ma questo tipo di
approccio sta per essere il modo giusto di
affrontandolo e dando il meglio
opzioni di trattamento per le persone e cosa
Non ho menzionato è una parte di questo
i dati dell’esperienza di cui stavo parlando
per gli scopi di bootstrap che stavamo usando
ricerca e sperimentazione clinica
informazioni ma una grande parte dei nostri piani
era quello di migliorare se stesso così una volta
iniziato a dare consigli e
trattamenti si potrebbe riprendere risultati
e iniziare a migliorare anche in questo modo
e prima o poi arriverai a
punto in cui il sistema ha effettivamente
imparato abbastanza da essere in grado di migliorare solo
dalle sue precedenti raccomandazioni e così via
lo sai che è un campo interessante
ci sono molte cose che stanno cambiando
e a questo punto sono abbastanza fiducioso
che arriveremo ad un punto in cui il cancro
smette di essere un vero problema mmm oh e
e genomica di cui ho parlato nel
iniziando la stiva
Il DNA delle proteine ​​RNA riempie tutti questi elementi
le cose sono solo loro coprono solo
L’1,5 percento del tuo genoma tutto il resto
ne fa altre che siamo
Non sono molto sicuro di questo quando dico
che sta andando a prendere un po ‘di tempo per arrivare
al punto in cui capiamo il
tutta la collina intera della genomica
questo perché c’è un
molto spazio aperto per trovare le cose in modo che io
penso di avere tempo per alcune domande
hai domande ok bene
quanto sarebbe difficile aggiungere un nuovo
tipo di cancro bene il sistema il back-end
il sistema è completamente indipendente da
tipi di cancro la ragione per cui è ovarica
il cancro è perché perché abbiamo avuto un
organizzazione che era disposta ad aiutarci
Prendo il caso vedo che prendo il rischio legale di
mettere questo in produzione
perché il problema è con
qualcosa di simile è quello
tradizionalmente si deve passare attraverso
noi dobbiamo passare attraverso la FDA
e sono piuttosto pungenti su tutto
tipi di cose in particolare sono
pungente sulle cose che usa
algoritmi quindi non abbiamo avuto un
organizzazione che ci ha aiutato a prendere il
rischio legale e agire da intermediari per
il sistema in modo che fosse l’unico
cosa che lo ha fatto iniziare con le ovaie
cancro ok okay, allora perché ho scelto
chiusura invece di un’altra lingua e
come mi ha aiutato bene sì sì chiusura
Ho avuto una lista molto breve
lingue quando ho iniziato questo progetto
Sapevo più o meno quello che volevo e di cui avevo bisogno
chiusura Sono un lisp ER così naturalmente
ho raggiunto il lisp per il mio più complicato
problema ma penso che la cosa sia quella
fatto chiudere la scelta giusta era
perché ci sono alcune cose
la chiusura mi dà che nessun’altra lingua
davvero avrebbe potuto aiutarmi al di fuori di
la JVM è effettivamente uno dei limiti
stava usando il DVM per ottenere l’accesso
a tutte le librerie e le prestazioni in
GC e tutte queste cose, ma Lisp mi ha aiutato
con le macro il questo sistema utilizza le macro
molto pesantemente e penso che sia uno di
i luoghi in cui ottenere le dimensioni del codice
era a un livello gestibile
impossibile senza l’utilizzo di macro i
altra cosa che la chiusura fa davvero
bene è la struttura dei dati il
le operazioni per la gestione dei dati
strutture e facendo tutti i tipi di
operazioni generiche su qualsiasi tipo di dati
struttura è molto più potente di
praticamente qualsiasi altra lingua in
notizie mainstream in questo momento così quei due
le cose erano le cose principali che io
mi è davvero importato del fatto
è finito per essere un linguaggio funzionale
in realtà non l’ ho fatto, no
Burrami mi disturba ma non penso
le lingue funzionali sono alla fine
soluzione al clock del software
crisi o il fatto che ne avesse un po ‘
costrutti di threading molto utili e
i costrutti di concorrenza non erano realmente
aiuta molto o molto di quello che noi
è finito, voglio dire che abbiamo fatto base
parallelizzazione ma non l’abbiamo davvero usata
qualsiasi delle strutture di fantasia per questo
non ne avevamo davvero bisogno e ciò che era
divertente di questo è che molti di questi
le cose sembrano davvero
complicato ma se tu se metti il
logica nel lavoro veramente duro al
posto giusto
il risultato finale finisce per essere veloce così noi
ha fatto molti calcoli in fase di esecuzione e
di solito ottenevamo risposte a metà
un secondo di tempo e quello stava facendo a
molto lavoro davvero interessante da raggiungere
quel punto l’ultima domanda va bene
a ben vedere quale sarebbe l’unica cosa
Vorrei cambiare bene, vorrei averli
tre mesi per capire il problema
indietro perché ovviamente questo ha aiutato
finire la soluzione ma se lo fossi
iniziando adesso saprei come
architetto il problema fin dall’inizio
Voglio dire che è davvero ma non lo è
qualcosa che avrei potuto cambiare se me ne andassi
di nuovo all’inizio del 2012 non potevo
l’ho cambiato perché ne avevo bisogno
tempo per capire il problema e
capire cosa dovrebbe essere la soluzione
sembra che non penso che ci sia
qualsiasi cosa grande che vorrei cambiare lì
sono un sacco di piccole decisioni che intendo
puoi sempre modificare le cose e c’è
sempre come la seconda volta che costruisci
il sistema se farai sempre molto
scelte diverse ma i tratti generali
dell’architettura sono molto felice
in realtà va bene, grazie per l’ attenzione

Please follow and like us: