El teu blog de Linux en català

Enginyeria

El conjunt de programes Staden Package és un grup d’eines de bioinformàtica de programari lliure que serveixen per treballar sobre el muntatge de seqüències de ADN, editar-les i analitzar-les. Staden Package està format per quatre programes diferents entre sí. Els seus components són: trev, pregap4, gap4 i spin. Avui explicarem concretament els dos primers programes, deixant per una altre dia els dos darrers.

El fet de poder conèixer quin és l’ordre dels nuclèotids (subunitats de ADN, representades per les lletres A, T, C i G) dins del genoma humà és molt important. De fet, l’objectiu final del Projecte Genoma Humà consistia en trobar quin era l’ordre dels nucleòtids que formen el material genètic de l’home. El procés de buscar aquest ordre al complet i traduir-lo en una successió de lletres s’anomena seqüenciar el genoma.

Actualment, el mètode de seqüenciació més utilitzat és el Métode de Finalització de Cadena, en el qual mitjançant uns marcadors específics de radioactivitat o fluorescència es pot arribar a obtenir un gràfic anomenat cromatograma, que ens dóna informació més o menys exacta de quin és l’ordre dels nucleòtids en el genoma humà. Aquest gràfic consta de diverses línes en les quals cada color representa un tipus de nucleòtid. Els punts on la línia té més alçada (els pics) indiquen que en aquella posició hi ha aquell mateix tipus de nucleòtid. Si es van llegint tots aquests pics, un a un, es pot arribar a obtenir tota la seqüència ordenada de nucleòtids.

File:Mutation Surveyor Trace.jpg

Cromatograma on s'aprecia l'ordre (d'equerra a dreta) dels nucleòtids a dalt de cada pic.

El problema més gran que hi ha és que el genoma humà té aproximadament 3000 milions de nucleòtids. Per tant, necessitem programes informàtics que siguin capaços d’interpretar els cromatogrames i de construir ells sols les seqüències de lletres que representen el genoma humà, ja que realitzar aquesta tasca manualment és del tot impossible. Un altre problema rau en el fet que els cromatogrames poden contenir com a màxim la informació sobre 700 nucleòtids, perquè si n’augmentem el número disminueix molt la fiabilitat i la qualitat de l’experiment. Per tant, la seqüenciació del genoma humà s’ha d’anar fent de cromatograma en cormatograma (de 700 en 700) fins arribar a la totalitat del genoma (3000 milions). Per poder fer aquestes particions, cal identificar en quin lloc comença el tros de seqüència que estem analitzant i en quin lloc acaba. Amb l’objectiu de solucionar aquests problemes us presentem els dos programes següents.

Trev es pot resumir com un visualitzador i editor de cromatogrames, és a dir, un programa que desenvolupa una interfase per a l’ensamblatge del ADN. Trev és una eina que serveix per processar fitxers resultants de cromatografies de seqüenciació (com els que són produïts per instruments ABI). El programa carrega en memòria el gràfic que se li ordena, i ens mostra com a sortida la seqüència de nucleòtids corresponent. A més, aquest programa ens assessora de la fiabilitat que té l’experiment de seqüènciació mitjançant un análisi de qualitat, a través de la puntuació qualitativa Phred. El problema de Trev és que no ens marca per defecte l’inici i el final de la seqüencia, de manera que ho haurem de fer manualment.

[picture]

Pregap4 ens permet fer un examen més complet dels cromatogrames. Aquest programa té les mateixes prestacions bàsiques que el programa Trev, però a més a més, Pregap4 ens ajuda a fer la identificació de vectors (trossos de seqüencia que s’han d’eliminar ja que ens aporten informació redundant i externa al genoma humà) i la  detecció de contaminació i repeticions errònies. Però el més important és que és un programa que ens prepara de manera automàtica les seqüències de ADN a partir del gràfic, i que determina el lloc de tall inicial i final de les seqüències mitjançant l’análisi qualitatiu.

https://i1.wp.com/staden.sourceforge.net/manual/pregap4_config.unix.gif?resize=597%2C410

El conjunt de programes Staden va ser desenvolupat pel grup de Roger Staden a la MRC-LMB de Cambridge a Anglaterra des de 1977. En un principi, el Staden Package era disponible gratuïtament pels estudiants, amb més de 2500 llicències durant el 2003 i aproximadament unes 10000 durant del 2004. Però aquell mateix any, els diners destinats a la investigació del grup van ser tallats. Llavors, el Staden Package es va convertir en programari lliure (sota llicència BSD) i algunes noves versions van aparèixer el 2004, el 2005 i el 2009. Si es desitja, el paquet de programes es pot descarregar de la pàgina web que manté el projecte. Durant els anys de desenvolupament actiu, el grup de Staden també va publicar alguns formats de fitxers. Els formats, que serveixen per contenir la informació dels cromatogrames, van ser el SCF i el ZRT. Aquests dos formats van esdevenir formats lliures.

Probablement, l’eina més coneguda de la bioinformàtica entre els biòlegs és el BLAST. El BLAST (Basic Local Alignment Search Tool) és un programa informàtic d’alineament de seqüències de tipus local ja sigui de ADN o de proteïnes. Però, què volen dir tot aquest munt de paraules tan complicades? Intentarem explicar-ho amb la màxima claredat possible, anant pam a pam.

Hem de començar explicant per què ens interessa conèixer el genoma humà, i crec que la millor manera de fer-ho consisteix en fer un paral·lelisme entre el cos humà i un programa informàtic. Vosaltres sabeu que per saber realment com funciona un programa hem de conèixer quin és el seu codi font. Per tant, per saber com funciona el cos humà també hem de conèixer el seu codi font, que en aquest cas seria el material genètic: una combinació de 3000 milions de nucleòtids (subunitats de ADN). Informàticament, tots aquests nucleòtids es poden representar per una seqüència de lletres (hi ha quatre tipus diferents de nucleòtids i cada un es representa per una lletra diferent: A, T, C o G). En determinats punts d’aquesta seqüència es troben els anomenats gens, que segons tinguin una seqüència de lletres o una altra formaran una proteïna o una altra amb la seva respectiva funció.

https://i0.wp.com/www.abiertohastaelamanecer.ws/fp-content/images/genome.jpg?resize=608%2C273

Els gens contenen la informació per crear les proteïnes

El genoma humà és un dels més estudiats i va ser descobert en la seva totalitat l’any 2003. Quan es busca el codi genètic d’altres organismes, sempre s’obtenen seqüències de nucleòtids que en un principi no se sap què volen dir. Gràcies a les investigacions, ja es coneixen quines són les seqüències dels gens humans i quines funcions tenen. Per tant, si comparem les seqüències de l’organisme que estem investigant amb les seqüències de ADN humà podem trobar regions locals que s’assemblin molt, i per tant, podrem descobrir els gens (i les seves funcions) del nou organisme.

Una vegada fets aquests aclariments, podem continuar amb la descripció del programa. El  BLAST és capaç de comparar una seqüència problema (comunament anomenada query, i que en l’exemple anterior seria una seqüència de l’organisme que s’està investigant) amb una gran quantitat de seqüències d’informació coneguda que es trobin en una base de dades. L’algorisme troba les seqüències de la base de dades que tenen major semblança a la seqüència query.

Volem saber quina funció té aquest gen

Volem saber quina funció té aquest gen del moniato

Normalment el BLAST és fa servir per a trobar probables gens homòlegs. En general, quan és obtinguda una nova seqüència, es fa servir el BLAST per a comparar-la amb altres seqüències que han estat prèviament caracteritzades i d’aquesta manera, poder trobar la seva funció de la nova seqüència. El BLAST és l’eina més usada per a l’anotació i predicció funcional de gens o seqüències proteiques. S’han creat moltes variants per a resoldre alguns problemes específics de recerca.

Després de fer un alineament amb el BLAST, descobrim que es tracta del gen beta-amilasa del moniato!

Després de fer un alineament amb el BLAST, descobrim que es tracta del gen que expressarà la proteïna beta-amilasa!

El BLAST és un programa de llicència lliure i es pot usar gratuïtament des del servidor de l’NCBI (National Center for Biotechnology Information, EE.UU.). Si es desitja també està disponible per a ser instal·lat localment. L’avantatge del servidor de l’NCBI és que l’usuari no ha de mantenir ni actualitzar les bases de dades i que la recerca es fa en un cluster d’ordinadors, que atorga molta rapidesa.

Qui no ha sentit a parlar mai de la Biotecnologia, dels Biocombustibles, o potser de la Bioinformàtica? Hem de reconèixer que el prefix Bio està de moda. En aquests temps moderns que corren, sembla que col·locar aquesta petita paraula davant d’una altra la fa convertir en una de més especial. Però la veritat és que Bio només indica que una cosa té a veure amb la Biologia, la ciència que estudia les lleis de la vida.

Per tant, fent una ràpida deducció podem arribar a la conclusió que la Bioinformàtica consisteix en l’aplicació de les eines informàtiques per tal de resoldre problemes que es plantegen en el món de la Biologia. Generalment, dins d’aquest sector sempre es treballa amb programari lliure, i és per això que m’interessa introduir aquest concepte i explicar-ne bàsicament les seves utilitats.

La Bioinformàtica està estretament relacionada amb les tècniques d’anàlisi que inclouen la informàtica, la programació, la matemàtica aplicada, l’estadística, la bioquímica i la genètica molecular. La fusió de totes aquestes eines, enfocades cap al món de la Biologia, permet solucionar problemes diversos, analitzar dades i simular sistemes o mecanismes.

representació_proteïna_2

Representació d'una proteïna 1

El finalitat principal d’aquestes tècniques es troba en la utilització de recursos computacionals per tal de solucionar o investigar problemes sobre escales de tal magnitud que sobrepassen la capacitat humana de discernir. S’han d’utilitzar eines informàtiques a fi d’extreure informació útil de dades produïdes per tècniques biològiques d’alta productivitat. Per exemple, una vegada es seqüencia el genoma d’una persona es tenen aproximadament 3 ×109 nucleòtids (subunitat de ADN). Cada nucleòtid es pot representar amb una lletra (A, T, C o G). Per tant, és impossible tractar una seqüència de 3 ×109 lletres seguides si no es fa per ordinador.

Bàsicament, en la Bioinformàtica es treballa amb fitxers de text. La mida d’aquests fitxer pot ser tan gran com la xifra que us he donat abans. Però això no acaba aquí, perquè no només hi ha seqüenciat el genoma d’una persona sinó que també en tenim d’altres persones, animals i organismes vius. Això ens porta cap a la formació de bases de dades i recursos compartits entre els centres d’investigació a internet. La informació s’ha de compartir ja que la investigació costa molts diners, és molt lenta i necessita contrastar hipòtesis. Seria molt absurd i no sortiria a compte repetir experiments a diferents llocs una vegada i una altra! Així doncs, com ja us podeu imaginar, sempre es treballa amb programari lliure i es comparteix la informació, de manera que si un científic (o qualsevol persona del món) vol accedir a la informació sobre uns gens determinats descoberts per algú altre, ho pot fer sense cap mena de problema.

seqüencia_genètica

Els gens MCA1 i YOR205C dels llevats.

Els principals esforços d’investigació en aquests camps inclouen l’alineament de seqüències, la predicció de gens, muntatge de genomes, alineament estructural de proteïnes, predicció d’estructura de proteïnes, suport de la teoria de l’evolució i altres aplicacions.

El món de la Bioinformàtica és molt interessant i extens, així que de mica en mica aniré escrivint sobre les eines informàtiques que es fan servir, que poden anar des de senzilles línies de comandes interpretades per la terminal, fins a programes gràfics més complexes i serveis web.

Representació d'una altra proteïna

Representació d'una proteïna 2

De la mateixa manera que els gràfics i les imatges, les fórmules es creen com objectes dins d’un document de l’OpenOffice, ja sigui de Writer, Draw o Calc. A l’insertar una fórmula en un document (seleccionant Insereix -> Objecte -> Fórmula en la barra de menú de Writer, Calc o Draw) s’inicia OpenOffice Math automàticament.

Aquest programa pot crear, editar i donar format a la fórmula utilitzant una àmplia gamma de símbols i funcions predefinits. A l’invocar Math, sota la finestra del document en el qual estem treballant, s’obre una nova finestra, dins de la qual podem, utilitzant una simbologia especial, editar fórmules.

Arribat en aquest punt, molta gent s’espanta perquè no sap per on ha de començar. Per solucionar aquest petit problema, podem desplegar un menú flotant que ens ajudarà moltíssim i ens permetrà trobar amb més facilitat el símbol que volem inserir. Per fer aparèixer el menú flotant de comandes anirem a Visualitza -> Selecció. La veritat és que qui va posar aquest nom al menú s’hi va lluir… sembla fet espressament perquè la gent no ho trobi!

math

Part d’aquesta informació està extreta del manual de OpenOffice Math. El podeu consultar per ampliar els vostres coneixements sobre el programa, o també podeu consultar la pàgina web que contesta les preguntes més freqüents dels usuaris.

Us proposem una altra manera de fer rectes de regressió o línies de tendència. L’altre dia vam utilitzar el programa Calc de l’OpenOffice 3.0 (podeu consultar l’apunt clicant aquí). Avui, en canvi, farem servir un altre programa anomenat Gnumeric. Gnumeric és un full de càlcul lliure que forma part de l’entorn d’escriptori Gnome. És un programa que s’assembla força al Calc, però que incorpora petites modificacions i millores.

Per començar, haurem de crear un gràfic amb les dades d’interès. Per fer-ho, haurem d’anar al menú de Gnumeric i clicar a Insereix -> Gràfic… -> XY -> Endavant i llavors haurem d’anar omplint totes les opcions necessàries. El sistema de configuració és una mica diferent al del Calc, ja que aquest cop està estructurat com si fos un arbre invertit, on cada apartat es pot desplegar i configurar individualment. Així doncs, anirem a Graph -> Chart1 -> PlotXY1 -> Series1 i hi introduirem els valors de X i Y. Un cop tindrem el gràfic de punts, i sense sortir del quadre de configuració, procedirem a crear la recta de regressió, seguint els següents passos:

1.- Clicarem sobre l’apartat “Series1”

2.- Clicarem “Afegeix” i triarem l’opció: “Trend line -> Polynomial”

3.- Podrem configurar la línia de tendència.

4.-Clicarem sobre l’apartat “Polynomial regression1”

6.- Clicarem “Afegeix” i triarem l’opció: “Equation”

7.- Podrem configurar l’equació i el coeficient de regressió

8.- Finalment clicarem “Insert”

Gnumeric

Com ja heu pogut veure, el Gnumeric ens permet fer línies de tendència polinomials, entre vuit possibilitats més (linials, logarítmiques, exponencials, etc.). A més, també ens deixa escollir l’ordre de l’expressió polinomial i ens mostra l’equació i el coeficinet de regressió si ho desitgem.

Si teniu algun dubte sobre com fer servir el programa, podeu consultar el manual de Gnumeric (versió 1.8). Per instal·lar-vos-el ho podeu fer des del gestor de paquets Synaptic. Crec que és important remarcar que Gnumeric no només permet fer càlculs matemàtics, sinó que també té un ampli ventall de funcions sobre economia i estadística.

Que vagi bé cinetífics!

Amb la recent aparició de l’OpenOffice 3.0, els usuaris d’aquest programa hem descobert que ja és possible fer regressions amb el programa Calc. Les rectes de regressions o línies de tendència són freqüentment utilitzades en el món de la investigació científica. Molt sovint, després de dur a terme un experiment, s’ha de treballar amb les dades i buscar relacions. És llavors quan hem d’utilitzar aquest recurs.

Primer de tot hem de crear el gràfic a partir de les dades que ens interessin. Per crear el gràfic s’ha d’anar al menú de l’OpenOffice i clicar a Insereix -> Diagrama -> XY (dispersió) i a partir d’aquí anar omplint totes les opcions. Un cop haurem finalitzat aquest procés, començarem a crear la recta de regressió, seguint els següents passos:

1.- Farem doble clic al gràfic

2.- Clicarem amb el botó dret damunt d’un dels punts

3.- Triarem l’opció: “Insereix una línia de tendència…”

4.- Se’ns obrirà el quadre “Línia de tendència”

5.- Configurarem la nostra línia de tendència i sortirem del quadre

Recta de regressió

Fins ara, amb OpenOffice 2.4, només es podien fer rectes de regressió linial (amb una funció estadística concreta LINEST). Ara, la nova versió ens ofereix un ventall més ampli de regressions, dins del qual trobem les linials, logarítmiques, exponencials i potencials. S’ha de matitzar que el Calc encara no permet fer regressions polinòmiques. A més a més, tenim les opcions de mostra l’equació i de mostrar el coeficient de correlació.

Per a qualsevol dubte, es pot consultar l’Ajuda de l’OpenOffice en anglès, buscant el terme Regression. Si encara no teniu la versió d’OpenOffice 3.0, podeu seguir aquest apunt per poder-ho fer fàcilment. En el pròxim apunt, us explicaré una altre programa de càlcul molt bo que també permet fer rectes de regressió.

Anteriorment ja vam veure com calcular a travès de la terminal usant el programa cl. Com ja vam comentar, aquest programa té una sèrie de limitacions ja que per fer els càlculs utilitza el programa bc. Aquestes limitacions són no poder obtenir resultats de més de 3 xifres decimals, no poder fer exponencials, no té suport per notació científica quan els resultats són massa grans o petits, etc. L’aventatge que tenia, però, era la rapidesa en que feia els càlculs.

programa-ca

programa-ca

Ara bé, si tenim una màquina més potent i no ens importa esperar un segon per a obtenir un resultat, i ens interessa més potència de càlcul, us proposo de fer serivir el programa ca. Aquest programa està basat amb l’octave, i per tant, ens aprofitem de la seva potència de càlcul.

Primer de tot, doncs, hem d’instal·lar l’octave

sudo apt-get install octave

Per instal·lar el ca, ho farem amb les següents ordres

wget /gnlcontent/uploads/2009/02/ca-001tar.gz ;
tar xvzf ca-001tar.gz;
cd ca-0.01/;
bash install;

Ara si el volem executar, entrem en una terminal

ca 2/3

O tambè el podem fer servir per a fer càlculs més complexos, tenint en compte que si l’operació porta parèntesis s’ha de ficar cometes quan introduim l’argument

ca "(2*pi*3.5)^.5"

Recordem que les funcions matemàtiques que podem usar per fer càlculs són les mateixes que les del octave/matlab

I ja està, ara només queda disfrutar-lo, a calcular nois i noies!

GFortran és el compilador per a Fortran 95, desenvolupat per a GNU/Linux i que és una part de l’anomenada GNU Compiler Collection (GCC). GFortran és el compilador que reemplaça al compilador g77, que va aturar el seu desenvolupament en la versió 4 de GCC. Tot i que GFortran encara està en vies de desenvolupament (recordem que gran quantitat de programari lliure es troba constantment en vies de desenvolupament), és capaç de compilar amb una impecable efectivitat.

Per escriure amb el llenguatge Fortran 95, podem fer servir un editor de text pla com és el Gedit. Per poder treballar de manera més còmode, utilitzarem l’opció Visualitza -> Mode de ressaltat ->  Codis font -> Fortran 95. És important que el nom del nostre programa acabi amb .f90, ja que si no ho fem, podem tenir problemes en el següent pas, a l’hora de fer servir el GFortran. Una vegada haurem escrit correctament el programa, ha arribat l’hora de compilar-lo!!!

Aquí és on entra el GFortran. Primer de tot haurem d’instal·lar el programa amb la comanda següent:

sudo apt-get install gfortran

Un cop instal·lat, utilitzarem la següent comanda per a complilar l’arxiu de text pla (el nostre programa):

gfortran ./arxiu_a_compilar.f90

L’executable que es crearà al mateix directori ja tindrà permisos d’execució. Per tant, ens estalviarem de donar els permisos d’execució a l’executable i només caldrà que l’executem directament.

/a.out

Finalment, ens apareixeran els resultats del programa per pantalla!

Utilitzar el GFortran per compilar l'arxiu programa_a_compilar.f90

Utilitzar el GFortran per compilar l'arxiu programa_a_compilar.f90

Amb aquest compilador he hagut de resoldre diversoso problemes en un examen. Espero que la gent que utilitzi aquest programa en les mateixes circumstàncies tingui molta sort!

Aquest post és el tercer de la sèrie, “Calculant en gnu/linux”, i continua l’anterior post on s’introduia el programa bc.

Si encara volem optimitzar el temps més, us podeu instal·lar el programa cl, que ens permet càlcular 2/3 tan fàcilment com escrivint en una terminal

cl 2/3

cl-1

programa-cl

Instal·lar-lo és tan senzill com anar una terminal i executar les següents ordres

wget /gnlcontent/uploads/2009/02/cl-001tar.gz ;
tar xvzf cl-001tar.gz;
cd cl-0.01/;
bash install;

Per fi ja tenim una càlculadora en línia al gnu! 🙂

Recordeu per això que la finalitat d’aquest programet és per a fer càlculs senzills i per tant té una sèrie de limitacions, com que només mostra tres decimals en els seus càlcus i que no pot calcular potències amb exponents que no siguin enters.

Per a un programa no tan veloç calculant però més potent el veure’m al post de demà 🙂

Avui continuem la temàtica iniciada en el post anterior de càlcular en gnu/linux presentant un nou programa, el bc, o tambè anomenat “Basic Calculator”. El bc no és tansols una calucladora, és un llenguatge de programació també.

Normalment no cal instal·lar-lo ja que quasi totes les distribucions gnu porten aquest programa de serie per fer càlculs matemàtics. Invocar-lo és molt senzill, només cal escriure en una terminal

bc -q

Per fer càlculs només cal escriure

1+1

Per defecte el bc no treurà cap decimal, per tan li hem d’especificar el número de decimals que vol en el cas de fer operacions amb ells, per exemple

scale=2

2/3

bc-1

programa-bc

Una de les limitacions del bc és que no pot fer exponencials de números no enters, caldria afegir-li aquesta funció
. Tanmateix aquest programa més que per la seva potència destaca per la seva rapidesa.

Un altre truc que podeu fer sense necessitat d’entrar al bc per a càlculs senzills pot ser usant pipes des de terminal, per exemple, per càlcular 2/3 ho farem així

echo "2/3" | bc -l