Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Bioper un pacchetto bioinformatico open-source usato dai ricercatori di tutto il mondo. Bioperl permette di: (1) manipolare sequenze (DNA, RNA e proteine) (2) recuperare sequenze dalle banche dati pubbliche (3) analizzare sequenze (BLAST) NOTA: prima di istanziare una qualsiasi classe <class_name> necessario importarla allinizio dello script use <class_name>;
tramite
Esempio 2: use Bio::Seq; $seq_obj = Bio::Seq->new(-seq => "aaaatgggggggggggccccgtt", -display_id => "#12345", -desc => "example 1", -alphabet => "dna" ); print $seq_obj->seq();
Metodi: seq(): per recuperare la sequenza seq(arg_string): per settare la sequenza display_id(): per recuperare lidentificatore display_id(id_string): per settare lidentificatore primary_id(): per recuperare lidentificatore primario primary_id(primaryID_string): per settare lidentificatore primario desc(): per recuperare la descrizione desc(desc_string): per settare la descrizione accession_number(): per recuperare laccession number accession_number(acc_string): per settare laccession number length(): per recuperare la lunghezza della sequenza alphabet(): per recuperare lalfabeto della sequenza (dna, rna, protein) alphabet(alpha_string): per settare lalfabeto della sequenza (dna, rna, protein) subseq(start, end): per estrarre una parte della sequenza (restituisce una stringa) trunc(start, end): per estrarre una parte della sequenza (restituisce un oggetto Bio::Seq) revcom(): per effettuare il reverse&complement della sequenza (restituisce un oggetto Bio::Seq) translate(arg_list): per tradurre in proteina la sequenza (restituisce un oggetto Bio::Seq) seq_version(): per recuperare la versione seq_version(version_string): per settare la versione
keywords(): per recuperare la lista delle parole chiave keywords(kw_list): per settare la lista delle parole chiave division(): per recuperare la division (es. PRI) molecule(): per recuperare il tipo di molecola (DNA, RNA, etc.) get_dates(): per recuperare le date
(2) specificare i parametri della traduzione $prot_obj=$seq_obj ->translate(arg_list) Gli argomenti di arg_list sono nellordine: - terminator: il carattere che indica lo stop codon (di default *) - unknown: il carattere che indica eventuali aminoacidi sconosciuti (di default X) - frame: il frame da cui far partire la traduzione (0 di default, 1, 2) - un flag (0 o 1) per effettuare controlli sullesistenza dello start atg allinizio e sullesistenza dello stop alla fine - un flag (0 o1) per stampare warnings se i controlli effettuati danno esito negativo - il tipo di codon table da utilizzare per codici genetici alternativi Esempi: $prot_obj=$ $prot_obj=$ $prot_obj=$ $prot_obj=$ seq_obj seq_obj seq_obj seq_obj ->translate(-, *): ->translate(-, *, 1): ->translate(-, *, 1, 1, 1): ->translate(undef, undef, 1):
Esempio: use Bio::Tools::Seq use Bio::Tools::SeqStats; $seq_obj = Bio::Seq->new(-seq => tttttatgccctaggggg); $seq_stats = Bio::Tools::SeqStats->new($seq_obj); $weight_ref=$seq_stats->get_mol_wt(); @weight=@{$weight_ref}; print Peso mol: , $weight[0], \n;
$query=Bio::Seq->new(-seq => 'MNLTELKNTPVSELITLGENMGLENLARMRKQDIIFAILKQHAKSGEDIFGDGVLEILQDGFGFLRSADS SYLAGPDDIYVSPSQIRRFNLRTGDTISGKIRPPKEGERYFALLKVNEVNFDKPENARNKILFENLTPLHA NSRLRMERGNGSTEDLTARVLDLASPIGRGQRGLIVAPPKAGKTMLLQNIAQSIAYNHPDCVLMVLLIDER PEEVTEMQRLVKGEVVASTFDEPASRHVQVAEMVIEKAKRLVEHKKDVIILLDSITRLARAYNTVVPASGK VLTGGVDANALHRPKRFFGAARNVEEGGSLTIIATALIDTGSKMDEVIYEEFKGTGNMELHLSRKIAEKRV FPAIDYNRSGTRKEELLTTQEELQKMWILRKIIHPMGEIDAMEFLINKLAMTKTNDDFFEMMKRS', -id => 'query'); $job=$remote_blast->submit_blast($query); my my my my my $key=1; %id=(); %evalue=(); %query=(); @chiavi=();
@rids = $remote_blast->each_rid(); foreach $rid(@rids){ print $rid, "\n"; } foreach $rid(@rids){ my $rc=$remote_blast->retrieve_blast($rid); while(!ref($rc)){ if($rc < 0){ # retrieve_blast returns -1 on error $remote_blast->remove_rid($rid); print "Error!\n"; die "Can't retrieve $rid"; } if ($rc==0) { # retrieve_blast returns 0 on 'job not finished' sleep 60; $rc = $remote_blast->retrieve_blast($rid); } } if(ref($rc)){ print "DONE\n"; while(my $result=$rc->next_result()){ $remote_blast->remove_rid($rid); #Hit my $hit = $result->next_hit(); if(ref($hit)) { # Hsp my $hsp = $hit->next_hsp(); my $q_name = $result->query_name(); my $h_name = $hit->name(); my $evalue = $hsp->evalue(); $query{$key}=$q_name; $id{$key}=$h_name; $evalue{$key}=$evalue; push(@chiavi,$key++); } } } }