Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: –...

24
Bioinformatics Lecture 7: Introduction to Perl
  • date post

    15-Jan-2016
  • Category

    Documents

  • view

    219
  • download

    0

Transcript of Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: –...

Page 1: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Bioinformatics

Lecture 7: Introduction to Perl

Page 2: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Introduction

• • Basic concepts in Perl syntax:– variables, strings, input and output– Conditional and iteration– File handling and error handling– Arrays, lists and hashes

Page 3: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

First program

• a basic Strings program: Test.pl– #!/usr/bin/perl– print "Hello boys and girs!\n this is introduction to perl";

• Open with notepad and type the above• Save file as hello.pl• Ensure that hide file extensions option is

unchecked. • Run via the command line

Page 4: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Variables declarations• $variable name : intergers, floats, strings.• @ arrays • Arithmetic operators:

– +, -, *, / , **( exponentation); % modulus • Double v single quotation marks

– $x = ‘ I am from Cork ‘– print “the value of $x is $x\n”– print ’the value of $x is $x\n’– print “the value of \$x is $x\n” # note the \$x– #evaluating expressions in print (# comment line symbol)– $ x = 15;– Print “the value of x is “, $x + 3, “\n” (ArithmeticExample.pl)

Page 5: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Input , output and files handling • Input

– $var = <> (input a line of text and assign it to $var): also iputs return character

– Chomp $var removes the return character from the #also used the word chop

– Alternatively chomp($var = <>);

– $line = <DATA> reads in “hardcoded data”

• Output– print (already covered)

• File Handling– open MYFILE , ‘data.txt’ (open file for reading;)– open MYFILE, ‘>data.txt’ (open file for writing)– Open MYFILE, ‘>> data.txt’ (open file for appending)– $line = <MYFILE > #read one line from file– @entire_file = <MYFILE> ; (called slurping) #reads all the file into an array

– print MYFILE “Do you like computers….”, $number/3, “\n” # write out to file

– close MYFILE;

Page 6: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Conditional Operator

• == Equality $a == $b• != Not equal $a != $b• < Less than $a < $b• > Greater than $a > $b• <= Less than or equal to $a <= $b• >= Greater than or equal to $a >= $b• ! Logical not $ = !$b

Page 7: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

String conditional operator

• eq Equality $a eq $b• ne Not equal $a ne $b• lt Less than $a lt $b• gt Greater than $a gt $b• le Less than or equal to $a le $b• ge Greater than or equal to $a ge $b• . Concatenation $a.$c• =~ Pattern match $a =~ /gatc/

Page 8: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Conditional statements• If and elseif and else if_else.pl

• #!/usr/bin/perl

• print “Enter your age: ”;• $age = <>;

• if ($age <= 0) {• print “You are way too young to be using a computer.\n”;• } • elseif ($age >= 100) • {• print “Not in a dog’s life!\n”;• } else • {• print “Your age in dog years is ”,$age/7,“\n”;• }

Page 9: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Iteration: loops

• While-loops– #!/usr/bin/perl– $count = 1;– while ($count <= 5) {– print “$count potato\n”;– $count = $count + 1;– }

• Until-loops– #!/usr/bin/perl– $count = 1;– until ($count > 5) {– print “$count potato\n”;– $count = $count + 1;– }

Page 10: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Loops with defined

• #!/usr/bin/perl• # defined fnt is true if $line assigned a value • print “Type something. ‘quit’ to finish\n ”;• while ( defined($line = <>) ) {– chomp $line;– last if $line eq ‘quit’; # breaks out of loop at quit– print “You typed ‘$line’\n\n”;– print “Type something> ”;

• }• print “goodbye!\n”; loops_defined.pl

Page 11: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Shorthand input notation• #!/usr/bin/perl• print “Type something. ‘quit’ to finish\n ”;• while (<>) {– chomp; # $_ generic variable name– last if $_ eq ‘quit’;– print “You typed ‘$_ ’\n\n”;– print “Type something> ”;

• }• print “goodbye!\n”;

Page 12: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Change Standard input/ output

• redirect Sdout to a file– U:\test test.pl > stdout.txt [produces a text file ]• print file goes to file and not to screen

• Run Loops_defined to redirect to output to file

• The <> input has one feature where if a file name is on the command line it beings to read from it otherwise it reads from keyboards– U:\test commandline.pl stdin.txt

Page 13: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Finding length of file • #!/usr/bin/perl #File_size_1.pl • # file size.pl• $length = 0; # set length counter to zero• $lines = 0; # set number of lines to zero

• print “enter text one line at a time and press (ctrl z) to quit”;

• while (<>) { # read file one line at a time– chomp; # remove terminal newline– $length = $length + length $_ ;– $lines = $lines + 1;

• }• print “LENGTH = $length\n”;• print “LINES = $lines\n”;

• Try using keyboard as Stdin (ctrl Z) and file name on command line

Page 14: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Dynamic Arrays• Declaration of an array in perl– @sequences = (‘123a’, ‘23ed4’, ‘2334d’);– Array contains 3 strings!!!

• Array operations:– $one_seq = @sequences[2] {zero based array}– @seq = @sequences; assigns arrays– @seq = (@seq, ‘125f’); adding an value – @combined = (@seq, @seq2)– Removing (splice) @removed = splice @seq, 1, 2– slicing : @slice = @seq[1,2];

• Splice_slice_array.pl

Page 15: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Dynamic Arrays

– push @sequences, ‘2345d’; (adds element to end of array)

– Pop @sequences removes and returns (function returns) last element of array

– Shifting: removes and returns the first element of an array.

– Unshifting: Adds an element or list of elements onto the beginning of an array.

Page 16: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Shift Pop push unshift example• #! /usr/bin/perl

• # The 'pushpop' program - pushing, popping, shifting and unshifting.

• @sequences = ( 'TTATTATGTT', 'GCTCAGTTCT', 'GACCTCTTAA', • 'CTATGCGGTA', 'ATCTGACCTC' );• • print "@sequences\n";• $last = pop @sequences;• print "@sequences\n";• $first = shift @sequences;• print "@sequences\n";• unshift @sequences, $last;• print "@sequences\n";• push @sequences, ( $first, $last ); • print "@sequences\n";

• What is the expected output (run code to confirm)

Page 17: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Arrays: two more functions• Substr (extracting a substring from a string)

– $sub = substr ($string, offset position[position to begin extraction], size of substring)

• Substr and index:

• To obtain the reverse complement of a DNA sequence: assume the sequence is stored in array: (GGGGTTTT becomes AAAACCCC)

• Iterating through an array:– foreach $dna (@dna) – {

• $dna = reverse $dna; # reverse the contents of a scalar $dna• $dna =~ tr/gatcGATC/ctagCTAG/;

– # tr (translate first set into second; e.g. g becomes c ) complement (replace)

– }

Page 18: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Questions

• how would you read in a file of DNA sequence into an array and print both the original and reverse complementary copy

• What use could this program have? (biology related answer)

Page 19: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Array and lists

• Lists are an array of constants or variables– Values of a list assigned to any array

• @clones = (’192a8’,’18c10’,’327h1’,’201e4’);– Values in an array assigned to a list– ($first,$second,$third) = @clones;

Page 20: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Hashes: associative arrays• Similar arrays but elements are unordered – Two parts: the identifer (name), a scalar value

(string) – Add Elements are referred to by strings: • %oligos = ();• $oligos{’192a8’} = ‘GGGTTCCGATTTCCAA’;• $oligos{’18c10’} = ‘CTCTCTCTAGAGAGAGCCCC’;• $oligos{’327h1’} = ‘GGACCTAACCTATTGGC’;

– Note in the name part use ‘ ‘

– Removing elements:• Delete $oligos{’192a8’};

Page 21: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Hashes

• Outputting hash results• $s = $oligos{’192a8’};• print “oligo 192a8 is $s\n”;• print “oligo 192a8 is ”,length $oligos{’192a8’},“ base

pairs long\n”;• print “oligo 18c10 is $oligos{’18c10’}\n”;

• Expected output: input_output_hash.pl• oligo 192a8 is GGGTTCCGATTTCCAA• oligo 192a8 is 16 base pairs long• oligo 18c10 is CTCTCTCTAGAGAGAGCCCC

Page 22: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Hashes• Example of the use of a Hash table– hash_bases.pl program

• For loops and hash tables– foreach $clone (’327h1’,’192a8’,’18c10’) {– print “$clone: $oligos{$clone}\n”;– }– %oligos is refers to the hash table– $oligos is used to refer to elements

• $size = keys %oligo; returns the number of entries

Page 23: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Displaying all entries in a hash table

• while ( ( $genome, $count ) = each %gene_counts )• { • print "`$genome' has a gene count of $count\n";

}

• foreach $genome ( sort keys %gene_counts )• { • print "`$genome' has a gene count of $gene_counts• { $genome }\n";}• Refer to genes.pl

Page 24: Bioinformatics Lecture 7: Introduction to Perl. Introduction Basic concepts in Perl syntax: – variables, strings, input and output – Conditional and iteration.

Error Handling

• die function:• open myfile, ‘stdin.txt’ or• Die “could not open file aborting…\n”;

– If file does not exits the program terminates with the above message

• Write a program to read in data from a file to an array and when all the data is input to output in reverse order

• Create a hash table that performs the condon to AA conversion and use it to convert codons {entered from the key board} into their corresponding Amino Acids