1 / 9

Hash Tables lecture

Hash Tables lecture. Lecture 5. What is a hash table. An array is a set of “elements” where each “element” is referred to by a subscript: Consider array : @array You refer to each element by: $array[$index]; or $array[2] …..

borna
Télécharger la présentation

Hash Tables lecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hash Tables lecture Lecture 5

  2. What is a hash table • An array is a set of “elements” where each “element” is referred to by a subscript: • Consider array : @array • You refer to each element by: • $array[$index]; or $array[2] ….. • A hash table, or associative array, however, is more representative of an index, e.g. in a book, where each entry has a “value” and a corresponding “identifier” [key] . • Unlike arrays in the Hash table the identifier are “strings” • Moreover, the identifiers are, by default, unordered. [a sort function is utilised if required]

  3. Declare and define Hash Table • Declare an empty hash table: • %nucleotides (); • To declare and give values you do the following: • %nucleotides = • ( A => Adenine, • T => Thymine, • G => Guanine, • C => Cytosine ); • A is the identifier (key) and Adenine is the value [entry]

  4. Add / delete entries • To add “entries” need to specify the identifier and the Entry. • %oligos = (); • $oligos{’192a8’} = ‘GGGTTCCGATTTCCAA’; • $oligos{’18c10’} = ‘CTCTCTCTAGAGAGAGCCCC’; • $oligos{’327h1’} = ‘GGACCTAACCTATTGGC’; • Note: the identifier must use ‘ ‘; e.g. ‘192a8’ • Removing elements: • Delete $oligos{’192a8’};

  5. Output and Assign “entry” values • hash results • Print the value of the entry: • print “oligo 18c10 is $oligos{’18c10’}\n”; • Assign the entry to a variable • $s = $oligo{’192a8’}; • print “oligo 192a8 is $s\n”; • Determing the size (number of enteries in the table) • $size = keys %oligo; • Print “ the number of enteries are: $size\n”;

  6. Displaying all entries in a hash table • Determine the size of the “value” part of the entry: can prove useful in bioinformatics • print “oligo 192a8 is ”,length $oligos{’192a8’},“ base pairs long\n”; • Input_output_hashtable.pl • Sort and print all the enteries (identifier and value) in the hash table • foreach $genome ( sort keys %gene_counts ) • { • print "`$genome' has a gene count of $gene_counts • { $genome }\n";} • Printing all entries can be done via a while loop [no sorting] • while ( ( my $genome, my $count ) = each %gene_counts) • { • print "`$genome' has a gene count of $count\n"; • } • Refer to genes.pl

  7. Hashes: • A Hash table can be often used like an reference index ; e.g. “code of life” translation table : • hash_base.pl shows what the nucleotide base letter stands for. • Moreover Hash tables could be use, as it the exercise, to create a DNA codon conversion table so that when a codon is encountered as input it converts it to an amino acid; e.g. name, letter …..

  8. Error prevention: exists • It is important to try and prevent errors occurring; such as entering a key that is not in the table. • if this happens you need to effectively deal with it by using the exists function. • The function returns a value of true if the entry is there or false it is not. • if (exists $nucleotide_bases{$_}) • { • print “exists\n”; • } • else • { • print “does not exis\nt”; • } • hash_base_ErrorPrevention.pl

  9. Sample question: translator • Create a hash table for converting DNA condons (3 bases) into amino acids • Display all the enteries to the user • Continually sskthe user to entered three bases and display the corresponding Amino Acid (AA); e.g. aug met…. Repeat the process until a “stop” codon is entered. Display the AA sequence, as single characters, that was [entered as bases by the user]; note: you must use another has table for this part.

More Related