#!/usr/bin/perl -w # POD documentation - main docs before the code =head1 NAME parseUNIPROT4MySQL =head1 DESCRIPTION This script parse the XML file containing uniprot knowledgebase, fetch informations ad insert them into a MySQL db. =head1 CONTACT TEXTORIS Julien , =head1 USAGE ./parseUNIPROT4MySQL.pl function : - 'coordinate' - =cut use strict; use warnings; use DBI; use XML::SAX; use lib './'; use MySAXHandler; $|=1; =head1 Variables Declaration =over 3 =item $filename : XML file to parse =item $function : implemented function to use =item $dbd : MySQL connection =item $dbname : DB Name =item $host : computer which host the database =item $user / $pass : user and password to connect DB =item $insert_ensembl = Insert EnsEMBL_ID into ensEMBL_ID table if it doesn't exists =item $insert_uniprot = Insert Uniprot_ID into Uniprot_ID table if it doesn't exists =item $insert_relEnsemblUniprot = insert values into the relational table (n:m relation) =item $parser = new XML parser object =item $doc = XML object loaded from $filename, option strip whitespace make parsing 30% faster =item $rootNode = XML root tag =item $AccNumber = store Uniprot Accession number of entry being processed =item $type = type argument of tag =item $value = value of tag of a given comment tag =back =cut my $filename = $ARGV[0]; my $function = $ARGV[1]; my $dbname = "AnnotationDB"; my $host = "localhost"; my $user = "jtextori"; my $pass = "marcel"; #my $dbd = DBI->connect( "DBI:mysql:$dbname;host=$host", # $user, $pass, { RaiseError => 1 } ) # or die # "can't connect : \nerror1 ==> $DBI::errstr\nerror1 ==> $@\nerror1 ==> $!\n\n"; # #my $insert_ensembl = $dbd->prepare('INSERT INTO ensEMBL_ID (`ensEMBL_ID`) VALUES (?)'); #my $insert_uniprot = $dbd->prepare('INSERT INTO Uniprot_ID (`Uniprot_ID`) VALUES (?)'); #my $insert_relEnsemblUniprot = $dbd->prepare('INSERT INTO ensEMBL_ID_has_Uniprot_ID (`ensEMBL_ID_ensEMBL_ID`,`Uniprot_ID_Uniprot_ID`) VALUES(?,?)'); my $parser = XML::SAX::ParserFactory->parser(Handler => MySAXHandler->new); $parser->parse_uri($filename); exit(0)