Disseny i programació amb MATLAB d'algoritmes de processat...

153
Disseny i programació amb MATLAB d'algoritmes de processat de senyal per espectres de ressonància magnètica nuclear utilitzats en metabolòmica AUTOR: Víctor Rubias Rincón DIRECTOR: Xavier Correig Blanchar DATA: 09 / 2012.

Transcript of Disseny i programació amb MATLAB d'algoritmes de processat...

Page 1: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Disseny i programació amb MATLAB d'algoritmes deprocessat de senyal per espectres de ressonància

magnètica nuclear utilitzats en metabolòmica

AUTOR: Víctor Rubias RincónDIRECTOR: Xavier Correig Blanchar

DATA: 09 / 2012.

Page 2: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Índex

1

ÍNDEX

1. Introducció 31.1. Substrat del projecte 31.2. Interès clínic de l’anàlisi de lipoproteïnes 41.3. Motivacions i objectius 41.4. Desenvolupament del projecte 5

2. Els lípids i el risc cardiovascular 72.1. Lípids i lipoproteïnes 72.2. Classificació de les lipoproteïnes 82.3. Dislipidèmies 8

2.3.1. Hiperlipidèmies i hiperlipoproteïnèmies 92.3.2. Hipolipidèmies i hipolipoproteïnèmies 10

2.4. CVD: Malalties cardiovasculars 102.4.1. Interès clínic 102.4.2. Estudi de Framingham 112.4.3. Estudi de Framingham aplicat a les mostres del Vitage 14

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR 163.1. Introducció a la tècnica de difusió 1H-NMR 163.2. Interpretació dels resultats de la 1H-NMR 17

3.2.1. Pic del metil 173.2.2. Eix de la difusió: espectres 2D 20

3.3. Mètode de deconvolució 213.3.1. Justificació del mètode 213.3.2. Deconvolució del pic del metil 21

4. Obtenció i caracterització de dislipidèmies 244.1. Conjunt de mostres emprat: Vitage 244.2. Classificació de les mostres en classes segons el perfil lipídic 244.3. Obtenció dels paràmetres mitjans de cada classe 274.4. Reconstrucció del pic a partir dels paràmetres mitjans: creació

dels perfils31

4.5. Deconvolució dels perfils sintètics 354.6. Resutats i conclusions 38

5. Anàlisi de sensibilitat del mètode 395.1. Substrat de l’anàlisi 395.2. Modificació de l’alçada de les Lorentzianes 39

5.2.1. Errors produïts en les àrees 405.2.2. Errors produïts en els coeficients de difusió 45

5.3. Modificació dels coeficients de difusió de les Lorentzianes 475.3.1. Errors produïts en les àrees 485.3.2. Errors produïts en els coeficients de difusió 51

5.4. Modificacions combinades 525.4.1. Substrat de l’anàlisi 525.4.2. Errors produïts en les àrees 53

Page 3: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Índex

2

5.4.3. Errors produïts en els coeficients de difusió 545.5. Resultats i conclusions 55

6. Estudi dels efectes del fenomen de polidispersió en fraccions delipoproteïnes, en l’ajustament 2D

56

6.1. Descripció del fenomen 566.2. Creació de perfils de simulació de distribució dels coeficients 566.3. Resultats i conclusions 59

7. Efecte del soroll 607.1. Soroll en l’espectre 60

7.1.1. Generació i aplicació del soroll 607.1.2. Resultats 647.1.3. Conclusions 70

7.2. Unicitat de solucions 717.2.1. Resultats a partir de solucions inicials aleatòries 717.2.2. Resultats a partir de solucions inicials mitjanes 757.2.3. Conclusions 76

8. Conclusions finals 77

ANNEXES:Annex 0: Entorn de treball: Matlab 79Annex 1: Scores de Framingham 83Annex 2: Algoritme general de deconvolució 85Annex 3: Algoritme de reconstrucció i deconvolució dels 14perfils lipídics

95

Annex 4. Algoritme de les variacions de paràmetres de l’anàlisi desensibilitat del mètode de deconvolució

110

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat delmètode de deconvolució

121

Annex 6. Algoritme de l’efecte de polidispersió 131Annex 7. Resultats complets de l’efecte de polidispersió 134Annex 8. Algoritme de simulació de soroll 137Annex 9. Resultats complets de la simulació de soroll 142Annex 10. Algoritme de la comprovació de la unicitat desolucions

150

Page 4: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

1. Introducció

3

1. Introducció

1.1. Substrat del projecte

El present projecte està pensat com a suport a la tasca feta pel grup de recerca Sipomics, ungrup de recerca multidisciplinari format per químics, bioquímics, enginyers informàtics ide telecomunicacions que treballa en paral·lel amb la Metabolomics Platform1, un centrede recerca creat per la Universitat Rovira i Virgili i CIBERDEM2 (Centro de InvestigaciónBiomédica en Red de Diabetes y Enfermedades Metabólicas Asociadas), que té com aobjectiu principal oferir serveis metabolòmics als grups de recerca biomèdics i clínics deles dues entitats esmentades.

La visió principal de la Plataforma metabolòmica és no només actuar com un centre demesures analítiques, sinó intervenir en totes les etapes en un experiment metabolòmic(condicionament de la mostra, mesura analítica, pretractament de dades, tractament de lesdades i estadística, identificació de metabòlits -descoberta de biomarcadors- i significacióbiològica dels resultats). Això significa que la col·laboració ha de començar des delprincipi de l'estudi (definició d'objectius, la dimensió i les característiques del conjunt de lamostra, el disseny experimental del metabolisme) fins al final (processament i interpretacióde dades), ajudant a obtenir uns resultats clínics importants i útils pels diferents grups derecerca que vulguin utilitzar els serveis de les instal·lacions.

La distribució i composició de les lipoproteïnes és un marcador important per avaluar elrisc de patir malalties cardiovasculars, principal factor de mortalitat a dia d’avui. Latècnica de Ressonància Magnètica Nuclear permet mesurar la mida i la concentraciód’aquestes lipoproteïnes, entre molts altres compostos presents en mostres de biofluids. Estracta d’una tècnica molt robusta i fiable ha contribuït substancialment a la recercabioquímica i biomèdica.

A partir de tècniques de separació de lipoproteïnes basades en ultracentrifugació, es coneixque les mides de les diferents fraccions i la seva concentració son característiquesfonamentals en el moment de definir el risc cardiovascular. La recerca doncs, s’ha basat enl’estudi del mètode de fraccionament d’aquestes partícules a partir dels espectres RMN delserum/plasma. Aquest es basa en un algoritme de deconvolució que s’encarrega dedescompondre un fragment de l’espectre real en un conjunt de 9 funcions, els paràmetresde les quals permeten obtenir una aproximació dels nivells de cada lipoproteïna contingutsper la mostra de plasma o sèrum, de manera individual.

El projecte es centra en uns estudis de sensibilitat i robustesa del mètode de deconvolució3que s’empra per obtenir les fraccions de lipoproteïnes a partir d’espectres Diffusion-NMR45

Quelcom que atorga major rigor a l’estudi és el fet de treballar amb un conjunt de mostresd’individus reals, anomenada Vitage. Es tracta d’una base de dades formada per lescaracterístiques bioquímiques, així com pels espectres NMR, d’un conjunt de 177individus.

Page 5: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

1. Introducció

4

1.2. Interès clínic de l’anàlisi de lipoproteïnes

En aquest projecte s’ha treballat amb diversos tipus de lípids, principalment triglicèrids,colesterol HDL, conegut col·loquialment com a colesterol bo, i colesterol LDL, conegutcom a colesterol dolent. Cadascun d’aquests lípids té una funció de vital importància enl’organisme. Malgrat això, uns nivells anormals de triglicèrids o dels diferents tipus decolesterols, està estretament relacionat amb un risc elevat de patir una malaltiacardiovascular.

L’anàlisi clínic s’ha centrat en dues vessants: per una banda, s’han analitzat els tipus demalalties relacionades amb els nivells lipídics, ja siguin per excés o per defecte d’un delslípids. Aquestes disfuncions reben el nom de dislipèmies o dislipidèmies. A més, ambl’objectiu de testejar la robustesa dels mètodes de deconvolució que s’expliquen mésendavant, s’han creat uns perfils sintètics extrems de dislipèmies que permeten estudiarcom es comporten els models.

I d’altra banda, s’ha estudiat la relació entre aquests nivells i la probabilitat de patir unamalaltia cardiovascular (CVD). Això s’ha fet a partir d’un estudi ja existent: elFramingham6. D’aquesta manera, a cadascun dels pacients dels quals tenim la mostra se liha assignat un nivell de risc determinat d’acord amb aquest estudi.

Cal destacar la importància de l’estudi encarat a l’àmbit cardiovascular, ja que el fet detenir unes dades objectives per poder donar un diagnòstic totalment acurat i fiable a partird’uns paràmetres o factors prefixats, com són els nivells de colesterol i triglicèrids, l’edat,o el fet de patir diabetis o ser fumador, té un gran valor des del punt de vista mèdic.

1.3. Motivacions i objectius

L’objectiu principal d’aquest projecte és l’estudi de la robustesa i fiabilitat del mètode dedeconvolució referenciat prèviament, i assegurar-ne la seva utilitat com a eina d’anàlisi deles dislipidèmies, factor essencial en la estimació del risc cardiovascular de les persones.

Cal destacar que el fet de treballar amb dades reals afegeix un valor, un rigor, i unarobustesa addicional a tot allò que estem investigant: no treballem en base a suposicions,sinó que podem demostrar de manera empírica allò que investiguem.

Entrant més en detall, es poden enumerar una sèrie d’objectius clars:

- Classificar les mostres de què disposem segons les seves característiquesbioquímiques (nivell de colesterol i triglicèrids).

- Obtenir uns models o llibreries de dislipidèmies clarament diferenciats en funció dela classificació anterior.

- Estudiar el risc cardiovascular que comporta tenir uns nivells anormals decolesterol i/o triglicèrids, i caracterització individual d’aquest risc per cada pacient,en funció de l’estudi de Framingham.

- Estudi dels paràmetres extrets mitjançant ressonància magnètica nuclear (àrea icoeficient de difusió) de les classificacions anteriors i de les relacions entre ells.

Page 6: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

1. Introducció

5

- Anàlisi de sensibilitat del mètode de deconvolució en forçar modificacions en un odiversos paràmetres.

- Anàlisi del possible error degut al fenomen de la polidispersió, que és un efecte quees dóna degut a la mida diferent de les partícules presents en una subfracció, queafecta a la difusió d’aquestes, i en conseqüència, als valors dels coeficients dedifusió.

- Anàlisi definitiu de la robustesa de l’algoritme de deconvolució amb l’aplicació denivells de soroll reals, presents en els polsos de difusió utilitzats en la mesuraNMR, i verificació de la unicitat de solucions.

1.4. Desenvolupament del projecte

L’estructura de la memòria segueix un ordre estrictament cronològic, donat que és lamanera més transparent de veure quin ha estat el seguiment i l’evolució dels fets, elsdubtes que han anat apareixent i com s’han resolt, etc.

El segon capítol tracta dels lípids i de la relació dels nivells d’aquests amb el risccardiovascular, fent especial atenció a l’estudi de Framingham que ja s’ha anomenat.

En el tercer apartat es parlarà de la tècnica NMR, així com de l’algoritme utilitzat perdeconvolucionar el pic del metil.

El quart capítol fa referència a l’obtenció de diferents classes de dislipidèmies segons ellípid que estigui a un nivell fora dels límits que es consideren sans. Es parlarà del conjuntde mostres que s’ha utilitzat al llarg de la investigació, de la classificació final d’anomaliesi de les característiques de cadascuna d’aquestes, a partir de les quals hem fet diversescomprovacions i, fins i tot, hi hem basat gran part dels càlculs posteriors.

El cinquè apartat es centra en una anàlisi de sensibilitat, consistent a modificar elsparàmetres alçada i coeficient de difusió d’una de les funcions, i pretén observar si elmètode de deconvolució és capaç de retornar el resultat correcte, o bé compensa aquestamodificació d’una altra manera, és a dir, alterant els paràmetres d’alguna de les vuitfuncions restants. Es presentaran les variacions o errors produïts en les àrees i els mateixoscoeficients de difusió retornats per l’algoritme.

El sisè apartat està relacionat amb un efecte anomenat polidispersió esmentat anteriorment.Es sospitava que aquest efecte podia afectar al sistema, concretament al valor delscoeficients de difusió, i per aquest motiu s’ha fet la comprovació per demostrar el grau enquè aquest problema s’ha de tenir en compte, i en aquest cas, si fos necessari buscar unasolució per eliminar-lo.

El setè capítol és un estudi de la robustesa del mètode de deconvolució a partir de laintroducció artificial d’un soroll que emuli les característiques reals a l’espectre. L’interèsresideix en veure si l’algoritme és capaç de retornar el mateix resultat que quan lapresència de soroll era nul·la.

Aquest soroll s’aplicarà per separat en l’espectre i en la FID, per tal de simular mésfidelment l’efecte real. A més, s’aprofitarà per fer un anàlisi de la unicitat de solucions, a

Page 7: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

1. Introducció

6

través de la modificació de les solucions inicials del mètode, és a dir, el valor de partidaque pren l’algoritme a l’hora de fer l’ajustament o fitting dels paràmetres.

Per últim, s’inclouen els apartats de conclusions i referències.

Per completar el projecte, s’inclouen uns annexos que contenen els resultats complets detots els anàlisis duts a terme al llarg de la investigació, així com els algoritmes que s’hanutilitzat per arribar a les esmentades conclusions.

Així, l’annex 0 és una petita introducció que permet observar l’entorn de Matlab, elsoftware que s’ha utilitzat al projecte; l’annex 1 conté els resultats individuals per cadapacient de l’estudi de Framingham; el 2 explica l’algoritme de deconvolució emprat perfraccionar el pic del metil; el 3 conté l’algoritme que genera els diferents perfils dedislipidèmies, així com la deconvolució de cadascun; el 4 es centra en l’algoritme del’anàlisi de sensibilitat del mètode de deconvolució, consistent a variar els paràmetresindicats; el 5 conté els resultats de l’anàlisi de sensibilitat anterior; el 6 i el 7 contenen,respectivament, l’algoritme que simula el fenomen de polidispersió i els resultats d’aquestanàlisi; de la mateixa manera, el 8 i el 9 contenen l’algoritme i els resultats de la simulacióde l’efecte de soroll blanc; per últim, el 10 és l’algoritme encarregat de generar múltiplessolucions per comprovar-ne la unicitat.

Referències

[1] Metabolomics Platform, http://metabolomicsplatform.com [data de consulta: 1-8-2012]

[2] CIBERDEM, http://www.ciberdem.org/ [data de consulta: 1-8-2012]

[3] Roger Mallol, Miguel A. Rodríguez, Mercedes Heras, Maria Vinaixa, NicolauCañellas, Jesús Brezmes, Núria Plana, Lluís Masana, Xavier Correig. Surface fitting of 2Ddiffussion-edited 1H NMR spectroscopy data for the characterisation of human plasmalipoproteins. Springer Science+Business Media. Metabolomics (2011).

[4] Senn, Hans, Schlotterbeck, Goetz Cap. 3: NMR Spectroscopy Techniques forApplication to Metabolomics. The handbook of Metabonomics and Metabolomics: Lindon,John C., Nicholson, Jeremy K., Holmes, Elaine. 1a edició. Amsterdam (Països Baixos):ed. Elsevier, 2007. 561 pp. ISBN: 978-0-44-4528-41-4. pp. 55-112.

[5] Ala-Korpela, Mika, Lankinen, Niko, Salminen, Aino, Suna, Teemu, Soininen, Pasi,Laatikainen, Reino, Ingman, Petri, Jauhiainen, Matti, Taskinen, Marja-Riitta, HébergerKároly, Kaski, Kimmo. The inherent accuracy of 1H NMR spectroscopy to quantifyplasma lipoproteins is subclass dependent. Atherosclerosis, 2007, nº 190, pp. 352-358.

[6] Scott M. Grundy, Richard Pasternak, Philip Greenland, Sidney Smith, Jr and ValentinFuster. Assessment of Cardiovascular Risk by Use of Multiple-Risk-Factor AssessmentEquations : A Statement for Healthcare Professionals From the American HeartAssociation and the American College of Cardiology. Circulation, 1999, nº 100, pp. 1481-1492.

Page 8: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

7

2. Els lípids i el risc cardiovascular

2.1. Lípids i lipoproteïnes

Les lipoproteïnes són un marcador important que permet avaluar la probabilitat de patirmalalties cardiovasculars. Es tracta d’uns complexos macromoleculars compostos perproteïnes i lípids, que són els encarregats de transportar els greixos per l’organisme.

Malgrat i estar formades per un nucli de lípids, que són molècules apolars, les lipoproteïneses troben envoltades per una capa externa polar que fa que siguin solubles en aigua, demanera que això facilita el transport i la dissolució dels greixos en un entorn aquós com ésla sang.

Figura 2.1. Lipoproteïna, que conté diverses classes de lípids, i que es troba envoltada perla capa polar.

Els lípids són molècules clau per a la vida. Per exemple, els triglicèrids proporcionenenergia per als processos metabòlics, i els àcids grassos, colesterol i fosfolípids formen partde les membranes cel· lulars que, a més de tenir un paper com a precursors de molèculeshormonals són també constituents del sistema nerviós central i moduladors de senyalgenètic.

No obstant això, la seva estructura química hidrofòbica els fa incompatibles amb un mitjàaquós com és la sang. Per tal que els lípids circulin pel torrent sanguini i arribin als teixitsperifèrics, s'empaqueten en complexos macromoleculars, juntament amb les molècules deproteïnes. Això dóna lloc a les lipoproteïnes.

L'estructura general de les molècules de lipoproteïnes és esfèrica i es sintetitzen en el fetgei els intestins. Els lípids no polars (triglicèrids i èsters de colesterol) es troben dins del

Page 9: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

8

nucli, mentre que els lípids polars (fosfolípids i colesterol lliure) es distribueixen a travésd'una capa superficial.

2.2. Classificació de les lipoproteïnes

Un criteri per classificar les lipoproteïnes és la seva mida i, en conseqüència, la sevadensitat. El motiu és que la mida de la partícula va associada a una determinadacomposició, és a dir, les proporcions en què conté cadascun dels lípids. Així, podremdiferenciar entre els següents tipus de lipoproteïnes12:

- Quilomicrons: es tracta de partícules esfèriques molt grans que contenenprincipalment triglicèrids. Procedeixen de l’intestí, on capten aquests triglicèrids iels transporten. Aquestes partícules en persones sanes només es troben a la sangde forma post-prandrial.

- VLDL: Very low density Lipoproteins. Són les de densitat més baixa després delsquilomicrons, i per tant, les de mida més gran després d’aquests. Són segregadespel fetge, i s’associen amb els triglicèrids, ja que contenen aquest lípid enabundància. Un alt nivell de partícules VLDL és considerat com a dolent, ja quefacilita l’acumulació de triglicèrids a les parets de les artèries.

- IDL: Intermediate Density Lipoproteins. Tenen més densitat que les anteriors, pertant són més petites. Contenen triglicèrids, colesterol i proteïnes, a nivells similars.

- LDL: Low density Lipoproteins. Són de baixa densitat, tot i que més alta que lesanteriors. Són riques en colesterol, i estan estrictament relacionades amb el queanomenem colesterol “dolent”. De fet, un alt nivell d’aquestes partícules estàestretament relacionat amb el risc de patir un accident o malaltia cardiovasculars.

- HDL: High density Lipoproteins: Són les partícules més petites i denses. És el queanomenem colesterol “bo”, que rep aquest nom degut a que aquest tipus decolesterol recull el que les LDL han dipositat a les artèries, i per tant, una altaconcentració d’aquestes partícules actua com una protecció per al colesterol dolent(LDL), ja que evita que sigui aquest últim el que s’hi adhereixi.

2.3. Dislipidèmies3

Les patologies relacionades amb una determinada alteració dels nivells de lípids ilipoproteïnes reben el nom de dislipidèmies o dislipèmies.

Page 10: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

9

Aquestes malalties són un factor de risc cardiològic, ja que el colesterol té tendència aacumular-se a les parets de les artèries, obstruint-les cada vegada més. Especialmentimportant és el cas de l’artèria coronària, ja que la seva obstrucció provoca l’infart agut demiocardi, la principal causa de mort d’homes i dones en tot el món.

Un cop identificades les dislipidèmies, es poden corregir mitjançant dues vies: d’unabanda, el control de la dieta, i de l’altra, la medicació.

Es diferencien dos tipus de dislipidèmies: les hiperlipidèmies, que són les més habituals, iles hipolipidèmies.

2.3.1. Hiperlipidèmies i hiperlipoproteïnèmies4

Es tracta de nivells anormalment elevats d’algun lípid i/o lipoproteïna.

Tenim dos tipus de classificacions. La primera són pròpiament hiperlipidèmies, ja que esbasa en els lípids que es presenten en un nivell anormal, mentre la segona parteix de nivellselevats de lipoproteïnes, per tant parlem de hiperlipoproteïnèmies. Tot i que ambdós vanmolt relacionats i col·loquialment les englobem com a hiperlipidèmies, és convenient feruna diferenciació.

Així, podem trobar tres tipus d’hiperlipidèmies:

- Hipercolesterolèmia: nivell elevat de colesterol.- Hipertrigliceridèmia: nivell elevat de triglicèrids.- Hiperlipidèmia combinada: nivells elevats de colesterol i triglicèrids.

Pel que fa a les hiperlipoproteïnèmies, en trobem de sis tipus:

- Tipus I: nivell elevat de quilomicrons.- Tipus II-a: nivell elevat de LDL.- Tipus II-b: nivells elevats de LDL i VLDL.- Tipus III: nivell elevat de IDL.- Tipus IV: nivell elevat de VLDL.- Tipus V: nivells elevats de VLDL i quilomicrons.

Les anomalies relacionades amb els nivells de VLDL i LDL són les més habituals, tal comes mostra en la següent figura, que il·lustra l’abundància de cada tipusd’hiperlipoproteïnèmia.

Page 11: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

10

Figura 2.2. Predomini de cadascun dels tipus de hiperlipoproteïnèmies (font: Viquipèdia)

2.3.2. Hipolipidèmies i hipolipoproteïnèmies

En aquest cas, l’anomalia és per defecte d’un lípid i/o lipoproteïna.

En aquest cas, la classificació es redueix a un sol tipus d’hipolipidèmia, deguda a un nivellbaix de colesterol HDL o colesterol “bo”. De la mateixa manera que un nivell alt decolesterol HDL redueix substancialment el risc de patir un accident o malaltiacardiovascular, si el nivell d’aquesta lipoproteïna està per sota del llindar adequat, el risccardiovascular augmenta de manera considerable.

2.4. CVD: Malalties cardiovasculars

2.4.1. Interès clínic

És de gran utilitat poder establir un conjunt de relacions entre les diferents dislipidèmies iel risc cardiovascular; per això, al llarg del present projecte es pretén relacionar cada undels nivells anormals de lípids amb la probabilitat de patir aquestes malalties.

Com és evident, és una relació que ja fa molts anys que s’intenta establir. Un dels articlesmés interessants d’aquest àmbit és l’estudi de Framingham5, publicat a final de la dècadadels 70. És un estudi que estableix una relació entre ambdós fets, amb l’objectiu de poderarribar a classificar qualsevol pacient en un determinat nivell de risc en funció d’una sèriede factors relacionats amb les seves concentracions lipídiques, així com alguns altresfactors de risc.

Aprofitant que s’ha disposat de mostres reals, s’ha pogut establir aquest factor de risc percadascun dels individus del conjunt Vitage.

Page 12: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

11

2.4.2. Estudi de Framingham

Aquest estudi pretén reflectir fidelment la relació entre les dislipidèmies i les malaltiescardiovasculars. Ho fa mitjançant la ponderació d’una sèrie de factors de risc que escomparen amb un estat de risc baix predefinit. En funció del factor obtingut, es potclassificar cada pacient en un nivell de risc, permetent fer una aproximació de lespossibilitats que té de patir una malaltia del tipus coronari.

L’estudi enumera un conjunt de factors principals de risc que són els següents:

- Ser fumador- Pressió sanguínia elevada- Colesterol total elevat- Colesterol LDL elevat- Colesterol HDL excessivament baix- Patir diabetis- Edat avançada

A més, existeixen altres factors com la obesitat, inactivitat física, causes psicosocials oètniques, etc., que es consideren factors secundaris, i que no estan quantificats en l’estudi,malgrat que s’anomenen també com a factors de risc.

El que aclareix aquest estudi és la relació entre tots aquests factors i el que anomena risc deCHD (Coronary Heart Disease), que a banda de l’infart de miocardi, inclou altres tipus demalalties del mateix tipus, com la insuficiència coronària (angina de pit) i la mort sobtada.

L’estudi presenta diferents conceptes. El primer d’ells és el de risc absolut, que es defineixcom el risc de patir una CHD en els propers 10 anys.

També es defineix un estat anomenat low risk, o estat de baix risc, que estableix uns valorsdels paràmetres de risc pels quals, a qualsevol franja d’edat, el risc cardiovascular ésmínim. Dit d’una altra manera, són els valors ideals dels factors principals de risc queminimitzen el perill de patir una malaltia d’aquest tipus. Es poden observar aquests valorsen la següent taula:

Taula 2.1. Definició d'un estat de baix risc, d'acord amb l'estudi de Framingham.

Paràmetre Valor

Colesterol total 160-199 mg/dL

LDL-C (calculat) 100-129 mg/dL

HDL-C >45 mg/dL (homes) i >55 mg/dL (dones)

Pressió sanguínia <120 mm Hg (sistòlica) i <88 mm Hg (diastòlica)

Fumador No

Diabètic No

Page 13: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

12

D’altra banda, es defineix el concepte de risc relatiu com la ràtio entre el risc absolut il’estat de low-risk. Aquest últim ve predefinit per l’estudi en base al risc d’una personasana, tenint-ne en compte únicament el factor de l’edat.

Per calcular el risc absolut de cada pacient, l’estudi assigna a cada factor de risc unapuntuació (score) en base al seu valor. La suma dels valors de tots els factors permetobtenir un valor numèric que es tradueix directament en un determinat percentatge de risc.

Aquests scores es calculen en base a la taula següent:

Taula 2.2. Scores dels factors de risc

Un cop calculats els scores del pacient, ja es pot calcular el risc relatiu en funció de lestaules següents:

Page 14: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

13

Taula 2.3. Taula per obtenir el risc relatiu (homes).

Taula 2.4. Taula per obtenir el risc relatiu (dones).

Page 15: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

14

En funció de la ratio obtinguda segons els scores i la franja d’edat, es classifica cadapacient en funció del codi de colors:

Taula 2.5. Codi de colors pel risc relatiu.

2.4.3. Estudi de Framingham aplicat a les mostres del Vitage

Aquest estudi ha estat possible aplicar-lo sobre una mostra de dades reals anomenadaVitage, de la qual es disposa i que s’explicarà amb detall en apartats posteriors. Es tractad’una base de dades de 177 pacients, dels quals es té tota la informació bioquímica. Tambése’n coneix l’edat i la pressió sistòlica, dos dels factors inclosos a l’estudi. D’altra banda,s’ignoren els factors del tabac i la diabetis, malgrat que s’ha de suposar que en aquest últimcas els pacients no pateixen aquesta malaltia, ja que la mostra està formada per un conjuntde persones a priori sanes.

Partint de la hipòtesi de que es tracta d’una població sana, ja que els anàlisis estan fets a unconjunt d’individus sense antecedents de problemes relacionats amb colesterol, s’hanaplicat tots els passos de l’estudi de Framingham, obtenint els següents resultats:

- 81 pacients en estat low-risk, ja sigui degut a la baixa edat o a que els scores sónmolt baixos.

- 81 pacients amb risc per sota de la mitja.- 5 pacients amb risc mitjà- 8 pacients amb risc moderadament per sobre de la mitja- 2 pacients amb alt risc

Efectivament, excepte algunes excepcions que no arriben al 10% del total del conjunt, elsindividus del Vitage són sans.

A l’annex número 1 s’adjunten els resultats complets d’aquest estudi, amb el risc quecorrespon a cadascun dels pacients de la mostra.

Referències

[1] Wikipedia, Lipoprotein, http://en.wikipedia.org/wiki/Lipoprotein. 24 de gener de 2004[data de consulta: 7-8-2012].

[2] Jere Segrest. Lipids: classification and understanding . Atherotech, 43 pp.

[3] Wikipedia. Dislypidemia. http://en.wikipedia.org/wiki/Dyslipidemia 17 de setembre de2004 [data de consulta: 7-8-2012].

Page 16: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

2. Els lípids i el risc cardiovascular

15

[4] Wikipedia. Hiperlypidemia. http://en.wikipedia.org/wiki/Hyperlipidemia 29 de juliol de2004 [data de consulta: 7-8-2012].

[5] Scott M. Grundy, Richard Pasternak, Philip Greenland, Sidney Smith, Jr and ValentinFuster. Assessment of Cardiovascular Risk by Use of Multiple-Risk-Factor AssessmentEquations : A Statement for Healthcare Professionals From the American HeartAssociation and the American College of Cardiology. Circulation, 1999, nº 100, pp. 1481-1492.

Page 17: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

16

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

3.1. Introducció a la tècnica de difusió 1H NMR

L’espectrometria en Ressonància Magnètica Nuclear és una tècnica àmpliament utilitzadaper analitzar fluids i detectar la presència d’un determinat compost. En el cas que estiguisintonitzat per la detecció de protons, permet analitzar els compostos que el contenen. Enel cas de la metabolòmica, s’utilitza per mesurar els metabòlits presents en biofluids, comés el cas del serum/plasma. Es tracta d’un mètode que, des del seu descobriment l’any1940, ha esdevingut una eina molt potent en moltes disciplines, entre les quals es troba elcamp de la metabolòmica.

El procés consisteix en aplicar a la mostra un camp magnètic d’alta magnitud. Els spins omoments angulars dels àtoms que hi estan sotmesos, queden orientats en la direcciód’aquest camp.

A continuació, s’aplica un camp magnètic de radiofreqüència variable, que és el queanomenem irradiació. Aquest fet equival a l’aplicació d’un pols, el qual te l’efecte demodificar la orientació dels spins. En acabar la durada del pols, els spins es relaxen finsadquirir novament la posició inicial.

Degut al pols, d’acord amb la llei d’inducció electromagnètica de Faraday, s’haurà induïtun voltatge modulat amb una determinada freqüència de ressonància. L’amplitud d’aquestvoltatge serà directament proporcional al nombre de spins presents a la mostra. El senyalesmorteït que se’n deriva rep el nom de FID (Free Induction Decay).

Figura 3.1. Aspecte d’una FID.

Els diferents protons de cada molècula, en funció del seu entorn atòmic, generarà un senyalamb una constant d’esmorteïment característic. A través de la transformada de Fourierd’aquestes ones obtenim un conjunt de pics de determinada amplitud ressonant a unescertes freqüències, que estaran associats als esmentats hidrògens de la substància. Cadamolècula vindrà caracteritzada per un nombre de pics associat al nombre de protons,mentre que en alguns punts podem tenir una superposició de pics provinent de diferentsmolècules.

Page 18: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

17

Aquestes freqüències es representen al llarg d’un eix que anomenem chemical shift odesplaçament químic.

Cadascuna de les lipoproteïnes que han estat irradiades presenten una resposta NMR. Lasuma de totes aquestes respostes és el que anomenem envolvent.

Els lípids ressonen a freqüències diferents, de manera que, per analitzar les respostes delsdiferents tipus de lipoproteïnes, ens centrem en el pic del metil. Aquest pic es troba entreels punts 0.8 ppm i 0.9 ppm de l’eix del desplaçament químic. En aquest pic, com que elnombre de protons de la terminació metil dels triglicèrids coincideix amb els del colesterol(3 en cada cas), la intensitat del mateix no depèn de la composició de les lipoproteïnes,sinó del seu nombre.

Figura 3.2. Espectre freqüencial, obtingut en aplicar la transformada de Fourier a la FID.El pic destacat és el del metil.

3.2. Interpretació dels resultats de la 1H NMR

3.2.1. Pic del metil

La ressonància de la lipoproteïna depèn de la seva mida; així, les lipoproteïnes més granstenen la ressonància més a l’esquerra en l’eix del desplaçament químic. Per tant, si ensfixem en el pic del metil, un pic molt elevat a l’esquerra significarà un nivell alt detriglicèrids, que són els lípids continguts principalment pels quilomicrons i les VLDL; encanvi, un pic més elevat a la dreta implica un alt nivell de partícules HDL, és a dir, decolesterol bo.

Page 19: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

18

Si ampliem la part destacada de la figura 3.2., podem observar el pic del metil:

Figura 3.3. Pic del metil.

El pic anterior correspon al d’un pacient escollit de manera aleatòria del conjunt de mostresdisponible, en aquest cas amb un perfil associat a una persona sana. La forma que presentiens donarà una idea de quines lipoproteïnes hi predominen, i a quins nivells, de maneraque convé comparar els espectres de característiques més extremes per observar-ne lesdiferències entre ells. Per això, partint de les dades bioquímiques dels pacients amb elsvalors màxim i mínim de les concentracions de colesterol HDL i triglicèrids,respectivament, s’han representat a continuació els seus respectius pics del metil, quepermeten veure clarament la diferència entre ells.

Page 20: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

19

Figura 3.4. Es pot observar el contrast entre el pic del metil en dos pacients, els nivells detriglicèrids i colesterol LDL dels quals són molt propers entre ells, però un presenta elcolesterol HDL elevat (blau) i un altre molt baix (vermell).

Figura 3.5. En aquest cas, un dels individus presenta un elevadíssim nivell de triglicèrids(blau), mentre que l’altre (vermell) té un nivell molt baix.

Page 21: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

20

3.2.2. Eix de la difusió: espectres 2D

El sistema utilitzat inclou una altra dimensió: la de la difusió1. Mitjançant aquesta tècnicas’aplica un gradient de camp magnètic en la direcció z el qual “marca” les molècules enfunció de la seva posició original. Un cop acabat el pols, les molècules s’han desplaçat perdifusió (moviment Brownià), de manera que les molècules més grans donen més respostaja que difonen més lentament que les petites pel fet de ser més grans. La intensitatd’aquesta degradació depèn de la viscositat del plasma, de manera que com més viscos ésel medi, més lentament difonen les lipoproteïnes. L’equació de Stokes-Einstein2 (1)estableix la relació entre el coeficient de difusió i la viscositat del plasma.

(E3.1.) =On:

k = constant de Boltzmann

T = temperatura absoluta del fluid

η = viscositat

r = radi circular de la partícula, en Å (Àngstroms)

L’eix està format per una sèrie de gradients (en aquest cas 32), de manera que cadagradient té una amplitud menor que l’anterior.

Figura 3.6. Espectre 2D, on es representen els darrers 25 gradients. Es pot observar ladegradació a mesura que augmenta el gradient.

Page 22: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

21

Figura 3.7. Mateix espectre que a la figura 3.6., però representat en 1D amb els 25gradients corresponents. Cada espectre està més atenuat que l’anterior.

3.3. Mètode de deconvolució

3.3.1. Justificació del mètode

El mètode de deconvolució té com a objectiu la reconstrucció de diferents perfils del picdel metil mitjançant un conjunt de funcions Lorentzianes. D’aquesta manera es buscaidentificar quina és la contribució de cadascuna de les lipoproteïnes al pic del metil,associant cadascuna de les funcions a una d’aquestes partícules3.

3.3.2. Deconvolució del pic del metil

L’interès es troba, per tant, en identificar cada una de les lipoproteïnes en funció de ladistribució d’aquest pic. Segons la forma que presenti (un pic molt alt a l’esquerra, unaelevació a la dreta, una baixada de més o menys grau d’inclinació, etc.), la podrem associara un tipus determinat de dislipèmia.

Interessa per tant aïllar les diferents lipoproteïnes per tal de poder identificar-lesseparadament i associar-les a uns nivells determinats de lípids. Per això utilitzem unmètode que deconvoluciona aquesta corba en 9 funcions lorentzianes.

Page 23: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

22

Per tant, si som capaços de crear una corba a partir d’aquestes 9 funcions, i vice-versa,podrem obtenir per cadascun dels espectres una distribució diferent de funcions segons laseva forma i, d’aquesta manera, intuir el nombre de lipoproteïnes de cada tipus que sónpresents, associant-les directament amb algunes d’aquestes funcions.

Per la construcció de les funcions lorentzianes s’utilitza el següent model:

(E3.2.) = · ·On:

h = alçada de la funció

x = punts de l’espectre (ppm)

p = posició del màxim de la funció

w = amplada de la funció

k = constant

D = coeficient de difusió de la lipoproteïna

G = valor de l’atenuació del gradient corresponent

La primera de les funcions (F1) és una línia base que serveix per ajustar la posició entre elspunts 0.7 i 1 ppm per tal de poder eliminar la línia base. La resta de funcions són permodelar el pic del metil entre els punts 0.8 i 0.9 ppm.

El mètode és un algoritme basat en l’aproximació que és capaç de trobar solucions úniquesper cada espectre. Retorna paràmetres numèrics de cada Lorentziana, com l’alçada,amplada, posició, àrea i coeficient de difusió, que s’utilitzaran de manera pràctica en elsobjectius proposats.

El mètode compara la corba real amb la calculada amb uns valors determinats delsparàmetres. L’ajustament es fa mitjançant l’aproximació de mínims quadrats4. Es tracta detrobar un coeficient x que solucioni la següent fórmula:

(E3.3.)

On xdata és la variable matricial d’entrada, xdata la de sortida, i F la funció que s’obté.

Page 24: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

3. Anàlisi de lipoproteïnes mitjançant espectrometria NMR

23

A l’annex 2 es pot trobar l’algoritme complet comentat.

Referències

[1] Johnson, C.S. (1999). Diffusion ordered nuclear magnetic resonance spectroscopy:Principles and Applications. Progress in Nuclear Magnetic Resonance Spectroscopy, 34,203-256.

[2] John O'Mara Bockris,Amulya K.N. Reddy (1979). Plenum Publishing Corporation,New York, N.Y., U.S.A. Transport phenomena of liquid electrolytes. Modernelectrochemistry, vol. 1, 576-578.

[3] Roger Mallol, Miguel A. Rodríguez, Mercedes Heras, Maria Vinaixa, NicolauCañellas, Jesús Brezmes, Núria Plana, Lluís Masana, Xavier Correig. Surface fitting of 2Ddiffussion-edited 1H NMR spectroscopy data for the characterisation of human plasmalipoproteins. Springer Science+Business Media. Metabolomics (2011).

[4] R2012a Documentation - Optimization Toolbox – lsqcurvefit. Mathworks [en línia][data de consulta: 6/9/2012]<http://www.mathworks.es/help/toolbox/optim/ug/lsqcurvefit.html>

Page 25: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

24

4. Obtenció i caracterització de dislipidèmies

4.1. Conjunt de mostres emprat: Vitage

Malgrat que ja es va utilitzar en l’anàlisi de Framingham, a continuació s’explicarà a fonsel conjunt de mostres que s’ha utilitzat per a fer les proves pertinents de la investigació.

Es tracta d’un conjunt de 177 individus, sans en la seva majoria, dels quals disposem de laseva informació bioquímica amb tot detall. A més, disposem d’una altra informació vital,que és l’espectre NMR corresponent a cadascun d’aquests pacients, fet que ens permetoperar amb tots dos tipus de dades i trobar correlacions d’interès entre ambdues classesd’informació.

A partir d’aquí, s’ha optat per fer diversos tipus de classificacions, modificacions, etc. ambtotes les dades disponibles per tal de posar-les en comú, confirmar les hipòtesis ques’havien posat sobre la taula i extraure conclusions.

4.2. Classificació de les mostres en classes segons el perfil lipídic

La primera aplicació d’aquest conjunt consisteix a classificar els pacients segons unsdeterminats graus de dislipidèmia, posant com a criteri els nivells de diferents paràmetresbioquímics.

De les 177 mostres que presenta la base de dades del Vitage que s’han utilitzat, es podenobservar uns perfils molt diferenciats entre algunes d’elles. Per poder obtenir conclusionssobre els nivells dels diferents tipus de colesterol i triglicèrids, per tant, es presenta lanecessitat de classificar-les i agrupar-les en uns determinats perfils lipídics queanomenarem classes, en funció d’aquests nivells.

Per tant, s’ha decidit treballar amb les tres variables vitals per al diagnòstic de ladislipidèmia aterògena: colesterol HDL, colesterol LDL i triglicèrids.

S’ha decidit prescindir d’una altra variable de certa importància com és el colesterol total,perquè és un valor altament correlat amb els valors dels colesterols HDL i LDL, que jas’estan tenint en compte de forma individualitzada. Com a conseqüència, el gruix de dadesserà menor, ja que no interessa que aparegui un nombre excessiu de grups a laclassificació: no tindria sentit analitzar 40 ó 50 perfils de dislipidèmia diferents, donat quees tractaria d’un nombre molt elevat de classes i moltes d’elles estarien correlades.

D’aquesta manera, amb aquestes tres variables, es tindrà un nombre de grups declassificació força òptim per extreure informació.

S’ha classificat cadascuna de les nostres mostres en funció d’aquests 3 nivells deconcentració, tot prenent com a base la següent taula:

Page 26: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

25

Taula 4.1. Nivells de colesterol i triglicèrids utilitzats per a l’avaluació de risccardiovascular

mg/dL mmol/LColesterol a

TotalNivell desitjat <200 < 5.0Borderline 200 - 240 5.2 - 6.2Risc elevat > 240 > 6.2

HDLRisc elevat <60 <1.55Nivell desitjat >60 >1.55

LDLNivell desitjat <100 <2.59Proper al desitjat 100 – 129 2.59 - 3.34Borderline 130 – 159 3.36 - 4.11Risc elevat 160 – 189 4.14 - 4.89Risc molt elevat >190 >4.91

Triglicèrids b

TotalNivell desitjat <150 <1.69Borderline 150 – 199 1.70 - 2.25Risc elevat 200 – 499 2.26 - 5.65Risc molt elevat >500 >5.65

a 100 mg/dl = 2.586 mmol/l

b 100 mg/dl = 1.129 mmol/l

En base a aquests límits ens establim la següent classificació:

Taula 4.2. Nivells de colesterol i triglicèrids, versió adaptada

Lipoproteïna Nivells taula Nivell assignat

Triglicèrids Risc elevat / molt elevat Alt (>2.25 mmol/L)Borderline Limítrof (1.70-2.25 mmol/L)Desitjat Desitjat (<1.70 mmol/L)

LDL Risc elevat / molt elevat Alt (>4.14 mmol/L)Borderline Limítrof (3.36-4.14 mmol/L)Desitjat / proper al desitjat Desitjat (<3.36 mmol/L)

HDL Risc elevat Baix (<1.55 mmol/L)Desitjat Desitjat (>1.55 mmol/L)

Page 27: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

26

D’aquesta manera, el nombre de perfils que podem tenir és 3x3x2. Per tant, com a moltobtindrem 18 classes diferents per agrupar les mostres.

No obstant, a l’hora de dur a terme aquesta classificació, ens adonem que hi ha uns certsperfils que no es troben entre la població analitzada, ja que no tenim cap mostra que hipertanyi. Aquests són els casos on els triglicèrids són alts i el colesterol HDL també, un casque té un cert sentit bioquímic, ja que un excés de triglicèrids es sol associar a un dèficit deHDL. . Aquesta situació s’anomena dislipidèmia aterogènica1.

A més, cal especificar que, tot i que els individus del Vitage són, en principi, individussans, són pocs els que tenen un nivell de colesterol HDL considerat com adequat.

Això dóna lloc a que el nombre de classes resultant sigui de 14. Per fer-ho intuïtiu, acadascuna d’elles els hem assignat un número identificatiu, que es recull en la següenttaula:

Taula 4.3. Llegenda de classes i nombre d’individus que pertanyen a cadascuna

CLASSE TG LDL HDLNombre

d'individus1 alt alt baix 12 alt borderline baix 43 alt ok baix 34 borderline alt baix 15 borderline borderline baix 36 borderline ok baix 67 ok alt baix 158 ok borderline baix 299 ok ok baix 87

10 borderline alt ok 111 borderline ok ok 112 ok alt ok 213 ok borderline ok 914 ok ok ok 15

Aquestes 14 classes seran la base d’on partirem per realitzar tots els nostres càlculs icomprovacions.

Page 28: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

27

4.3. Obtenció dels paràmetres mitjans de cada classe

A partir d’ara cal treballar i analitzar bé aquestes 14 classes de perfils lipídics. El primerque s’ha fet, després de classificar totes les mostres als seus respectius grups, és crear unpic del metil estàndard per cadascuna d’aquestes classes. És a dir, s’ha creat un espectresintètic per cada classe individualment, format a partir de les mitjanes de totes les mostresque hi pertanyen.

Aquestes mitjanes provenen de la prèvia deconvolució dels pics del metil dels 177espectres del Vitage. El resultat d’aquesta deconvolució, com es detalla en els annexes, ésuna estructura de dades amb els paràmetres alçada, amplada, posició, coeficient de difusió iàrea de cadascuna de les lorentzianes que conformen el pic del metil de cadascun delsespectres.

A través d’un script, s’han obtingut els valors mitjans de cada paràmetre de cadascuna deles lorentzianes que conformen el pic de cada classe. Amb aquests valors mitjans podemverificar diverses hipòtesis, com ara que les classes que tinguin els triglicèrids més elevatspresentaran unes alçades més importants en les funcions que es troben més a l’esquerra; iel mateix amb les que tinguin un alt nivell de colesterol HDL, en aquest cas en les funcionsde la part dreta.

S’ha observat quina és la tendència tant de les àrees com dels coeficients de difusió de lesdiverses classes, obtenint el següent resultat:

Figura 4.1. Tendència de les àrees de les funcions F2-F8, amb les desviacions estàndard.S’ometen la primera i l’última (F1 i F9), ja que són funcions utilitzades per ajustar labanda base.

Page 29: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

28

En el cas de les àrees, veiem com especialment en les funcions 3 i 4 presenten uns valorsmolt elevats per les classes on el nivell de triglicèrids és més gran, que són de la 1 a la 6,10 i 11.

No és tan evident el cas de les LDL, ja que queden emmascarades per la resta de funcions,però les funcions 5 i 6 presenten valors més elevats en les classes on aquestes lipoproteïneses troben amb major concentració.

En les funcions 7 i 8 també es veuen valors més elevats per les classes 10-14, que són lesque tenen més partícules HDL.

Figura 4.2. Tendència dels coeficients de difusió de les funcions F2-F8, amb lesrespectives desviacions estàndard. S’ometen la primera i l’última pel mateix motiu.

En la figura anterior veiem que el valor del coeficient de difusió disminueix conforme hofa el nombre de funció, indicant que les funcions associades a lipoproteïnes més granstenen coeficients menors i per tant son més grans, demostrant la consistèmcia dels resultatsamb l’Equació d’Einstein-Stokes (E3.2.). Les funcions 3 (especialment) i 4 presentenvalors més baixos per les 6 primeres classes, i per la 10 i la 11. Es veu més clarament a laimatge següent:

Page 30: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

29

Figura 4.3. Coeficients de les funcions F3 i F4.

En els casos de les LDL, les classes que han de tenir coeficients més baixos són les quetenen més concentració d’aquest colesterol, és a dir, 1, 4, 7, 10 i 12. S’observa en lesfuncions 5 i 6.

Figura 4.4. Coeficients de les funcions F5 i F6.

Page 31: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

30

En el cas de les HDL presentaran coeficients més baixos en les 5 darreres classes. Calfixar-se en les funcions 7 i 8. Aquest resultat ens indica que les classes que tenen un nivellde colesterol HDL normal, el seu tamany és més gran que les que el tenen baix. Aquest fetconcorda amb les dades disponibles a la literatura1.

Figura 4.5. Coeficients de les funcions F7 i F8.

Page 32: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

31

4.4. Reconstrucció del pic a partir dels paràmetres mitjans: creació delsperfils

S’ha aconseguit obtenir uns pics sintètics que es consideraran els estàndards de cada classeo perfil lipídic dels que havíem creat.

Figura 4.6. Espectres mitjans de les 14 classes.

Per observar els resultats de manera més clara, es poden representar una sèrie de classesconjuntament per extreure conclusions.

Page 33: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

32

A continuació podem observar, en la primera figura, les classes que tenen els triglicèridsmés elevats, mentre que en la segona veiem les classes on els nivells de triglicèrids estanentre els considerats “normals”.

Figura 4.7. A dalt, espectres de les classes 1, 2, 3, 4, 5, 6, 10 i 11 (triglicèrids elevats oborderline); a baix, les classes 7, 8, 9, 12, 13 i 14 (triglicèrids normals).

Page 34: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

33

Pel que fa a les LDL, és més complicat veure una diferenciació clara entre els espectresmitjans de les classes amb valors borderline o alts i de les que tenen valors normals. Aixòés degut a què els pics dels triglicèrids i les HDL ho enmascaren.

Figura 4.8. A dalt, espectres de les classes 1, 2, 4, 5, 7, 8, 10, 12 i 13 (colesterol LDLelevat o borderline); a baix, les classes 3, 6, 9, 11 i 14 (colesterol LDL normal).

Page 35: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

34

Per últim, en el cas de les HDL, a l’igual que els triglicèrids, també es veu clar en quinscasos el nivell és baix (primera figura) i en quins altres és normal (segona figura).

Figura 4.9. A dalt, espectres de les classes 1, 2, 3, 4, 5, 6, 7, 8 i 9 (colesterol HDL baix); asota, les classes 10, 11, 12, 13 i 14 (colesterol HDL normal).

Page 36: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

35

4.5. Deconvolució dels perfils sintètics

El següent pas és comprovar si l’algoritme de deconvolució és capaç de reconstruir elsespectres sintètics, i veure si els valors que retorna són iguals als de partida, o bé la solucióque retorna no és correcta.

En aquest cas, els valors d’inici que prenen els paràmetres en l’algoritme de deconvoluciósón valors mitjans de cada paràmetre, de totes les mostres i totes les funcions. D’aquestamanera, l’algoritme parteix de valors força acotats, de manera que es facilita trobar lasolució correcta i s’accelera la convergència de l’algoritme.

Com es pot comprovar, l’algoritme és capaç de retornar la mateixa solució, amb uns errorsmínims. En la següent figura es mostren, superposades les superfícies sintètiques originalsi les deconvolucions retornades després d’aplicar-hi l’algoritme.

Es pot apreciar que l’error és ínfim, ja que les figures coincideixen a la perfecció. A travésd’un zoom del pic més alt, podem observar que es requereix una ampliació important de laimatge per a poder apreciar a simple vista aquestes diferències.

Page 37: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

36

Figura 4.10. A dalt, perfils originals i deconvolucionats superposats; a baix, ampliació delpic més alt de la imatge anterior, per observar el mínim error obtingut.

A continuació es mostren diverses taules amb els errors entre els paràmetres àrea icoeficient de difusió per a cada funció, abans i després de la deconvolució. L'error estàcalculat a partir de la fórmula següent:

(%) = é ó − · 100

Page 38: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

37

Taula 4.4. Errors entre àrees abans i després de la deconvolució (%)CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F9

1 -6,73E-06 -3,94E-05 1,22E-05 5,63E-05 -1,37E-04 -3,03E-05 6,56E-05 -4,04E-05 1,37E-05

2 -1,28E-08 3,30E-08 -8,60E-08 3,67E-07 -1,15E-06 -1,19E-06 7,28E-06 -1,13E-05 7,47E-06

3 7,26E-10 1,15E-10 1,22E-09 -6,32E-09 2,45E-08 2,84E-08 -1,59E-07 2,40E-07 -1,41E-07

4 1,00E-09 -1,79E-08 3,96E-08 -5,53E-08 5,83E-08 -5,97E-08 4,95E-08 -2,61E-09 -2,12E-08

5 -5,54E-06 1,88E-05 -7,76E-05 3,79E-04 -4,69E-04 -1,03E-04 1,48E-04 -8,86E-05 2,84E-05

6 -2,81E-07 1,73E-05 -3,24E-05 1,04E-04 -1,14E-04 -7,82E-05 2,29E-04 -3,08E-04 1,41E-04

7 1,10E-08 1,40E-07 -5,52E-08 -8,36E-08 1,11E-07 -3,56E-08 1,98E-08 2,88E-08 -4,42E-08

8 1,13E-08 1,27E-07 -9,88E-08 3,89E-08 5,04E-08 -1,71E-07 1,88E-07 6,32E-08 -2,19E-07

9 1,20E-07 -8,63E-08 1,48E-06 -3,08E-06 2,78E-06 2,60E-06 -1,43E-05 2,33E-05 -1,38E-05

10 3,03E-06 8,00E-05 -7,53E-06 -4,39E-05 4,36E-05 1,76E-05 -3,48E-05 2,72E-05 -1,62E-05

11 -5,30E-07 1,22E-05 -4,69E-05 8,50E-05 -2,97E-05 -6,52E-05 1,34E-04 -1,04E-04 5,50E-05

12 2,33E-07 2,26E-06 1,59E-06 -1,58E-05 3,69E-05 4,43E-08 -1,81E-04 4,87E-04 -4,59E-04

13 1,22E-07 -3,21E-07 -8,11E-07 8,03E-07 1,79E-06 -9,83E-06 2,89E-05 -2,68E-05 8,57E-06

14 1,93E-09 3,34E-07 -3,67E-07 9,77E-08 4,58E-07 -6,13E-07 2,71E-08 8,67E-07 -8,25E-07

I el mateix pel cas dels coeficients de difusió:

(%) = é ó − · 100Taula 4.5. Errors entre coeficients abans i després de la deconvolució (%)CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F9

1 4,66E-06 -2,28E-05 -5,66E-06 1,45E-05 1,90E-05 -1,72E-05 -8,94E-07 1,12E-06 -1,77E-06

2 -2,03E-08 4,99E-10 -1,29E-08 2,48E-08 -3,33E-08 -6,08E-07 2,14E-07 1,15E-07 -1,07E-06

3 4,57E-10 3,62E-10 2,27E-10 -5,70E-10 -8,95E-10 1,19E-08 -5,57E-10 1,81E-09 3,80E-08

4 1,24E-09 9,35E-09 7,09E-09 7,42E-09 8,63E-09 9,68E-09 -2,20E-10 6,66E-09 2,46E-09

5 3,88E-06 6,55E-06 -1,75E-05 8,79E-06 4,78E-05 -4,24E-05 -4,11E-06 7,54E-06 -3,57E-06

6 7,64E-08 4,98E-06 -4,31E-06 1,33E-06 1,96E-05 -2,00E-05 -4,73E-06 1,63E-06 -2,41E-05

7 -4,10E-09 5,64E-08 -7,86E-09 -1,38E-08 8,87E-09 3,96E-09 -2,02E-09 3,05E-09 4,99E-09

8 -2,41E-09 3,31E-08 -1,48E-08 -3,97E-09 2,58E-08 -1,03E-08 -2,41E-08 8,58E-09 2,69E-08

9 -2,07E-08 5,34E-08 1,62E-07 -2,65E-08 -3,24E-07 7,15E-07 -1,21E-07 5,02E-08 2,70E-06

10 -2,82E-06 3,10E-05 9,04E-06 -6,66E-06 -1,36E-05 3,81E-06 1,30E-06 -5,28E-07 3,01E-06

11 1,53E-06 1,24E-05 -2,43E-06 2,52E-06 2,65E-05 -3,66E-06 -5,03E-06 -3,60E-07 -1,50E-05

12 4,39E-07 8,85E-07 1,53E-06 -1,34E-06 1,53E-06 1,64E-05 -1,57E-05 1,52E-05 7,98E-05

13 2,50E-08 -3,05E-08 3,39E-08 -2,63E-07 9,90E-07 -4,05E-07 -3,29E-07 9,35E-07 -2,06E-06

14 -9,88E-10 1,23E-07 -3,39E-08 -6,64E-08 1,29E-07 3,00E-08 -6,61E-08 4,17E-08 1,90E-07

S’observa com els errors són negligibles, ja que es parla de percentatges que en cap delscasos, ni àrees ni coeficients, arriba 0.001%. Per tant, podem concloure que el mètode de

Page 39: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

4. Obtenció i caracterització de dislipidèmies

38

deconvolució és capaç de trobar fidelment els paràmetres originals i que sempre arriba a lasolució correcta (unicitat de la solució).

A l’annex 4 es pot trobar l’algoritme que calcula les mitjanes, genera els perfils i elsdeconvoluciona, amb els correponents comentaris.

4.6. Resultats i conclusions

Podem concloure diverses coses:

En primer lloc, es confirma que una elevació a la part esquerra del pic del metil és sinònimd’un nivell de triglicèrids alt; de la mateixa manera, un pic elevat a la dreta significa que elcolesterol HDL pren valors més elevats.

Pel que fa al colesterol LDL, no el podem predir a simple vista, ja que queda emmascaratpels dos altres pics, i és més difícil de quantificar. A través de la deconvolució,posteriorment, s’intenta resoldre aquest problema.

També és de vital importància el fet que ha estat possible trobar aquests perfils estàndardque permetin associar un determinat pic del metil d’un pacient determinat amb unadeterminada dislipidèmia en concret o bé amb un amb un bon estat de salut.

A més, a partir dels espectres sintètics generats a partir de valors mitjans, i que es potobservar que no presenten cap diferència destacable respecte d’un espectre real qualsevol,és possible realitzar altres comprovacions. Aquests 14 perfils, per tant, serviran com a baseper als estudis posteriors.

Referències

[1] Diabetologia. 2003 Jun;46(6):733-49. Epub 2003 May 28. Diabetic dyslipidaemia:from basic research to clinical practice. Taskinen MR.

Page 40: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

39

5. Anàlisi de sensibilitat del mètode

5.1. Substrat de l’anàlisi

S’ha comprovat en l’apartat anterior que l’algoritme de deconvolució és una eina moltpotent per l’objectiu buscat, i que és capaç de retornar amb una gran perfecció els valorsinicials de tots els paràmetres de les 9 funcions lorentzianes de qualsevol espectre, ja siguireal o sintètic.

Malgrat aquesta comprovació, és necessari posar a prova l’algoritme per veure si encondicions extremes els resultats continuen sent adequats o si, d’altra banda, té algun tipusde condició on no treballi adequadament, i per tant, que s’hagi de tenir en compte isolucionar-lo d’una o altra manera.

La primera de les comprovacions consisteix a modificar els valors habituals delsparàmetres, portant-los a uns extrems que molt probablement seran irreals en molts casos.Tanmateix, si en aquests valors extrems l’algoritme de deconvolució també retorna elsvalors d’inici, es pot confirmar que l’algoritme és robust i no presenta cap esquerda permolt estranys que siguin els valors de les concentracions de lipoproteïnes d’un pacient.

El procés que s’ha seguit és el de modificar els paràmetres alçada i coeficient de difusió demanera individual i per cadascuna de les nou funcions. Les variacions són d’uns certspercentatges respecte del seu valor real. En acabat, també s’han variat tots dos paràmetresde manera simultània.

Cal especificar que les variacions s’aplicaran sempre a les 14 classes mitjanes obtingudes.Com ja s’ha comentat, a partir d’ara aquestes classes seran la base per a totes lescomprovacions.

5.2. Modificació de l'alçada de les Lorentzianes

El primer paràmetre subjecte a modificació ha estat l’alçada. El que interessa observar éscom varia l’àrea i els coeficients de difusió després de deconvolucionar. Les variacionsaplicades han estat d’un ±5%, ±20% i +100%.

Un cop fet tot el procés, s’han calculat els errors entre les mesures a través de la següentfórmula pel cas de les àrees:(%) = − · 100

Page 41: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

40

I la mateixa pels coeficients:(%) = − · 100Les taules que contenen els errors es mostren a l’annex número 5; a continuació es mostrenels resultats expressats en forma de diagrames de barres, per tal de fer-ho de manera mésconcisa i entenedora.

5.2.1. Errors produïts en les àrees

La majoria d’errors mitjans són pràcticament nuls per moltes classes, de manera quel’anàlisi es pot centrar en les classes on els errors són més significatius (classes 1, 10 i 12):

Page 42: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

41

Figura 5.1. Gràfiques de barres per observar els errors mitjans més grans per les classesseleccionades.

Concretament, l’anàlisi es pot centrar en la classe 1, que com es pot observar en lesgràfiques i taules anteriors, és la que presenta aquests errors més elevats.

Analitzem a fons els errors individuals d’aquesta classe, tot mostrant la taula completa detotes les variacions i els errors induïts en cada lorentziana:

Page 43: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

42

Variació (%) Lorentziana variada F1 F2 F3 F4 F5 F6 F7 F8 F9-20 F1 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00

F2 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F3 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F4 0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F5 -0,00 -0,00 0,00 0,00 0,00 -0,00 0,00 -0,00 0,00F6 -0,00 -0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00F7 -0,00 -0,00 0,00 0,00 -0,00 -0,00 -0,00 -0,00 0,00F8 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F9 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 -0,00

-5 F1 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00F2 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F3 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F4 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F5 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F6 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F7 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F8 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00F9 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00

5 F1 -0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F2 0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F3 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F4 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F5 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F6 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00F7 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F8 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 -0,00 -0,00F9 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00

20 F1 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F2 0,00 -0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F3 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 0,00 -0,00F4 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F5 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F6 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F7 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F8 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F9 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00

100 F1 -0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00F2 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F3 -0,58 -10,10 1,69 -0,41 -1,37 4,51 -0,17 -16,16 15,53F4 -0,77 -5,60 -1,91 2,80 -5,65 10,94 -2,48 -35,31 33,14F5 0,00 0,00 -0,00 -0,00 -0,00 0,00 -0,00 0,00 -0,00F6 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F7 -0,00 0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F8 -0,01 0,09 -0,42 0,49 0,04 -0,29 -0,09 0,07 0,07F9 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00

Taula 5.1. Anàlisi de la classe 1, que és la que presenta els errors mitjans més significatius

Page 44: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

43

Els errors elevats es produeixen quan la variació aplicada és màxima. L’error més gran ésd’un 35% en àrea, cosa que no s’ha de confondre amb un error només en l’alçada, ja quel’àrea depèn precisament de l’amplada i l’alçada de la funció; per tant, l’error de 35% ésderivat d’ambdós paràmetres, i podem considerar que no és un error molt crític, sinó que estroba dins d’uns marges acceptables.

Si ens centrem en les variacions del 100%, podem fer una gràfica per observar la tendènciadels errors.

Figura 5.2. Errors en cada lorentziana degut a la variació de les 9 funcions respectives.

Es pot observar una tendència clara, i és que les funcions 8 i 9 presenten uns errors méselevats que la resta de funcions, especialment en variar les lorentzianes 3 i 4.

Page 45: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

44

Figura 5.3. Variació de 100% de l’alçada de la Lorentziana 3. S’observen els errors mésgrans en les funcions 8 i 9.

Figura 5.4. Variació de 100% de l’alçada de la Lorentziana 4. Es pot observar el mateixque abans.

D’aquest fet podem concloure que els errors més grans es veuen reflexats en les funcionsde menys pes, que són les dues darreres. En general, els valors retornats per l’algoritme enels casos estudiats són del tot satisfactoris. A més, es pot observar que els errors sónbidireccionals pel que fa al seu signe, de manera que es van compensant entre una i altralorentziana.

Page 46: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

45

5.2.2. Errors produïts en els coeficients de difusió

Les classes amb errors més significatius són la 1, la 10 i la 12:

Figura 5.5. Gràfiques de barres per observar els errors mitjans més grans per les classesseleccionades.

Page 47: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

46

La classe 1 torna a ser la que més error presenta. Observem a fons els errors d’aquesta.

Variació (%) Lorentziana variada F1 F2 F3 F4 F5 F6 F7 F8 F9-20 F1 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00

F2 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F3 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F4 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F5 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F6 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F7 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F8 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F9 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00

-5 F1 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F2 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F3 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F4 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F5 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F6 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F7 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F8 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F9 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00

5 F1 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F2 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F3 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F4 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F5 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F6 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F7 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F8 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F9 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00

20 F1 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F2 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F3 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00 -0,00F4 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F5 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F6 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F7 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F8 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F9 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00

100 F1 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F2 0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 -0,00F3 -0,24 6,42 0,32 -0,43 0,46 -0,03 -1,34 0,57 2,36F4 -0,21 4,05 1,33 0,14 -0,08 -0,83 -2,71 0,88 5,98F5 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F6 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00F7 0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 -0,00F8 -0,01 -0,11 0,08 0,10 -0,20 -0,15 0,03 -0,01 -0,01F9 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00

Taula 5.2. Anàlisi de la classe 1, que és la que presenta els errors mitjans més significatius

Page 48: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

47

Com abans, els errors més grans es troben quan la variació és del 100% en l’alçada. Noobstant, els tants per cent d’errors no són tan elevats com en les àrees, i com a màximarriben al 6%.

Centrem-nos en els casos amb els errors més grans:

Figura 5.6. Errors en cada lorentziana degut a la variació de les 9 funcions respectives.

Com era de preveure, les funcions amb els errors més grans són les dues darreres, tot i queen aquest cas també apareix un error força gran en la funció 2, que també és una de les queté menys pes.

De la mateixa manera que amb les àrees, es pot concloure que els errors en els coeficientses troben dins uns marges del tot acceptables.

5.3. Modificació dels coeficients de difusió de les Lorentzianes

A continuació, el paràmetre subjecte a modificació és el coeficient de difusió. Això afectaa la tercera dimensió de l’espectre, ja que en funció del valor d’aquest coeficient, lesfuncions s’atenuen en major o menor grau.

Degut a que els valors d’aquests coeficients estan molt acotats, s’han imposat unesvariacions del ±5% i ±10%, que són uns valors força realistes.

Page 49: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

48

Es repeteix de manera idèntica tot el procediment que s‘ha seguit amb la variació de lesalçades, amb els errors calculats mitjançant les mateixes fórmules.

5.3.1. Errors produïts en les àrees

Les classes que presenten més error són la 4, la 10 i la 12.

Figura 5.7. Gràfiques de barres per observar els errors mitjans més grans per les classesseleccionades.

Page 50: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

49

La classe 10 és la que s’analitza a fons, ja que és la que més error presenta:

Variació (%) Lorentziana variada F1 F2 F3 F4 F5 F6 F7 F8 F9-10 F1 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00 0,00

F2 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00F3 -0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F4 -0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 0,00F5 -0,00 -0,00 0,00 0,00 -0,00 -0,00 0,00 -0,00 -0,00F6 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00 -0,00F7 -0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F8 -0,00 0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F9 -0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00

-5 F1 -0,00 0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F2 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F3 0,02 0,57 -0,20 0,07 0,10 -0,95 2,30 -1,69 0,13F4 -0,00 0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00F5 0,00 0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F6 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F7 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 -0,00F8 -0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F9 -0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00

5 F1 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00F2 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F3 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00F4 0,01 0,21 -0,09 0,04 0,03 -0,21 0,45 -0,31 0,01F5 0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F6 0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F7 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 -0,00 0,00 -0,00F8 0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F9 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00 -0,00

10 F1 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00 -0,00F2 0,00 0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F3 -0,00 -0,00 0,00 -0,00 -0,00 -0,00 0,00 -0,00 0,00F4 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00F5 -0,00 -0,00 0,00 -0,00 0,00 0,00 -0,00 0,00 -0,00F6 -0,00 -0,00 0,00 -0,00 -0,00 0,00 -0,00 0,00 -0,00F7 -0,00 -0,00 -0,00 0,00 -0,00 -0,00 -0,00 0,00 -0,00F8 -0,00 -0,00 0,00 -0,00 -0,00 0,00 0,00 -0,00 0,00F9 0,00 0,00 -0,00 0,00 -0,00 -0,00 -0,00 0,00 -0,00

Taula 5.3. Anàlisi de la classe 10, que és la que presenta els errors mitjans més significatius

Page 51: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

50

Figura 5.8. Errors en cada lorentziana degut a la variació de les 9 funcions respectives.La funció 3, que és la més gran, és la que provoca un error major.

Es pot observar, curiosament, que els errors més grans apareixen quan la variació aplicadaal coeficient és menor, fet que permet afirmar que la modificació de magnitud de 5% i 10%del coeficient de difusió, pràcticament no afecta a les àrees finals, ja que els errors nosegueixen cap tipus de relació en augmentar la variació aplicada. A més, en qualsevol cas,els valors dels errors són petits (en el cas més desfavorable, l’error està al voltant del 2%).

Segueix donant-se la dinàmica vista anteriorment, com es pot observar en la figura 5.8.: lesfuncions de menys pes són les que més error presenten.

Page 52: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

51

Figura 5.9. Variació de -5% del coeficient de la funció 3.

A la figura anterior es pot veure l’error degut a la variació de la funció 3, que és el cas mésdesfavorable. L’error més gran apareix en la lorentziana 7, i té un valor del 2,3%.

5.3.2. Errors produïts en els coeficients de difusió

En aquest cas, s’observa com l’algoritme és capaç de retornar de manera totalment fidel elsvalors dels coeficients de difusió malgrat la seva variació. Les classes 10 i 12 són les quepresenten uns errors més destacables, i aquests estan al voltant del 0,01%, de manera quepràcticament és negligible.

Page 53: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

52

Figura 5.10. Gràfiques de barres per observar els errors mitjans més grans per les classesseleccionades.

5.4. Modificacions combinades

5.4.1. Substrat de l’anàlisi

Per acabar amb l’anàlisi de la robustesa del mètode de deconvolució, s’ha fet una variacióconjunta dels paràmetres alçada i coeficient de difusió. Aquesta decisió no s’ha pres deforma aleatòria, sinó que està darrere d’una hipòtesi que es vol comprovar i que és de granimportància.

El dubte que es planteja és si el pic de l’esquerra de l’espectre, que està estrictament lligatal nivell de triglicèrids, pot arribar a emmascarar el nivell de colesterol HDL, ques’observa a la part dreta del pic del metil. Aquest cas es donaria quan el pic situat al’esquerra tingui uns valors molt elevats.

Page 54: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

53

Si parlem de la deconvolució d’un espectre, podem considerar que el pic de l’esquerra eldefineixen clarament tres funcions: F2, F3 i F4. Per tant, modificarem simultàniament elsvalors dels paràmetres d’aquestes 3 funcions, provocant un pic molt elevat, amb diferentsnivells de difusió.

Cal especificar que els canvis en els paràmetres consisteixen en un augment de l’alçadad’un 100%, 200% i 300%, i d’una reducció dels coeficients de difusió en un factor 1, 2 i 3.En altres paraules, si considerem k el valor inicial del coeficient, ara presentarà els valors k,2k i 3k. D’altra banda, els valors dels coeficients de difusió, considerant n el valor inicial,seran n, n/2 i n/3.

Per reduir la quantitat d’informació, s’ha actuat únicament sobre dues classes concretes:una de normolipidèmica, que és la classe 9, i una amb els triglicèrids ja de per si elevats,com és la 3. Es mostren els resultats corresponents a aquesta última, donat que és unaclasse que correspon a la dislipidèmia aterogènica (colesterol HDL baix, triglicèridselevats). D’aquesta manera, modificant els paràmetres de les tres funcions indicades, el ques’aconsegueix és fer molt més gran el nivell de triglicèrids i, per tant, de les partículesVLDL.

5.4.2. Errors produïts en les àrees

Es pot veure com clarament l’algoritme retorna amb total precisió els valors inicials de lesàrees, malgrat que estem parlant de modificacions prou elevades. Els errors més grans sónde l’ordre de 10-5, fet que és un molt bon senyal.

Variació (H) Variació (D) F1 F2 F3 F4 F5 F6 F7 F8 F9100% -3,5E-09 -7,0E-09 1,3E-08 -5,4E-08 7,3E-08 2,8E-07 -4,9E-07 2,4E-07 3,4E-08200% 4,4E-08 3,8E-08 1,9E-08 -5,0E-07 1,9E-06 6,8E-06 -2,4E-05 2,8E-05 -1,3E-05300% 5,7E-08 7,4E-08 -4,2E-08 -4,3E-07 2,1E-06 9,2E-06 -3,3E-05 3,8E-05 -1,8E-05100% -1,3E-09 -4,4E-10 -7,9E-10 4,8E-09 -3,7E-08 -4,1E-08 2,2E-07 -3,2E-07 1,8E-07200% -1,7E-09 -1,2E-09 9,2E-10 3,0E-10 -2,7E-08 -2,1E-08 2,1E-07 -3,5E-07 2,2E-07300% 3,7E-10 1,3E-10 -1,9E-10 -1,5E-09 1,0E-08 7,6E-08 -2,3E-07 2,4E-07 -9,6E-08100% -5,1E-10 -7,1E-11 -3,6E-10 1,9E-09 -1,9E-08 -2,7E-08 1,2E-07 -1,6E-07 8,7E-08200% -1,6E-09 -8,4E-10 6,1E-10 1,8E-10 -2,7E-08 -1,7E-08 2,0E-07 -3,5E-07 2,3E-07300% 6,0E-08 3,0E-08 -3,7E-08 3,2E-08 1,1E-06 8,2E-10 -7,3E-06 1,3E-05 -7,7E-06

Taula 5.4. Error àrees (%)

100%

200%

300%

Page 55: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

54

Figura 5.11. Gràfic de barres on es pot observar la tendència dels errors. Es manté laconstant de l’error més gran en les funcions de menys pes.

5.4.3. Errors produïts en els coeficients de difusió

Si amb les àrees els resultats havien estat més que acceptables, els errors en els coeficientsencara són més ínfims, de l’ordre de 10-6. Per tant, clarament l’algoritme retorna fidelmentels valors inicials, malgrat l’aplicació de valors extrems.

Figura 5.12. Gràfic de barres on es pot observar la tendència dels errors.

Taula 5.5. Error coeficients (%)Variació (H) Variació (D) F1 F2 F3 F4 F5 F6 F7 F8 F9

100% 100% -3,67E-09 -9,29E-09 2,43E-09 -1,03E-08 -4,85E-08 4,04E-08 1,96E-08 8,80E-10 2,07E-08200% 1,51E-08 -7,14E-08 -2,35E-08 -3,54E-07 -4,87E-07 1,67E-06 3,05E-07 4,55E-08 3,93E-06300% 2,78E-08 -1,34E-07 -5,73E-08 -6,45E-07 -4,79E-07 2,24E-06 3,78E-07 9,90E-08 5,48E-06100% -6,45E-10 -4,50E-10 -1,59E-10 3,80E-10 1,89E-09 -1,73E-08 -4,78E-10 -1,06E-09 -5,01E-08200% -1,32E-09 -1,23E-09 -2,49E-10 1,31E-09 -4,36E-09 -1,56E-08 1,67E-09 -1,46E-09 -5,69E-08300% 6,22E-11 -8,02E-10 -4,59E-10 -2,23E-09 -5,71E-09 1,48E-08 3,98E-09 -6,07E-10 3,01E-08100% -2,14E-10 -5,33E-11 -7,11E-11 2,07E-10 2,12E-09 -9,22E-09 -6,04E-10 -5,62E-10 -2,46E-08200% -1,28E-09 -8,25E-10 -1,86E-10 8,52E-10 -4,74E-09 -1,51E-08 2,09E-09 -1,83E-09 -5,89E-08300% 5,35E-08 3,87E-08 -8,51E-10 -5,20E-08 5,73E-07 5,37E-07 -3,40E-07 1,70E-07 2,01E-06

200%

300%

Page 56: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

5. Anàlisi de sensibilitat del mètode

55

Als annexos 4 i 5 es pot trobar tota la informació addicional relacionada amb aquestapartat: en el primer es comenten els algoritmes que s’han utilitzat per aplicar lesvariacions, i en el segon es poden trobar els resultats complets de l’anàlisi.

5.5. Resultats i conclusions

Òbviament, el resultat general en que es pot resumir el conjunt de processos realitzats ésque l’algoritme de deconvolució és del tot robust, fins i tot per valors extrems delsparàmetres alçada i coeficient de difusió. L’algoritme és capaç de retornar una solucióúnica que és precisament la correcta, ja que són els paràmetres inicials utilitzats.

També es pot concloure que un canvi en una sola funció és molt més dramàtic que uncanvi en tres funcions consecutives. Això pot ser degut a que, en modificar unalorentziana, provoca un pic en un lloc concret, generant-se un espectre fora de l’habitualque provoca que l’algoritme tingui una mica més de dificultat a l’hora de seguir-lo.

Per últim, confirmem la hipòtesi de que un pic molt elevat a l’esquerra no emmascararà elsvalors obtinguts a les funcions de la dreta, i per tant, no alterarà els nivells de colesterolHDL que es podien deduir de la forma de l’espectre i dels valors obtinguts endeconvolucionar-lo.

Page 57: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

6. Estudi dels efectes del fenomen de polidispersió en fraccions de LP, en l'ajustament 2D

56

6. Estudi dels efectes del fenomen de polidispersió en fraccionsde lipoproteïnes, en l'ajustament 2D

6.1. Descripció del fenomen

La polidispersió és un efecte degut a la no homogeneïtat en el tamany de les lipoproteïnesdins una mateixa fracció.

En mesurar les difusions, les partícules de mida més gran emmascaren a les més petites, jaque aquestes difonen més ràpidament. La difusió que es mesura és una mitjana ponderadade totes les difusions, de manera que si el sistema pondera més les partícules grans que lespetites, el resultat retorna un valor de tamany superior a l’esperat.

Per aquest motiu, s’ha buscat un sistema per simular la distribució dels coeficients. Estracta d’una suma de tres funcions lorentzianes en la mateixa posició del desplaçamentquímic, però amb diferents nivells de difusió que, segons la ponderació de cadascuna,provocaran una distribució centrada, o esbiaixada segons la desviació.

6.2. Creació de perfils de simulació de distribucions dels coeficients

A partir d’aquesta idea, s’han creat un conjunt de perfils, alguns força realistes, així comd’altres extrems per posar a prova el sistema.

El procés que s’ha seguit és el següent:

En primer lloc, s’ha calculat la mitjana dels coeficients de totes les classes per cadalorentziana, i s’ha obtingut el valor d’una desviació per sota i una per sobre d'aquestamitjana obtinguda.

Aquests 3 valors que s’obtenen, seran els valors dels coeficients de les 3 lorentzianes,respectivament, que simularan la distribució.

Lorentziana Mitjana-desviació MITJANA Mitjana+desviacióF2 0,370 0,579 0,787F3 0,643 0,821 0,998F4 0,950 1,127 1,304F5 1,224 1,565 1,906F6 3,009 3,289 3,568F7 4,055 4,291 4,526F8 4,466 4,698 4,930F9 6,055 6,406 6,756

TAULA 6.1. Mitjana dels coeficients de les 14 classes.

Page 58: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

6. Estudi dels efectes del fenomen de polidispersió en fraccions de LP, en l'ajustament 2D

57

Cal destacar l’absència de la funció 1, ja que aquesta és simplement la línia base, i s’hadecidit descartar-la per realitzar aquest anàlisi.

Tot seguit s’han ponderat les lorentzianes de diferents maneres, sempre a través del’alçada. Per fer-ho més intuïtiu s’ha ideat una senzilla nomenclatura que permet identificarcada perfil de manera directa i fàcil.

Es prenen uns valors base d'amplada (10) i alçada (10000) per construir les 3 lorentzianes ala mateixa posició. A partir d'aquests valors, es generen uns perfils. La nomenclatura ques’ha establert defineix el factor pel qual es multiplica l'alçada de la lorentziana en qüestió.

Exemple:

- Perfil <111>: les alçades de les 3 Lorentzianes seran 10000- Perfil <121>: l'alçada de la Lorentziana central serà el doble, 20000

D’aquesta manera es creen una sèrie de distribucions diferents que simulen aquest efectede polidispersió. Un cop reconstruïts els perfils establerts, es deconvoluciona la corbaobtinguda i el sistema retorna uns coeficients, que difereixen lleugerament dels queobtenim si la ponderació es fa de forma aritmètica. Observem aquests errors:

Es pot observar que en els perfils on la Lorentziana de l'esquerra és més gran, el valor delcoeficient s'apropa més al d'aquesta mateixa funció (veure taula 6.1.). El mateix passa quanla Lorentziana de la dreta és més gran: el valor del coeficient s'apropa més al coeficientoriginal d'aquesta funció.

També observem que mentre més elevada és la Lorentziana central, més emmascara lesaltres dues, i per tant, més s'apropa el valor del coeficient al valor de la mitjana.

Com era d’esperar, els errors presenten valors negatius, la qual cosa significa que elscoeficients que retorna la deconvolució són menors que els que s’haurien d’obtenir, quesón els que s’han ponderat de forma aritmètica. Per tant, això confirma la hipòtesi inicial:si els coeficients són més petits vol dir que s’estan ponderant més les partícules més grans.

No obstant, la diferència és pràcticament negligible, i per tant es pot afirmar que els efectesde la polidispersió són reduïts.

Per completar l’estudi, s’ha decidit aplicar una sèrie de perfils més extrems i refer elprocediment descrit anteriorment. Els resultats es mostren a continuació:

Perfil F2 F3 F4 F5 F6 F7 F8 F9111 -0,009 -0,006 -0,006 -0,021 -0,011 -0,007 -0,006 -0,011121 -0,007 -0,005 -0,004 -0,016 -0,008 -0,005 -0,004 -0,008211 -0,009 -0,006 -0,006 -0,020 -0,011 -0,007 -0,006 -0,010112 -0,009 -0,006 -0,006 -0,021 -0,011 -0,007 -0,006 -0,010210 -0,003 -0,002 -0,002 -0,007 -0,004 -0,003 -0,002 -0,003012 -0,003 -0,002 -0,002 -0,007 -0,004 -0,002 -0,002 -0,003131 -0,005 -0,004 -0,003 -0,013 -0,007 -0,004 -0,004 -0,006

TAULA 6.2. Error entre coeficient deconvolucionat i coeficient ponderat (perfils extrems) (%)

Page 59: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

6. Estudi dels efectes del fenomen de polidispersió en fraccions de LP, en l'ajustament 2D

58

Es confirmen els resultats del tot satisfactoris.

Per acabar, s’ha optat per buscar uns valors encara més extrems per posar a prova elsistema. Es tracta d’aplicar dues desviacions a l’hora de calcular els valors dels coeficientsde difusió de les funcions de l’esquerra i la dreta. Els nous valors obtinguts són elssegüents:

A partir d’aquí, es repeteix el procediment i s’obtenen els següents resultats:

Perfil F2 F3 F4 F5 F6 F7 F8 F9111 -0,009 -0,006 -0,006 -0,021 -0,011 -0,007 -0,006 -0,011121 -0,007 -0,005 -0,004 -0,016 -0,008 -0,005 -0,004 -0,008211 -0,009 -0,006 -0,006 -0,020 -0,011 -0,007 -0,006 -0,010112 -0,009 -0,006 -0,006 -0,021 -0,011 -0,007 -0,006 -0,010210 -0,003 -0,002 -0,002 -0,007 -0,004 -0,003 -0,002 -0,003012 -0,003 -0,002 -0,002 -0,007 -0,004 -0,002 -0,002 -0,003131 -0,005 -0,004 -0,003 -0,013 -0,007 -0,004 -0,004 -0,006411 -0,007 -0,005 -0,005 -0,017 -0,009 -0,006 -0,005 -0,009114 -0,008 -0,005 -0,005 -0,018 -0,009 -0,005 -0,005 -0,009410 -0,002 -0,002 -0,001 -0,005 -0,002 -0,001 -0,001 -0,003014 -0,003 -0,002 -0,002 -0,005 -0,002 -0,001 -0,002 -0,002141 -0,005 -0,003 -0,003 -0,011 -0,006 -0,004 -0,003 -0,005

TAULA 6.3. Error entre coeficient deconvolucionat i coeficient ponderat (%)

Lorentziana Mitjana-2*desviació MITJANA Mitjana+2*desviacióF2 0,162 0,579 0,996F3 0,465 0,821 1,176F4 0,773 1,127 1,482F5 0,882 1,565 2,247F6 2,730 3,289 3,847F7 3,819 4,291 4,762F8 4,234 4,698 5,162F9 5,705 6,406 7,107

TAULA 6.4. Mitjana dels coeficients de les 14 classes.

Page 60: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

6. Estudi dels efectes del fenomen de polidispersió en fraccions de LP, en l'ajustament 2D

59

Els resultats són molt similars als anteriors: els valors de la deconvolució són lleugeramentinferiors als valors ponderats aritmèticament, però la diferència és mínima, i per tantpodem considerar que l’efecte de polidispersió pràcticament és negligible.

Als annexos 6 i 7 es poden trobar l’algoritme utilitzat i els resultats complets,respectivament, d’aquest capítol.

6.3. Resultats i conclusions

En primer lloc, s’han comprovat empíricament i a través dels resultats obtinguts lapresència del fenomen de polidispersió.

No obstant, segons els resultats anteriors, es pot concloure que no cal buscar cap mètodeper corregir o minimitzar el fenomen de la polidispersió, ja que l’efecte que produeix en elsvalors és mínim, i per tant podem assumir aquest petit error que es produeix.

Perfil F2 F3 F4 F5 F6 F7 F8 F9111 -6,045 -3,045 -2,041 -5,240 -1,307 -0,606 -0,511 -0,656121 -4,491 -2,314 -1,508 -3,962 -1,003 -0,466 -0,383 -0,484211 -7,368 -3,415 -2,310 -5,882 -1,397 -0,647 -0,524 -0,690112 -5,271 -2,857 -2,056 -5,014 -1,313 -0,635 -0,519 -0,653210 -3,987 -1,370 -0,898 -2,523 -0,480 -0,201 -0,205 -0,253012 -1,400 -0,851 -0,587 -1,337 -0,382 -0,195 -0,140 -0,189131 -3,627 -1,827 -1,242 -3,195 -0,791 -0,373 -0,298 -0,390411 -8,086 -3,110 -2,105 -5,478 -1,196 -0,543 -0,470 -0,611114 -4,061 -2,204 -1,686 -3,987 -1,093 -0,508 -0,426 -0,548410 -3,265 -0,933 -0,711 -1,963 -0,387 -0,153 -0,139 -0,171014 -0,986 -0,543 -0,425 -0,947 -0,268 -0,129 -0,099 -0,144141 -3,109 -1,583 -1,065 -2,684 -0,669 -0,303 -0,255 -0,328181 -1,900 -0,974 -0,621 -1,597 -0,395 -0,186 -0,149 -0,203

TAULA 6.5. Error entre coeficient deconvolucionat i coeficient ponderat (2 desviacions) (%)

Page 61: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

60

7. Efecte del soroll

El darrer fenomen que s’ha estudiat és el del soroll que apareix en l’espectre en el momentde l’obtenció d’aquest, és a dir, degut a la mateixa màquina que l’indueix.

S’han ideat dues maneres d’aplicar aquest soroll, en ambdós casos buscant reproduir de lamanera més fidel possible el fenomen que hi té lloc. Es tracta sempre d’un soroll blanc, detipus gaussià, totalment aleatori al llarg de tots els eixos, i que provoca la deformació del’espectre.

L’objectiu consisteix a esbrinar si l’algoritme de deconvolució té la capacitat de retornarl’espectre tot ignorant aquest soroll que hi apareix, ja que a priori el mètode duu a terme elfitament d’aquesta manera. Es vol saber fins a quin punt el soroll afecta els resultatsobtinguts.

Aquest soroll s’ha aplicat als espectres mitjans obtinguts amb anterioritat.

7.1. Soroll en l'espectre

7.1.1. Generació i aplicació del soroll

Per simular aquest soroll, s’han generat unes matrius de nombres aleatoris amb mitjanazero, acotant el valor d’aquests tot ajustant la desviació estàndard.

Per ajustar el valor d’aquesta desviació, s’han agafat valors reals d’un espectre qualsevol.Els valors seleccionats són els 3000 primers de l’espectre, on s’observa una líniapràcticament de valor nul, però s’aprecien unes desviacions aleatòries que són precisamentaquest soroll. És a dir, s’han ajustat els valors de soroll que es generaran a continuació enbase al soroll experimental que s’observa en les mostres reals de què es disposa.

Page 62: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

61

Figura 7.1. Espectre NMR d’una de les mostres, i ampliació dels 3000 primers puntsd’aquest, on s’observa de manera clara la presència d’un soroll amb les característiquessuposades.

En base a aquests valors, se n’ha calculat la mitjana i desviació, per tal d’obtenir unamatriu de valors aleatoris que simulin un soroll exactament d’aquestes característiques.S’ha generat a través d’una comanda de Matlab, i s’ha representat la seva distribució pertal de comprovar que realment s’ajusta al que es desitja:

Page 63: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

62

Figura 7.2. Distribució dels valors aleatoris generats amb Matlab.

Efectivament, la comanda escollida retorna uns valors aleatoris amb les característiquesdesitjades. Per tant, clarament s’està generant un soroll blanc gaussià que simularà a laperfecció el fenomen que hi té lloc.

Aquest soroll el sumarà a tots els punts del pic del metil, i al llarg també de l’eix de ladifusió. A partir d’aquí, es posarà a prova el sistema a base de sorolls amb una amplitudcada vegada més gran. La manera de fer-ho ha estat generant sis matrius aleatòriesdiferents, però modificant la desviació en cadascuna d’elles. A cada matriu, s’hamultiplicat la desviació per un factor que va de l’1 al 6, de manera que cada vegada elsvalors aleatoris generats són més extrems i el soroll anirà sent més exagerat.

A continuació es mostren els espectres tridimensionals de la classe 1 afectats pels diferentsnivells de soroll:

- Soroll grau 1

Page 64: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

63

- Soroll grau 2

- Soroll grau 3

- Soroll grau 4

Page 65: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

64

- Soroll grau 5

- Soroll grau 6

Aquests i els homòlegs de les 13 classes restants seran els espectres que esdeconvolucionaran per comprovar si l’algoritme és capaç de retornar l’espectre original.

7.1.2. Resultats

Després de deconvolucionar tots aquests espectres, s’han obtingut una sèrie d’errors tant enles àrees com en els coeficients, que es mostren a continuació.

Per qüestió d’optimització d’espai, només es mostraran els resultats corresponents alssorolls de grau 1, 3 i 6. Als annexos es mostraran els resultats al complet.

L'error està calculat a partir de la fórmula següent:

Page 66: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

65

= − · 100I de manera anàloga pels coeficients

La classe 14 és la que presenta uns errors més elevats, per tant serà la que s’estudiarà més afons, a través d’una representació que permeti saber què està passant:

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 0,12 2,08 -1,91 2,88 -2,11 -9,32 11,66 0,17 -6,242 0,01 1,45 -1,62 2,60 0,78 -9,56 4,58 10,18 -11,913 0,18 0,63 -0,65 0,44 3,57 -10,88 12,14 3,78 -9,464 0,18 6,96 -4,12 3,74 4,43 -9,92 -1,81 18,09 -18,345 0,13 1,28 -2,39 5,84 -2,38 -10,55 5,42 3,95 -3,406 -0,15 0,13 -3,11 13,62 -11,59 -14,67 14,54 -1,91 -3,077 -0,03 2,38 -1,67 0,20 1,75 -7,31 12,52 -5,19 -2,968 -0,24 -4,63 1,18 3,43 -2,42 -9,78 18,98 -13,54 2,659 -0,15 -5,11 4,10 -2,48 3,20 -5,68 4,91 1,11 -1,2010 0,16 3,36 -2,29 2,31 0,72 -8,29 10,03 2,40 -9,7711 -0,05 0,38 -0,31 -1,84 6,01 -11,17 15,42 3,84 -14,7912 -0,06 3,73 -4,50 3,81 -0,39 -6,94 6,44 4,05 -6,7813 -0,13 -4,18 4,27 -0,78 -0,89 -2,45 8,73 -7,70 1,6614 -0,03 3,18 6,07 -7,48 2,18 -9,90 27,74 -11,52 -13,32

Taula 7.1. Errors entre àrees, 1 desviació (%)

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -0,36 1,65 -0,06 -0,20 1,42 0,50 -2,04 2,09 -0,542 -0,60 0,30 0,02 -0,51 2,02 1,47 -2,78 1,74 0,443 -0,32 0,24 0,18 -0,58 1,45 1,07 -3,12 2,23 1,174 -0,52 1,15 0,03 -1,62 3,77 3,40 -3,69 1,05 2,985 -0,62 0,25 -0,11 -0,60 2,10 1,25 -2,27 1,05 -0,696 -0,48 0,29 -0,39 -0,06 5,22 0,89 -3,12 2,14 -1,147 -0,81 0,32 0,60 -0,82 0,60 0,53 -2,45 2,27 -1,338 -0,63 -0,06 0,26 -0,17 1,42 -0,01 -2,43 2,01 -2,269 -0,75 -0,69 0,61 -0,49 0,94 2,01 -2,71 2,08 -1,1810 -0,58 1,83 0,05 -0,43 1,43 0,34 -1,74 1,32 0,7811 -0,65 0,52 0,36 -1,21 0,75 1,15 -2,57 2,48 1,7412 -0,66 1,05 0,04 -0,94 1,07 -0,53 -1,47 0,55 0,7713 -0,74 0,29 0,57 0,07 0,10 0,72 -1,48 1,87 -1,8614 -1,01 1,04 1,79 -0,68 -1,17 0,28 -2,28 3,83 1,57

Taula 7.2. Errors entre coeficients, 1 desviació (%)

Page 67: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

66

Figura 7.3. A dalt, comparació entre lorentzianes de l’espectre original (vermelles) i lesdeconvolucionades (verdes). A baix, idèntica comparació, ja amb les lorentzianes sumadesformant els espectres.

L’algoritme és capaç de retornar un espectre pràcticament idèntic a l’original sense soroll,però la presència d’aquest provoca una redistribució una mica diferent de les 9 funcions,apareixent una sèrie d’errors entre originals i sorollosos que no són dramàtics, però que caltenir en compte.

Observem què passa si augmentem el grau de soroll:

Page 68: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

67

L’error més elevat es presenta en la classe 7.

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 0,43 0,32 -1,29 7,45 -10,61 -18,94 14,58 15,10 -19,332 1,30 4,28 -2,56 4,13 -2,90 -14,55 8,56 15,04 -20,393 1,32 1,49 -1,18 1,65 6,13 -20,86 2,63 41,61 -36,324 0,68 5,23 -9,49 8,07 17,54 -15,08 -21,09 27,21 -9,175 1,39 5,18 -4,80 10,89 -3,76 -21,10 1,17 26,43 -28,646 1,11 4,01 -7,65 22,99 -22,06 -4,26 -4,06 18,93 -21,107 -0,76 -34,52 9,62 16,85 -12,06 -7,54 -4,76 30,71 -34,388 0,94 -9,36 -1,95 6,41 -2,28 -2,05 2,70 -0,64 -14,589 1,59 -12,30 1,88 3,03 7,73 -11,33 -6,89 19,05 -9,64

10 1,13 1,93 -1,48 6,08 -2,00 -22,14 21,62 10,70 -16,8911 1,20 -4,18 -1,78 8,87 -3,28 -16,48 22,41 11,85 -21,0312 0,91 -5,47 -7,10 12,57 -5,26 -5,55 -3,48 12,12 -3,1313 0,34 -27,89 7,89 -1,46 7,21 -5,63 -0,66 7,59 -14,4414 0,45 -29,18 13,67 -8,04 0,45 -0,22 6,52 5,11 -17,09

Taula 7.3. Errors entre àrees,3 desviacions (%)

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 1,59 -1,93 0,15 -0,26 7,04 0,98 -6,01 8,45 -11,082 0,79 0,29 0,10 -0,94 4,48 0,89 -6,62 8,48 -16,013 0,89 -0,35 0,23 -1,29 6,74 3,37 -9,57 8,32 -12,794 1,12 -1,03 -1,51 -5,37 12,20 7,14 -3,37 0,91 -13,905 1,02 0,05 -0,02 -2,13 7,54 4,43 -8,21 7,49 -20,856 1,34 0,49 -0,85 -1,50 9,89 -0,63 -2,66 6,06 -16,267 2,45 -6,70 -2,71 -0,64 5,76 1,15 -5,53 9,02 -16,158 1,10 -1,49 -0,91 -2,22 3,51 0,39 -2,10 8,25 -16,039 1,41 -2,62 -0,86 -2,86 7,16 3,08 -5,23 7,38 -17,84

10 1,09 -0,62 0,16 -0,20 5,34 0,74 -6,61 6,10 -6,4711 1,04 -2,55 -2,10 -0,03 3,12 0,67 -7,32 9,29 -11,1812 0,89 -2,56 -2,55 -1,98 2,96 1,30 -5,09 4,56 -8,6713 1,39 -2,03 -2,02 -2,56 2,62 2,03 -3,92 7,80 -13,5114 0,99 -9,11 -2,61 -1,33 -2,32 1,30 -6,00 10,45 -11,24

Taula 7.4. Errors entre coeficients, 3 desviacions (%)

Page 69: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

68

Figura 7.4. A dalt, comparació entre lorentzianes de l’espectre original (vermelles) i lesdeconvolucionades (verdes). A baix, idèntica comparació, ja amb les lorentzianes sumadesformant els espectres.

Els errors continuen estant dins uns límits acceptables, tot i que han augmentat una mica.

Per últim, observem el grau màxim de soroll:

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -0,40 3,60 -1,08 0,49 5,12 -16,84 13,92 21,57 -41,962 -1,29 -1,08 0,48 -13,96 39,33 -1,04 -4,57 10,30 -24,223 -1,44 -11,16 6,78 -11,67 34,59 -16,71 -0,71 29,85 -30,334 -0,40 24,71 -3,68 8,28 3,98 -37,86 10,37 9,83 18,195 -1,73 -6,56 1,39 -3,99 28,34 -9,12 -5,41 -6,98 -14,336 -2,54 -11,09 3,02 10,24 3,43 -19,95 10,69 -24,07 31,887 -3,00 -10,55 14,71 5,74 1,95 -16,77 -5,46 22,44 -25,718 -2,76 -3,12 8,61 -2,55 18,36 -19,10 3,13 -10,39 9,089 -2,58 -6,28 15,54 7,48 0,27 -27,96 13,10 -9,77 23,98

10 0,07 3,68 1,37 -12,59 14,36 -5,48 10,85 -1,18 -4,0611 -3,57 -9,50 22,31 0,75 -2,43 -21,65 16,88 -0,52 -7,3812 -1,91 14,98 2,24 -15,83 16,93 -1,36 -5,37 10,51 -6,1813 -1,01 -7,42 33,81 10,72 -16,87 -17,20 12,44 3,37 -3,2414 -1,36 4,85 41,04 -2,62 -13,71 -17,83 33,26 -2,27 -37,02

Taula 7.5. Errors entre àrees,6 desviacions (%)

Page 70: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

69

La classe 14 presenta l’error més gran:

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -0,61 -2,09 3,39 -2,55 5,90 -1,37 -1,41 4,73 12,402 -0,65 -2,58 2,20 -5,38 -2,02 1,47 1,30 4,48 6,803 -0,44 -6,76 2,15 -3,08 1,67 3,83 -3,45 5,77 13,014 -1,33 9,36 1,99 -0,26 14,51 5,95 -7,33 4,37 -10,055 0,77 -2,72 2,51 -5,49 10,13 11,34 0,78 6,99 0,886 1,20 -3,38 1,41 -2,05 12,07 3,57 0,68 2,04 -0,517 1,19 3,19 2,23 0,52 8,57 6,24 -2,33 5,82 8,208 1,12 3,89 3,70 -2,57 8,54 6,93 0,08 3,35 1,669 1,74 5,11 2,99 2,46 13,40 4,64 -2,36 3,08 -1,11

10 -1,32 -7,65 4,63 -3,95 -2,47 -2,36 -0,08 0,50 4,8611 0,39 -5,48 0,35 6,35 9,02 2,68 -1,88 2,63 1,9612 -0,02 7,16 6,69 -4,54 0,90 -1,15 1,09 1,07 6,2013 0,63 17,14 0,82 9,76 7,45 0,49 -2,21 2,66 2,5014 0,31 24,76 1,38 14,36 4,62 -0,92 -3,15 9,64 12,23

Taula 7.6. Errors entre coeficients, 6 desviacions (%)

Page 71: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

70

Figura 7.5. A dalt, comparació entre lorentzianes de l’espectre original (vermelles) i lesdeconvolucionades (verdes). A baix, idèntica comparació, ja amb les lorentzianes sumadesformant els espectres.

S’observa com pel cas més desfavorable els errors es mantenen en valors força baixos.

Als annexos 8 i 9 es poden trobar l’algoritme per aplicar el soroll i els resultats obtinguts,respectivament.

7.1.3. Conclusions

Malgrat que l’algoritme de deconvolució és capaç de retornar fidelment el mateix espectrefins i tot amb la presència de soroll, l’existència d’aquest provoca que els valors de leslorentzianes variïn respecte dels originals. Amb altres paraules, retorna una soluciólleugerament diferent de l’inicial, però acaba formant el mateix espectre.

Aquestes diferències, però, no són de grans dimensions, sinó que l’efecte que es produeixés el mateix que quan havíem aplicat les modificacions a les alçades de les lorentzianes: eldefecte d’una es compensa amb un excés de l’altra i així successivament, però sempreentre lorentzianes properes, i sense l’aparició de diferències abismals en cap dels casos.

Page 72: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

71

7.2. Unicitat de solucions

Aprofitant l’anàlisi del soroll, i degut al dubte aparegut durant la realització d’aquest, s’haintroduït aquest anàlisi que pretén esbrinar si el mètode de deconvolució és capaç deretornar sempre una solució única per a cada espectre, o si cadascun d’aquests potpresentar una distribució diferent de les 9 lorentzianes, amb paràmetres que variïn demanera prou destacable entre ells.

D’aquesta manera, també es podrà saber si el soroll és un fenomen que afecta a aquestaunicitat de solucions, o bé és independent.

L’algoritme de deconvolució, fins ara, ha partit d’unes solucions inicials que són lesmitjanes dels valors de cadascun dels paràmetres. No obstant, cap la possibilitat de que elmètode parteixi de valors aleatoris, simplement acotats pels valors mínims i màxims de totsels paràmetres en general, és a dir, que molt probablement el valor inicial dels paràmetreses trobarà fora de l’ordre que li correspon. De tota manera, mitjançant l’aproximació,l’algoritme aconsegueix arribar a uns resultats que són molt propers al valor inicial, o béfins i tot arriben a la solució bona.

Per aquest motiu, la prova que es porta a terme és la de deconvolucionar cada mostra 10vegades, partint de valors inicials dels paràmetres aleatoris, per observar si arriba a lesmateixes solucions, i en cas negatiu, veure si les solucions a les quals arriba són moltdisperses, és a dir, són combinacions de les funcions totalment diferents, o en canvipresenten poca variació.

L’algoritme utilitzat pot trobar-se comentat a l’annex número 10.

7.2.1. Resultats a partir de solucions inicials aleatòries

En cas que els valors de partida siguin aleatoris, pot ser que aquests estiguin molt allunyatsdel valor que han de trobar, i per tant l’algoritme, tot i apropar-se bastant, no és capaç detrobar la mateixa solució el 100% de les ocasions.

Observem quins són els resultats dels paràmetres retornats per les 10 deconvolucions pelcas d’un soroll nivell 1 (una desviació) aplicat a la primera classe:

Page 73: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

72

Figura 7.6. Valors dels paràmetres de les 10 deconvolucions.

Page 74: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

73

Figura 7.7. Representació de les funcions de les 10 deconvolucions. Es pot veure com, tot ique el pic complet pràcticament no varia, el que sí que varia lleugerament són les diferentssolucions de les lorentzianes individuals.

Es pot demostrar que el soroll incrementa la variació entre les solucions, però no n’és laprincipal causa, ja que pel cas on el soroll és nul, també es poden observar solucions quevarien lleugerament entre elles:

Page 75: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

74

Figura 7.8. Valors dels paràmetres de les 10 deconvolucions.

Figura 7.9. Representació de les funcions de les 10 deconvolucions.

Page 76: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

75

7.2.2. Resultats a partir de solucions inicials mitjanes

S’observa que en totes 10 deconvolucions el valor al qual es va a parar és sempre elmateix, tot i que és lleugerament diferent de les mitjanes degut al soroll que s’ha induït. Espot afirmar que el sistema troba la solució correcta, amb una variació negligible o nul·la,en el 100% de casos.

Observem les 10 solucions a les quals va a parar l’algoritme, per exemple, en el cas delsoroll nivell 6 aplicat a la classe 1:

Page 77: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

7. Efecte del soroll

76

Figura 7.10. Valors dels paràmetres de les 10 deconvolucions.

Com veiem, els 10 resultats dels 4 paràmetres són perfectament idèntics, és a dir que lasolució és sempre la mateixa. Ho comprovem representant-ho de manera gràfica:

Figura 7.11. Representació de les funcions de les 10 deconvolucions. Queden totessuperposades, ja que són idèntiques.

Evidentment, això es confirma pel cas on el soroll és nul, on el sistema també retorna lessolucions idèntiques i aquest cop exactes.

7.2.3. Conclusions

Com s’ha demostrat, l’algoritme és capaç d’arribar a una solució única molt propera a lacorrecta, si els valors de partida són les mitjanes dels propis paràmetres, és a dir, si elsvalors estan acotats dins l’ordre que els correspon. En el cas que les solucions inicialsprenguin valors molt més dispersos i puguin ser d’ordre molt diferent al qual han d’arribar,l’algoritme acaba trobant solucions molt properes, i en ocasions la correcta, però no el100% de les vegades.

Page 78: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

8. Conclusions finals

77

8. Conclusions finals

Per acabar, en aquest apartat es sintetitzen el conjunt de conclusions i resultats finalsque s’han obtingut al llarg de tot el procés:

1) S’ha comprovat a través de l’estudi de Framingham que, efectivament, elconjunt de mostres utilitzat per als diferents processos està format per unsindividus sans.

2) S’han caracteritzat un conjunt de catorze graus de dislipidèmia en funció delsnivells de triglicèrids i colesterol HDL i LDL dels individus del conjunt, quepermeten classificar aquests i alhora generar uns perfils espectrals diferents percadascuna d’aquestes anomalies.

3) S’ha observat la tendència lògica dels paràmetres retornats per la deconvolució,àrea i coeficient de difusió, de les diferents funcions segons els diferents nivellsdels lípids esmentats, i coincideixen amb la hipòtesi plantejada. D’aquestamanera, pràcticament es pot associar de manera directa unes determinadesfuncions amb la concentració de les tres partícules tractades.

4) S’ha comprovat la robustesa del mètode de deconvolució a través de la variacióde paràmetres com l’alçada i els coeficients de difusió. Es comprova que elmètode és robust malgrat que els canvis aplicats siguin molt exagerats i se surtindels marges que podrien trobar-se a la realitat, la qual cosa permet concloure queel mètode és molt fiable per qualsevol tipus de mostra que es presenti.

5) S’ha comprovat que l’efecte de polidispersió no afecta en un grau excessivamentelevat al sistema. La simulació d’aquest fenomen permet veure que l’errorcomès obviant la seva existència és mínim, motiu pel qual no és necessariplantejar cap tipus de correcció al respecte.

6) S’ha simulat l’efecte d’un soroll tèrmic al sistema. Es comprova que afectalleugerament al sistema, però els errors que se n’obtenen es troben dins unatolerància acceptable, fins i tot per valors de soroll molt per sobre dels reals.

7) S’ha comprovat que el sistema és capaç d’arribar a solucions úniques quan elsvalors dels quals parteix són les mitjanes dels propis paràmetres, fins i tottreballant amb entorns sorollosos. A diferència dels casos de soroll nul, on lessolucions són úniques i correctes, les solucions quan s’hi aplica el soroll sónúniques però no són les mateixes que les de l’espectre no sorollós, donat quel’efecte aplicat distorsiona lleugerament l’espectre.Quan els valors de partida són aleatoris (dins d’uns límits establerts moltgenerosos), el sistema arriba a solucions molt properes entre elles (especialmentsi el soroll aplicat és nul), però no exactament idèntiques.

Page 79: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

ANNEXOS

Page 80: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 0. Entorn de treball: Matlab

79

Annex 0. Entorn de treball: Matlab

MATLAB és un entorn de llenguatge d'alt nivell i interactiu que permet als usuarisrealitzar tasques computacionalment intensives de manera molt ràpida.

L’entorn de treball per defecte és la finestra que es mostra a continuació, que és el ques’anomena escriptori:

Inclou els següents panells:

- Current Directory: permet accedir als arxius.- Command window: permet entrar instruccions des de la línia de comanda, que

està assenyalada per l’indicador ‘>>’.- Workspace: permet explorar les dades creades o carregades.- Command History: permet revisar i executar ordres que s’han entrat des de línia

de comandes.

En carregar una variable, matriu, estructura, etc. al workspace, si es fa doble clic sobreaquesta variable se’n pot observar i modificar el contingut. Per això, s’obre un noupanell anomenat variable editor:

Page 81: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 0. Entorn de treball: Matlab

80

A banda d’això, s’ha fet servir l’editor a l’hora de fer les funcions i scripts. Es tractad’un simple editor de text que permet crear algoritmes. El llenguatge utilitzat és moltsimilar al C, amb la qual cosa la majoria de comandes que es fan servir són idèntiques ales d’aquest llenguatge.

Està dotat d’una eina de depurat molt útil per observar els possibles errors a l’horad’executar els programes. A la següent imatge es pot observar un exemple de depurat,

Page 82: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 0. Entorn de treball: Matlab

81

amb un breakpoint en una de les comandes. Les icones marcades en vermell són lesdiverses opcions per al depurat (pas a pas, contínua, etc.):

Per últim, mitjançant les comandes plot, surf i errorbar s’han representat totes lesfigures de la memòria. La primera s’utilitza per les representacions en 2 dimensions,mentre la segona s’empra pels espectres representats amb l’eix de la difusió (3dimensions). La darrera comanda ha estat molt útil a l’hora de representar les mitjanesde les àrees i els coeficients de difusió amb la seva respectiva desviació estàndard(veure apartat 4).

En utilitzar aquestes comandes s’obre una nova finestra que permet editar les figuresrepresentades, així com afegir llegendes, etiquetes als eixos, afegir o treure dades, etc.:

Page 83: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 0. Entorn de treball: Matlab

82

Page 84: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 1. Scores de Framingham

83

Annex 1. Scores de Framingham

A continuació es presenta el factor de risc corresponent a cadascuna de les mostres de labase de dades. S’ha optat per no incloure-hi tota la part del càlcul per qüestió d’espai. Aquíúnicament es mostra la puntuació obtinguda a partir dels factors de risc (columna factor) iel color del grup de risc al qual pertany la mostra.

code FACTOR RISC code FACTOR RISC code FACTOR RISCF002 7 1 F064 1 #¡DIV/0! S040 0 0F003 3 0 F065 5 1 S041 5 1F004 4 1 F066 1 0 S042 1 #¡DIV/0!F005 1 #¡DIV/0! F067 1 #¡DIV/0! S043 10 1F006 -1 0 F068 -1 #¡DIV/0! S044 6 1F007 -3 #¡DIV/0! F069 5 1 S045 2 0F008 5 1 F070 8 1 S046 5 1F009 9 1 F071 4 1 S047 3 0F010 3 1 F072 7 1 S048 9 1F011 -2 #¡DIV/0! F073 4 1 S049 4 0F012 0 0 F074 8 1 S050 3 1F013 1 1 F075 5 1 S051 5 0F014 8 4 F076 2 1 S052 0 1F015 1 1 F077 1 1 S053 6 1F016 4 1 F078 9 3 S054 3 1F017 7 1 F079 9 3 S055 6 1F018 0 #¡DIV/0! F080 0 0 S056 10 1F019 0 #¡DIV/0! F081 0 #¡DIV/0! S057 -3 0F020 -1 #¡DIV/0! F082 11 3 S058 0 0F021 2 0 F084 9 1 S059 7 1F022 0 0 S001 0 0 S060 8 3F023 4 1 S002 2 #¡DIV/0! S061 0 #¡DIV/0!F024 1 #¡DIV/0! S003 -2 0 S062 9 1F025 5 1 S004 0 0 S063 0 1F026 11 3 S005 -2 0 S064 5 1F027 1 1 S006 5 1 S065 5 1F028 3 1 S007 0 0 S066 1 2F029 -3 #¡DIV/0! S008 4 1 S067 -1 0F030 -3 0 S009 3 1 S068 1 0F031 -4 #¡DIV/0! S010 0 #¡DIV/0! S069 6 1F032 4 2 S011 2 0 S070 -3 #¡DIV/0!F033 0 #¡DIV/0! S012 3 1 S071 0 #¡DIV/0!F035 -2 0 S013 7 1 S072 -3 #¡DIV/0!F036 3 3 S014 2 1 S073 3 1F037 -3 0 S015 4 1 S074 -3 #¡DIV/0!F038 9 1 S016 9 3 S075 2 1F039 -5 0 S017 -2 0 S076 -2 0F040 1 #¡DIV/0! S018 7 1 S077 3 2F041 -3 #¡DIV/0! S019 5 1 S078 1 1F042 -2 #¡DIV/0! S020 7 1 S079 -4 #¡DIV/0!F044 5 1 S021 -2 0 S080 -3 0F045 6 1 S022 2 1 S081 -2 0F046 5 1 S023 9 1 S082 -1 0F047 -1 #¡DIV/0! S024 3 1 S083 9 1F048 6 1 S025 4 1 S084 -3 #¡DIV/0!F049 6 1 S026 0 0 S085 -3 #¡DIV/0!F051 4 2 S027 -4 #¡DIV/0! S086 -3 #¡DIV/0!F052 6 0 S028 5 1 S087 -3 #¡DIV/0!F053 #¡NULO! #¡NULO! S029 6 1 S088 0 #¡DIV/0!F054 6 1 S030 1 0 S089 -4 #¡DIV/0!F055 2 1 S031 1 0 S090 1 #¡DIV/0!F056 7 1 S032 3 1 S091 5 0F057 2 0 S033 4 1 S092 -3 #¡DIV/0!F058 9 3 S034 3 0 S093 5 0F059 3 1 S035 5 0 S094 -3 #¡DIV/0!F060 3 1 S036 1 0 S095 9 1F061 -6 #¡DIV/0! S037 3 1 S096 12 4F062 7 1 S038 4 1 S098 6 1F063 7 1 S039 7 2 S100 9 1

Page 85: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 1. Scores de Framingham

84

El càlcul s’ha dut a terme amb un full excel, mitjançant fórmules condicionals, amb tots elsparàmetres i factors de què depèn l’estudi per obtenir els resultats finals.

Page 86: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

85

Annex 2. Algoritme general de deconvolució

Aquest és l’algoritme emprat per deconvolucionar els pics del metil, ja siguin reals osintètics, en les 9 funcions lorentzianes.

El resultat d’aquest algoritme és una estructura output que conté diversos camps: elsnoms de les mostres (sample), els valors dels quatre paràmetres bàsics de les funcions:alçades, posicions, amplades i coeficients, així com les àrees i les subfraccions, que sónles funcions lorentzianes construïdes a partir dels paràmetres, i els residus de ladeconvolució.

El primer pas és la inicialització de les opcions que caracteritzaran el funcionament del’algoritme. Aquestes opcions seran, en el cas que ens interessa i per ordre d’aparició, elmostratge per pantalla (no es mostrarà res), el màxim i mínim canvi en les variables i latolerància final en la funció i en la x. Les opcions LargeScale i LevenbergMarquardtsimplement milloren el fitament d’aquestes funcions i solucionen problemes d’escalat.

Per últim, s’afegeixen tres opcions externes a la funció que realitza concretament elprocés de fitament, però que controlen la resta de l’algoritme, i que estan relacionadesamb el mostratge per pantalla del procés, el màxim error permès i el nombre d’intentsen cas de no arribar a una solució correcta.

function options=getOptions% Start with the default optionsoptions = optimset;% Modify options settingoptions = optimset(options,'Display' ,'off');options = optimset(options,'DiffMaxChange',1);%1options = optimset(options,'DiffMinChange',0.01);%1e-7options = optimset(options,'TolFun' ,1e-3);options = optimset(options,'TolX' ,1e-3);

options = optimset(options,'LargeScale' ,'on');options = optimset(options,'LevenbergMarquardt' ,'on');options.verbosity = 1;options.maxError = 10;options.tries = 5;

end

Tot seguit hi ha la càrrega de les dades: l’espectre i els gradients:

Page 87: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

86

function [data zdata intLength]=getData(X,G,gradients)

intLength=328;

xdata=1:intLength;ydata=G(gradients);zdata=X(gradients,:);

data=zeros(3,intLength);data(1,:)=xdata;data(2,1:length(ydata))=ydata;data(3,1)=length(ydata);

end

A continuació s’estableixen els límits superior i inferior de tots els paràmetres de totesles funcions. La primera lletra indica si el límit és superior o inferior (low/up) i latercera indica el paràmetre en qüestió (alçada, posició i amplada).

Després d’aquestes limitacions, hi ha un bucle que carrega els valors en noves variables,fent tantes repeticions com funcions componen el pic del metil reconstruït (en aquestcas 9).

function [lb ub numComp]=getLUB_s0(constraints)

numComp=sum(constraints(:,7));

lba=[0.1 0.1*ones(1,numComp-1)];uba=[100 100*ones(1,numComp-1)];lbp=[];ubp=[];lbw=[];ubw=[];

count=1;for i=1:size(constraints,1)

lbp(count:count+constraints(i,7)-1)=constraints(i,1)*ones(1,constraints(i,7));

ubp(count:count+constraints(i,7)-1)=constraints(i,2)*ones(1,constraints(i,7));

lbw(count:count+constraints(i,7)-1)=constraints(i,3)*ones(1,constraints(i,7));

ubw(count:count+constraints(i,7)-1)=constraints(i,4)*ones(1,constraints(i,7));

lbd(count:count+constraints(i,7)-1)=constraints(i,5)*ones(1,constraints(i,7));

ubd(count:count+constraints(i,7)-1)=constraints(i,6)*ones(1,constraints(i,7));

count=count+constraints(i,7);end

lb=[lba; lbp; lbw; lbd];ub=[uba; ubp; ubw; ubd];

end

Page 88: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

87

Tot seguit es realitza el procés de deconvolució. El primer paràmetre del vectorloopParams és una booleana que es posa a zero al final del procés, i que és la condicióde sortida del bucle while.

La segona part del codi és simplement una condició perquè es mostri o no per pantallala deconvolució que s’està portant a terme.

% Performing DeconvolutionloopParams=[1 100 0 1]; %[torna error tries iter]tic;while loopParams(1)

if options.verbosity==1disp([' Trying ' num2str(loopParams(4)) '...'])

end

Per últim es crida l’algoritme. La primera línia atorga una sèrie de valors aleatoris a lavariable s0, que conté les solucions inicials del procés. No obstant, aquests valors estanlimitats a través de les variables lb i ub, que contenen els límits superior i inferior delsparàmetres de les lorentzianes. La comanda round serveix per arrodonir el nombregenerat.

El fitament de la funció es realitza amb la comanda lsqcurvefit (least-square curve fit).La comanda requereix els següents paràmetres d’entrada:

x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)

Fun serà el nom de la funció que es vol optimitzar. El paràmetre x0, indica des d’oncomença a fitar, és a dir les solucions inicials. Xdata i ydata són les variables d’entradai de sortida, respectivament; lb i ub són els límits mencionats anteriorment i options sónels detalls que defineixen el funcionament del procés, també esmentats prèviament.

Els paràmetres de sortida són els següents:

[x,resnorm,residual,exitflag,output,lambda,jacobian]

La x és el mínim trobat pel procés de fitament, és a dir, el resultat de l’optimització;resnorm conté els quadrats dels residus; exitflag confirma l’èxit del procés; output ésuna estructura que conté informació sobre l’optimització; i jacobian retorna laJacobiana de la funció a la solució x. Les variables residual i lambda no són del nostreinterès, de manera que se’ls hi ha atorgat el nom dummy, que permet intuir que nos’utilitzaran.

% Calling Algorithms0 = round(lb + (ub-lb).*rand(size(lb)));[x,resnorm,dummy1,EXITFLAG,Outp,dummy2,jacobian] =

lsqcurvefit(@myModel,s0,data,zdata,lb,ub,options);

Page 89: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

88

La següent fórmula permet calcular el tant per cent d’error en el fitament:

loopParams(2)=(sqrt(resnorm/(intLength*(length(G(gradients))-4))))*100/(max(max(zdata))-min(min(zdata)));

ngrad=intLength*length(G(gradients));N = ngrad - length(x(:));se = sqrt(diag(inv(jacobian'*jacobian)*resnorm/N));se = full(real(se))';se=reshape(se,size(lb,1),numComp)';

El següent bloc també és simplement qüestió de mostra d’informació per pantalla,controlada per una condició booleana.

if options.verbosity==1disp([' RESNORM: ' num2str(resnorm)])disp([' Error: ' num2str(loopParams(2)) '%'])disp([' Exitflag = ' num2str(EXITFLAG)])disp([' Iterations = ' num2str(Outp.iterations)])disp([' Functions = ' num2str(Outp.funcCount)])

end

Per últim, es troba la solució:

loopParams=checkSolution(x,lb,ub,se,loopParams,options);end

La funció checkSolution és la següent:

function loopParams=checkSolution(param,lb,ub,se,loopParams,myOptions)

El primer que es fa és incrementar els comptadors d’iteracions i intents:

loopParams(3)=loopParams(3)+1;loopParams(4)=loopParams(4)+1;

Tot seguit es comprova el valor del paràmetre d, tot detectant si el valor resultant estàtocant als límits o fronteres que s’havien establert, fet que probablement signifiqui quehi ha algun error a la deconvolució. Per fer-ho, es resta al resultat obtingut el valor deles fronteres i s’arrodoneix el valor d’aquest resultat. Si algun dels dos dóna com aresultat zero, es considera que el valor es troba a la frontera.

d=param(end,:);

aux1=d;aux2=lb(end,:);aux3=ub(end,:);fronteres1=[aux1(:)-aux2(:); aux1(:)-aux3(:)];if sum(round(fronteres1(:))==0)>0

disp(' D a la frontera')disp(d)disp(round(fronteres1(1,:))==0)disp(round(fronteres1(2,:))==0)

end

Page 90: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

89

Si s’ha arribat al nombre màxim d’intents o bé no hem arribat a una solució que siguimenor que la tolerància d’error que s’havia especificat a les opcions, se surt del bucle iens quedem amb la darrera solució a la qual ha arribat. No obstant, en aquest últim cases mostra per pantalla un missatge informatiu advertint de la no convergència.

if loopParams(3)==myOptions.triesloopParams(1)=0;

elseif sum(round(fronteres1(:))==0)==0if loopParams(2)<myOptions.maxError

loopParams(1)=0;end

endend

x(1,:)=x(1,:)*1e4;x(end,:)=x(end,:)*1e-2;se(:,end)=se(:,end)*1e-2;temps=toc;if loopParams(2)>options.maxError, disp(' No

convergence'), end

Per acabar, es genera l’estructura de sortida. En primer lloc es generen les subfraccions:

% Storing Outputsubfraccions=getSubfraccions(x,data);

Així treballa la funció getSubfraccions. Es tracta d’una simple reconstrucció de lesfuncions amb els paràmetres que s’han obtingut del fitament:

function subfraccions=getSubfraccions(param,data)

x=data(1,:);

a=param(1,:);p=param(2,:);w=param(3,:);d=param(end,:);

numEsp=data(3,1);y=data(2,1:numEsp);G=-y'.^2;

subfraccions=zeros(size(param,2),length(x));for i=1:size(param,2)

gamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

Atenuacio = repmat(exp(-k*(d(i)*1e-7)*(G-G(1))),1,length(x));Lorentziana = repmat(a(i)./(1 + ((x-

p(i))./w(i)).^2),numEsp,1);F = Lorentziana.*Atenuacio;subfraccions(i,:)=F(1,:);

endend

Page 91: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

90

L’estructura de sortida es crea de la següent manera:

output=storeOutput(output,x,subfraccions,loopParams,temps,se,s0);end

La funció genera una estructura amb una sèrie de camps que contenen paràmetresd’interès. En primer lloc, hi ha els valors dels paràmetres que conformen lareconstrucció de cada lorentziana, així com precisament aquesta reconstrucció(subfraccions). Cal especificar que la posició s’arrodoneix a un nombre enter.

També s’indica el nombre d’intents, el temps emprat, l’error comès (residus) i lessolucions inicials que el mètode ha fet servir.

functionoutput=storeOutput(output,x,subfraccions,loopParams,temps,se,s0)

sample=size(output.coefficients,1)+1;output.heights(sample,:)=x(1,:);output.positions(sample,:)=round(x(2,:));output.widths(sample,:)=x(3,:);output.areas(sample,:)=sum(subfraccions,2)';output.subfraccions{sample}=subfraccions;output.coefficients(sample,:)=x(end,:);if issorted(x(end,3:end))

output.sorted(sample)=1;else

output.sorted(sample)=0;endoutput.tries(sample)=loopParams(3);output.elapsedTime(sample)=temps;output.nrmse(sample)=loopParams(2);output.se{sample}=se;output.s0{sample}=s0;

end

El codi complet queda de la següent manera:

function output=do2Deconvolution(X,G,gradients,constraints,s0,output)

% Setting variablesoptions = getOptions; %Algorithm options

% Loading data[data zdata intLength]=getData(X,G,gradients);

% Setting Lower and Upper Bounds and Starting Guess[lb ub numComp] = getLUB_s0(constraints);

% Performing DeconvolutionloopParams=[1 100 0 1]; %[torna error tries iter]tic;while loopParams(1)

Page 92: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

91

if options.verbosity==1disp([' Trying ' num2str(loopParams(4)) '...'])

end

% Calling Algorithms0 = round(lb + (ub-lb).*rand(size(lb)));[x,resnorm,dummy1,EXITFLAG,Outp,dummy2,jacobian] =

lsqcurvefit(@myModel,s0,data,zdata,lb,ub,options);loopParams(2)=(sqrt(resnorm/(intLength*(length(G(gradients))-

4))))*100/(max(max(zdata))-min(min(zdata)));

ngrad=intLength*length(G(gradients));N = ngrad - length(x(:));se = sqrt(diag(inv(jacobian'*jacobian)*resnorm/N));se = full(real(se))';se=reshape(se,size(lb,1),numComp)';

if options.verbosity==1disp([' RESNORM: ' num2str(resnorm)])disp([' Error: ' num2str(loopParams(2)) '%'])disp([' Exitflag = ' num2str(EXITFLAG)])disp([' Iterations = ' num2str(Outp.iterations)])disp([' Functions = ' num2str(Outp.funcCount)])

endloopParams=checkSolution(x,lb,ub,se,loopParams,options);

endx(1,:)=x(1,:)*1e4;x(end,:)=x(end,:)*1e-2;se(:,end)=se(:,end)*1e-2;temps=toc;if loopParams(2)>options.maxError, disp(' No

convergence'), end

% Storing Outputsubfraccions=getSubfraccions(x,data);output=storeOutput(output,x,subfraccions,loopParams,temps,se,s0);

end

function [data zdata intLength]=getData(X,G,gradients)

intLength=328;

xdata=1:intLength;ydata=G(gradients);zdata=X(gradients,:);

data=zeros(3,intLength);data(1,:)=xdata;data(2,1:length(ydata))=ydata;data(3,1)=length(ydata);

end

function [lb ub numComp]=getLUB_s0(constraints)

numComp=sum(constraints(:,7));

lba=[0.1 0.1*ones(1,numComp-1)];uba=[100 100*ones(1,numComp-1)];lbp=[];

Page 93: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

92

ubp=[];lbw=[];ubw=[];

count=1;for i=1:size(constraints,1)

lbp(count:count+constraints(i,7)-1)=constraints(i,1)*ones(1,constraints(i,7));

ubp(count:count+constraints(i,7)-1)=constraints(i,2)*ones(1,constraints(i,7));

lbw(count:count+constraints(i,7)-1)=constraints(i,3)*ones(1,constraints(i,7));

ubw(count:count+constraints(i,7)-1)=constraints(i,4)*ones(1,constraints(i,7));

lbd(count:count+constraints(i,7)-1)=constraints(i,5)*ones(1,constraints(i,7));

ubd(count:count+constraints(i,7)-1)=constraints(i,6)*ones(1,constraints(i,7));

count=count+constraints(i,7);end

lb=[lba; lbp; lbw; lbd];ub=[uba; ubp; ubw; ubd];

end

function options=getOptions% Start with the default optionsoptions = optimset;% Modify options settingoptions = optimset(options,'Display' ,'off');options = optimset(options,'DiffMaxChange',1);%1options = optimset(options,'DiffMinChange',0.01);%1e-7options = optimset(options,'TolFun' ,1e-3);options = optimset(options,'TolX' ,1e-3);

% options = optimset(options,'MaxFunEval' ,5000);% options = optimset(options,'MaxIter' ,600);

options = optimset(options,'LargeScale' ,'on');options = optimset(options,'LevenbergMarquardt' ,'on');options.verbosity = 1;options.maxError = 10;options.tries = 5;

end

function F = myModel(param,data)

x=data(1,:);numEsp=data(3,1);y=data(2,1:numEsp);

a=param(1,:)*1e4;p=param(2,:);w=param(3,:);d=param(end,:);

gamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

G=-y'.^2;F=0;

Page 94: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

93

for i=1:length(a)Atenuacio = repmat(exp(k*(d(i)*1e-9)*(G-G(1))),1,length(x));Lorentziana = repmat(a(i)./(1 + ((x-

p(i))./w(i)).^2),numEsp,1);F = F+Lorentziana.*Atenuacio;

endend

function loopParams=checkSolution(param,lb,ub,se,loopParams,myOptions)loopParams(3)=loopParams(3)+1;loopParams(4)=loopParams(4)+1;

d=param(end,:);

aux1=d;aux2=lb(end,:);aux3=ub(end,:);fronteres1=[aux1(:)-aux2(:); aux1(:)-aux3(:)];if sum(round(fronteres1(:))==0)>0

disp(' D a la frontera')disp(d)disp(round(fronteres1(1,:))==0)disp(round(fronteres1(2,:))==0)

end

if loopParams(3)==myOptions.triesloopParams(1)=0;

elseif sum(round(fronteres1(:))==0)==0if loopParams(2)<myOptions.maxError

loopParams(1)=0;end

endend

function subfraccions=getSubfraccions(param,data)

x=data(1,:);

a=param(1,:);p=param(2,:);w=param(3,:);d=param(end,:);

numEsp=data(3,1);y=data(2,1:numEsp);G=-y'.^2;

subfraccions=zeros(size(param,2),length(x));for i=1:size(param,2)

gamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

Atenuacio = repmat(exp(-k*(d(i)*1e-7)*(G-G(1))),1,length(x));Lorentziana = repmat(a(i)./(1 + ((x-

p(i))./w(i)).^2),numEsp,1);F = Lorentziana.*Atenuacio;subfraccions(i,:)=F(1,:);

endend

Page 95: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 2: Algoritme general de deconvolució

94

functionoutput=storeOutput(output,x,subfraccions,loopParams,temps,se,s0)

sample=size(output.coefficients,1)+1;output.heights(sample,:)=x(1,:);output.positions(sample,:)=round(x(2,:));output.widths(sample,:)=x(3,:);output.areas(sample,:)=sum(subfraccions,2)';output.subfraccions{sample}=subfraccions;output.coefficients(sample,:)=x(end,:);if issorted(x(end,3:end))

output.sorted(sample)=1;else

output.sorted(sample)=0;endoutput.tries(sample)=loopParams(3);output.elapsedTime(sample)=temps;output.nrmse(sample)=loopParams(2);output.se{sample}=se;output.s0{sample}=s0;

end

Page 96: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

95

Annex 3. Algoritme de reconstrucció i deconvolució dels 14perfils lipídics

El següent algoritme és el que s’encarrega de calcular els paràmetres dels 14 espectressintètics que s’han creat. El programa s’encarrega de fer les mitjanes dels paràmetres deles mostres que pertanyen a cada grup, que després serveixen per construir l’espectresintètic.

Com indiquen els comentaris, cal tenir quatre variables inicialitzades al workspace delMatlab. Són les següents:

- Output: és la variable que conté els 177 espectres deconvolucionats, i per tant,els valors de tots els paràmetres de cadascun d’ells. Es tracta de la següentestructura:

Figura A3.1. Estructura output

L’estructura conté els noms de les mostres (sample), els valors dels paràmetres(alçades, posicions, amplades, coeficients i àrees) de les 9 funcions, lessubfraccions, que són les funcions lorentzianes construïdes a partir delsparàmetres, i els residus de la deconvolució.

Té especial interès el camp de les subfraccions:

Figura A3.2. Camp “subfraccions”. Conté 177 cel·les amb les lorentzianes construïdes.

Page 97: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

96

Figura A3.3. Cel·la del camp “subfraccions”. Conté una matriu de 9 funcions x 328punts de cadascuna d’elles, per reconstruir tots els punts.

Figura A3.4. Representació de les 9 subfraccions i de la suma de totes elles.

- Riskfact: és una matriu de 18 cel·les (2x3x3), cadascuna de les quals correspon aun nivell de HDL, LDL i triglicèrids diferent, segons la taula 4.2. (capítol 4).Cada cel·la conté els índexs de les mostres que pertanyen a cada grup. 4 de lescel·les estan buides, d’aquí que només se n’obtinguin 14 classes.

Figura A3.5. Matriu d’índexs “riskfact”.

Page 98: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

97

- Variable G: és la variable de 1x32 que conté els valors de l’atenuació delstrenta-dos gradients. S’utilitza per a la reconstrucció dels espectres.

Figura A3.6. Variable “G”.

- Variable Metil: només és necessària a l’hora de la deconvolució, ja que té 3cel·les, de les quals per al present projecte només se n’utilitzen dues: la segonaconté els valors frontera o límit dels valors de cada paràmetre, i la tercera contéels valors inicials dels quals parteix el mètode de deconvolució, que per defectesón les mitjanes dels paràmetres de totes les mostres.

Figura A3.7. Variable “Metil”.

Figura A3.8. Camp 2 de la variable “Metil”.

Les columnes 1 i 2 representen els límits superior i inferior de les posicions, lescolumnes 3 i 4 són les fronteres de les amplades, i la 5 i la 6 són els límits delscoeficients de difusió.

Page 99: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

98

Figura A3.9. Camp 3 de la variable “Metil”.

Conté els valors inicials dels 4 paràmetres (alçada, posició, amplada i coeficient dedifusió) de les 9 funcions.

Un cop carregades aquestes variables, es pot procedir a la reconstrucció dels espectres.L’algoritme és el següent:

Primer de tot, classifiquem cada paràmetre de cada mostra al grup o classe que licorrespon:

%Omplo una matriu de cel·les de cada paràmetre per cada classe i percada%Lorentziana

%Cal carregar: - Estructura "output"% - Matriu de freqüències "riskfact"% - Variables "G" i "Metil" per la deconvolució

classe=1;

for i=1:6for j=1:3

if ~isempty (riskfact{j,i})coef{classe} =output.coefficients(riskfact{j,i},:);heig{classe} =output.heights(riskfact{j,i},:);pos{classe} =output.positions(riskfact{j,i},:);wid{classe} =output.widths(riskfact{j,i},:);classe=classe+1;

endend

end

Si s’observa, per exemple, la matriu coef, aquesta conté 14 cel·les de n x 9 cadascuna,sent n el nombre de mostres que pertanyen a aquella classe:

Figura A3.10. Matriu “coef”

Page 100: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

99

A continuació es calculen les mitjanes. Com es menciona als comentaris del programa,cal diferenciar entre els casos on hi ha només una mostra dels que n’hi ha més d’una, jaque en el primer cas, el programa ho pren com un vector de 1 mostra x 9 lorentzianes ien fa la mitjana de totes 9, enlloc de quedar-se amb els 9 valors.

%S'ha de posar com a condició el cas en què només hi ha una mostrad'alguna%de les classes, ja que sinó fa la mitjana dels paràmetres de les 9%Lorentzianes

for i=1:14if size(coef{i},1)>1

mitjcoef(i,:)=mean (coef{i});mitjheig(i,:)=mean (heig{i});mitjpos(i,:)=mean (pos{i});mitjwid(i,:)=mean (wid{i});

else % si només hi ha un individu en aquesta classe, agafa%directament el valor del paràmetre per cada Lorentziana

mitjcoef(i,:)=(coef{i});mitjheig(i,:)=(heig{i});mitjpos(i,:)=(pos{i});mitjwid(i,:)=(wid{i});

endend

Un cop calculat, per qüestió d’ordre, s’agrupen les dades en una estructura anomenadaoutputMig, que conté un camp per a cadascun dels paràmetres.

%Agrupem les mitjanes en una estructura.outputMig.heights=mitjheig;outputMig.coefficients=mitjcoef;outputMig.positions=mitjpos;outputMig.widths=mitjwid;

Seguidament arriba la part de la reconstrucció. En primer lloc s’han de carregar lesconstants de la fórmula, que és la següent:

= · 11 + − ·A banda de carregar les constants, també es crea una matriu tridimensional de zeros,anomenada EspectresMitjos, amb les dimensions 14 classes x 25 gradients x 328 puntsde l’eix del desplaçament químic on es troba el metil. Òbviament, s’hi enregistraran lesreconstruccions de les 14 classes.

Page 101: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

100

%Reconstrucció

%Inicialitzacions de paràmetresgamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

G2=-G(8:32)'.^2;gradients=8:32;

EspectresMitjos = zeros(14,length(G2),328);

Per últim, es reconstrueixen totes les funcions. Es tracta d’un bucle de 9 repeticions, perreconstruir les 9 funcions, dins un altre bucle de 14 voltes, que s’encarregarà deconstruir les 14 classes.

Primer de tot s’inicialitza una funció F a zero, ja que serà un paràmetre que aniremactualitzant amb la suma de les funcions. Carreguem els valors dels paràmetres de laclasse que toca, i els hi passem a la funció peaklorentzian, que s’encarrega de generar lafunció lorentziana.

Cal entrar a fons en aquesta funció, ja que no s’ha mencionat fins ara. Es tracta d’unafunció de Matlab que ja s’havia fet servir per anteriors proves en aquest àmbit. Per tant,s’ha considerat convenient l’ús de la mateixa eina per mantenir la coherència entre uns ialtres processos. La funció és la següent:

function [y,y1,y2] = Peaklorentzian(x,p)%PEAKLORENTZIAN Outputs a Lorentzian Function%% INPUTS:% x = 3 element vector with parameters% x(1) = coefficient,% x(2) = mean, and% x(3) = spread (must be >0).% ax = axis 1xN (independent variable).%% OUTPUTS:% y = x(1)*1./(1 + ((p-x(2))/x(3)).^2 ); %1xN.% y1 = dy/dxi, 3xN Jacobian.% y2 = d2y/dxi^2, 3x3xN Hessian.% If only one output is requested the Jacobian and% Hessian are not evaluated (provides faster performance).%%I/O: [y,y1,y2] = peaklorentzian(x,ax);%%See also: PEAKFUNCTION, PEAKGAUSSIAN, PEAKPVOIGT1, PEAKVOIGT2

% Copyright © Eigenvector Research, Inc. 2004-2008% Licensee shall not re-compile, translate or convert "M-files"contained% in PLS_Toolbox for use with any software other than MATLAB®,without% written permission from Eigenvector Research, Inc.

Page 102: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

101

%nbg 4/19/04%nbg 10/05 modified the help

%No error trapping is used to maximize speed

z = (p - x(2))/x(3);zz = z.*z;d = 1 + zz;f = 1./d;y = x(1)*f; %This is the peak function

if nargout>1n = length(p);y1 = zeros(3,n);y2 = zeros(3,3,n);A = 2.*f.*f;

y1(1,:) = f; %dy/dx1y1(2,:) = x(1)*A.*z/x(3); %dy/dx2y1(3,:) = z.*y1(2,:); %dy/dx3

%y2(1,1,:) = 0; %d2y/dx1^2y2(2,2,:) = x(1)*A.*(4*zz.*f-1)/x(3)/x(3); %d2y/dx2^2y2(3,3,:) = x(1)*A.*zz.*(4*zz.*f-3)/x(3)/x(3); %d2y/dx3^2y2(1,2,:) = A.*z/x(3); %d2y/dx1dx2 =

d2y/dx2dx1y2(2,1,:) = y2(1,2,:);y2(1,3,:) = squeeze(y2(1,2,:))'.*z; %d2y/dx1dx3 = d2y/dx3dx1y2(3,1,:) = y2(1,3,:);y2(2,3,:) = 2*x(1)*A.*z.*(2*zz.*f-1)/x(3)/x(3); %d2y/dx2dx3 =

d2y/dx3dx2y2(3,2,:) = y2(2,3,:);

% y2 = 0; %If peak error requires 2nd derivs and x-terms commentsmust be removedend

És una funció a la qual se li passen com a paràmetres un vector X que conté alçada,posició i amplada, i un altre vector P, amb la longitud de l’eix de posicions.

La funció retorna la Lorentziana corresponent als paràmetres indicats, així com unesmatrius Jacobiana i Hessiana que en principi no seran d’interès. De fet, com bé ensindica als mateixos comentaris, si només se li indica un paràmetre de sortida, aquestesdues matrius ni tan sols seran avaluades, i només retornarà la Lorentziana.

Per tant, només cal fixar-se en les 5 primeres línies “hàbils” de codi, que modelen lafórmula del model indicat.

Generarem, doncs, la funció Lorentziana, que haurem de repetir 25 vegades per poderobtenir els valors dels 25 gradients. Es realitza a través de la comanda de Matlabrepmat:

Lorentziana = repmat(peaklorentzian([h p w],x),length(G2),1);

Page 103: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

102

Tot seguit, es procedeix a aplicar l’atenuació del espectre, per tal d’incloure l’efecte dela difusió en els resultats que s’obtenen.

Aplicarem l’atenuació a tots els punts utilitzant novament l’eina repmat, aquesta vegada328 vegades per tal d’obtenir una matriu de 25 gradients x 328 punts que es multiplicaràa continuació per la matriu Lorentziana, d’idèntiques dimensions, i farem lareconstrucció.

Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));

Finalment, s’obté la nostra funció resultant, i es suma al valor que ja tenia aquesta, pertal d’obtenir finalment l’addició de les 9 funcions que conformen el pic:

F = F+Lorentziana.*Atenuacio;

Fora del bucle de 9 repeticions, i per tant, una vegada reconstruït l’espectre d’una de lesclasses, l’enregistrem a la matriu EspectresMitjos que prèviament s’havia creat peraquesta tasca. De manera anàloga, inicialitzem a zero la variable F per deixar preparadaper realitzar-se la propera funció. La reconstrucció completa, per tant, queda de lasegüent manera:

for c=1:14F=0;

for i=1:9h = outputMig.heights(c,i);p = outputMig.positions(c,i);w = outputMig.widths(c,i);d = outputMig.coefficients(c,i);

x=1:328; % Longitud en l'eix del desplaçament químic delpic del

% metil

%Reconstrucció dels espectres sintètics

Lorentziana = repmat(peaklorentzian([h p w],x),length(G2),1);Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));F = F+Lorentziana.*Atenuacio;

endEspectresMitjos(c,:,:)=F; %Hi enregistrem totes les

reconstruccionsend

Page 104: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

103

El codi complet queda així:

%Omplo una matriu de cel•les de cada paràmetre per cada classe i percada%Lorentziana

%Cal carregar: - Estructura "output"% - Matriu de freqüències "riskfact"% - Variables "G" i "Metil" per la deconvolució

classe=1;

for i=1:6for j=1:3

if ~isempty (riskfact{j,i})coef{classe} =output.coefficients(riskfact{j,i},:);heig{classe} =output.heights(riskfact{j,i},:);pos{classe} =output.positions(riskfact{j,i},:);wid{classe} =output.widths(riskfact{j,i},:);classe=classe+1;

endend

end

%S'ha de posar com a condició el cas en què només hi ha una mostrad'alguna%de les classes, ja que sinó fa la mitjana dels paràmetres de les 9%Lorentzianes

for i=1:14if size(coef{i},1)>1

mitjcoef(i,:)=mean (coef{i});mitjheig(i,:)=mean (heig{i});mitjpos(i,:)=mean (pos{i});mitjwid(i,:)=mean (wid{i});

else % si només hi ha un individu en aquesta classe, agafa%directament el valor del paràmetre per cada Lorentziana

mitjcoef(i,:)=(coef{i});mitjheig(i,:)=(heig{i});mitjpos(i,:)=(pos{i});mitjwid(i,:)=(wid{i});

endend

%Agrupem les mitjanes en una estructura.outputMig.heights=mitjheig;outputMig.coefficients=mitjcoef;outputMig.positions=mitjpos;outputMig.widths=mitjwid;

%Reconstrucció

%Inicialitzacions de paràmetresgamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

Page 105: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

104

G2=-G(8:32)'.^2;gradients=8:32;

EspectresMitjos = zeros(14,length(G2),328);

for c=1:14F=0;

for i=1:9h = outputMig.heights(c,i);p = outputMig.positions(c,i);w = outputMig.widths(c,i);d = outputMig.coefficients(c,i);

x=1:328; % Longitud en l'eix del desplaçament químic delpic del

% metil

%Reconstrucció dels espectres sintètics

Lorentziana = repmat(peaklorentzian([h p w],x),length(G2),1);Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));F = F+Lorentziana.*Atenuacio;

endEspectresMitjos(c,:,:)=F; %Hi enregistrem totes les

reconstruccionsend

Els resultats de la reconstrucció queden emmagatzemats a EspectresMitjos. Acontinuació es mostra una representació d’aquests resultats finals :

Figura A3.11. Representació de la classe 1 en 2D.

Page 106: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

105

Figura A3.12. Representació dels 25 gradients de la classe 1 en 1D.

Un cop reconstruïts els espectres, cal deconvolucionar-los. Amb unes breusmodificacions del codi anterior es duu a terme aquesta tasca.

En primer lloc es crea una nova estructura output, que per diferenciar-la de manerasenzilla de l’estructura original que conté les 177 mostres, s’anomenarà output2.Afegirem la següent comanda a les inicialitzacions que ja es tenien:

output2=createOutput;

També es carreguen els límits i les solucions inicials dels paràmetres que necessital’algoritme, i que com ja s’ha especificat, es troben a l’estructura Metil:

constraints=Metil{2};s0=Metil{3};

Finalment, a continuació de l’enregistrament de cada funció, hi situem la línia que cridaa la funció de deconvolució:

%Deconvolució de l'espectre que hem reconstruït.

output2=do2Deconvolution(F,G(gradients),1:size(F,1),constraints,s0,output2);

Per acabar, i per qüestió merament estètica, es crea un missatge a mostrar per pantalla,així com una barra de progrés que permet a l’usuari que fa ús del programa tenir unconeixement aproximat del temps que ha emprat i/o emprarà l’algoritme en realitzar la

Page 107: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

106

tasca. Aquesta última aplicació requereix la declaració de la barra de progrés, així comla fórmula que actualitzarà el valor de la barra, que òbviament es localitzarà dins elbucle. S’ha decidit que el bucle s’incrementi per cada classe que es reconstrueix ideconvoluciona. Al final, es tanca la barra de progrés quan el programa ha enllestit eltreball.

disp('Deconvolucionant...') %Missatge a mostrar per pantalla

b = waitbar(0,'Deconvolucionant...');

for c=1:14waitbar(c/14,b)

[...]

endclose (b)

A continuació es presenta el codi complet de la reconstrucció i deconvolució:

%Omplo una matriu de cel·les de cada paràmetre per cada classe i percada%Lorentziana

%Cal carregar: - Estructura "output"% - Matriu de freqüències "riskfact"% - Variables "G" i "Metil" per la deconvolució

classe=1;

for i=1:6for j=1:3

if ~isempty (riskfact{j,i})coef{classe} =output.coefficients(riskfact{j,i},:);heig{classe} =output.heights(riskfact{j,i},:);pos{classe} =output.positions(riskfact{j,i},:);wid{classe} =output.widths(riskfact{j,i},:);classe=classe+1;

endend

end

%S'ha de posar com a condició el cas en què només hi ha una mostrad'alguna%de les classes, ja que sinó fa la mitjana dels paràmetres de les 9%Lorentzianes

for i=1:14if size(coef{i},1)>1

mitjcoef(i,:)=mean (coef{i});mitjheig(i,:)=mean (heig{i});

Page 108: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

107

mitjpos(i,:)=mean (pos{i});mitjwid(i,:)=mean (wid{i});

else % si només hi ha un individu en aquesta classe, agafa%directament el valor del paràmetre per cada Lorentziana

mitjcoef(i,:)=(coef{i});mitjheig(i,:)=(heig{i});mitjpos(i,:)=(pos{i});mitjwid(i,:)=(wid{i});

endend

%Agrupem les mitjanes en una estructura.outputMig.heights=mitjheig;outputMig.coefficients=mitjcoef;outputMig.positions=mitjpos;outputMig.widths=mitjwid;

%Reconstrucció

%Inicialitzacions de paràmetresgamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

G2=-G(8:32)'.^2;gradients=8:32;

output2=createOutput;EspectresMitjos = zeros(14,length(G2),328);

constraints=Metil{2};s0=Metil{3};

disp('Deconvolucionant...') %Missatge a mostrar per pantalla

b = waitbar(0,'Deconvolucionant...');

for c=1:14waitbar(c/14,b)F=0;for i=1:9

h = outputMig.heights(c,i);p = outputMig.positions(c,i);w = outputMig.widths(c,i);d = outputMig.coefficients(c,i);

x=1:328; % Longitud en l'eix del desplaçament químic delpic del

% metil

%Reconstrucció dels espectres sintètics

Lorentziana = repmat(peaklorentzian([h p w],x),length(G2),1);Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));F = F+Lorentziana.*Atenuacio;

endEspectresMitjos(c,:,:)=F; %Hi enregistrem totes les

reconstruccions

Page 109: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

108

%Deconvolució de l'espectre que hem reconstruït.

output2=do2Deconvolution(F,G(gradients),1:size(F,1),constraints,s0,output2);endclose (b)

El resultat de la deconvolució és una estructura output idèntica a la presentadaanteriorment que contenia les 177 mostres, però en aquest cas amb les dades de les 14classes.

Figura A3.13. Estructura output2, amb tots els paràmetres de les 14 classes.

Si es representen les subfraccions, es poden comparar els resultats de lesdeconvolucions amb l’espectre original:

Page 110: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 3. Algoritme de reconstrucció i deconvolució dels 14 perfils lipídics

109

Figura A3.14. Espectre sintètic de la classe 1 superposat amb la seva pròpiadeconvolució. El resultat és tan exacte que no s’aprecia a simple vista, i fins i tot ésnecessari fer moltíssimes ampliacions per observar alguna petita diferència.

Page 111: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

110

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

El següent algoritme s’encarrega de modificar individualment el valor d’un determinatparàmetre de cada funció en un percentatge que es fixa a l’inici. Concretament, enprimer lloc reconstrueix l’espectre variant en el factor indicat la primera funció;seguidament fa el mateix recuperant el valor de la primera funció i modificant el de lasegona, i així successivament, fins a obtenir 9 espectres diferents per cada classe.

Els paràmetres a modificar són les alçades i els coeficients de difusió, per això s’hainclòs dos codis diferents, cadascun dels quals modifica un paràmetre. A més, caldràexecutar l’algoritme per cada factor de variació diferent que es vulgui aplicar. S’ha presaquesta decisió per qüestió d’ordre, ja que si s’executen totes les variacions i s’extreuentotes les dades en un mateix output, ens trobem amb un excés d’informació impossibled’interpretar.

Per tal de no haver de guardar les variables ja calculades i tornar-les a carregar en cadaocasió, el codi nou s’afegeix al que ja es tenia, de manera que es torna a fer tot el càlculde les mitjanes realitzat prèviament, ja que és un procés que tampoc consumeix untemps ni uns recursos excessius.

Les innovacions que inclou el nou algoritme són:

- Un nou bucle per modificar cada funció de manera individual, i la condició quefa que es modifiqui o no el paràmetre:

for c=1:14waitbar(c/14,b)for funciovariada=1:9 % Variem les funcions una a una

F=0;F=0;

for i=1:9% Quan coincideixen els valors del bucle que varia les

funcions% amb el de la reconstruccióif i==funciovariada

h = outputMig.heights(c,i).*factorvariacio;else

h = outputMig.heights(c,i);end

[...]

endend

Page 112: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

111

- Una variable que indica el factor en què varia el paràmetre.

factorvariacio=2; % Variable que pondera el valor del paràmetre que esdesitja modificar

- I un comptador que únicament serveix per poder enregistrar totes lesreconstruccions de manera més senzilla.

counter=counter+1Espectres(counter,:,:)=F; %Hi enregistrem totes les reconstruccions

El codi utilitzat finalment per modificar les alçades és el següent:

%Omplo una matriu de cel·les de cada paràmetre per cada classe i percada%Lorentziana

%Cal carregar: - Estructura "output"% - Matriu de freqüències "riskfact"% - Variables "G" i "Metil" per la deconvolució

classe=1;

for i=1:6for j=1:3

if ~isempty (riskfact{j,i})coef{classe} =output.coefficients(riskfact{j,i},:);heig{classe} =output.heights(riskfact{j,i},:);pos{classe} =output.positions(riskfact{j,i},:);wid{classe} =output.widths(riskfact{j,i},:);classe=classe+1;

endend

end

%S'ha de posar com a condició el cas en què només hi ha una mostrad'alguna%de les classes, ja que sinó fa la mitjana dels paràmetres de les 9%Lorentzianes

for i=1:14if size(coef{i},1)>1

mitjcoef(i,:)=mean (coef{i});mitjheig(i,:)=mean (heig{i});mitjpos(i,:)=mean (pos{i});mitjwid(i,:)=mean (wid{i});

else % si només hi ha un individu en aquesta classe, agafa%directament el valor del paràmetre per cada Lorentziana

mitjcoef(i,:)=(coef{i});mitjheig(i,:)=(heig{i});mitjpos(i,:)=(pos{i});mitjwid(i,:)=(wid{i});

Page 113: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

112

endend

%Agrupem les mitjanes en una estructura.outputMig.heights=mitjheig;outputMig.coefficients=mitjcoef;outputMig.positions=mitjpos;outputMig.widths=mitjwid;

%Reconstrucció

%Inicialitzacions de paràmetresgamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

G2=-G(8:32)'.^2;gradients=8:32;

output2=createOutput;Espectres = zeros(14,length(G2),328);

constraints=Metil{2};s0=Metil{3};

disp('Deconvolucionant...')

b = waitbar(0,'Deconvolucionant...');

factorvariacio=2; % Variable que pondera el valor del paràmetre que esdesitja modificarcounter=0; % Comptador per enregistrar els espectres reconstruïts

for c=1:14waitbar(c/14,b)for funciovariada=1:9 % Variem les funcions una a una

F=0;for i=1:9

% Quan coincideixen els valors del bucle que varia lesfuncions

% amb el de la reconstruccióif i==funciovariada

h = outputMig.heights(c,i).*factorvariacio;else

h = outputMig.heights(c,i);endp = outputMig.positions(c,i);w = outputMig.widths(c,i);d = outputMig.coefficients(c,i);

x=1:328; % Longitud en l'eix del desplaçament químicdel pic del

% metil

%Reconstrucció dels espectres sintètics

Lorentziana = repmat(peaklorentzian([h pw],x),length(G2),1);

Page 114: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

113

Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));

F = F+Lorentziana.*Atenuacio;endcounter=counter+1Espectres(counter,:,:)=F; %Hi enregistrem totes les

reconstruccions

%Deconvolució de l'espectre que hem reconstruït.

output2=do2Deconvolution(F,G(gradients),1:size(F,1),constraints,s0,output2);

endendclose (b)

Per modificar el coeficient de difusió, la part del càlcul de les mitjanes evidentment éscomú, per tant només caldrà canviar la part d la reconstrucció:

for c=1:14waitbar(c/14,b)for funciovariada=1:9

F=0;for i=1:9

h = outputMig.heights(c,i);p = outputMig.positions(c,i);w = outputMig.widths(c,i);if i==funciovariada

d = outputMig.coefficients(c,i).*factorvariacio;else

d = outputMig.coefficients(c,i);end

x=1:328; % Longitud en l'eix del desplaçament químicdel pic del

% metil

%Reconstrucció dels espectres sintètics

Lorentziana = repmat(peaklorentzian([h pw],x),length(G2),1);

Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));

F = F+Lorentziana.*Atenuacio;endcounter=counter+1Espectres(counter,:,:)=F; %Hi enregistrem totes les

reconstruccions

%Deconvolució de l'espectre que hem reconstruït.

output2=do2Deconvolution(F,G(gradients),1:size(F,1),constraints,s0,output2);

endendclose (b);

Page 115: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

114

Observem també de forma gràfica un exemple de resultat de l’algoritme, que alhora ensserveix per comprovar que aquest funciona de manera correcta.

Agafem una variació a l’atzar, per exemple, de l’alçada de la tercera funció de la classe1 modificada en un factor 2. Comparem-lo amb el pic original i observem com afecta ala forma d’aquest.

Figura A4.1. Espectre original de la classe 1 (vermell) i espectre amb una de les sevesfuncions variada (blau).

Observem la diferència entre la deconvolució i l’original. Com en la resta de casos, haretornat la corba a la perfecció.

Page 116: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

115

Figura A4.2. Espectre de la modificació de la classe 1 superposat amb la seva pròpiadeconvolució. També ho retorna amb molta exactitud.

Tot seguit, observem la diferència entre les deconvolucions. Com era d’esperar, lafunció que hem modificat no ha afectat pràcticament a la distribució de les altresfuncions, sinó que simplement la que hem modificat ha variat la seva alçada. Tot i això,en aquest cas s’aprecia un cert canvi que fins ara no s’havia arribat a veure, però és unerror mínim.

Figura A4.3. Funcions superposades de la deconvolució de l’original (blau) i delmodificat (vermell). Totes les funcions són pràcticament iguals excepte la modificada,que varia precisament en el factor que s’ha aplicat.

Page 117: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

116

Pel que fa a les modificacions del coeficient de difusió, es pot observar en un espectre2D l’efecte que li produeix la variació. Agafem la mateixa funció de la mateixa classe,amb un augment del 10% en el coeficient de difusió.

Figura A4.4. Espectres 2D de la classe 1 sense modificar (dalt) i la classe 1 modificada(baix). Si s’observen els gradients finals al fons de l’eix de la difusió, es pot apreciaraquesta lleugera diferència de valors.

Per veure-ho més clarament, es poden observar les figures anteriors superposades i en1D:

Page 118: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

117

Figura A4.5. Espectres 1D de la classe 1 sense modificar (vermell) i la classe 1modificada (blau). Els primers gradients presenten una diferència molt petita, però alsúltims, més atenuats, es pot apreciar com el modificat presenten uns valors inferiors(coeficient de difusió més gran implica més atenuació).

A banda d’aquestes dues variacions individuals, s’han realitzat les modificacionsd’ambdós paràmetres simultàniament, cosa que ha requerit un altre algoritme. Aquestnou codi difereix sensiblement dels anteriors en el plantejament i en la forma i el tipusde solucions que s’obtenen.

Es pretén augmentar els valors de l’alçada, però disminuir els coeficients de difusió. Debon principi, el fet de variar sensiblement els valors dels coeficients de difusió, ensobliga a ampliar les fronteres que imposava el mètode, ja que si no ho féssim, els valorsd’alguns coeficients ja partirien de valors fora d’aquests límits, i interessa que el valorque retorni no es trobi a la frontera, sinó que tingui la llibertat de ser fora d’aquesteslimitacions i, per tant, que tingui possibilitats de ser el mateix valor d’inici, com així espreveu. Això implica la modificació del camp 2 de l’estructura Metil.

Seguint amb les diferències, degut a que el codi només pretén modificar les funcions 3,4 i 5, es crea unes matrius que contingui els factors de variació aplicats a les esmentadesfuncions, de la següent manera:

M=[1 1 1 1 1 1 1 1 1;1 2 2 2 1 1 1 1 1;1 3 3 3 1 1 1 1 1];

Com que aquests valors seran els que multiplicaran a les alçades i dividiran alscoeficients, es pot crear una matriu que contingui els valors modificats d’aquests

Page 119: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

118

paràmetres, de manera que l’algoritme hi accedirà directament per agafar cada valor.Aquests valors es van modificant per cada classe que es reconstrueix i deconvoluciona:

for c=1:14waitbar(c/14,h)factork.kh = repmat(outputMig.heights(c,:),3,1).*M;factork.kd = repmat(outputMig.coefficients(c,:),3,1)./M;

S’observa que s’ha de fer una còpia per triplicat de la fila de valors de cada funció, pertal que les dimensions d’ambdues matrius siguin idèntiques. Observem com estanorganitzats els paràmetres després d’aplicar aquest codi:

Figura A4.6. Estructura factork. Presenta els paràmetres de les funcions 2, 3 i 4ponderats per un factor 1, 2 i 3, multiplicant i dividint respectivament.

A l’hora d’agafar els valors per reconstruir les funcions, l’algoritme l’agafa directamentde l’estructura:

h = factork.kh(j,i);p = outputMig.positions(c,i);w = outputMig.widths(c,i);d = factork.kd(aux,i);

Per tant, l’algoritme final és el següent:

%Omplo una matriu de cel·les de cada paràmetre per cada classe i percada%Lorentziana

%Cal carregar: - Estructura "output"% - Matriu de freqüències "riskfact"% - Variables "G" i "Metil" per la deconvolució

classe=1;

Page 120: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

119

for i=1:6for j=1:3

if ~isempty (riskfact{j,i})coef{classe} =output.coefficients(riskfact{j,i},:);heig{classe} =output.heights(riskfact{j,i},:);pos{classe} =output.positions(riskfact{j,i},:);wid{classe} =output.widths(riskfact{j,i},:);classe=classe+1;

endend

end

%S'ha de posar com a condició el cas en què només hi ha una mostrad'alguna%de les classes, ja que sinó fa la mitjana dels paràmetres de les 9%Lorentzianes

for i=1:14if size(coef{i},1)>1

mitjcoef(i,:)=mean (coef{i});mitjheig(i,:)=mean (heig{i});mitjpos(i,:)=mean (pos{i});mitjwid(i,:)=mean (wid{i});

else % si només hi ha un individu en aquesta classe, agafa%directament el valor del paràmetre per cada Lorentziana

mitjcoef(i,:)=(coef{i});mitjheig(i,:)=(heig{i});mitjpos(i,:)=(pos{i});mitjwid(i,:)=(wid{i});

endend

%Agrupem les mitjanes en una estructura.outputMig.heights=mitjheig;outputMig.coefficients=mitjcoef;outputMig.positions=mitjpos;outputMig.widths=mitjwid;

%Reconstrucció

%Inicialitzacions de paràmetresgamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

G2=-G(8:32)'.^2;gradients=8:32;

output2=createOutput;Espectres = zeros(14,length(G2),328);

constraints=Metil{2};s0=Metil{3};

disp('Deconvolucionant...')

b = waitbar(0,'Deconvolucionant...');

Page 121: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

120

M=[1 1 1 1 1 1 1 1 1;1 2 2 2 1 1 1 1 1;1 3 3 3 1 1 1 1 1];counter=0;

for c=1:14waitbar(c/14,b)factork.kh = repmat(outputMig.heights(c,:),3,1).*M;factork.kd = repmat(outputMig.coefficients(c,:),3,1)./M;

for j=1:3for aux=1:3

F=0;for i=1:9

h = factork.kh(j,i);p = outputMig.positions(c,i);w = outputMig.widths(c,i);d = factork.kd(aux,i);

x=1:328; % Longitud en l'eix del desplaçamentquímic del pic del

% metil

%Reconstrucció dels espectres sintètics

Lorentziana = repmat(peaklorentzian([h pw],x),length(G2),1);

Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));

F = F+Lorentziana.*Atenuacio;end

counter=counter+1;Espectres(counter,:,:)=F; %Hi enregistrem totes les

reconstruccions

%Deconvolució de l'espectre que hem reconstruït.

output2=do2Deconvolution(F,G(gradients),1:size(F,1),constraints,s0,output2);

endend

endclose (b);

Observem també alguns resultats de la classe 1, per variacions factor 3. Aquestavariació és la que presenta, amb diferència, els errors més elevats:

Page 122: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 4. Algoritme de les variacions de paràmetres del’anàlisi de sensibilitat del mètode de deconvolució

121

Figura A4.7. Espectre de la modificació més extrema de la classe 1 superposat amb laseva pròpia deconvolució. També ho retorna amb molta exactitud.

Figura A4.8. Funcions superposades de la deconvolució de l’original (blau) i delmodificat (vermell). Totes les funcions són molt semblants excepte les modificades, quevarien precisament en el factor que s’ha aplicat.

Page 123: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

122

Annex 5: Resultats dels errors de l’anàlisi de sensibilitat delmètode de deconvolució

Per interpretar les dades ens trobem amb un problema evident: el volum d’informació ésexcessivament gran, ja que estem parlant de 5 variacions per 9 funcions; alhora, veiemquin és l’error en les 9 lorentzianes per cadascuna d’aquestes variacions, i això aplicat ales 14 classes. Això dóna lloc a una taula de 5670 valors d’error, que és força difícild’interpretar i molt més de treure conclusions clares.

Per aquest motiu s’ha construït una taula amb les mitjanes dels errors de les 9lorentzianes en aplicar cada variació, cosa que redueix la taula a 630 valors. És a dir,modificant de manera directa una única funció amb el percentatge especificat, els valorsde les altres lorentzianes es poden veure afectats.

Per tant, per exemple, l’error mostrat a F1 és la mitjana dels errors observats en lafunció 1 degut a la modificació d’ella mateixa i els 8 errors potencials obtinguts enmodificar les altres funcions.

A continuació es mostren les taules corresponents a aquest anàlisi:

Page 124: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

123

Taula A5.1. Errors produïts en les àrees en variar les alçades

Classe Variacions (%) F1 F2 F3 F4 F5 F6 F7 F8 F91 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 -0,15 -1,73 -0,07 0,32 -0,77 1,68 -0,30 -5,71 5,42

2 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

3 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

4 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

5 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

6 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

7 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

8 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

Page 125: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

124

9 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 -20 -0,01 -0,21 0,10 -0,09 0,02 0,31 -0,69 0,45 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 -0,02 -0,52 0,10 -0,12 -0,19 1,82 -4,51 2,35 0,19

11 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

12 -20 0,00 -0,06 0,10 -0,11 0,08 0,02 -0,03 0,01 0,00-5 0,01 0,03 0,09 -0,23 0,19 0,35 -0,83 0,56 0,015 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 -0,01 0,01 -0,02 0,01 0,00 0,00 0,00 0,00100 0,01 -0,21 0,54 -0,85 0,45 0,28 -0,83 0,36 -0,03

13 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

14 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

Page 126: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

125

Taula A5.2. Errors produïts en els coeficients en variar les alçades

Classe Variacions (%) F1 F2 F3 F4 F5 F6 F7 F8 F91 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 -0,05 1,15 0,19 -0,02 0,02 -0,11 -0,45 0,16 0,932 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,003 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,004 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,006 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,007 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,008 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

Page 127: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

126

9 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0010 -20 0,00 0,11 0,00 -0,01 0,05 -0,03 -0,04 0,02 -0,03

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 -0,01 0,24 0,05 -0,01 0,09 -0,22 -0,23 0,12 -0,1311 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0012 -20 0,00 0,03 -0,02 -0,01 0,02 -0,01 0,00 0,00 0,00

-5 0,00 -0,01 -0,04 0,00 0,05 -0,10 -0,05 0,05 -0,035 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,10 -0,14 -0,01 0,09 -0,13 -0,05 0,03 -0,0313 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0014 -20 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0020 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

100 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

Page 128: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

127

Taula A5.3. Errors produïts en les àrees en variar els coeficients de difusió

Classe Variacions (%) F1 F2 F3 F4 F5 F6 F7 F8 F91 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,002 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,003 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,004 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,01 -0,01 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,006 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,007 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,008 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

Page 129: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

128

9 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0010 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,06 -0,02 0,01 0,01 -0,11 0,26 -0,19 0,015 0,00 0,02 -0,01 0,00 0,00 -0,02 0,05 -0,03 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0011 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0012 -10 0,00 0,05 -0,05 0,03 0,02 -0,05 0,04 -0,02 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,01 -0,01 0,02 0,00 -0,03 0,05 -0,03 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0013 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,0014 -10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,005 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

10 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

Page 130: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

129

Taula A5.4. Errors produïts en els coeficients de difusió en variar ells mateixos

Classe Variacions (%) F1 F2 F3 F4 F5 F6 F7 F8 F91 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0002 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0003 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0004 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,001 0,000 -0,001 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0006 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0007 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0008 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

Page 131: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 5. Resultats dels errors de l’anàlisi de sensibilitat del mètode de deconvolució

130

9 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,00010 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,001 -0,028 -0,003 0,004 -0,010 0,010 0,014 -0,006 0,0135 0,000 -0,011 0,000 0,002 -0,003 0,002 0,003 -0,002 0,002

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,00011 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,00012 -10 0,000 -0,017 0,006 0,008 -0,010 0,000 0,007 -0,002 0,002

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 -0,002 0,002 0,001 -0,005 0,005 0,005 -0,003 0,002

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,00013 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,00014 -10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

-5 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,0005 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

10 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

Page 132: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 6. Algoritme de l’efecte de polidispersió

131

Annex 6. Algoritme de l’efecte de polidispersió

El primer pas és crear els perfils que s’havien escollit per simular distribucions dediferents característiques, ponderant de diferents maneres a les 3 lorentzianes quesimulen la distribució. Per aquest motiu, es crea una matriu de paràmetres amb elsvalors de les ponderacions pels 8 perfils (files) de les 3 Lorentzianes (columnes).

params.A=[1 1 1;1 2 1; 2 1 1;1 1 2;2 1 0;0 1 2; 1 3 1; 4 1 1;1 1 4;4 10;0 1 4;1 4 1; 1 8 1];

Es calcula la mitjana de tots els coeficients de cada funció individualment. Els 9 valorsde sortida seran els valors de la lorentziana central de les tres que simulen la distribució.Per a les altres dues, els valors que els hi atorguem són una desviació estàndard per sotai per sobre, respectivament, d’aquesta mitjana.

for i=1:9params.d(i,2)=mean(outputMig.coefficients(:,i));params.d(i,1)=params.d(i,2)-std(outputMig.coefficients(:,i));params.d(i,3)=params.d(i,2)+std(outputMig.coefficients(:,i));

end

A continuació es simulen les distribucions, que es reconstrueixen a partir dels 13 perfilsi les 9 funcions. Es decideix atorgar a l’alçada un valor de 104, que és l’ordre demagnitud habitual amb que es presenta aquest paràmetre, multiplicat per un nombre n,que és el valor localitzat a la matriu params.A que pondera cada funció. Per la sevabanda, l’amplada de les funcions serà una mitjana de totes les amplades de l’estructuraoutputMig per a cada lorentziana, és a dir, serà una mitjana de les mitjanes calculadesamb anterioritat.

for perfil=1:13for funcio=1:9

A=1e4*params.A(perfil,:);w=mean(outputMig.widths(:,i));d=params.d(funcio,:);G2=G(8:25)'.^2;s=1:328;dspace=0:0.01:2;

La reconstrucció de les 3 funcions té lloc en una posició central escollida per consens,que és 130, que és senzillament la mitjana de totes les posicions de l’estructura outputoriginal (177 mostres). La resta de paràmetres són els indicats anteriorment. Acontinuació, es realitza la deconvolució.

Page 133: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 6. Algoritme de l’efecte de polidispersió

132

F=0;for i=1:3

Lorentziana = repmat(peaklorentzian([A(i) 130w],s),25,1);

Atenuacio = repmat(exp(-k*(d(i)*1e-7)*(G2-G2(1))),1,328);

F=F+Lorentziana.*Atenuacio;end

output2=do2Deconvolution(F,G(8:32),1:size(F,1),constraints,s0,output2);

end

end

El codi complet és el següent:

%Omplo una matriu de cel·les de cada paràmetre per cada classe i percada%Lorentziana

%Cal carregar: - Estructura "output"% - Matriu de freqüències "riskfact"% - Variables "G" i "Metil" per la deconvolució

classe=1;

for i=1:6for j=1:3

if ~isempty (riskfact{j,i})coef{classe} =output.coefficients(riskfact{j,i},:);heig{classe} =output.heights(riskfact{j,i},:);pos{classe} =output.positions(riskfact{j,i},:);wid{classe} =output.widths(riskfact{j,i},:);classe=classe+1;

endend

end

%S'ha de posar com a condició el cas en què només hi ha una mostrad'alguna%de les classes, ja que sinó fa la mitjana dels paràmetres de les 9%Lorentzianes

for i=1:14if size(coef{i},1)>1

mitjcoef(i,:)=mean (coef{i});mitjheig(i,:)=mean (heig{i});mitjpos(i,:)=mean (pos{i});mitjwid(i,:)=mean (wid{i});

else % si només hi ha un individu en aquesta classe, agafa%directament el valor del paràmetre per cada Lorentziana

mitjcoef(i,:)=(coef{i});mitjheig(i,:)=(heig{i});

Page 134: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 6. Algoritme de l’efecte de polidispersió

133

mitjpos(i,:)=(pos{i});mitjwid(i,:)=(wid{i});

endend

%Agrupem les mitjanes en una estructura.outputMig.heights=mitjheig;outputMig.coefficients=mitjcoef;outputMig.positions=mitjpos;outputMig.widths=mitjwid;

gamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

constraints=Metil{2};s0=Metil{3};output2=createOutput;

params.A=[1 1 1;1 2 1; 2 1 1;1 1 2;2 1 0;0 1 2; 1 3 1; 4 1 1;1 1 4;4 10;0 1 4;1 4 1; 1 8 1];

for i=1:9params.d(i,2)=mean(outputMig.coefficients(:,i));params.d(i,1)=params.d(i,2)-std(outputMig.coefficients(:,i));params.d(i,3)=params.d(i,2)+std(outputMig.coefficients(:,i));

end

for perfil=1:13for funcio=1:9

A=1e4*params.A(perfil,:);w=mean(outputMig.widths(:,funcio));d=params.d(funcio,:);G2=G(8:32)'.^2;s=1:328;dspace=0:0.01:2;

F=0;for i=1:3

Lorentziana = repmat(peaklorentzian([A(i) 130w],s),25,1);

Atenuacio = repmat(exp(-k*(d(i)*1e-7)*(G2-G2(1))),1,328);

F=F+Lorentziana.*Atenuacio;end

output2=do2DeconvolutionN(F,G(8:32),1:size(F,1),constraints,s0,output2);

end

end

Page 135: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 7. Resultats complets de l’efecte de polidispersió

134

Annex 7. Resultats complets de l’efecte de polidispersió

Les següents taules mostren les diferències entre els coeficients obtinguts a ladeconvolució, i els que s’haurien d’obtenir en teoria, si ponderem de manera aritmèticasegons els perfils de les distribucions que hem creat. També s’inclouen les taules ambels valors de les mitjanes i les desviacions calculades.

Lorentziana Mitjana-desviació MITJANA Mitjana+desviacióF2 0,370 0,579 0,787F3 0,643 0,821 0,998F4 0,950 1,127 1,304F5 1,224 1,565 1,906F6 3,009 3,289 3,568F7 4,055 4,291 4,526F8 4,466 4,698 4,930F9 6,055 6,406 6,756

TAULA A6.1. Mitjana dels coeficients de les 14 classes.

Perfil F2 F3 F4 F5 F6 F7 F8 F9111 0,570 0,815 1,121 1,544 3,278 4,284 4,692 6,395121 0,572 0,816 1,123 1,549 3,281 4,286 4,694 6,398211 0,518 0,770 1,077 1,459 3,208 4,225 4,634 6,308112 0,622 0,859 1,165 1,629 3,347 4,343 4,750 6,483210 0,437 0,700 1,007 1,330 3,099 4,131 4,541 6,169012 0,715 0,937 1,243 1,785 3,471 4,446 4,851 6,636131 0,574 0,817 1,124 1,552 3,282 4,287 4,694 6,400411 0,467 0,727 1,033 1,377 3,140 4,167 4,577 6,222114 0,675 0,904 1,211 1,717 3,419 4,403 4,809 6,572410 0,410 0,677 0,984 1,287 3,063 4,101 4,511 6,123014 0,743 0,961 1,267 1,833 3,510 4,478 4,882 6,684141 0,574 0,818 1,124 1,554 3,283 4,287 4,695 6,401

TAULA A6.2. Coeficients retornats per la deconvolució segons el perfil (perfils més extrems)

Page 136: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 7. Resultats complets de l’efecte de polidispersió

135

En el cas d’aplicar dues desviacions:

Perfil F2 F3 F4 F5 F6 F7 F8 F9111 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406121 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406211 0,527 0,776 1,083 1,479 3,219 4,232 4,640 6,318112 0,631 0,865 1,171 1,650 3,358 4,350 4,756 6,493210 0,440 0,702 1,009 1,337 3,103 4,134 4,543 6,172012 0,718 0,939 1,245 1,792 3,475 4,448 4,853 6,639131 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406411 0,474 0,732 1,038 1,394 3,149 4,173 4,582 6,231114 0,683 0,909 1,216 1,735 3,428 4,408 4,814 6,581410 0,412 0,679 0,985 1,292 3,065 4,102 4,512 6,126014 0,746 0,963 1,269 1,838 3,512 4,479 4,884 6,686141 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406

TAULA A6.3. Ponderació aritmètica

Lorentziana Mitjana-2*desviació MITJANA Mitjana+2*desviacióF2 0,162 0,579 0,996F3 0,465 0,821 1,176F4 0,773 1,127 1,482F5 0,882 1,565 2,247F6 2,730 3,289 3,847F7 3,819 4,291 4,762F8 4,234 4,698 5,162F9 5,705 6,406 7,107

TAULA A6.4. Mitjana dels coeficients de les 14 classes.

Perfil F2 F3 F4 F5 F6 F7 F8 F9111 0,544 0,796 1,104 1,483 3,246 4,265 4,674 6,364121 0,553 0,802 1,110 1,503 3,256 4,271 4,680 6,375211 0,440 0,707 1,015 1,312 3,105 4,146 4,558 6,188112 0,647 0,884 1,191 1,648 3,383 4,381 4,789 6,538210 0,289 0,576 0,883 1,082 2,902 3,968 4,380 5,924012 0,845 1,049 1,356 1,993 3,647 4,596 5,000 6,860131 0,558 0,806 1,113 1,515 3,263 4,275 4,684 6,381411 0,341 0,623 0,930 1,156 2,973 4,033 4,445 6,019114 0,756 0,976 1,283 1,830 3,529 4,503 4,909 6,720410 0,237 0,531 0,838 0,999 2,831 3,907 4,321 5,835014 0,904 1,099 1,405 2,091 3,725 4,662 5,064 6,957141 0,561 0,808 1,115 1,523 3,267 4,278 4,686 6,385181 0,568 0,813 1,120 1,540 3,276 4,283 4,691 6,393

TAULA A6.5. Coeficients retornats per la deconvolució segons el perfil (amb 2 desviacions)

Page 137: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 7. Resultats complets de l’efecte de polidispersió

136

Perfil F2 F3 F4 F5 F6 F7 F8 F9111 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406121 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406211 0,475 0,732 1,039 1,394 3,149 4,173 4,582 6,231112 0,683 0,910 1,216 1,735 3,428 4,409 4,814 6,581210 0,301 0,584 0,891 1,110 2,916 3,976 4,389 5,939012 0,857 1,058 1,364 2,020 3,661 4,605 5,007 6,873131 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406411 0,371 0,643 0,950 1,223 3,009 4,055 4,466 6,056114 0,788 0,998 1,305 1,906 3,568 4,526 4,930 6,757410 0,245 0,536 0,844 1,019 2,842 3,913 4,327 5,845014 0,913 1,105 1,411 2,111 3,735 4,668 5,069 6,967141 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406181 0,579 0,821 1,127 1,565 3,289 4,291 4,698 6,406

TAULA A6.6. Ponderació aritmètica

Page 138: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 8. Algoritme de simulació de soroll

137

Annex 8. Algoritme de simulació de soroll

Com ja s’ha vist al capítol que parla del soroll, la base per aplicar aquest fenomen sóndades reals. S’ha pres un espectre real, concretament un tram d’aquest on els valors hande ser totalment nuls, i s’ha observat que apareix una petita distorsió que presenta lescaracterístiques d’un soroll blanc. S’ha comprovat que efectivament era així a través dela distribució dels valors, que presentava una forma clarament gaussiana.

A partir dels valors reals, es crea una matriu de valors aleatoris a través de la comandanormrnd. Li indiquem com a mitjana el valor 0 (característica del soroll gaussià), i coma variància la desviació estàndard dels valors dels primers 3000 punts de l’espectre. Lesdimensions seran de 25 gradients x 328 punts, ja que es considera que el soroll prenvalors aleatoris en tots els eixos, inclosa la difusió.

R1=normrnd(0,std(X.data(1:3000)),25,328)

Per augmentar el percentatge d’error, generarem altres matrius, però aplicant-hivariàncies fins a 6 vegades més grans: Aquestes seran les comandes utilitzades.

R2=normrnd(0,2*std(X.data(1:3000)),25,328)

R3=normrnd(0,3*std(X.data(1:3000)),25,328)

R4=normrnd(0,4*std(X.data(1:3000)),25,328)

R5=normrnd(0,5*std(X.data(1:3000)),25,328)

R6=normrnd(0,6*std(X.data(1:3000)),25,328)

Aquesta matriu es sumarà a l’espectre sintètic després de reconstruir-lo:

F=F+R1;

Per la mateixa qüestió d’evitar l’excès de dades en una sola estructura, es variaràaquesta darrera línia i es tornarà a executar el codi cada vegada que es vulgui obtenir unsoroll de magnituds diferents (es substituirà R1 per R2, R3... i així successivament perobtenir els diversos nivells de soroll).

Page 139: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 8. Algoritme de simulació de soroll

138

També cal tenir carregat un espectre original complet qualsevol, per tal de poder agafarels 3000 primers valors. Es tracta de la X que apareix a les línies de codi de dalt. Elcamp data conté tots els punts de l’espectre:

Figura A8.1. Espectre complet d’una mostra qualsevol.

Finalment, l’algoritme queda així:

%Omplo una matriu de cel·les de cada paràmetre per cada classe i percada%Lorentziana

%Cal carregar: - Estructura "output"% - Matriu de freqüències "riskfact"% - Variables "G" i "Metil" per la deconvolució

classe=1;

for i=1:6for j=1:3

if ~isempty (riskfact{j,i})coef{classe} =output.coefficients(riskfact{j,i},:);heig{classe} =output.heights(riskfact{j,i},:);pos{classe} =output.positions(riskfact{j,i},:);wid{classe} =output.widths(riskfact{j,i},:);classe=classe+1;

endend

end

%S'ha de posar com a condició el cas en què només hi ha una mostrad'alguna%de les classes, ja que sinó fa la mitjana dels paràmetres de les 9

Page 140: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 8. Algoritme de simulació de soroll

139

%Lorentzianes

for i=1:14if size(coef{i},1)>1

mitjcoef(i,:)=mean (coef{i});mitjheig(i,:)=mean (heig{i});mitjpos(i,:)=mean (pos{i});mitjwid(i,:)=mean (wid{i});

else % si només hi ha un individu en aquesta classe, agafa%directament el valor del paràmetre per cada Lorentziana

mitjcoef(i,:)=(coef{i});mitjheig(i,:)=(heig{i});mitjpos(i,:)=(pos{i});mitjwid(i,:)=(wid{i});

endend

%Agrupem les mitjanes en una estructura.outputMig.heights=mitjheig;outputMig.coefficients=mitjcoef;outputMig.positions=mitjpos;outputMig.widths=mitjwid;

%Reconstrucció

%Inicialitzacions de paràmetresgamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

G2=-G(8:32)'.^2;gradients=8:32;

output2=createOutput;EspectresMitjos = zeros(14,length(G2),328);

constraints=Metil{2};s0=Metil{3};

disp('Deconvolucionant...')

h = waitbar(0,'Deconvolucionant...');

for c=1:14F=0;for i=1:9

h = outputMig.heights(c,i);p = outputMig.positions(c,i);w = outputMig.widths(c,i);d = outputMig.coefficients(c,i);

x=1:328; % Longitud en l'eix del desplaçament químic delpic del

% metil

%Reconstrucció dels espectres sintètics

Lorentziana = repmat(peaklorentzian([h p w],x),length(G2),1);Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));

Page 141: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 8. Algoritme de simulació de soroll

140

F = F+Lorentziana.*Atenuacio;

endF=F+R1;EspectresSoroll(c,:,:)=F; %Hi enregistrem totes les

reconstruccions

%Deconvolució de l'espectre que hem reconstruït.

output2=do2Deconvolution(F,G(gradients),1:size(F,1),constraints,s0,output2);end

Aquí es pot observar com queda un espectre amb soroll:

Figura A8.2. Classe 1 amb un soroll de nivell 6 representat en 2D.

Figura A8.3. Classe 1 amb un soroll de nivell 6 representat en 1D.

Page 142: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 8. Algoritme de simulació de soroll

141

Figura A8.4. Imatge que compara el pic amb soroll (vermell) amb el seu fitament(blau).

Figura A8.5. A la imatge anterior hi afegim, en groc, l’espectre sintètic original.

Page 143: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 9. Resultats complets de la simulació de soroll

142

Annex 9. Resultats complets de la simulació de soroll

Es mostren a continuació les taules amb tots els errors entre deconvolució i valororiginal en totes les desviacions possibles aplicades a la matriu aleatòria generada.

CLASSE 14: PRESENTA L'ERROR MÉS GRAN

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 0,12 2,08 -1,91 2,88 -2,11 -9,32 11,66 0,17 -6,242 0,01 1,45 -1,62 2,60 0,78 -9,56 4,58 10,18 -11,913 0,18 0,63 -0,65 0,44 3,57 -10,88 12,14 3,78 -9,464 0,18 6,96 -4,12 3,74 4,43 -9,92 -1,81 18,09 -18,345 0,13 1,28 -2,39 5,84 -2,38 -10,55 5,42 3,95 -3,406 -0,15 0,13 -3,11 13,62 -11,59 -14,67 14,54 -1,91 -3,077 -0,03 2,38 -1,67 0,20 1,75 -7,31 12,52 -5,19 -2,968 -0,24 -4,63 1,18 3,43 -2,42 -9,78 18,98 -13,54 2,659 -0,15 -5,11 4,10 -2,48 3,20 -5,68 4,91 1,11 -1,2010 0,16 3,36 -2,29 2,31 0,72 -8,29 10,03 2,40 -9,7711 -0,05 0,38 -0,31 -1,84 6,01 -11,17 15,42 3,84 -14,7912 -0,06 3,73 -4,50 3,81 -0,39 -6,94 6,44 4,05 -6,7813 -0,13 -4,18 4,27 -0,78 -0,89 -2,45 8,73 -7,70 1,6614 -0,03 3,18 6,07 -7,48 2,18 -9,90 27,74 -11,52 -13,32

Taula A9.1. Errors entre àrees, 1 desviació (%)

Page 144: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 9. Resultats complets de la simulació de soroll

143

CLASSE 7: PRESENTA L'ERROR MÉS GRAN

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -0,02 1,56 -0,79 0,73 3,80 -18,40 9,84 31,51 -36,532 -0,36 2,20 -1,82 -2,56 17,29 -11,23 0,74 20,32 -29,503 -0,21 -4,23 3,48 -9,11 27,55 -11,21 -5,80 32,37 -26,764 -0,30 5,09 -1,18 6,51 -0,35 -21,15 7,79 8,34 -1,435 -0,59 -2,98 -0,54 1,21 10,84 -8,58 -3,80 6,65 -8,056 -0,89 -6,61 0,39 20,19 -17,71 -25,24 20,10 -6,70 3,367 -2,27 -24,57 13,14 14,82 -14,20 -8,86 -3,21 26,72 -25,708 -1,06 -6,23 2,99 1,70 4,96 -12,08 12,85 -12,27 4,519 -1,09 -10,84 8,05 4,76 1,07 -17,42 12,58 -1,32 2,7010 -0,44 2,07 -0,52 1,08 -0,60 -10,68 24,06 -0,33 -31,1611 -1,11 -5,21 11,35 -5,51 4,33 -11,56 6,98 10,77 -14,1512 -0,33 2,48 2,83 -6,36 3,77 1,33 -4,51 11,01 -8,3313 -0,65 -18,32 20,04 8,66 -12,44 -9,21 9,62 7,53 -10,6614 -0,55 -7,23 24,48 -9,22 4,33 -15,85 9,05 11,66 -12,98

Taula A9.2. Errors entre ambdues, 2 desviacions (%)*

Page 145: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 9. Resultats complets de la simulació de soroll

144

CLASSE 7: PRESENTA L'ERROR MÉS GRAN

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 0,43 0,32 -1,29 7,45 -10,61 -18,94 14,58 15,10 -19,332 1,30 4,28 -2,56 4,13 -2,90 -14,55 8,56 15,04 -20,393 1,32 1,49 -1,18 1,65 6,13 -20,86 2,63 41,61 -36,324 0,68 5,23 -9,49 8,07 17,54 -15,08 -21,09 27,21 -9,175 1,39 5,18 -4,80 10,89 -3,76 -21,10 1,17 26,43 -28,646 1,11 4,01 -7,65 22,99 -22,06 -4,26 -4,06 18,93 -21,107 -0,76 -34,52 9,62 16,85 -12,06 -7,54 -4,76 30,71 -34,388 0,94 -9,36 -1,95 6,41 -2,28 -2,05 2,70 -0,64 -14,589 1,59 -12,30 1,88 3,03 7,73 -11,33 -6,89 19,05 -9,6410 1,13 1,93 -1,48 6,08 -2,00 -22,14 21,62 10,70 -16,8911 1,20 -4,18 -1,78 8,87 -3,28 -16,48 22,41 11,85 -21,0312 0,91 -5,47 -7,10 12,57 -5,26 -5,55 -3,48 12,12 -3,1313 0,34 -27,89 7,89 -1,46 7,21 -5,63 -0,66 7,59 -14,4414 0,45 -29,18 13,67 -8,04 0,45 -0,22 6,52 5,11 -17,09

Taula A9.3. Errors entre àrees,3 desviacions (%)

Page 146: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 9. Resultats complets de la simulació de soroll

145

CLASSE 7: PRESENTA L'ERROR MÉS GRAN

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -1,72 6,23 -3,16 3,47 -0,08 -7,70 -6,92 26,26 -17,072 -2,01 1,89 -2,26 3,62 4,28 -6,64 -12,51 24,31 -16,333 -1,33 -0,82 1,42 -0,35 6,97 -13,27 -13,28 40,53 -17,744 -0,67 0,13 1,37 1,83 1,29 -25,43 13,81 22,72 -26,335 -2,37 -7,17 0,19 8,46 2,55 -2,93 -18,93 16,48 -4,856 -2,45 -7,61 2,13 18,58 -22,79 -16,90 12,71 2,91 -13,447 -3,95 -31,85 23,64 12,98 -23,83 -5,93 -5,84 34,56 -27,088 -3,24 -27,46 18,61 7,21 -17,63 -7,08 9,45 9,30 -22,849 -2,66 -27,07 20,79 4,50 -11,46 -20,76 16,36 15,68 -17,9010 -1,94 12,46 -6,18 3,16 4,30 -4,59 -13,35 31,65 -28,5511 -2,20 -4,15 11,81 -1,17 -6,61 -13,53 -2,37 50,85 -45,7212 -2,80 -20,92 12,33 -4,18 10,26 -0,43 -27,28 34,23 -15,5513 -2,30 -26,41 30,26 2,40 -21,16 -2,33 11,92 13,94 -24,9314 -2,63 -18,54 31,81 -3,73 -21,81 -4,48 38,20 -5,15 -36,77

Taula A9.4. Errors entre ambdues, 4 desviacions (%)*

Page 147: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 9. Resultats complets de la simulació de soroll

146

CLASSE 3: PRESENTA L'ERROR MÉS GRAN

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 0,42 4,88 -5,09 7,99 -5,01 -26,97 25,21 20,00 -25,392 0,14 3,80 -4,23 5,09 6,57 -24,07 -0,78 47,14 -38,553 0,61 1,09 -0,40 -3,28 21,56 -29,77 8,96 53,00 -41,634 0,50 15,88 -5,95 -0,45 18,32 -15,89 -18,75 45,96 -31,995 0,20 -0,30 -3,28 7,79 4,81 -24,69 11,61 -0,81 15,146 -0,10 -2,63 -2,50 19,57 -15,16 -22,22 8,87 9,15 2,567 -1,39 -19,66 10,42 7,31 -5,03 -21,48 11,14 34,24 -29,748 -0,81 -2,69 2,13 0,01 5,10 -15,10 14,71 -2,86 -2,889 -0,17 -1,98 5,89 -7,52 14,77 -12,12 -6,78 15,42 8,0410 0,45 12,17 -8,29 9,84 -1,13 -26,37 31,09 16,68 -42,0711 -0,26 0,52 4,53 -16,31 21,07 -24,29 26,56 23,23 -40,2812 -1,24 2,10 -5,44 -2,30 9,18 0,56 1,64 -2,88 -13,3313 -0,83 -15,01 14,45 -3,85 2,71 -8,89 5,63 9,49 -10,9914 -1,05 11,60 8,91 -16,99 4,06 -2,27 30,43 -12,51 -38,18

Taula A9.5. Errors entre ambdues, 5 desviacions (%)*

Page 148: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 9. Resultats complets de la simulació de soroll

147

CLASSE 14: PRESENTA L'ERROR MÉS GRAN

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -0,40 3,60 -1,08 0,49 5,12 -16,84 13,92 21,57 -41,962 -1,29 -1,08 0,48 -13,96 39,33 -1,04 -4,57 10,30 -24,223 -1,44 -11,16 6,78 -11,67 34,59 -16,71 -0,71 29,85 -30,334 -0,40 24,71 -3,68 8,28 3,98 -37,86 10,37 9,83 18,195 -1,73 -6,56 1,39 -3,99 28,34 -9,12 -5,41 -6,98 -14,336 -2,54 -11,09 3,02 10,24 3,43 -19,95 10,69 -24,07 31,887 -3,00 -10,55 14,71 5,74 1,95 -16,77 -5,46 22,44 -25,718 -2,76 -3,12 8,61 -2,55 18,36 -19,10 3,13 -10,39 9,089 -2,58 -6,28 15,54 7,48 0,27 -27,96 13,10 -9,77 23,9810 0,07 3,68 1,37 -12,59 14,36 -5,48 10,85 -1,18 -4,0611 -3,57 -9,50 22,31 0,75 -2,43 -21,65 16,88 -0,52 -7,3812 -1,91 14,98 2,24 -15,83 16,93 -1,36 -5,37 10,51 -6,1813 -1,01 -7,42 33,81 10,72 -16,87 -17,20 12,44 3,37 -3,2414 -1,36 4,85 41,04 -2,62 -13,71 -17,83 33,26 -2,27 -37,02

Taula A9.6. Errors entre àrees,6 desviacions (%)

Page 149: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 9. Resultats complets de la simulació de soroll

148

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -0,36 1,65 -0,06 -0,20 1,42 0,50 -2,04 2,09 -0,542 -0,60 0,30 0,02 -0,51 2,02 1,47 -2,78 1,74 0,443 -0,32 0,24 0,18 -0,58 1,45 1,07 -3,12 2,23 1,174 -0,52 1,15 0,03 -1,62 3,77 3,40 -3,69 1,05 2,985 -0,62 0,25 -0,11 -0,60 2,10 1,25 -2,27 1,05 -0,696 -0,48 0,29 -0,39 -0,06 5,22 0,89 -3,12 2,14 -1,147 -0,81 0,32 0,60 -0,82 0,60 0,53 -2,45 2,27 -1,338 -0,63 -0,06 0,26 -0,17 1,42 -0,01 -2,43 2,01 -2,269 -0,75 -0,69 0,61 -0,49 0,94 2,01 -2,71 2,08 -1,1810 -0,58 1,83 0,05 -0,43 1,43 0,34 -1,74 1,32 0,7811 -0,65 0,52 0,36 -1,21 0,75 1,15 -2,57 2,48 1,7412 -0,66 1,05 0,04 -0,94 1,07 -0,53 -1,47 0,55 0,7713 -0,74 0,29 0,57 0,07 0,10 0,72 -1,48 1,87 -1,8614 -1,01 1,04 1,79 -0,68 -1,17 0,28 -2,28 3,83 1,57

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -0,26 -1,34 1,32 -1,04 3,58 0,09 -3,21 3,02 7,812 -0,25 -0,27 0,72 -2,31 1,95 2,12 -1,64 2,27 5,783 -0,15 -2,51 1,11 -2,12 -0,38 3,68 -3,55 2,81 8,734 -0,19 2,86 0,52 -0,11 8,08 3,22 -4,29 2,75 -4,135 0,41 -0,94 0,70 -2,30 5,51 4,52 -0,74 1,83 1,146 1,00 -1,24 -0,03 0,56 13,33 -0,45 -2,29 1,57 -0,557 1,44 -2,32 -0,86 2,06 4,47 0,67 -2,05 2,93 3,948 0,55 0,80 1,08 -0,90 3,85 1,22 -0,56 1,31 0,059 0,97 -0,17 0,91 0,69 6,64 1,95 -1,90 2,10 -0,3510 -0,34 -3,03 1,42 -0,54 1,23 -1,91 -1,93 4,07 7,4511 0,11 -3,73 0,27 1,36 2,51 1,05 -1,56 1,56 5,5712 -0,11 1,96 2,49 -1,17 -0,11 -1,03 0,23 0,17 3,4013 0,69 4,86 -0,01 4,86 3,84 -0,78 -1,41 1,52 2,5714 0,33 4,40 1,45 3,84 2,11 0,67 -1,88 1,66 4,96

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 1,59 -1,93 0,15 -0,26 7,04 0,98 -6,01 8,45 -11,082 0,79 0,29 0,10 -0,94 4,48 0,89 -6,62 8,48 -16,013 0,89 -0,35 0,23 -1,29 6,74 3,37 -9,57 8,32 -12,794 1,12 -1,03 -1,51 -5,37 12,20 7,14 -3,37 0,91 -13,905 1,02 0,05 -0,02 -2,13 7,54 4,43 -8,21 7,49 -20,856 1,34 0,49 -0,85 -1,50 9,89 -0,63 -2,66 6,06 -16,267 2,45 -6,70 -2,71 -0,64 5,76 1,15 -5,53 9,02 -16,158 1,10 -1,49 -0,91 -2,22 3,51 0,39 -2,10 8,25 -16,039 1,41 -2,62 -0,86 -2,86 7,16 3,08 -5,23 7,38 -17,8410 1,09 -0,62 0,16 -0,20 5,34 0,74 -6,61 6,10 -6,4711 1,04 -2,55 -2,10 -0,03 3,12 0,67 -7,32 9,29 -11,1812 0,89 -2,56 -2,55 -1,98 2,96 1,30 -5,09 4,56 -8,6713 1,39 -2,03 -2,02 -2,56 2,62 2,03 -3,92 7,80 -13,5114 0,99 -9,11 -2,61 -1,33 -2,32 1,30 -6,00 10,45 -11,24

Taula A9.9. Errors entre coeficients, 3 desviacions (%)

Taula A9.7. Errors entre coeficients, 1 desviació (%)

Taula A9.8. Errors entre coeficients, 2 desviacions (%)

Page 150: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 9. Resultats complets de la simulació de soroll

149

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -3,20 6,99 -0,61 -0,50 4,78 -3,04 -0,60 0,42 3,152 -3,22 1,29 -0,79 -0,72 5,69 -2,38 0,79 -0,87 4,933 -2,51 2,05 -0,45 0,61 6,53 -2,05 -1,39 -0,79 13,774 -3,52 5,94 -1,17 2,45 5,41 -8,63 0,34 -6,15 23,805 -2,85 -0,09 -1,31 -0,97 9,27 2,50 0,74 -1,31 6,966 -3,11 0,29 -1,74 2,41 11,39 -8,17 2,67 -4,97 12,827 -2,48 -2,53 -2,79 5,62 3,88 -6,58 0,82 -1,03 16,078 -2,91 1,24 -1,90 4,15 4,15 -7,83 2,72 -3,02 17,259 -3,13 -0,02 -2,29 5,81 7,53 -8,24 2,47 -4,30 15,7810 -3,22 8,95 -1,00 -1,32 2,73 0,04 -3,31 4,27 0,0511 -3,49 -0,70 -1,71 5,47 3,33 -4,22 -3,81 3,39 14,4212 -2,72 -4,74 -1,86 0,79 3,31 3,03 -3,71 2,88 -1,5013 -3,14 2,21 -2,04 8,32 0,79 -8,07 2,49 -2,31 12,0214 -3,59 2,20 -2,48 10,63 0,85 -9,03 1,11 2,38 15,85

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -1,89 4,10 0,09 -0,84 4,27 5,26 -7,17 5,66 -1,592 -3,00 0,67 0,39 -2,11 4,59 8,98 -9,81 3,90 2,883 -1,63 0,27 1,13 -2,71 2,92 10,77 -11,83 5,41 14,584 -2,46 2,19 2,10 -5,06 7,46 12,07 -10,76 1,52 2,695 -3,00 -0,21 0,67 -2,67 5,83 12,48 -6,17 4,24 -6,746 -3,11 -0,06 0,23 -1,07 11,12 9,45 -8,60 6,24 -5,847 -2,88 -2,94 1,47 -0,96 3,45 7,56 -11,36 7,85 -1,938 -3,67 0,36 2,57 -2,53 2,67 8,34 -8,07 8,50 -6,129 -4,19 0,31 3,06 -3,64 3,11 12,20 -11,93 7,28 -8,4810 -2,81 6,68 0,22 -1,02 4,77 1,80 -6,18 6,13 1,5011 -3,30 1,51 1,62 -4,58 -1,52 7,11 -8,25 8,15 -3,8912 -3,08 -1,72 2,42 -4,14 -0,34 4,58 -0,18 3,84 -1,1713 -3,57 1,75 2,31 -0,84 1,45 6,59 -8,28 7,26 -4,9514 -4,40 6,99 2,99 -2,66 -5,25 5,90 -6,83 14,65 -0,89

CLASSE F1 F2 F3 F4 F5 F6 F7 F8 F91 -0,61 -2,09 3,39 -2,55 5,90 -1,37 -1,41 4,73 12,402 -0,65 -2,58 2,20 -5,38 -2,02 1,47 1,30 4,48 6,803 -0,44 -6,76 2,15 -3,08 1,67 3,83 -3,45 5,77 13,014 -1,33 9,36 1,99 -0,26 14,51 5,95 -7,33 4,37 -10,055 0,77 -2,72 2,51 -5,49 10,13 11,34 0,78 6,99 0,886 1,20 -3,38 1,41 -2,05 12,07 3,57 0,68 2,04 -0,517 1,19 3,19 2,23 0,52 8,57 6,24 -2,33 5,82 8,208 1,12 3,89 3,70 -2,57 8,54 6,93 0,08 3,35 1,669 1,74 5,11 2,99 2,46 13,40 4,64 -2,36 3,08 -1,1110 -1,32 -7,65 4,63 -3,95 -2,47 -2,36 -0,08 0,50 4,8611 0,39 -5,48 0,35 6,35 9,02 2,68 -1,88 2,63 1,9612 -0,02 7,16 6,69 -4,54 0,90 -1,15 1,09 1,07 6,2013 0,63 17,14 0,82 9,76 7,45 0,49 -2,21 2,66 2,5014 0,31 24,76 1,38 14,36 4,62 -0,92 -3,15 9,64 12,23

Taula A9.10. Errors entre coeficients, 4 desviacions (%)

Taula A9.11. Errors entre coeficients, 5 desviacions (%)

Taula A9.12. Errors entre coeficients, 6 desviacions (%)

Page 151: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 10. Algoritme de la comprovació de la unicitat de solucions.

150

Annex 10. Algoritme de la comprovació de la unicitat desolucions.

El codi és exactament el mateix que en el cas del soroll, amb l’única novetat que almoment de fer la deconvolució, s’afegeix un bucle per tal que aquesta es porti a terme10 vegades, amb la finalitat d’observar la diversitat de les solucions que retorna.

for i=1:10

output2=do2Deconvolution(F,G(gradients),1:size(F,1),constraints,s0,output2);

end

Per tant, l’algoritme final serà:

%Omplo una matriu de cel·les de cada paràmetre per cada classe i percada%Lorentziana

%Cal carregar: - Estructura "output"% - Matriu de freqüències "riskfact"% - Variables "G" i "Metil" per la deconvolució

classe=1;

for i=1:6for j=1:3

if ~isempty (riskfact{j,i})coef{classe} =output.coefficients(riskfact{j,i},:);heig{classe} =output.heights(riskfact{j,i},:);pos{classe} =output.positions(riskfact{j,i},:);wid{classe} =output.widths(riskfact{j,i},:);classe=classe+1;

endend

end

%S'ha de posar com a condició el cas en què només hi ha una mostrad'alguna%de les classes, ja que sinó fa la mitjana dels paràmetres de les 9%Lorentzianes

for i=1if size(coef{i},1)>1

mitjcoef(i,:)=mean (coef{i});mitjheig(i,:)=mean (heig{i});mitjpos(i,:)=mean (pos{i});mitjwid(i,:)=mean (wid{i});

else % si només hi ha un individu en aquesta classe, agafa%directament el valor del paràmetre per cada Lorentziana

Page 152: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 10. Algoritme de la comprovació de la unicitat de solucions.

151

mitjcoef(i,:)=(coef{i});mitjheig(i,:)=(heig{i});mitjpos(i,:)=(pos{i});mitjwid(i,:)=(wid{i});

endend

%Agrupem les mitjanes en una estructura.outputMig.heights=mitjheig;outputMig.coefficients=mitjcoef;outputMig.positions=mitjpos;outputMig.widths=mitjwid;

%Reconstrucció

%Inicialitzacions de paràmetresgamma=2.67522205e4; % rad/s Gaussd20=0.12;p30=6000e-6;d16=0.0001;k=4*gamma^2*p30^2*(d20 - (5/4)*p30 - d16);

G2=-G(8:32)'.^2;gradients=8:32;

output2=createOutput;EspectresSoroll = zeros(14,length(G2),328);

constraints=Metil{2};s0=Metil{3};

disp('Deconvolucionant...')

b = waitbar(0,'Deconvolucionant...');

for c=1:14F=0;waitbar(c/14,b)for i=1:9

h = outputMig.heights(c,i);p = outputMig.positions(c,i);w = outputMig.widths(c,i);d = outputMig.coefficients(c,i);

x=1:328; % Longitud en l'eix del desplaçament químic delpic del

% metil

%Reconstrucció dels espectres sintètics

Lorentziana = repmat(peaklorentzian([h p w],x),length(G2),1);Atenuacio = repmat(exp(k*(d*1e-7)*(G2-G2(1))),1,length(x));F = F+Lorentziana.*Atenuacio;

endF=F+R1;EspectresSoroll(c,:,:)=F; %Hi enregistrem totes les

reconstruccions

Page 153: Disseny i programació amb MATLAB d'algoritmes de processat ...deeea.urv.cat/public/PROPOSTES/pub/pdf/1653pub.pdf · 3que s’empra per obtenir les fraccions de lipoproteïnes a partir

Annex 10. Algoritme de la comprovació de la unicitat de solucions.

152

%Deconvolució de l'espectre que hem reconstruït.for i=1:10

output2=do2Deconvolution(F,G(gradients),1:size(F,1),constraints,s0,output2);

endendclose (b);

Per variar les solucions inicials i partir de valors aleatoris, simplement cal habilitar unalínia del codi de l’algoritme de deconvolució, que fins ara sempre havia aparegut com acomentari:

s0 = round(lb + (ub-lb).*rand(size(lb)));