Per Tøftings Speciale i Softwarekonstruktion - WebSite

Copyright © 2008 Per Tøfting

Se også: Test

Specialerapporten

Per Tøfting: Identifikation af potentielle microRNA gener ved hjælp af komparativ genomanalyse. 2008.  PDF 2,1 Mb.

Presentationen af specialet som blev anvendt til specialeeksamenen. PDF 2,1 Mb.

Kode og eksisterende programmer

Kode

Kode som er blevet udviklet til brug i pipelinen og test at pipelinen. Pipelinen er udviklet til at kunne afvikles på Linux-platformen.

Biblioteks Moduler

De to moduler inderholder funktioner, der benyttes af mere end et af de Python programmer, der er udviklet i forbindelse med dette speciale.

myDataLibrary.py   Modul med funktioner indeholdende data, der evt. skal ændres.

myLibrary.py   Modul med næsten alle øvrige funktioner, som benyttes af mere end et program.

Pipelinen

Forbehandling

oneLineRename.py   Ændrer identifierlinien i en FASTA fil således, at den bliver mere anvendelig til BLAT alignment. Desuden fjernes ny linie tegnet ''\n'' fra sekvens linierne på nær den sidste, så hver sekvens er på en linie.

exonList.py  Opretter en fil med start og slut positioner for exons for et kromosom eller scaffold for en art. Trækker data ud af en Ensembl database

maskFASTAsequence.py   Maskerer dele af en FASTA sekvens fil, ud fra en exonliste fil med exons positioner. Hard mask: maskerede baser erstattes af N. Soft mask: maskerede baser ændres til små bogstaver.

splitFASTAsequence.py  Splitter en FASTA sekvens i en FASTA fil op i flere mindre sekvenser i en ny FASTA fil. Så filen kan bruges i en BLAT alignment som query fil.

Forbehandling - scaffolds

createScaffoldsTable.sql   MySQL script, der opretter den databasetabel som scaffolds2database.py placerer data i.

scaffolds2database.py  Finder positionerne for identifierlinier og sekvenslinier i scaffolds filen, og placerer dem i scaffolds tabellen.

scaffoldsList.py  Generer en liste med numrene på de scaffolds, man er interesseret i.

miRNAscaffoldsList.py   Generer en liste med numrene på de scaffolds (kun Fugu rubripes), der indeholder kendte miRNAer.

maskScaffolds.py  Maskerer en FASTA fil med flere FASTA sekvenser, henter automatisk exons informationerne fra Ensembl.

scaffoldsFile.py  Danner en FASTA fil med de scaffolds, der er med i en scaffold liste fil evt. dannet vha. scaffoldsList.py eller miRNAscaffoldsList.py

splitScaffoldsFile.py  Danner en FASTA fil med de scaffolds, der er med i en scaffold liste fil evt. dannet vha. scaffoldsList.py eller miRNAscaffoldsList.py, som scaffoldsFile.py men sekvenser som er for lange til en BLAT alignment bliver splittet op i mindre sekvenser.

Konserverede DNA-sekvenser

createAxtInformationTable.sql   MySQL script, der opretter den databasetabel som axt2database.py placerer data i.

axt2database.py  Placerer resultatet af den første BLAT alignment i axtInformation tabellen. Det er kun informationsliniens informationer fra axt-filen, der placeres i tabellen, selve sekvenserne bliver ikke placeret i tabellen.

database2FASTA.py  Generer FASTA fil med de sekvenser fra den ene art, der kunne alignes i den første BLAT alignment.

createTripleInformationTable.sql  Opretter den databasetabel som triple2database.py placerer data i.

triple2database.py  Placerer resultatet af den anden BLAT alignment i axtInformation tabellen. Det er kun informationsliniens informationer fra axt-filen, der placeres i tabellen, selve sekvenserne bliver ikke placeret i tabellen. Desuden tilføjes informationerne om den art, der indgik i den den første BLAT alignment men ikke i den anden BLAT alignment til tabellen. Programmmet anvender BLATZ, som derfor skal være installeret.

Identifikation

createRNAmicroInformationTable.sql   MySQL script, der opretter den databasetabel som identification.py placerer data i.

identification.py   Søger igennem de sekvenser, der blev fundet gennem de to BLAT alignments for potentielle microRNA gener. Sekvenspositionerne for de potentielle microRNA gener placeres i RNAmicroInformation database tabellen. Programmet anvender RNAZ og RNAmicro, som derfor skal være installeret.

Pipeline supplerende programmer

Disse programmer er ikke en del af selve pipelinen, men er anvendt i forbindelse med udviklingen eller brugen af pipelinen.

splitTestFASTAsequence.py  Genererer FASTA filer på sådan en måde, at det er lettere at se om splitFASTAsequence.py splitter en FASTA fil på den rigtige måde.

geneInformation.py  Programmet generer en liste over de forskellige gentyper (biotype), der findes i en ensembldb.ensembl.org database. Antal gener fordelt på known eller novel gener angives også.

Valg af testmateriale programmer

createmiRNAdb90.sh  Script til installation af miRBase databasen (release 9.0) i lokal MySQL database. Indeholder også informationer om, hvordan og hvorfra miRBase filerne kan downloades.

premiRNAsequences.py  Genererer en FASTA-fil med miRNA sekvenserne for en art enten et eller alle kromosomer. Sekvenserne kan enten være DNA eller RNA.

premiRNAlength4Gnuplot.py   Tæller antal pre-miRNAer med samme længde. Optællingen foretages for en art.

axtLineLength4Gnuplot.py   Tæller antal alignments, der har samme længde i en axt formateret fil.

chromosomeLength.py   Henter kromosom længder for en art fra Ensembl databasen, og gemmer resultatetet i en lokal MySQL database.

miRNAdensity.py   Beregner tætheden af miRNAer på kromosomerne, for en art af gangen.

countCommonmiRNAfamilies.py   Finder antallet af fælles miRNA familier mellem to arters kromosomer (kromosom for kromosom) resultatet placeres i en databasetabel navngivet med de tre første bogstaver i hver af de to arters miRNA-gen navne.

topCommonmiRNAfamiliesCount.py   Finder de mest interessante af countCommonmiRNAfamilies.py's resultater, dvs. de kromosomsæt med flest fælles familier.

countCommonmiRNAfamilies1Chromosome.py    Viser for en art og et kromosom, hvor mange miRNA familer, der er fælles med en anden arts forskellige kromosomer.

miRNAcount.py  Optæller antal miRNAer pr. kromosom for en art. Angiver også antal miRNAer, der ikke har kunnet placeres på et kromosom.

miRNAinformation.py   Finder information om miRNAer på et kromosom.

miRNAdistance.py   Beregner afstanden mellem miRNA generne på den samme DNA-streng.

miRNAoverlap.py  For en art og en kromosom genereres en liste over hvad miRNA gerene overlapper af andre gener (intons og 3'-UTR).

Test af pipelinen

FASTAsubsequence.py  Danner en FASTA-fil indeholdende en delsekvens fra en anden FASTA-fil.

sampleSequencesmiRNA.py  Danner en FASTA-fil indeholdende miRNA-sekvenserne for en art og et kromosom, plus supplerende sekvenser før og efter miRNA sekvenserne. Overlappende sekvenser konkatereres.

RNAmicroTestRange.py   Kører en RNAmicro test på en multiple alignment på ClustalW-format, dog skal hver sekvens være på en linie. Der testes med alle vindues størrelser mellem 70 og 130 nt, dog maksimal alignment længden.

RNAzClassificationCount.py  identification.py registrer hvilke multiple alignments RNAz klassificere som RNA i en log-fil. Programmet tæller, hvor mange der er klassificeret som RNA af RNAz.

miRNAaligned.py  Undersøger hvilke alignments, efter den første BLAT alignment eller den anden BLAT alignment plus samling af de tre artes sekvenser, der helt eller delvist dækker positionerne for kendte pre-miRNAer. Oplysningerne om de alignede sekvensers positioner hentes fra henholdsvis axtInformation og tripleInformation databasetabellerne.

miRNAfound.py   Undersøger hvilke sekvenser, efter analysen med RNAz og RNAmicro, der helt eller delvist dækker positionerne for kendte pre-miRNAer.Oplysningerne om sekvens positionerne hentes i RNAmicroInformation databasetabellen.

miRNAfoundmiRNA.py   Programmet tager som input filer, der indeholder outputtet fra en af de to programmer miRNAaligned.py og miRNAfound.py, og samler oplysningerne så det er nemt at se hvilke kendte miRNAer, der er blevet alignet med hinanden, og hvilke der er blevet alignet med sekvenser, der ikke er kendte miRNAer.

miRNAcandidateSequences.py  Generer en FASTA-fil med tre sekvenser, der kan alignes og der er blevet klassificeret af RNAmicro som potentielle miRNA gener.

miRNAcandidateSingleSequences.py  Gør det samme som miRNAcandidateSequences.py, men placerer de tre sekvenser i hver deres fil.

miRNAcandidateAlignment.py   Gør næsten det samme som miRNAcandidateSequences.py, men den foretager en alignment ved hjælp af MLAGAN af de tre sekvenser.

Eksisterende programmer

MySQL

http://www.mysql.com/  Databasemanagementsystem.

Python

http://www.python.org/  Programmeringssprog.

MySQLdb

MySQL for Python  Python modul.

BLAT

BLAT Program Specifications
BLAT executables
BLAT source
Kent W.J. 2002. BLAT--the BLAST-like alignment tool. Genome Researh. 12(4):656-664. Abstract

blatz

blatz executables
Unzipped blatz source

MLAGAN

LAGAN TOOLKIT  
Brudno M., Do C.B., Cooper G.M., Kim M.F., Davydov E., Green E.D., Sidow A., Batzoglou S. 2003. LAGAN and Multi-LAGAN: efficient tools for large-scale multiple alignment of genomic DNA. Genome Research. 13(4):721-731. Abstract

RNAz

RNAz  Predicting structural noncoding RNAs.
Washietl S., Hofacker I.L., Stadler P.F. 2005. Fast and reliable prediction of noncoding RNAs. Proceedings of the National Academy of Sciences of the United States of America. 102:2454-2459. Abstract

RNAzWebServer  Detect thermodynamically stable and evolutionarily conserved RNA secondary structures in multiple sequence alignments.
Gruber A.R., Neuböck R., Hofacker I.L., Washietl S. 2007. The RNAz web server: prediction of thermodynamically stable and evolutionarily conserved RNA structures. Nucleic Acids Research. 35(Web Server issue):W335-W338. Abstract

RNAmicro

RNAmicro  Recognizing miRNA Precursors in Comparative Genomics Data.
Hertel J., Stadler P.F. 2006. Hairpins in a Haystack: recognizing microRNA precursors in comparative genomics data. Bioinformatics. 22(14):e197-e202. Abstract

Vienna RNA Package

Vienna RNA Secondary Structure Prediction - RNAfold  A web interface to the RNAfold programm.
Vienna RNA Secondary Structure Prediction - RNAalifold  A Web Interface for the Prediction Consensus Structures of Aligned Sequences.
Vienna RNA Package 1.6.1  RNA Secondary Structure Prediction and Comparison. Download and documentation.
Hofacker IL. 2003. Vienna RNA secondary structure server. Nucleic Acids Research. 31(13):3429-3431. Abstract

mfold

mfold web server  MFOLDROOT.
Download mfold software  
M. Zuker. 2003. Mfold web server for nucleic acid folding and hybridization prediction. Nucleic Acids Research. 31:(13):3406-15. Abstract
M. Zuker, D.H. Mathews & D.H. Turner. 1999. Algorithms and Thermodynamics for RNA Secondary Structure Prediction: A Practical Guide. In RNA Biochemistry and Biotechnology, J. Barciszewski & B.F.C. Clark, eds., NATO ASI Series, Kluwer Academic Publishers. Online guide  

Links

10 microRNAer  Side med links til de 10 miRNAer i miRBase, hvor sekundær struktur kendes.
miRBase::Sequences  The home of microRNA data.
miRBase FTP site  Download published miRNA data.
Ensembl Current:   Homo sapiens   Mus musculus   Rattus norvegicus   Takifugu rubripes