Anàlisi exploratòria de dades mèdiques

Texto completo

(1)

   

 

 

Anàlisi exploratòria de dades 

mèdiques 

 

 

 

Júlia Bosch Llufriu 

 

 

Projecte de Fi de Grau 

Especialitat: Computació 

 

 

 

Directors:​ Pere-Pau Vázquez i Eva Monclús 

 

 

 

 

25 de gener de 2021 

(2)
(3)

Resum 

 

La motilitat del còlon és un factor que complica l’anàlisi d’aquest òrgan.        Degut a les dificultats derivades dels sistemes d’extracció de dades, fins ara s’ha        conegut poc sobre les relacions entre les dietes i el comportament del còlon. Tot i        que és possible obtenir dades morfològiques representatives a través de la        tomografia computeritzada (TC), la radiació que comporten aquestes tècniques fa        que només siguin adequades per a pacients amb trastorns importants. No obstant,        darrerament s’ha avançat suficientment en tècniques d’imatges extretes per        ressonància magnètica (RM) com per poder obtenir dades morfològiques del còlon        prou fiables a través d’aquest mètode en pacients sans, i sense exposar-los a        radiacions ni medicaments. Això fa que els investigadors amb els que treballen els        directors d’aquest projecte disposin d’una base de dades àmplia amb dades tant de        pacients sans com amb malalties. Aquest Treball de Fi de Grau desenvolupa una        aplicació web que permet als digestòlegs tenir una visualització general de les dades        extretes per RM i analitzar-les i comparar-les amb dades de motilitat. Es        proporcionen eines interactives i de manipulació de les dades per tal de mostrar-ne        una representació personalitzada general i detallada de la base de dades, permetent        l’anàlisi estadístic de les mateixes i la comparació de pacients, així com l’avaluació        de possibles patrons que puguin descriure l’efecte de les dietes en el còlon. 

 

(4)

Resumen 

 

La motilidad del colon es un factor que complica el análisis de este órgano.        Debido a las dificultades derivadas de los sistemas de extracción de datos, hasta        ahora se ha conocido poco sobre las relaciones entre las dietas y el comportamiento        del colon. Aunque es posible obtener datos morfológicos representativos a través de        la tomografía computerizada (TC), la radiación que conllevan estas técnicas hace        que sólo sean adecuadas para pacientes con trastornos importantes. Sin embargo,        últimamente se ha avanzado lo suficiente en técnicas de imágenes extraídas por        resonancia magnética (RM) como para poder obtener datos morfológicos del colon        suficientemente fiables a través de este método en pacientes sanos, y sin exponerlos        a radiaciones ni medicamentos. Esto hace que los investigadores con los que        trabajan los directores de este proyecto dispongan de una base de datos amplia con        datos tanto de pacientes sanos como con enfermedades. Este Trabajo de Fin de        Grado desarrolla una aplicación web que permite a los digestólogos tener una        visualización general de los datos extraídos por RM y analizarlos y compararlos con        datos de motilidad. Se proporcionan herramientas interactivas y de manipulación de        los datos para mostrar una representación personalizada general y detallada de la        base de datos, permitiendo el análisis estadístico de las mismas y la comparación de        pacientes, así como la evaluación de posibles patrones que puedan describir el        efecto de las dietas en el colon. 

 

(5)

Abstract 

 

The colon motility is a factor that complicates the analysis of this organ. Due        to the difficulties arising from data extraction systems, little is known so far about        the relationship between diet and colon behaviour. Although it is possible to obtain        representative morphological data through computerised tomography (CT), the        radiation involved in these techniques makes them suitable only for patients with        significant disorders. However, sufficient progress has recently been made in        magnetic resonance imaging (MRI) techniques to be able to obtain sufficiently        reliable morphological data of the colon through this method in healthy patients,        and without exposing them to radiation or medication. This means that the        researchers with whom the directors of this project are working have an extensive        database with data on both healthy and sick patients. This Degree Final Project        develops a web application that allows digestologists to have a general visualization        of the data extracted by MRI and to analyze and compare it with motility data. It        provides interactive and data manipulation tools to show a general and detailed        customized representation of the database, allowing statistical analysis of the data        and comparison of patients, as well as the evaluation of possible patterns that may        describe the effect of diets on the colon. 

 

(6)

Índex de continguts 

  1. Introducció i contextualització 13  1.1. Introducció i conceptes 13  1.2. Problema a resoldre 15  1.3. Actors 16  2. Justificació 17  3. Estat de l’art 19 

3.1. Eines per al preproces​sat 20 

3.2. Eines de visualització 22  3.2.1. Python 22  3.2.1.1. Pandas 22  3.2.1.2. Matplotlib 22  3.2.1.3. Plotly 23  3.2.1.4. Seaborn 23  3.2.1.5. Bokeh 23  3.2.1.6. Altair 23  3.2.1.7. Dash 24  3.2.1.8. Streamlit 24  3.2.2. JavaScript 25  3.2.2.1. D3 25  3.2.3. C++ 25  3.2.3.1. Qt 26  3.3. Conclusions 26  4. Abast 28  4.1. Objectius i subobjectius 28 

4.2. Requeriments funcionals i no-funcionals 29 

4.3. Obstacles i riscos 29 

5. Metodologia i rigor 30 

5.1. Eines utilitzades 31 

6. Disseny 31 

6.1. Mòdul de preprocessat 32 

6.1.1. Format de les dades 32 

6.1.2. Estructura 34 

6.2. Mòdul de visualització 39 

6.2.1. SPLOM 40 

6.2.2. Scatters 42 

(7)

7. Implementació 44  7.1. Preprocessat de dades 45  7.1.1. Home 46  7.1.2. Lector 46  7.1.3. Classificador 47  7.1.4. Filtrat​ge 48  7.1.5. Abreviació 48  7.1.6. Opcions de visualització 49  7.2. ​Dashboard 49  7.2.1. Classe Scatter 50  7.2.2. Classe SPLOM 52  7.2.3. Visualització 54  8. Validació 56  8.1. Proves 57 

9. Gestió del projecte 58 

9.1. Planificació temporal 58 

9.1.1. Recursos necessaris 58 

9.1.2. Descripció de les tasques 59 

9.1.2.1. GP - Gestió de projecte 59 

9.1.2.2. TP - Treball previ 60 

9.1.2.3. DP - Desenvolupament del projecte 60 

9.1.2.4. EU - Estudi d’usuari 61 

9.1.3. Estimacions i Gantt 62 

9.1.4. Gestió del risc: Plans alternatius i obstacles 63  9.1.5. Desviacions de la planificació incial 64 

9.2. Gestió econòmica 66 

9.2.1. Cost de personal per activitat 66 

9.2.2. Costos genèrics 67  9.2.2.1. Amortitzacions 67  9.2.2.2. Electricitat 68  9.2.2.3. Local 69  9.2.2.4. Internet 69  9.2.2.5. Aigua 69  9.2.2.6. Transport 69  9.2.3. Contingències 70  9.2.4. Imprevistos 70 

9.2.5. Estimació del pressupost 71 

(8)

10.1. Autoavaluació 72 

10.2. Dimensió econòmica 73 

10.3. Dimensió ambiental 74 

10.4. Dimensió social 74 

12. Conclusions 75 

12.1. Validació dels objectius 75 

12.2. Competències treballades 76  12.1.Treball futur 76  Bibliografia 77  Annexos 94         

 

 

(9)

Índex de figures 

 

1.1. Pipeline d’extracció de dades del mòdul de visualització. 14  1.2. Pipeline d’extracció de dades de contingut del còlon. 14 

1​.3. Segments del còlon​. 15 

1.4​. Imatges obtingudes per ressonància magnètica. 16 

1.5​. Imatges obtingudes per endoscòpia. 16 

2.1. SPLOM de la primera versió de l’aplicació. 17 

2.2. Esquema visual general de la primera versió. 19  6.1. Pipeline general de l’aplicació desenvolupada​. 32 

6.2. Pipeline del mòdul de preprocessat​. 32 

6.3. Captura de la pantalla inicial. 36 

6.4. Captures de pantalla del lector d’excels​. 36 

6.5. Captura de pantalla del mòdul de classificació​. 37 

6.6. Captura de pantalla del mòdul de ​filtrat. 37 

6.7. Captura de pantalla del mòdul de reanomenament​. 38  6.8. Captura de pantalla del mòdul de d’opcions de visualització​. 39  6.9. Captura de pantalla del mòdul de visualització​. 40  6.10. SPLOM de la segona versió de l’aplicació​ (1). 41  6.11. ​SPLOM de la segona versió de l’aplicació (2). 41  6.12. SPLOM​ de la segona versió de l’aplicació (3). 42 

6.13. Scatterplot​. 43 

6.14. Visualització de dades de pacients. 44 

7.1. Estructura de l’aplicació 45 

7.2. Dialog de preselecció. 48 

7.3. SPLOM​ amb cross-selection 53 

7.4. Captura de pantalla del mòdul de visualització inicial. 55 

9.1. Diagrama de Gantt​. 62                 

(10)

Índex de taules 

 

3.1. Comparativa R i Python. 21 

3.2. ​Resum de les eines considerades. 21 

6.1. Nomenclatura dels fitxers generats per l’aplicació. 34  7.1. Taula resum de la gestió dels fitxers per mòduls​. 45 

7.2. Callbacks de l’aplicació​. 56 

8.1. Configuracions amb què s’han executat els Tests 1 i 2. 57 

9.1. Resum descriptiu de les tasques. 63 

9.2. D​esviacions de les tasques. 66 

9.3. Sous i costos dels rols del projecte​. 66 

9.4. Càlcul de costos de personal per activitat. 67 

9.5. Càlcul del cost dels recursos materials. 68 

9.6. Cost de l’electricitat​. 68 

9.7. Costos genèrics. 70 

9.8. Costos amb contingències. 70 

9.9. Costos d’imprevistos. 71  9.10. Pressupost final. 71           

 

 

(11)

Glossari 

 

EDA - Exploratory data analysis, anàlisi exploratòria de dades   

ML​ - Machine learning, aprenentatge automàtic   

RM, MR/MRI - ​Ressonància magnètica/imatges de ressonància magnètica   

SPLOM​ - Scatterplot matrix. Matriu de gràfics de dispersió.   

TC, CT - ​Tomografia computeritzada   

(12)

1. Introducció i contextualització 

 

1.1. Introducció i conceptes 

 

L’anàlisi exploratòria de dades (EDA per les seves sigles en anglès) és un pas        previ i un procés d’investigació inicial a l’hora de representar la població de la qual        procedeixen les dades mostrals. L’objectiu de l’anàlisi és identificar el model teòric        més adequat explorant, descrivint, resumint i visualitzant la naturalesa de les dades        recollides [5]. 

 

Aquest anàlisi es fa mitjançant l’aplicació de tècniques simples de resum de        dades, mètodes gràfics, i estadístics sense assumpcions que permetin la seva        interpretació. La finalitat és explorar la distribució de les dades identificant        característiques tals com valors atípics o outliers, salts o discontinuïtats,        concentracions de valors, forma de la distribució, etc. També permet testejar        hipòtesis i comprovar supòsits, així com donar sentit a les dades recollides abans de        treballar-hi, i possibilita la comprensió inicial de les dades per a una recopilació        inicial d’idees sobre les mateixes [1][21][35]. 

 

Per altra banda, l’EDA es pot realitzar sobre tots els casos i dades        conjuntament o bé de forma separada per grups. En aquest darrer cas, els gràfics i        estadístics permeten identificar si les dades procedeixen d’una o diverses        poblacions, considerant la variable que determina els grups com a factor        diferenciador de les poblacions. També permet comprovar, mitjançant tècniques        gràfiques i contrastos no paramètrics, si les dades han estat extretes d’una població        amb distribució aproximadament normal. 

 

El programa SPSS i el llenguatge de programació R són les aplicacions més        utilitzades per dur a terme aquest anàlisi, tot i que no són les úniques. 

 

 

Figura 1.1. Segments del còlon: ascendent (blau), transversal (vermell), descendent (groc) i  pèlvic (verd). Font: [30] 

(13)

El sistema digestiu és molt complex, amb molts òrgans i funcions diferents        que juguen un paper important en la nostra salut. Entre tots els òrgans de la cavitat        abdominal, ens interessa el còlon. El còlon és un òrgan en moviment continu, amb        quatre segments diferents: esquerre (o ascendent), transversal, dret (o descendent)        i pèlvic, com es mostra a la Figura 1.1. Aquests segments presenten morfologies molt        variables entre els pacients: la seva mida, longitud, volum, etc. no semblen estar        relacionats amb altres paràmetres morfològics dels pacients, com ara l’alçada o el        pes. 

 

Aquest és un teball de fi de grau de la menció en computació del Grau en        Enginyeria Informàtica de la Facultat d’Informàtica de Barcelona, Universitat        Politècnica de Catalunya, i està codirigit per Pere-Pau Vázquez i Eva Monclús, tots        dos membres del grup de recerca ViRVIG [48]. 

 

El projecte s'emmarca en la recerca que el grup ViRVIG duu a terme en        col·laboració amb la unitat de Digestologia de l'hospital Vall d'Hebron de Barcelona.        En aquesta recerca [29​      ][30], s'investiga l'efecte de les dietes en el comportament        dels intestins. En particular, es desenvolupen diferents plataformes de software que        permeten analitzar el contingut i la motilitat del còlon (veure Figura 1.2).  

 

  Figura 1.2. Pipeline d’extracció de dades del mòdul de visualització. En vermell s’han indicat 

les parts de l’arquitectura del sistema de la recerca que intervenen en aquest treball. Font:  [29] 

 

La Figura 1.2 il·lustra el procés d’obtenció de les dades que s’utilitzaran per        dissenyar, desenvolupar i testejar l’aplicació, i la Figura 1.3 detalla el procés        mitjançant el que es generen les dades de contingut del còlon. Com es pot observar,        tant les dades geomètriques o de morfologia i les dades de contingut s’obtenen a        partir de les imatges extretes amb tècniques de RM, mentre que les de motilitat        s’obtenen d’una font externa a partir del software de càpsules de vídeo        inalàmbriques mitjançant un procés anomenat endoscòpia. 

(14)

  Figura 1.3. Pipeline d’extracció de dades de contingut del còlon. Font: [29]   

1.2. Problema a resoldre 

 

Actualment es coneix poc sobre el comportament de les diferents parts d’un        còlon saludable en resposta a diferents afeccions alimentàries. No s’ha establert cap        relació entre diferents paràmetres del còlon (per exemple, la seva longitud) respecte        d’altres característiques morfològiques dels pacients (per exemple, l’alçada o pes). 

 

En la recerca s’utilitzen tres tipus de dades del còlon: dades morfològiques (o        geomètriques), dades de contingut de còlon (ambdues recollides amb imatges per        ressonància magnètica (veure Figura 1.4) o MRI per les seves sigles en anglès) i,        mitjançant endoscòpia de càpsules de vídeo sense fils (veure Figura 1.5), dades de        motilitat. 

 

Aquest projecte parteix de la necessitat d’una aplicació per disminuir el        temps que han d’invertir els investigadors per dur a terme l’EDA, ja que, per una        banda, es realitza mitjançant un programari estadístic (fulls de càlcul amb Excel i        SPSS) que fa que sigui un procés tediós en el que triguen fins a tres hores per obtenir        la base de dades de morfologia. Per altra banda, les dades de contingut i motilitat del       

    

Figura 1.4. Imatges obtingudes per ressonància  magnètica. Font: [30] 

Figura 1.5. Imatges obtingudes per  endoscòpia. Font: [40] 

(15)

còlon també són analitzades pels metges mitjançant SPSS per a buscar-hi        correlacions entre elles, una tasca d’entre cinc i sis hores [29]. 

 

El nostre enfocament explicat a continuació pretén reduir aquest costós        procés, proporcionant una eina dissenyada específicament que faciliti l’anàlisi de        múltiples variables, impulsant així l’exploració inicial de dades. Essencialment, els        experts volen poder avaluar ràpidament si certes variables presenten correlacions        dins d’un conjunt de pacients. 

 

L’objectiu del projecte és desenvolupar una aplicació d’anàlisi de dades        exploratòria que permeti visualitzar i explorar dades numèriques extretes dels        procediments mèdics comentats anteriorment. Es vol desenvolupar un sistema amb        mètodes d’interacció que facilitin la comparació visual de grans conjunts de dades, i        capaç de calcular algunes funcions estadístiques estàndard (per exemple, el        coeficient de Pearson). 

 

1.3. Actors 

 

El sistema a desenvolupar va dirigit específicament als investigadors de la        Vall d'Hebron i l'Hospital General de Catalunya, ja que són ells els que estan        interessats en aconseguir eines que permetin analitzar d'una forma més eficient les        dades que s'obtenen a través de les proves diagnòstiques. 

 

Per altra banda, si ho enfoquem des d’un punt de vista més general,        l’aplicació tindrà com a beneficiari el Grup ViRVIG, ja que permetrà avançar en el        desenvolupament d'aplicacions de visualització de dades, més enllà de les dades i        interessos de la recerca en qüestió, i per conseqüent permetrà agilitzar processos        d’anàlisi de dades. 

 

Finalment, també cal tenir en compte com a actors i beneficiaris els pacients        dels metges amb els que es treballa. Són la font de les dades i, a la fi, seran també        uns dels principals beneficiats, ja que els metges que els tracten seran capaços de        treballar millor i més eficientment, cosa que implica resultats positius per ambdós. 

 

2. Justificació 

 

Per a contextualitzar una mica més la motivació d’aquest projecte, val a dir        que hi ha una primera versió d'aquesta eina que conté un mòdul de visualització,        però és limitat tant en el nombre de les interaccions com en la forma de manipular        les dades. Per exemple, com podem observar en la Figura 2.1, corresponent a una        matriu scatterplots (SPLOM) d’aquesta versió, en fer hover sobre un gràfic es poden        visualitzar els noms de les variables i es realça el gràfic simètric amb un contorn. 

(16)

 

Figura 2.1. SPLOM amb hover sobre un gràfic de la primera versió de l’aplicació [29].    

Per tant, l’objectiu inicial serà crear una aplicació que asseguri els requisits

       

de la primera versió, i posteriorment afegir-hi millores per ampliar-ne les        possibilitats d’anàlisi i, en definitiva, els beneficis. 

 

Les principals mancances de la primera aplicació són degudes,        principalment, a tot el que suposa treballar amb aquestes dades (veure l’annex B per        més detalls): 

 

● Com es pot veure a la Figura 1.1 i s’explica anteriorment, tot i que els Excels        amb els que treballen els investigadors provenen d’altres sofwares, com que        ells mateixos són els que manipulen el format de les dades i hi posen        etiquetes diferents, es fa difícil la homogenització. A més a més, només        disposem d’un fitxer Excel de dades de cada tècnica, cosa que en dificulta        més la generalització. 

 

● Tant en el fitxer de dades per ressonància magnètica com en el de dades per        càpsula hi trobem un gran nombre de variables diferents (56 i 92        respectivament). Això fa que l’anàlisi simultani de totes les dades no sigui        possible, de manera que els investigadors duen a terme més d’una sessió        d’anàlisi per cada fitxer. 

 

Amb tot això, l’aplicació anterior estava enfocada únicament a l’anàlisi de les        dades de les que disposem, amb un format detreminat, mentre que aquesta versió        proporciona un mòdul amb mètodes que permeten treballar amb diferents tipus de        dades i de variables perquè la naturalesa de l’aplicació no suposi una limitació a        l’hora d’expandir l’abast de les dades (afegir noves variables, tipus, etc.). A més a        més, es recorda la darrera configuració de visualització per a cada fitxer per facilitar        les sessions d’anàlisi seguides. 

(17)

 

La contribució d’aquest projecte radica en la creació d’una eina visual        interactiva per facilitar l’anàlisi exploratòria de les dades extretes mitjançant un        disseny de matriu de diagrama de dispersió personalitzat (SPLOM) i diagrames de        dispersió individuals (scatterplots), ja que l’enfocament visual pot reduir el costós        procés d’anàlisi de dades del còlon. Com a resultat, els metges han estat capaços        d’obtenir nous coneixements sobre els efectes de les dietes i també obtenir una        millor comprensió de la motilitat del còlon. Així, l’aprofitament, adaptació i        ampliació d’aquesta eina permetrà agilitzar i facilitar el desenvolupament de        l’anàlisi de les dades del còlon. 

 

   

Figura 2.2. Esquema visual general de la primera versiól projecte, amb la SPLOM (baix a la  dreta) i els scatterplots individuals [29]. 

 

L’estructura visual de l’aplicació pretén mostrar entre tres i quatre gràfiques        de mida raonable en pantalla: la principal, una matriu d’scatterplots amb les dades        d’entrada, que variarà en funció de si aquestes són d’un sol tipus de mesura (per        exemple dades només morfològiques) o de dos (morfològiques i motilitat); i dos o        tres scatterplots de caràcter més específic. La matriu d’scatterplots permet obtenir        una visualització general i ràpida de les dades i les relacions entre variables, així        com les corbes de regressió, mentre que els scatterplots senzills proporcionen una        vista precisa i detallada de la distribució de les dades dels diferents pacients. A més,        aquestes visualitzacions van acompanyades d’una sèrie de càlculs estadístics com el        coeficient de Pearson (que quantifica la correlació entre dues variables) per a       

(18)

destacar aquells parells de variables correlacionats. A la Figura 2.2 es pot veure        l’estructura visual de la primera versió de l’aplicació. 

 

La intenció és realitzar una sola aplicació que permeti comparar de diferents        formes dades de múltiples pacients i que, mitjançant una sèrie d'estadístics i        tècniques d'interacció, es faciliti trobar correlacions entre diferents variables. En        resum, el que es vol és una eina tipus web que permeti als metges llegir dades i fer        una anàlisi exploratòria de la manera més còmoda i ràpida possible. 

 

3. Estat de l’art 

 

Degut a la complexitat i singularitat de cada un dels tipus de dades que es        tracten en les investigacions, és difícil trobar programes o aplicacions genèrics per        dur a terme l’anàlisi exploratòria de dades. En tot cas, existeixen diferents llibreries        que estan enfocades en la proporció d’eines senzilles i funcionals per a dur a terme        el nostre EDA personalitzat. Per tant, quan parlem d’aplicacions similars presents        en el mercat, cal tenir en compte que ens poden servir d’inspiració, però el que s’ha        de considerar són les eines, llenguatges i llibreries que proporcionin mètodes per a        la programació de les funcionalitats específiques que es defineixen en l’especificació        del treball. S’ha agafat inspiració de diferents projectes que duen a terme usuaris        individuals ja que, avui en dia, els fòrums d’ajuda i les comunitats són un gran        factor a tenir en compte a l’hora de decidir de l’eina que es vol utilitzar, i més en un        projecte d’EDA on les possibilitats de personalització de l’aplicació i interaccions        són gairebé infinites. 

 

3.1. Eines per al preprocessat 

 

A causa dels problemes dels sets de dades comentats en l’apartat 2, ha        resultat necessari proporcionar una eina de preprocessat de dades que permeti als        usuaris dur a terme un filtratge previ sobre la base de dades original. D’aquest        filtratge en sortiran unes dades adequades perquè el mòdul de visualització les        pugui tractar i representar correctament. 

 

Inicialment, aquesta tasca es volia implementar en forma de widget,        programat en Qt. Aquest widget tenia les funcions de lectura dels fitxers i selecció i        reanomenament de dades per a la visualització. En el plantejament inicial, els        càlculs estadístics estaven pensats com un preprocés en R, on es generaria un fitxer        que seria llegit posteriorment per l’aplicació. En aquesta versió de l’aplicació, a        diferència de la primera, l’entrada de dades s’ha fet més flexible i per això és        necessari ampliar les possibilitats de manipulació de dades. A causa de la poca        experiència en Qt, es va fer una prova on la implementació del widget i la        incorporació de nous passos en la manipulació de les dades es preveia més costosa        del necessari. 

(19)

 

Python és un llenguatge multiplataforma que compta amb un gran nombre        de llibreries i frameworks que, juntament amb el seu rendiment, fan que hagi sigut        l’opció escollida. A més a més, és llegible i en poques línies de codi es poden        programar funcionalitats molt interessants. Finalment, s’ha proposat una nova        disposició de l’aplicació: aprofitant la condició que s’ha de proporcionar una eina        web i que la llibreria Pandas de Python proporciona eines molt útils i senzilles per a        tractar Excels i CSVs, el preprocessat s’ha definit com un pas previ necessari a l’hora        de configurar la visualització, integrat en l’aplicació, de manera que el preprocessat        i els càlculs estadístics es duen a terme dins de la mateixa aplicació.  

 

El llenguatge R proposat inicialment està creat específicament per a anàlisis        estadístiques i mineria de dades i, com Python, orientat a ​data science​. Tot i que                proporciona  nombroses  opcions  de  visualització  i  d’anàlisi de dades      (aproximadament 12.500 paquets en el repositori CRAN de paquets de R [10]), R està        desenvolupat per estadistes i inclou el seu llenguatge específic, mentre que Python        segueix sent preferible per aquest preprocessat perquè permet implementar        fàcilment un frontend, i un backend que proporcioni les dades estadístiques que        necessitem sense renunciar a l’eficiència i llegibilitat. La Taula 3.1 compara aquests        dos llenguatges en diferents aspectes que són interessants per al nostre objectiu        concret. 

 

 

Taula 3.1. Comparativa R i Python. Font: elaboració pròpia.   

Després d’una recerca en diferents fòrums específics, s’ha decidit utilitzar el        framework Flask de Python per al tractament de les dades i configuració de la        visualització d’aquesta versió, ja que proporciona les eines necessàries per al       

Aspecte  Python 

Ús  Anàlisi estadística  Enfocament general a ​data science  Objectiu  Anàlisi de dades i 

estadística  Implementació i producció 

Usuaris  Acadèmics i I+D  Programadors i desenvolupadors 

Flexibilitat  En ús de biblioteques  En creació de nous models  Corba 

d’aprenentatge  Elevada al principi  Lineal i aprenentatge suau  Integració  Execució local  Bona integració en aplicacions  Processat de 

(20)

desenvolupament àgil i ràpid de mètodes de manipulació de les dades, amb la        possibilitat d’afegir-hi funcionalitats a través de ​plugins ​en versions posteriors de                l’aplicació. És popular, de codi obert i compta amb una bona comunitat i        documentació. A més a més, té bona corba d’aprenentatge i s’ha pogut aprendre        ràpidament. 

 

Un dels altres frameworks web de Python més coneguts i utilitzats, Django,        com diu a [6], a diferència de Flask és complet, però és més complicat d’aprendre i        la majoria de les característiques que proporciona no són rellevants per al projecte        gràcies a la senzillesa de les tecnologies web necessàries, ja que les dades per a la        visualització són guardades en fitxers CSV i no es necessita una base de dades. 

 

3.2. Eines de visualització 

 

A continuació es descriu l’anàlisi de mercat i les eines tingudes en compte a        l’hora d’escollir la més adequada per al mòdul de visualització d’aquest projecte. 

 

Amb la finalitat de proveir a l’usuari les visualitzacions i interaccions        desitjades, s’han tingut en compte diferents llenguatges, frameworks i llibreries.        Les propostes principals eren la llibreria Altair de Python, D3 de JavaScript i el        framework Qt de C++. A continuació, s’expliquen les que s’han considerat i el motiu        per què s’han decidit utilitzar o descartar (veure annex D per una informació més        detallada). 

 

3.2.1. Python 

 

Python és un llenguatge de programació interpretat, multiparadigma,        fortament tipat, dinàmic i de codi obert. Pel que fa a l’experiència personal, s’han        treballat els conceptes de Python en l’assignatura Llenguatges de Programació [28],        alhora que es va generar un script senzill en aquest llenguatge. 

 

És un llenguatge senzill i potent, sobretot en ML i visualització de dades. És        llegible i en poques línies de codi es poden programar funcionalitats molt        interessants. És molt popular i té moltes llibreries i documentació que han permès        facilitar i agilitzar la feina. A més a més, també és adequat per al desenvolupament        d’aplicacions web [49]. 

 

Com diu [19], l’índex de paquets Python té biblioteques per a pràcticament        totes les necessitats de visualització de dades, però les més populars que ofereixen        la gamma més àmplia de funcionalitats són les següents: 

(21)

 

3.2.1.1. Pandas 

 

Pandas [33] és una llibreria de Python per l’anàlisi visual de dades. És una        eina d’anàlisi i manipulació de dades de codi obert ràpida, potent, flexible i fàcil        d’utilitzar. En aquest projecte s’utilitza per a la lectura dels fitxers Excel de l’usuari i        per al seu posterior tractament en format CSV i visualització. 

 

3.2.1.2. Matplotlib 

 

Matplotlib va ser la primera llibreria de visualització de dades de Python i la        biblioteca més àmpliament utilitzada per generar visualitzacions senzilles i potents        a la comunitat Python.  

 

Tot i que Matplotlib és adequat per obtenir una idea de les dades, no és molt        útil per crear gràfics amb qualitat de publicació de forma ràpida i senzilla. Com        assenyala Chris Moffitt en la seva visió general de les eines de visualització de        Python a [32], Matplotlib "és extremadament potent, però amb aquest poder arriba        la complexitat".  

 

3.2.1.3. Plotly 

 

Plotly, en canvi, és una eina de visualització de dades més sofisticada que        Matplotlib i és més adequada per crear gràfics elaborats de manera més eficient, a la        vegada que és elegant i proporciona interactivitat. 

 

3.2.1.4. Seaborn 

 

Seaborn és una biblioteca de Python de visualització de dades basada en        Matplotlib i que s’integra amb Pandas. Ofereix una interfície d’alt nivell per dibuixar        gràfics estadístics atractius i informatius. 

 

A [44] hi trobem un exemple senzill d’implementació d’una matriu dde        gràfics de dispersió en molt poques línies de codi. Tanmateix, pel que fa a les        interaccions, es recomana utilitzar una interfície Jupyter / IPython en mode        Matplotlib, o bé crides a ​matplotlib.pyplot.show() per a la visualització dels        gràfics. Això fa que siguin preferibles altres eines de visualització i interacció        considerades, ja que permeten una manipulació dels atributs i propietats més        flexible.  

(22)

 

3.2.1.5. Bokeh 

 

És una llibreria per a visualització interactiva (disponible per a Python, R        (rbokeh), Lua (bokeh-lua) i Julia (bokeh.jl)). A diferència de les llibreries populars        de visualització de Python, com Matplotlib i Plotly, Bokeh renderitza els seus gràfics        mitjançant HTML i JavaScript, de manera que s’orienta als navegadors web per a        representar-los. Per això podria ser una bona opció per al TFG, ja que el que        busquem principalment és una aplicació web de gràfics interactius [39].  

 

3.2.1.6. Altair

 

 

Altair és una llibreria Python dissenyada per a la visualització estadística. És        de naturalesa declarativa (“indica què fer en comptes de com fer-ho”). Es basa en        Vega i Vega-Lite, que són gramàtiques de visualització que permeten descriure        l’aspecte visual i el comportament interactiu d’una visualització en format JSON. Els        gràfics bàsics d’Altair no proporcionen mètodes interactius, com sí que fan altres        eines com Plotly, Bokeh o D3. 

 

3.2.1.7. Dash 

 

Dash [16] és un framework Python per crear aplicacions web, desenvolupat        pels creadors de Plotly. Està basat principalment en Flask, Plotly.js i React.js, i té les        següents característiques [31]:  

 

● Les aplicacions es renderitzen al navegador. 

○ Això comporta que podem tenir la nostra aplicació o servei desplegat        en un servidor, i posteriorment podem compartir, mitjançant URL, el        nostre ​dashboard​ o quadre de comandament amb diverses persones.  ○ En renderitzar al navegador, dues persones poden estar veient el       

mateix ​dashboard i poden realitzar modificacions o visualitzacions        diferents en aquests ​dashboards​, i no es trepitgen l'una a l'altra, ja que        cada ​dashboard​ és propi de cada navegador. 

● És multiplataforma i està preparat per a mòbils, cosa que és molt important        avui en dia. 

● Permet crear aplicacions senzilles de manera molt ràpida i concisa, encara        que també es poden complicar tot el que vulguem. 

● És de codi obert. 

Permet crear ​dashboards​ en Python pur.   

(23)

Dash s’integra perfectament amb la llibreria d’anàlisi i manipulació de dades        Pandas. Té molt bona documentació i compta amb una comunitat molt activa, cosa        molt útil, ja que Dash permet crear figures i gràfics personalitzats. 

 

3.2.1.8. Streamlit 

 

Streamlit [51] permet construir ​dashboards semblants als obtinguts amb        Dash. És una llibreria de codi obert que proporciona mètodes per a la creació ràpida i        molt senzilla d’aplicacions web per ML i ​data science estètiques. Es combina amb              altres llibreries com Pandas, Matplotlib, Plotly o Seaborn per a la creació dels        gràfics. 

 

Com que s’ha escollit Flask per al preprocessament, ens convé una integració        fàcil i ràpida per a la cohesió de l’aplicació general. Segons [27], Streamlit executa el        seu propi servidor web mitjançant el framework Tornado i no hi ha una manera        adequada d’incorporar una aplicació Streamlit dins d’un servidor Flask. De fet,        Streamlit no està pensat per a ser integrat en altres eines, sinó que més aviat és un        framework per crear una aplicació web completa. A més a més, no és especialment        eficient ni molt personalitzable, cosa que fa que no sigui la millor opció per aquest        projecte, ja que podria limitar-ne l’escalabilitat [13]. 

 

3.2.2. JavaScript 

 

JavaScript és un llenguatge de programació interpretat i és conegut com a        llenguatge d’scripting per a pàgines web i utilitzat en molts entorns fora del        navegador, com Node.js i Adobe Acrobat. És un llenguatge de programació basat en        prototips, multiparadigma, d’un sol ​thread​, dinàmic, amb suport per a programació        orientada a objectes, imperativa i declarativa. L’experiència personal amb aquest        llenguatge és poca, limitada als conceptes bàsics. 

 

Potser JavaScript no estigui entre els idiomes adoptats per a Data Science,        però ofereix grans oportunitats per a la visualització de dades, i moltes llibreries per        a altres llenguatges són en realitat embolcalls per a paquets de JavaScript. 

 

Un dels desavantatges de JavaScript respecte a Python és que la manipulació        dels fitxers CSV no es fa de manera tan abstracta com sí que es pot aconseguir amb        Pandas. 

 

3.2.2.1. D3 

 

D3 [7] es diu la mare de totes les biblioteques de visualització, ja que és la        base de moltes biblioteques. Tot i ser la més antiga, continua sent la llibreria de       

(24)

visualització de dades JavaScript més popular i extensa. Utilitza estàndards web, és        un framework agnòstic (no depèn de cap altre), i funciona sense problemes amb        qualsevol framework JavaScript. D3 està dissenyat per manipular documents basats        en dades i donar vida a les dades mitjançant HTML, SVG i CSS. L’èmfasi de D3 en els        estàndards web proporciona les capacitats dels navegadors moderns sense que        s’acoblin a un ‘host framework’, i combina components de visualització i un        enfocament basat en dades per a la manipulació del model d’objecte de document        (DOM). 

 

A [26] trobem un exemple d’implementació d’una matriu de correlacions en        D3 interactiva, molt semblant al que es vol aconseguir en el mòdul de visualització        d’aquest projecte. D3 va ser l’eina escollida per a la implementació de la primera        versió de l’aplicació. 

 

3.2.3. C++ 

 

C++ és un llenguatge de programació orientat a objectes compilat,        multiparadigma, multiplataforma i amb un sistema de tipus fort, estàtic i        nominatiu. El domini previ sobre aquest llenguatge és ampli, ja que s’hi ha treballat        durant els primers anys del Grau. 

 

Entre les seves principals característiques destaca el seu alt rendiment, ja que        és capaç de fer crides directes al sistema operatiu, és un llenguatge compilat per        cada plataforma, amb gran varietat de paràmetres d’optimització i s’integra de        forma directa amb el llenguatge assemblador. També cal destacar que és un        llenguatge antic, però actualitzat, de manera que permet crear, relacionar i operar        amb dades complexes i ha implementat múltiples patrons de disseny [41]. 

 

Els desavantatges de C++ que s’han de tenir en compte són essencialment el        fet que és un llenguatge molt ampli (amb molts anys i moltes línies de codi), així        com la necessitat de compilació per a cada plataforma i la dificultat de depuració.        Pel que fa a aquest projecte, caldrà llegir, manipular i guardar fitxers Excel o CSV,        tasca que no és tan fàcil en C++ com amb Python a través de Pandas. 

 

3.2.3.1. Qt 

 

Qt és un framework de codi obert de C++ multiplataforma i orientat a        objectes, àmpliament utilitzat per al desenvolupament d’interfícies gràfiques        d’usuari i treballat en l’assignatura IDI [25] del Grau. 

 

A [43] es pot veure un exemple d’implementació de gràfic de dispersió amb la        classe QScatterSeries de Qt. Cal destacar que cada propietat del gràfic que es vulgui       

(25)

afegir o modificar sol requerir una línia de codi addicional amb mètodes molt        específics. 

 

El principal problema que presenta Qt a l’hora de ser considerat per al        desenvolupament d’aquest projecte és la seva integració en la web, ja que s’han de        descarregar les versions binàries a les plataformes Linux, macOS i Windows i crear        les aplicacions Qt perquè s’executin dins d’un navegador web [9]. 

 

3.3. Conclusions 

  Llenguatge  Framework/  Llibreria/  Eina  Avantatges  Inconvenients 

Python  Bokeh  1. Orientada a web 

2. Bon rendiment en  grans sets de dades  3. Proporciona sortida en  diversos suports  4. Integració en Flask  5. Flexibilitat en les  interaccions  6. Bona corba  d’aprenentatge 

1. Codi obert. Possibles  canvis. 

2. Menys opcions de  visualització que altres  eines com D3 

3. En baix nivell  l’especificació és en  Matplotlib (pot arribar a  ser molt complexa) 

Altair  1. Naturalesa declarativa  2. Abstracció en les  interaccions  3. Codi concís  1. En fase de  desenvolupament  2. No té interaccions per  defecte 

Dash  1. Escrit sobre Flask i  Plotly 

2. Funcionalitats​ ​‘​out of 

the box​’ 

3. Gran comunitat i  documentació  4. Declaratiu  5. Utilitza D3.js  6. Estable  7. Codi concís 

1. Les interaccions de  l’usuari es produeixen  en els punts/dades 

JavaScript  D3  1. Molt potent 

2. Dóna pas a moltes  possibilitats 

3. Tecnologia web   

1. Codi, extens, poc  declaratiu 

2. Bastant laboriós  3. S’han de tenir  coneixements de  JavaScript 

(26)

 

Taula 3.2. Resum de les eines considerades   

El resum de la Taula 3.2 il·lustra els principals avantatges i inconvenients de        les eines que s’han decidit tenir en compte per a la implementació del mòdul de        visualització de l’aplicació. Està dividida per llenguatges, que alhora deriven en les        eines i frameworks dels que disposen. Pel que fa a les llibreries Matplotlib i Plotly val        a dir que s’han considerat altres frameworks construïts a sobre seu, tenint en        compte les característiques base d’aquestes llibreries, ja que proporcionen        funcionalitats ‘​out of the box​’ i un nivell d’abstracció que ajuda a la implementació              de les funcionalitats necessàries. Finalment s’ha escollit Dash per diferents motius:   

● Està construït sobre Plotly, que ja proporciona alguns avantatges sobre        Matplotlib comentats anteriorment. 

● S’integra perfectament amb Pandas. 

● Té una sintaxi i mètodes molt útils, fàcils d’utilitzar i d’aprendre. A més a        més, les propietats es personalitzen de forma declarativa a través        d’arguments. 

● S’escriu completament en Python, fet que accelera encara més el procés        d’aprenentatge pel fet que només s’ha d’aprendre un llenguatge/framework i        és molt llegible. 

● Els diferents nivells d’abstracció que proporciona permeten crear gràfics        molt ràpidament i en una sola línia de codi, però també tenim l’opció de        crear-ne de nous totalment personalitzats i adaptats a les necessitats. Això és        especialment útil, ja que l’estructura de l’SPLOM no és molt popular i en les        figures d’aquest tipus predefinides solen mancar-hi funcionalitats i mètodes        necessaris per a la realització d’aquest treball. A més a més, en el nostre cas        hem de gestionar de dues formes aquesta figura (depenent de si llegim un        fitxer o dos). 

Les interaccions també es fan senzilles a través de ‘​callbacks​’. Només cal        especificar els elements que intervenen en la interacció, d’entrada i de        sortida, i la funció que determina els valors de sortida segons els d’entrada.  ● Si és necessari es poden crear components i ​‘callbacks’ des de 0 amb       

JavaScript i ReactJS. La bona documentació de la qual disposa fa que aquestes        tasques siguin significativament més senzilles del que resultarien amb altres        frameworks, ja que ens estalvien temps de recerca en diferents llocs. 

Les aplicacions creades amb Dash estan compostes per dues parts: el ​layout i        les interaccions. Pel ​layout​, Dash proporciona classes de Python per a tots els       

C++  Qt  1. Eficient 

2. Ampli i amb molta  informació 

1. Integració web  2. Complex i extens en  les opcions 

3. Sol requerir moltes  línies de codi 

(27)

components visuals de l’aplicació [22], tant per qualsevol etiqueta HTML        com pels de més alt nivell i interactius, propis de Dash. 

● La seva documentació és molt extensa, ben organitzada i ben mantinguda, i        també compta amb una gran comunitat que proporciona solucions,        alternatives o almenys resposta a gairebé tots els dubtes i problemes que es        puguin tenir. Això ha cobrat molt pes, ja que per a l’aplicació es necessiten        funcionalitats senzilles però molt específiques, i que amb altres llibreries        podrien resultar més complicades. 

 

En treballar amb Python tant pel tractament de les dades com per a la        visualització, el format d’aquestes és el mateix, i els DataFrames de Pandas ens        facilitaran la feina.   

4. Abast 

 

4.1. Objectius i subobjectius 

 

Com s’ha explicat abans, l’objectiu principal del projecte és desenvolupar una        eina basada en gràfics 2D per facilitar l’anàlisi visual exploratòria i, en concret, la        recerca, per exemple, de correlacions entre mesures morfològiques, així com        l’anàlisi detallada de casos individuals o la comparació pacient-pacient sense la        necessitat d’utilitzar programari addicional. Per tant, l’enfocament inicial és        construir una eina per analitzar la base de dades amb l’objectiu d’obtenir        coneixement sobre la influència de les dietes o d’altres relacions que els metges        considerin que cal investigar. La nostra intenció és agrupar, en una única eina        basada en web, les característiques d’anàlisi estadística que utilitzen a SPSS i la        possibilitat d’inspecció individual de dades numèriques per a pacients. Per a        l’assoliment d’aquest objectiu, s’han definit els següents subobjectius: 

 

1. Desenvolupament d’un sistema de lectura en format CSV (en la fita inicial) de        dades morfològiques, o morfològiques i de motilitat. 

2. Desenvolupament d’eines de visualització general de les dades carregades.  3. Desenvolupament d’eines d’interacció que permetin modificar i ajustar les       

dades i detalls mostrats. 

4. Programació de càlculs estadístics sobre les dades (amb filtratge o sense) per        a la detecció i anàlisi de potencials correlacions. 

 

4.2. Requeriments funcionals i no-funcionals 

 

L’aplicació proporcionarà mètodes d’interacció diversos per a obtenir        informació més detallada, així com funcionalitats que permetran treballar més        eficientment amb les dades representades. Inicialment es volen programar eines       

(28)

que permetin les tasques típiques de filtratge, zoom i detalls sobre demanda. Això es        vol aconseguir mitjançant interaccions com per exemple: 

 

● hover sobre un scatterplot gran per a mostar les dades del pacient,  ● hover sobre un element de la matriu d’scatterplots per mostrar les       

dades estadístiques i els noms de les variables (abreviades en els        scatterplots, veure Figura 1), 

● arrossegar un element a un scatterplot per mostrar les dades de        l’element a l’scatterplot, 

● la filtració de variables, fent possible l’eliminació de les seleccionades        de la matriu d’scatterplots, 

● l’accés a les dades dels pacients d’un scatterplot   

i altres funcionalitats i càlculs sota demanda que puguin sorgir durant l’etapa        de desenvolupament i testatge. 

 

L’eina d’inspecció visual complirà dos requeriments bàsics per a l’assoliment        dels objectius: els usuaris seran capaços d’analitzar múltiples paràmetres alhora i        l’aplicació serà fàcilment accessible des de diferents ordinadors per a facilitar la        col·laboració entre companys. 

 

4.3. Obstacles i riscos 

 

Com en tot projecte, en el camí ens podem trobar amb diferents obstacles que        cal resoldre de la manera més ràpida i eficient possible, de la mateixa manera que        s’han d’assumir uns certs riscos per avançat. Seguidament s’exposen i es descriuen        els principals tipus de problemes amb què ens podríem trobar durant la realització        del projecte. 

 

1. Problemes de disseny. ​El creixement exponencial de les combinacions de              variables possibles. Tenint en compte que estem tractant amb dades que        s’analitzaran en relació de parells en la disposició dels scatterplots, la        proporció d’aquests pot arribar a ser molt gran si s’han de tenir en compte        totes les variables. Cal buscar abstraccions o aplicar un filtratge basat en        paràmetres de les dades per a presentar un número raonable de dades que no        comprometi els resultats de l’anàlisi. 

 

2. Problemes d’implementació. Per a evitar en la mesura possible els        problemes que puguin sorgir a causa de la dificultat de la implementació, cal        buscar assessorament i informació per intentar predir les possibles        problemàtiques i dilemes derivats de les possibilitats que ofereixen els        diferents llenguatges i llibreries. 

(29)

3. Problemes de dades. ​És un factor del qual no es té control directe, ja que els              encarregats de proporcionar les dades amb què treballem són els metges.        Això pot significar que al llarg del projecte ens trobem amb falta de les        mateixes dades o que no en tinguem tantes com seria desitjable. 

 

4. Problemes d’avaluació. Aquesta és una dificultat afegida fermada als temps        actuals. El fet de treballar amb professionals de l’àmbit de la salut ens        condiciona a l’evolució de la COVID-19. En el cas d’una altra onada de la        malaltia, amb xifres d’ingressats similars a la primera, els col·laboradors que        suposadament haurien d’avaluar i testejar l’aplicació es veuen obligats a        dedicar-se pràcticament íntegrament a la pandèmia, perjudicant aquesta        part del projecte. 

 

5. Metodologia i rigor 

 

Per a la correcta realització d’un projecte i l’assoliment dels objectius        proposats, cal escollir una metodologia que s’adapti a les característiques i        requeriments d’aquest. 

 

Per endavant, la intenció que es persegueix és la de començar definint uns        objectius que garanteixin un producte viable sense errors que tingui, com a mínim,        les funcionalitats del producte anterior, comentat en l’apartat 2. D’acord amb        aquesta idea, la metodologia àgil de desenvolupament de software encaixa amb els        requeriments establerts. 

 

El terme '​Agile​' es refereix a les metodologies àgils. Recull unes tècniques per        a la gestió de projectes en què s'utilitza un enfocament incremental i iteratiu per        gestionar els projectes. 

 

Si seguim un desenvolupament àgil, estarem seguint un cicle de vida        adaptatiu davant dels canvis. Té la peculiaritat que el producte va evolucionant al        llarg de tot el projecte, de manera que ni es dissenya ni es planifica per avançat.        L’objectiu és tenir una major flexibilitat davant la presència de canvis. Així mateix,        en un entorn de desenvolupament ​agile es va creant i presentant el producte al client        en intervals curts que es coneixen sota el nom d’'​esprints​'. 

 

Agile és la metodologia a seguir ideal per als projectes d'IT en què hi ha canvis        constants, amb molta rapidesa a causa de noves decisions del client o canvis en        l'entorn. Així, permet una gran flexibilitat que ens és d’una ajuda important a l’hora        de definir les funcionalitats més importants i urgents, com els requeriments que        sorgeixen durant la implementació. 

(30)

A més, s’ha d’assegurar que el projecte es desenvolupa en un entorn de rigor i        fiabilitat, pel que és necessari portar un seguiment periòdic de l’estat del projecte        que asseguri que es va avançant. La responsable d’aquest seguiment és la        codirectora Eva Monclús, ja que és qui té contacte directe amb els metges. També es        volia fer un estudi d’usuari final amb els col·laboradors. 

 

5.1. Eines utilitzades 

 

Per una banda, per a facilitar el seguiment dels objectius s’ha utilitzat Slack        [45], una de les eines de comunicació per a equips en remot més populars        actualment. Slack ens ha permès tenir una comunicació eficient i ràpida adequada        per als problemes i dubtes que han sorgit durant la realització del projecte. 

 

Per altra banda, per al control de versions s’ha utilitzat GitLab [18], que ha        permès tenir presents en tot moment els canvis i progressos que s’han anat fent al        projecte, així com recuperar parts del codi de versions anteriors quan ha resultat        necessari. 

 

Finalment, s’han programat visites al Centre de Realitat Virtual (CRV) [2] per        a treballar en un ambient més favorable i possibilitar un seguiment més acurat amb        un contacte més directe.  

 

6. Disseny 

 

A continuació s’explica detalladament el disseny que s’ha seguit per al        desenvolupament de l’aplicació i s’acompanya de captures de pantalla per a        proporcionar una idea general del funcionament dels mòduls que conformen        l’aplicació. La Figura 6.1 en mostra el pipeline general. Com es pot observar, és un        disseny seqüencial, de manera que, partint de les dades originals, s’aplica un        preprocessat i el resultat d’aquest serveix d’entrada per al mòdul de visualització. 

 

   

Figura 6.1. Pipeline general de l’aplicació desenvolupada. Font: elaboració pròpia.   

6.1. Mòdul de preprocessat 

 

Aquest mòdul proporciona eines i mètodes que permeten donar a les dades        un format adequat per a la seva posterior representació en el mòdul de visualització.       

(31)

La Figura 6.2 il·lustra el pipeline d’aquest mòdul, amb els passos de processament        de dades corresponents. 

 

Figura 6.2. Pipeline del mòdul de preprocessat. Font: elaboració pròpia.   

6.1.1. Format de les dades 

 

A causa de les lleis de protecció de dades [60], les dades personals dels        pacients (que puguin servir per a identificar-los) amb les que treballem han de ser        anònimes, de manera que els identificadors estan codificats. Aquesta codificació de        pacient és diferent per a cada un dels tipus d’extracció de dades. Els investigadors,        però, tenen un fitxer amb informació sobre els pacients i les seves dades,        degudament emmagatzemat, protegit i tractat. Com que no podem tenir accés a        aquest fitxer per a determinar la relació entre identificadors i pacients per raons        òbvies, l’aplicació té un fitxer ​ids.csv creat manualment que guarda la        correspondència entre els identificadors de RM i els de càpsula, a partir d’un fitxer        de dades de pacients proporcionat pels investigadors amb les dades dels dos tipus.        Aquest fitxer és necessari per a determinar si en el mode 2 hi ha valors introduïts        sense correspondència. 

 

Com que la base de dades que utilitzen els investigadors no té un format        predefinit, el preprocessat proporciona eines per a la manipulació de les dades        abans de la visualització. Durant aquest preprocessat es guarden diferents fitxers        que seran necessaris per al correcte funcionament i visualització de l’aplicació: 

 

Fitxers de dades: es guarden en format .csv, ja que Pandas és més eficient          llegint i escrivint fitxers en aquest format en comptes d’Excel [47] 

  

Fitxer original: per a cada fitxer de dades en format Excel introduït        per l’usuari, es guarda una còpia de les dades en un fitxer .csv.  

 

Fitxer filtrat: ​cada fitxer de dades entrat per l’usuari es modifica          durant el preprocessat per a deixar-lo enllestit per la visualització.        Aquest fitxer parteix de l’original guardat a l’aplicació i es modifica en        els passos de filtratge de variables i de configuració de les opcions de        visualització. El resultat és un fitxer ‘filtered_mr_data.csv’ o        ‘filtered_capsule_data.csv’, depenent del fitxer original de partida,        on s’han eliminat les variables que no es representaran en la        visualització i on s’han ordenat i eliminat els pacients segons la        correspondència en ​ids.csv​ (ampliació en el capítol “Implementació”). 

(32)

 

Diccionaris: són necessaris tant en el preprocessat com en la visualització, ja        que guarden informació de diferents tipus sobre les variables i permeten        emmagatzemar la informació introduïda per un usuari en una visualització        per tenir-la en compte per a la pròxima, facilitant així les diferents sessions        d’anàlisi. 

 

Tipus: té com a claus el nom original de cada variable, i com a valors        els tipus introduïts per a cadascuna per l’usuari en el pas de        classificació de les variables. Els valors possibles són ‘Content’,        ‘Morphological’, ‘Motility’ i ‘Pacient’. 

 

Select: té com a claus el nom original de cada variable, i com a valor un        booleà que indica si la variable en qüestió es representa o no en el        mòdul de visualització. 

 

Rename: té com a claus el nom original de cada variable, i com a valors        les abreviatures que l’usuari introdueix per a cadascuna en el pas de        reanomenament. 

 

Opcions de visualització: té com a clau l’string ‘tag_var’ i com a valor          el nom de la variable que representa l’identificador del pacient. A més        a més, si el fitxer és de RM, també conté la clau ‘patient_type_var’        que indica si hi ha alguna variable que codifiqui el tipus de pacient (en        que tenim, correspon al valor de ‘health’ en les dades de RM). 

 

Correlacions: ​té com a claus parells de noms de variables separats pel          caràcter ‘$’. Si la visualització és només de les dades de RM, es crea el        diccionari de correlacions de RM, que té com a claus les combinacions        de parells de variables possibles (excloent les de tipus ‘Pacient’). Si és        de dades de RM i Càpsula, es crea el diccionari de correlacions de        càpsula i les primeres variables dels parells corresponen a les variables        de càpsula i les segones a les de RM. Com a valors té els valors absoluts        dels coeficients de correlació de Pearson dels parells. 

 

Cadascun d’aquests fitxers es crea per cadascun dels tipus de fitxers        (ressonància magnètica i càpsula), de manera que les dades sempre es tracten de        manera separada. La Taula 6.1 mostra la nomenclatura dels fitxers. 

         

(33)

 

Taula 6.1. Nomenclatura dels fitxers generats per l’aplicació. Font: Elaboració pròpia.   

Els diccionaris de Python són guardats en format JSON, mentre que les dades        en format CSV, ja que és l’opció més eficient de Pandas per a llegir i escriure        DataFrames, la seva estructura de dades que guarda les dades dels fitxers Excel i        CSV. 

 

6.1.2. Estructura 

 

A continuació s’exposa l’estructura del mòdul de preprocessat, que a la        vegada està dividit en mòduls o pantalles que permeten a l’usuari introduir valors        per a configurar la representació. 

 

6.1.2.1. Home   

Conté un botó per a cada “mode” de visualització, depenent de si s’ha de        llegir un fitxer o dos (veure Figura 6.3). 

  Tipus de 

fitxer  Subtipus  Ressonància magnètica  Càpsula 

Dades  Original  ‘original_rm_data.csv’  ‘original_capsule_data.csv’  Filtrat  ‘filtered_rm_data.csv’  ‘filtered_capsule_data.csv’  Diccionari  Tipus  ‘mr_header_types.json’  ‘capsule_header_types.json’ 

Select  ‘mr_header_select.json’  ‘capsule_header_select.json’  Rename  ‘mr_header_renames.json’  ‘capsule_header_renames.json’  Opcions de 

visualització  ‘mr_visualisation_options.json’  ‘capsule_visualisation_options.json’  Correlacions  ‘mr_correlations.json’  ‘capsule_correlations.json’ 

(34)

 

Figura 6.3. Captura de pantalla de la pantalla inicial de l’aplicació. Font: elaboració pròpia.   

6.1.2.2. Lector d’excels   

Si s’ha escollit el mode 1, la pantalla mostra un formulari que conté, a més del        camp per seleccionar el fitxer de l’equip de l’usuari, un select per indicar de quin        tipus es tracta (ressonància magnètica/càpsula). Si el mode escollit és el 2, el        formulari conté dos camps per a inserir els fitxers de cada tipus, com es pot veure en        la Figura 6.4. 

 

  Figura 6.4. Captures de pantalla del lector d’excels d’un tipus (esquerra) i de dos (esquerra) 

de l’aplicació. Font: elaboració pròpia.   

(35)

6.1.2.3. Classificador de variables   

Permet escollir de quin tipus és cada variable que s’ha detectat en el fitxer,        com es mostra a la Figura 6.5. Entre els valors possibles hi ha ‘Morphological’,        ‘Content’, ‘Motility’ i ‘Pacient’. Les variables que no siguin de tipus pacient es        representaran a l’SPLOM i, la resta, sota demanda mitjançant les interaccions        proporcionades. 

 

   

  Figura 6.5. Captura de pantalla del mòdul de classificació del preprocessat amb dades de 

ressonància magnètica (dalt) i de càpsula (baix). Font: elaboració pròpia.   

(36)

6.1.2.4. Filtratge de variables   

Permet seleccionar quines variables vol veure representades l’usuari en el        mòdul de visualització, tal com es mostra a la Figura 6.6. 

 

   

  Figura 6.6. Captura de pantalla del mòdul de filtrat del preprocessat amb dades de 

ressonància magnètica (dalt) i de càpsula (baix). Font: elaboració pròpia.   

6.1.2.5.Abreviació de variables   

Per qüestions de llegibilitat a la visualització, aquest mòdul permet definir els        noms abreviats de les variables que es mostraran en la visualització (veure Figura        6.7). 

(37)

 

   

  Figura 6.7. Captura de pantalla del mòdul de reanomenament del preprocessat amb dades de 

ressonància magnètica (dalt) i de càpsula (baix). Font: elaboració pròpia.   

6.1.2.6. Opcions de visualització   

Per a la visualització és necessari que l’usuari indiqui la columna que fa        referència a l’identificador del pacient (codi de la càpsula o etiqueta de la RM) per        assegurar una visualització correcta de les dades, i quina al tipus de pacient. Aquesta        última defineix un color per a cada un dels valors que conté, de manera que es        puguin identificar visualment. No és obligatori introduir una columna que        identifiqui el tipus de pacient. Això es du a terme mitjançant un formulari com el       

(38)

 

 

  Figura 6.8. Captura de pantalla del mòdul de definició d’opcions de visualització del  preprocessat amb dades de ressonància magnètica (dalt) i de càpsula (baix). Font: elaboració 

pròpia.   

6.2. Mòdul de visualització 

 

El segon mòdul de l’aplicació és el de visualització, ja que s’alimenta dels        fitxers generats en el preprocessat per representar les dades. A continuació s’explica        el disseny d’aquest mòdul que, com es pot veure a la Figura 6.9, consta d’un       

dashboard interactiu que proporciona una visió general en forma d’SPLOM de les        dades introduïdes i filtrades per l’usuari. Aquesta figura està composta d’un gràfic        de dispersió per cada parell de variables en qüestió. Si el mode escollit és l’1,       

(39)

l’SPLOM mostra les dades de RMxRM. Per altra banda, si el mode escollit és el 2, en        l’eix X es representen les dades de motilitat de la càpsula i en l’eix Y les dades        morfològiques i de contingut del fitxer de RM.  

 

A la dreta de l’SPLOM es mostren en gran els dos darrers gràfics seleccionats        per l’usuari i, a la part de baix, les dades dels dos darrers pacients seleccionats.        També s’indica el nombre de pacients que es mostren en la visualització. 

 

  Figura 6.9. Captura de pantalla del mòdul de visualització amb dades de ressonància 

magnètica. Font: elaboració pròpia   

6.2.1. SPLOM 

 

L’SPLOM és l’element principal del mòdul de visualització. Seguidament        s’explica el disseny d’aquesta representació gràfica segons el mode que l’usuari        hagi escollit, segons si vol visualitzar només les dades de RM o tant les de RM com        les de càpsula. 

 

Per una banda, com que el mode 1 genera una matriu d’scatterplots quadrada        d’ordre N, on N és el nombre de variables representables (de tipus diferent de        ‘Pacient’) del fitxer RM filtrat, la informació representada en els triangles inferior i        superior de la matriu és redundant. Així, triangle inferior de l’SPLOM està compost        per gràfics de dispersió, mentre que el triangle superior mostra les línies de        regressió de les dades, permetent una anàlisi més àmplia. La Figura 6.10 mostra un        SPLOM generat per l’aplicació en mode 1. 

(40)

 

Figura 6.10. SPLOM de l’aplicació en mode 1 i dades de ressonància magnètica. Font:  elaboració pròpia 

 

Per altra banda, el mode 2 genera una matriu d’scatterplots de dimensió        MxN, on M representa el nombre de característiques representables del fitxer de        càpsula i N el del fitxer de RM. En aquest mode l’SPLOM no mostra les línies de        regressió. La Figura 6.11 mostra un SPLOM generat per l’aplicació en mode 2. 

 

 

Figura 6.11. SPLOM de l’aplicació en mode 2 i dades de ressonància magnètica. Font:  elaboració pròpia. 

   

Figure

Actualización...

Referencias

Actualización...

Related subjects :