SlideShare ist ein Scribd-Unternehmen logo
1 von 36
FBW
             01-10-2012




Wim Van Criekinge
Bioinformatics.be

                    • Communiceren van praktische zaken: waar en
                      wanneer gaan de lessen door
                    • Ter beschikking stellen van lesmateriaal
                    • Aanvullend educatief materiaal (FAQ, Web Links)
                    • Practicum opgaven en programmacode

                    Voordelen

                    • Gebruik van het webtechnologie bij het assimileren
                      van de cursus
                    • Veel vragen/antwoorden kunnen interessant voor
                      meerdere mensen, Vermijden van terugkerende
                      vragen
                    • Permante discussie (tijdens het jaar) tussen
                      studenten, prof maar ook thesis en
                      doctoraatsstudenten
Practicum

            • Practicum regeling ?
              – Inleiding van 45min over de gebruikte editor,
                programmeertaal, websites
              – 15min toelichting tot de opgaven
              – Normaal in PC-zaal D (check bioinformatics.be!)


                                  Perl for Bioinformatics

                                      Part 1: Beginning

                                      Part 2: Mastering
Practicum Bioinformatica

                 • Practicum
                     – Inleiding tot Perl
                     – Write your first PERL program !
                     – Execute your first.pl
What is Perl ?

                 • Perl is a High-level Scripting language
                 • Larry Wall created Perl in 1987
                     – Practical Extraction (a)nd Reporting
                       Language
                     – (or Pathologically Eclectic Rubbish Lister)
                 •   Born from a system administration tool
                 •   Faster than sh or csh
                 •   Sslower than C
                 •   No need for sed, awk, tr, wc, cut, …
                 •   Perl is open and free
                 • http://conferences.oreillynet.com/e
                   urooscon/
What is Perl ?


                 • Perl is available for most computing
                   platforms: all flavors of UNIX
                   (Linux), MS-
                   DOS/Win32, Macintosh, VMS, OS/2, Amig
                   a, AS/400, Atari
                 • Perl is a computer language that is:
                    – Interpreted, compiles at run-time (need for
                      perl.exe !)
                    – Loosely “typed”
                    – String/text oriented
                    – Capable of using multiple syntax formats
                 • In Perl, “there‟s more than one way to do it”
Why use Perl for bioinformatics ?

                     • Ease of use by novice programmers
                     • Flexible language: Fast software prototyping (quick
                       and dirty creation of small analysis programs)
                     • Expressiveness. Compact code, Perl Poetry:
                       @{$_[$#_]||[]}
                     • Glutility: Read disparate files and parse the relevant
                       data into a new format
                     • Powerful pattern matching via “regular expressions”
                       (Best Regular Expressions on Earth)
                     • With the advent of the WWW, Perl has become the
                       language of choice to create Common Gateway
                       Interface (CGI) scripts to handle form submissions
                       and create compute severs on the WWW.
                     • Open Source – Free. Availability of Perl modules
                       for Bioinformatics and Internet.
Why NOT use Perl for bioinformatics ?

                      • Some tasks are still better done with other
                        languages (heavy computations / graphics)
                           – C(++),C#, Fortran, Java (Pascal,Visual Basic)

                      • With perl you can write simple programs
                        fast, but on the other hand it is also suitable
                        for large and complex programs. (yet, it is
                        not adequate for very large projects)
                           – Python

                      • Larry Wall: “For programmers, laziness is
                        a virtue”
What bioinformatics tasks are suited to Perl ?


                     • Sequence manipulation and analysis
                     • Parsing results of sequence analysis
                       programs (Blast, Genscan, Hmmer etc)
                     • Parsing database (eg Genbank) files
                     • Obtaining multiple database entries
                       over the internet
                     • …
Example of problems we will be solving


                   • Primary Sequence analysis
                   • Perform alignments
                   • Simulation experiments to explain
                     Blast statistics
                   • Predicting protein topology
                   • Predicting secondary structures
                   • “Real-life” problems
                       – Proteomics: Given aa masses find protein
                         in database
                       –…
Perl installation


                    • Perl (op USB):
                      – Perl is available for various operating systems. To
                        download Perl and install it on your computer, have a
                        look at the following resources:
                      – www.perl.com (O'Reilly).
                          • Downloading Perl Software
                      – ActiveState. ActivePerl for Windows, as well as for
                        Linux and Solaris.
                          • ActivePerl binary packages.
                      – CPAN



                    • http://www.bioinformatics.be/n
                      ew/faq/setup/
Check installation


                     • Command-line flags for perl
                       – Perl – v
                          • Gives the current version of Perl
                       – Perl –e
                          • Executes Perl statements from the comment
                            line.
                             – Perl –e “print 42;”
                             – Perl –e “print ”Twonlinesn”;”
                       – Perl –we
                          • Executes and print warnings
                             – Perl –we “print „hello‟;x++;”
How to enter your first program ?


                    • Gebruik een editor
                        – DOS: EDIT
                        – Windows:
                             • NOTEPAD (Let op!)
                             • Word(Pad) -> TEXT FILE
                        – Scite:
                          http://www.scintilla.org/SciTE.html
                        – Textpad
                        – Others
                             • VIM
                             • Eclipse
Brief Introduction to Subdirectories—The Path




                     Path:
                            Route followed by OS to
                                 locate, save, and/or
                                 retrieve a file
Het absolute pad probleem …

                 • Probleem
                     – Ofwel kan je perl starten
                     – Ofwel kan je het script niet vinden
                     – Ofwel kan je een file nodig in het script niet
                       vinden
                 • Oplossing
                     – Don‟t panic !
                     – Gebruikt absolute path-namen
                         • D:Perlbinperl.exe D:tempTest.pl
                     – Let wel in je script met je de slash “escape”
                         • $filename = “d:Temppdb.fasta”
• Oplossingen (II)
   – Kopieer al de files in dezelfde directory !
   – Dus als je perl start vanuit D:Perlbin met perl
     kan je wel verwijzen naar D:Temptest.pl maar
     dan moet ook de absolute verwijzing gebruikt
     worden voor $filename ofwel moet je pdb.fasta
     copieren naar D:PerlBin
   – Pas het zoekpad aan zodat je perl overal kan
     starten
      • Path (geeft het zoekpad)
      • Set Path (past het pad aan, Voorzichtig !). Gebruik de
        dos environment variabele %path% om een directory
        toe te voegen
      • Set path=%path%;d:Perlbin
      • (nadien kan de aanpassing controleren door “path” uit
        te voeren)
Redirection


              Keyboard:
                 Standard input device

              Screen:
                 Standard output device

              Redirection . . .
                 changes output from monitor to
                  somewhere else (usually file or
                  printer).
Textpad


          Minimal install: via Minerva save file
            textpad.be to your folder. Create
            system folder in the same location. In
            system folder save plumb.exe
            (Minerva) and perl syntax files
            (textpad.com)
          • Syntax Highlighting
            – Document Class
          • Launch Perl
            – Tools
Perl
General Remarks


                  • Perl is mostly a free format language: add
                    spaces, tabs or new lines wherever you
                    want.
                  • For clarity, it is recommended to write
                    each statement in a separate line, and use
                    indentation in nested structures.
                  • Comments: Anything from the # sign to
                    the end of the line is a comment. (There
                    are no multi-line comments).
                  • A perl program consists of all of the Perl
                    statements of the file taken collectively as
                    one big routine to execute.
How does the real perl program look like:
       #!/usr/local/bin/perl
                                               Mandatory first line (on UNIX)

       print “Hello everyonen”;
How to run it:

      1. Save the text of your code as a file -- program.pl
      2. Execute it:
                 perl program.pl

                                         Hello everyone
Three Basic Data Types


                  • Scalars - $
                  • Arrays of scalars - @
                  • Associative arrays of
                    scalers or Hashes - %
2+2 = ?
                       $   - indicates a variable
       $a = 2;
       $b = 2;
       $c = $a + $b;

                                              - ends every command
                                         ;
   =   - assigns a value to a variable


                         or     $c = 2 + 2;
                         or     $c = 2 * 2;
                         or     $c = 2 / 2;
                           or   $c = 2 ^ 4;          2^4 <-> 24 =16
                         or     $c = 1.35 * 2 - 3 / (0.12 + 1);
Ok, $c is 4. How do we know it?

              $c = 4;
              print “$c”;

  print command:

                            “ ”        - bracket output expression

       print “Hello n”;


                             n     - print a end-of-the-line character
                                    (equivalent to pressing ‘Enter’)
Strings concatenation:
         print “Hello everyonen”;
         print “Hello” . ” everyone” . “n”;
Expressions and strings together:
         print “2 + 2 = “ . (2+2) . ”n”;                              2 + 2 = 4

                                        expression
Loops and cycles (for statement):

      # Output all the numbers from 1 to 100
      for ($n=1; $n<=100; $n+=1) {
                print “$n n”;
      }
1. Initialization:
          for ( $n=1 ; ; ) { … }

2. Increment:
         for ( ; ; $n+=1 ) { … }

3. Termination (do until the criteria is satisfied):
        for ( ; $n<=100 ; ) { … }
4. Body of the loop - command inside curly brackets:
         for ( ; ; ) { … }
FOR & IF -- all the even numbers from 1 to 100:

       for ($n=1; $n<=100; $n+=1) {
                   if (($n % 2) == 0) {
                            print “$n”;
                   }
       }


           Note: $a % $b -- Modulus
                         -- Remainder when $a is divided by $b
Two brief diversions (warnings & strict)

                • Use warnings

                • strict – forces you to „declare‟ a variable the
                  first time you use it.
                    – usage: use strict; (somewhere near the top of
                      your script)
                • declare variables with „my‟
                    – usage: my $variable;
                    –    or: my $variable = „value‟;
                • my sets the „scope‟ of the variable. Variable
                  exists only within the current block of code
                • use strict and my both help you to debug
                  errors, and help prevent mistakes.
Unary Arithmetic Operators eg. Autoincrement ++

                   • If you place one of the auto operators before the variable, it is
                     known as a pre-incremented (pre-decremented) variable. Its
                     value will be changed before it is referenced. If it is placed
                     after the variable, it is known as a post-incremented (post-
                     decremented) variable and its value is changed after it is used

                   For example:
                   • $a = 5; # $a is assigned 5
                   • $b = ++$a; # $b is assigned the incremented value of $a, 6
                   • $c = $a--; # $c is assigned 6, then $a is decremented to 5

                   #!e:perlbinperl.exe
                   • $getal1 = 5;
                   • print $getal1."n";
                   • print $getal1++."n";
                   • print ++$getal1."n";
Logical and Comparison operators


                  • Equal (True if $a is equal to $b)
                      – Numeric: ==
                      – String: eq




                  • And: &&
                  • Or: ||
Schuifoperatoren

               • Schuifoperatoren zijn handing voor
                 manipulaties op bit-niveau: bv 40
                    256 128 64 32 16 8 4 2 1
                      0     0     0 1 0 1 0 0 0
      >>2
                                  0 0 0 1 0 1 0 00
      <<3       000 1      0     1 0 0 0

               Program
               • $getal1 = 40;
               • print "/4 ".($getal1 >> 2)."n";
               • print "*8 ".($getal1 << 3)."n";
Text Processing Functions

                 The substr function
                 • Definition
                 • The substr function extracts a substring out of a
                   string and returns it. The function receives 3
                   arguments: a string value, a position on the string
                   (starting to count from 0) and a length.
                 Example:
                 • $a = "university";
                 • $k = substr ($a, 3, 5);
                 • $k is now "versi" $a remains unchanged.
                 • If length is omitted, everything to the end of the
                   string is returned.
Random

         #!c:perlbinperl.exe -w
         #srand(time|$$);
         $x = rand(1);


         • srand
            – The default seed for srand, which used to be time, has
              been changed. Now it's a heady mix of difficult-to-predict
              system-dependent values, which should be sufficient for
              most everyday purposes. Previous to version
              5.004, calling rand without first calling srand would yield
              the same sequence of random numbers on most or all
              machines. Now, when perl sees that you're calling rand
              and haven't yet called srand, it calls srand with the default
              seed. You should still call srand manually if your code
              might ever be run on a pre-5.004 system, of course, or if
              you want a seed other than the default
• Oefening hoe goed zijn de random
  nummers ?

• Als ze goed zijn kan je er Pi mee
  berekenen …

• Een goede random generator is
  belangrijk voor goede
  randomsequenties die we nadien
  kunnen gebruiken in simulaties
Bereken Pi aan de hand van twee random getallen




                                                          y

                                                  x

                                                      1

Weitere ähnliche Inhalte

Was ist angesagt?

Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spacesluccastera
 
A peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserA peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserKoan-Sin Tan
 
What's the "right" PHP Framework?
What's the "right" PHP Framework?What's the "right" PHP Framework?
What's the "right" PHP Framework?Barry Jones
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...InfinIT - Innovationsnetværket for it
 
Introduction to Natural Language Processing
Introduction to Natural Language ProcessingIntroduction to Natural Language Processing
Introduction to Natural Language ProcessingPeter Molnar
 
DEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depthDEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depthFelipe Prado
 
Smalltalk and ruby - 2012-12-08
Smalltalk and ruby  - 2012-12-08Smalltalk and ruby  - 2012-12-08
Smalltalk and ruby - 2012-12-08Koan-Sin Tan
 
Introduction to Jupyter notebook and MS Azure Machine Learning Studio
Introduction to Jupyter notebook and MS Azure Machine Learning StudioIntroduction to Jupyter notebook and MS Azure Machine Learning Studio
Introduction to Jupyter notebook and MS Azure Machine Learning StudioMuralidharan Deenathayalan
 
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...Lucidworks
 
R tech introcomputer
R tech introcomputerR tech introcomputer
R tech introcomputerRose Rajput
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily usearun.arwachin
 
Yapc10 Cdt World Domination
Yapc10   Cdt World DominationYapc10   Cdt World Domination
Yapc10 Cdt World DominationcPanel
 
Jupyter notebooks on steroids
Jupyter notebooks on steroidsJupyter notebooks on steroids
Jupyter notebooks on steroidsJose Enrique Ruiz
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonIgor Anishchenko
 
instruction of install Caffe on ubuntu
instruction of install Caffe on ubuntu instruction of install Caffe on ubuntu
instruction of install Caffe on ubuntu Pouya Ahv
 
Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Martijn Verburg
 
Getting started with Linux and Python by Caffe
Getting started with Linux and Python by CaffeGetting started with Linux and Python by Caffe
Getting started with Linux and Python by CaffeLihang Li
 

Was ist angesagt? (19)

Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
 
A peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserA peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk User
 
What's the "right" PHP Framework?
What's the "right" PHP Framework?What's the "right" PHP Framework?
What's the "right" PHP Framework?
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...
 
Introduction to Natural Language Processing
Introduction to Natural Language ProcessingIntroduction to Natural Language Processing
Introduction to Natural Language Processing
 
Java platform
Java platformJava platform
Java platform
 
DEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depthDEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depth
 
Smalltalk and ruby - 2012-12-08
Smalltalk and ruby  - 2012-12-08Smalltalk and ruby  - 2012-12-08
Smalltalk and ruby - 2012-12-08
 
Introduction to Jupyter notebook and MS Azure Machine Learning Studio
Introduction to Jupyter notebook and MS Azure Machine Learning StudioIntroduction to Jupyter notebook and MS Azure Machine Learning Studio
Introduction to Jupyter notebook and MS Azure Machine Learning Studio
 
Mastering Python 3 I/O (Version 2)
Mastering Python 3 I/O (Version 2)Mastering Python 3 I/O (Version 2)
Mastering Python 3 I/O (Version 2)
 
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
 
R tech introcomputer
R tech introcomputerR tech introcomputer
R tech introcomputer
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 
Yapc10 Cdt World Domination
Yapc10   Cdt World DominationYapc10   Cdt World Domination
Yapc10 Cdt World Domination
 
Jupyter notebooks on steroids
Jupyter notebooks on steroidsJupyter notebooks on steroids
Jupyter notebooks on steroids
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased Comparison
 
instruction of install Caffe on ubuntu
instruction of install Caffe on ubuntu instruction of install Caffe on ubuntu
instruction of install Caffe on ubuntu
 
Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)
 
Getting started with Linux and Python by Caffe
Getting started with Linux and Python by CaffeGetting started with Linux and Python by Caffe
Getting started with Linux and Python by Caffe
 

Andere mochten auch

Andere mochten auch (9)

2012 12 02_epigenetic_profiling_environmental_health_sciences
2012 12 02_epigenetic_profiling_environmental_health_sciences2012 12 02_epigenetic_profiling_environmental_health_sciences
2012 12 02_epigenetic_profiling_environmental_health_sciences
 
2012 12 12_adam_v_final
2012 12 12_adam_v_final2012 12 12_adam_v_final
2012 12 12_adam_v_final
 
Mini symposium
Mini symposiumMini symposium
Mini symposium
 
2015 bioinformatics alignments_wim_vancriekinge
2015 bioinformatics alignments_wim_vancriekinge2015 bioinformatics alignments_wim_vancriekinge
2015 bioinformatics alignments_wim_vancriekinge
 
2015 03 13_puurs_v_public
2015 03 13_puurs_v_public2015 03 13_puurs_v_public
2015 03 13_puurs_v_public
 
Bioinformatica t8-go-hmm
Bioinformatica t8-go-hmmBioinformatica t8-go-hmm
Bioinformatica t8-go-hmm
 
2015 bioinformatics python_strings_wim_vancriekinge
2015 bioinformatics python_strings_wim_vancriekinge2015 bioinformatics python_strings_wim_vancriekinge
2015 bioinformatics python_strings_wim_vancriekinge
 
Thesis2014
Thesis2014Thesis2014
Thesis2014
 
2015 07 09__epigenetic_profiling_environmental_health_sciences_v42
2015 07 09__epigenetic_profiling_environmental_health_sciences_v422015 07 09__epigenetic_profiling_environmental_health_sciences_v42
2015 07 09__epigenetic_profiling_environmental_health_sciences_v42
 

Ähnlich wie Bioinformatica p1-perl-introduction

Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Prof. Wim Van Criekinge
 
How to write a well-behaved Python command line application
How to write a well-behaved Python command line applicationHow to write a well-behaved Python command line application
How to write a well-behaved Python command line applicationgjcross
 
Week 5
Week 5Week 5
Week 5A VD
 
Natural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital HumanitiesNatural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital HumanitiesXiang Li
 
Week 5
Week 5Week 5
Week 5A VD
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python ProgrammingAkhil Kaushik
 
Austin Python Learners Meetup - Everything you need to know about programming...
Austin Python Learners Meetup - Everything you need to know about programming...Austin Python Learners Meetup - Everything you need to know about programming...
Austin Python Learners Meetup - Everything you need to know about programming...Danny Mulligan
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekingeProf. Wim Van Criekinge
 
Interoperable PHP
Interoperable PHPInteroperable PHP
Interoperable PHPweltling
 
introductiontoperl-springpeople-150605065831-lva1-app6891.pptx
introductiontoperl-springpeople-150605065831-lva1-app6891.pptxintroductiontoperl-springpeople-150605065831-lva1-app6891.pptx
introductiontoperl-springpeople-150605065831-lva1-app6891.pptxmayilcebrayilov15
 

Ähnlich wie Bioinformatica p1-perl-introduction (20)

Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013
 
Intro
IntroIntro
Intro
 
Intro
IntroIntro
Intro
 
Pearl
PearlPearl
Pearl
 
perl lauange
perl lauangeperl lauange
perl lauange
 
December06Bulletin
December06BulletinDecember06Bulletin
December06Bulletin
 
December06Bulletin
December06BulletinDecember06Bulletin
December06Bulletin
 
How to write a well-behaved Python command line application
How to write a well-behaved Python command line applicationHow to write a well-behaved Python command line application
How to write a well-behaved Python command line application
 
groovy & grails - lecture 1
groovy & grails - lecture 1groovy & grails - lecture 1
groovy & grails - lecture 1
 
Week 5
Week 5Week 5
Week 5
 
Natural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital HumanitiesNatural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital Humanities
 
Week 5
Week 5Week 5
Week 5
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python Programming
 
Perl
PerlPerl
Perl
 
Austin Python Learners Meetup - Everything you need to know about programming...
Austin Python Learners Meetup - Everything you need to know about programming...Austin Python Learners Meetup - Everything you need to know about programming...
Austin Python Learners Meetup - Everything you need to know about programming...
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge
 
System Programming and Administration
System Programming and AdministrationSystem Programming and Administration
System Programming and Administration
 
Interoperable PHP
Interoperable PHPInteroperable PHP
Interoperable PHP
 
Plc part 1
Plc part 1Plc part 1
Plc part 1
 
introductiontoperl-springpeople-150605065831-lva1-app6891.pptx
introductiontoperl-springpeople-150605065831-lva1-app6891.pptxintroductiontoperl-springpeople-150605065831-lva1-app6891.pptx
introductiontoperl-springpeople-150605065831-lva1-app6891.pptx
 

Mehr von Prof. Wim Van Criekinge

2019 03 05_biological_databases_part5_v_upload
2019 03 05_biological_databases_part5_v_upload2019 03 05_biological_databases_part5_v_upload
2019 03 05_biological_databases_part5_v_uploadProf. Wim Van Criekinge
 
2019 03 05_biological_databases_part4_v_upload
2019 03 05_biological_databases_part4_v_upload2019 03 05_biological_databases_part4_v_upload
2019 03 05_biological_databases_part4_v_uploadProf. Wim Van Criekinge
 
2019 03 05_biological_databases_part3_v_upload
2019 03 05_biological_databases_part3_v_upload2019 03 05_biological_databases_part3_v_upload
2019 03 05_biological_databases_part3_v_uploadProf. Wim Van Criekinge
 
2019 02 21_biological_databases_part2_v_upload
2019 02 21_biological_databases_part2_v_upload2019 02 21_biological_databases_part2_v_upload
2019 02 21_biological_databases_part2_v_uploadProf. Wim Van Criekinge
 
2019 02 12_biological_databases_part1_v_upload
2019 02 12_biological_databases_part1_v_upload2019 02 12_biological_databases_part1_v_upload
2019 02 12_biological_databases_part1_v_uploadProf. Wim Van Criekinge
 
Bio ontologies and semantic technologies[2]
Bio ontologies and semantic technologies[2]Bio ontologies and semantic technologies[2]
Bio ontologies and semantic technologies[2]Prof. Wim Van Criekinge
 
2018 03 27_biological_databases_part4_v_upload
2018 03 27_biological_databases_part4_v_upload2018 03 27_biological_databases_part4_v_upload
2018 03 27_biological_databases_part4_v_uploadProf. Wim Van Criekinge
 
2018 02 20_biological_databases_part2_v_upload
2018 02 20_biological_databases_part2_v_upload2018 02 20_biological_databases_part2_v_upload
2018 02 20_biological_databases_part2_v_uploadProf. Wim Van Criekinge
 
2018 02 20_biological_databases_part1_v_upload
2018 02 20_biological_databases_part1_v_upload2018 02 20_biological_databases_part1_v_upload
2018 02 20_biological_databases_part1_v_uploadProf. Wim Van Criekinge
 

Mehr von Prof. Wim Van Criekinge (20)

2020 02 11_biological_databases_part1
2020 02 11_biological_databases_part12020 02 11_biological_databases_part1
2020 02 11_biological_databases_part1
 
2019 03 05_biological_databases_part5_v_upload
2019 03 05_biological_databases_part5_v_upload2019 03 05_biological_databases_part5_v_upload
2019 03 05_biological_databases_part5_v_upload
 
2019 03 05_biological_databases_part4_v_upload
2019 03 05_biological_databases_part4_v_upload2019 03 05_biological_databases_part4_v_upload
2019 03 05_biological_databases_part4_v_upload
 
2019 03 05_biological_databases_part3_v_upload
2019 03 05_biological_databases_part3_v_upload2019 03 05_biological_databases_part3_v_upload
2019 03 05_biological_databases_part3_v_upload
 
2019 02 21_biological_databases_part2_v_upload
2019 02 21_biological_databases_part2_v_upload2019 02 21_biological_databases_part2_v_upload
2019 02 21_biological_databases_part2_v_upload
 
2019 02 12_biological_databases_part1_v_upload
2019 02 12_biological_databases_part1_v_upload2019 02 12_biological_databases_part1_v_upload
2019 02 12_biological_databases_part1_v_upload
 
P7 2018 biopython3
P7 2018 biopython3P7 2018 biopython3
P7 2018 biopython3
 
P6 2018 biopython2b
P6 2018 biopython2bP6 2018 biopython2b
P6 2018 biopython2b
 
P4 2018 io_functions
P4 2018 io_functionsP4 2018 io_functions
P4 2018 io_functions
 
P3 2018 python_regexes
P3 2018 python_regexesP3 2018 python_regexes
P3 2018 python_regexes
 
T1 2018 bioinformatics
T1 2018 bioinformaticsT1 2018 bioinformatics
T1 2018 bioinformatics
 
Bio ontologies and semantic technologies[2]
Bio ontologies and semantic technologies[2]Bio ontologies and semantic technologies[2]
Bio ontologies and semantic technologies[2]
 
2018 05 08_biological_databases_no_sql
2018 05 08_biological_databases_no_sql2018 05 08_biological_databases_no_sql
2018 05 08_biological_databases_no_sql
 
2018 03 27_biological_databases_part4_v_upload
2018 03 27_biological_databases_part4_v_upload2018 03 27_biological_databases_part4_v_upload
2018 03 27_biological_databases_part4_v_upload
 
2018 03 20_biological_databases_part3
2018 03 20_biological_databases_part32018 03 20_biological_databases_part3
2018 03 20_biological_databases_part3
 
2018 02 20_biological_databases_part2_v_upload
2018 02 20_biological_databases_part2_v_upload2018 02 20_biological_databases_part2_v_upload
2018 02 20_biological_databases_part2_v_upload
 
2018 02 20_biological_databases_part1_v_upload
2018 02 20_biological_databases_part1_v_upload2018 02 20_biological_databases_part1_v_upload
2018 02 20_biological_databases_part1_v_upload
 
P7 2017 biopython3
P7 2017 biopython3P7 2017 biopython3
P7 2017 biopython3
 
P6 2017 biopython2
P6 2017 biopython2P6 2017 biopython2
P6 2017 biopython2
 
Van criekinge 2017_11_13_rodebiotech
Van criekinge 2017_11_13_rodebiotechVan criekinge 2017_11_13_rodebiotech
Van criekinge 2017_11_13_rodebiotech
 

Kürzlich hochgeladen

Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinojohnmickonozaleda
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 

Kürzlich hochgeladen (20)

Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipino
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 

Bioinformatica p1-perl-introduction

  • 1.
  • 2. FBW 01-10-2012 Wim Van Criekinge
  • 3. Bioinformatics.be • Communiceren van praktische zaken: waar en wanneer gaan de lessen door • Ter beschikking stellen van lesmateriaal • Aanvullend educatief materiaal (FAQ, Web Links) • Practicum opgaven en programmacode Voordelen • Gebruik van het webtechnologie bij het assimileren van de cursus • Veel vragen/antwoorden kunnen interessant voor meerdere mensen, Vermijden van terugkerende vragen • Permante discussie (tijdens het jaar) tussen studenten, prof maar ook thesis en doctoraatsstudenten
  • 4.
  • 5. Practicum • Practicum regeling ? – Inleiding van 45min over de gebruikte editor, programmeertaal, websites – 15min toelichting tot de opgaven – Normaal in PC-zaal D (check bioinformatics.be!) Perl for Bioinformatics Part 1: Beginning Part 2: Mastering
  • 6. Practicum Bioinformatica • Practicum – Inleiding tot Perl – Write your first PERL program ! – Execute your first.pl
  • 7. What is Perl ? • Perl is a High-level Scripting language • Larry Wall created Perl in 1987 – Practical Extraction (a)nd Reporting Language – (or Pathologically Eclectic Rubbish Lister) • Born from a system administration tool • Faster than sh or csh • Sslower than C • No need for sed, awk, tr, wc, cut, … • Perl is open and free • http://conferences.oreillynet.com/e urooscon/
  • 8. What is Perl ? • Perl is available for most computing platforms: all flavors of UNIX (Linux), MS- DOS/Win32, Macintosh, VMS, OS/2, Amig a, AS/400, Atari • Perl is a computer language that is: – Interpreted, compiles at run-time (need for perl.exe !) – Loosely “typed” – String/text oriented – Capable of using multiple syntax formats • In Perl, “there‟s more than one way to do it”
  • 9. Why use Perl for bioinformatics ? • Ease of use by novice programmers • Flexible language: Fast software prototyping (quick and dirty creation of small analysis programs) • Expressiveness. Compact code, Perl Poetry: @{$_[$#_]||[]} • Glutility: Read disparate files and parse the relevant data into a new format • Powerful pattern matching via “regular expressions” (Best Regular Expressions on Earth) • With the advent of the WWW, Perl has become the language of choice to create Common Gateway Interface (CGI) scripts to handle form submissions and create compute severs on the WWW. • Open Source – Free. Availability of Perl modules for Bioinformatics and Internet.
  • 10. Why NOT use Perl for bioinformatics ? • Some tasks are still better done with other languages (heavy computations / graphics) – C(++),C#, Fortran, Java (Pascal,Visual Basic) • With perl you can write simple programs fast, but on the other hand it is also suitable for large and complex programs. (yet, it is not adequate for very large projects) – Python • Larry Wall: “For programmers, laziness is a virtue”
  • 11. What bioinformatics tasks are suited to Perl ? • Sequence manipulation and analysis • Parsing results of sequence analysis programs (Blast, Genscan, Hmmer etc) • Parsing database (eg Genbank) files • Obtaining multiple database entries over the internet • …
  • 12. Example of problems we will be solving • Primary Sequence analysis • Perform alignments • Simulation experiments to explain Blast statistics • Predicting protein topology • Predicting secondary structures • “Real-life” problems – Proteomics: Given aa masses find protein in database –…
  • 13. Perl installation • Perl (op USB): – Perl is available for various operating systems. To download Perl and install it on your computer, have a look at the following resources: – www.perl.com (O'Reilly). • Downloading Perl Software – ActiveState. ActivePerl for Windows, as well as for Linux and Solaris. • ActivePerl binary packages. – CPAN • http://www.bioinformatics.be/n ew/faq/setup/
  • 14. Check installation • Command-line flags for perl – Perl – v • Gives the current version of Perl – Perl –e • Executes Perl statements from the comment line. – Perl –e “print 42;” – Perl –e “print ”Twonlinesn”;” – Perl –we • Executes and print warnings – Perl –we “print „hello‟;x++;”
  • 15. How to enter your first program ? • Gebruik een editor – DOS: EDIT – Windows: • NOTEPAD (Let op!) • Word(Pad) -> TEXT FILE – Scite: http://www.scintilla.org/SciTE.html – Textpad – Others • VIM • Eclipse
  • 16. Brief Introduction to Subdirectories—The Path Path:  Route followed by OS to locate, save, and/or retrieve a file
  • 17. Het absolute pad probleem … • Probleem – Ofwel kan je perl starten – Ofwel kan je het script niet vinden – Ofwel kan je een file nodig in het script niet vinden • Oplossing – Don‟t panic ! – Gebruikt absolute path-namen • D:Perlbinperl.exe D:tempTest.pl – Let wel in je script met je de slash “escape” • $filename = “d:Temppdb.fasta”
  • 18. • Oplossingen (II) – Kopieer al de files in dezelfde directory ! – Dus als je perl start vanuit D:Perlbin met perl kan je wel verwijzen naar D:Temptest.pl maar dan moet ook de absolute verwijzing gebruikt worden voor $filename ofwel moet je pdb.fasta copieren naar D:PerlBin – Pas het zoekpad aan zodat je perl overal kan starten • Path (geeft het zoekpad) • Set Path (past het pad aan, Voorzichtig !). Gebruik de dos environment variabele %path% om een directory toe te voegen • Set path=%path%;d:Perlbin • (nadien kan de aanpassing controleren door “path” uit te voeren)
  • 19. Redirection Keyboard:  Standard input device Screen:  Standard output device Redirection . . .  changes output from monitor to somewhere else (usually file or printer).
  • 20. Textpad Minimal install: via Minerva save file textpad.be to your folder. Create system folder in the same location. In system folder save plumb.exe (Minerva) and perl syntax files (textpad.com) • Syntax Highlighting – Document Class • Launch Perl – Tools
  • 21. Perl
  • 22. General Remarks • Perl is mostly a free format language: add spaces, tabs or new lines wherever you want. • For clarity, it is recommended to write each statement in a separate line, and use indentation in nested structures. • Comments: Anything from the # sign to the end of the line is a comment. (There are no multi-line comments). • A perl program consists of all of the Perl statements of the file taken collectively as one big routine to execute.
  • 23. How does the real perl program look like: #!/usr/local/bin/perl Mandatory first line (on UNIX) print “Hello everyonen”; How to run it: 1. Save the text of your code as a file -- program.pl 2. Execute it: perl program.pl Hello everyone
  • 24. Three Basic Data Types • Scalars - $ • Arrays of scalars - @ • Associative arrays of scalers or Hashes - %
  • 25. 2+2 = ? $ - indicates a variable $a = 2; $b = 2; $c = $a + $b; - ends every command ; = - assigns a value to a variable or $c = 2 + 2; or $c = 2 * 2; or $c = 2 / 2; or $c = 2 ^ 4; 2^4 <-> 24 =16 or $c = 1.35 * 2 - 3 / (0.12 + 1);
  • 26. Ok, $c is 4. How do we know it? $c = 4; print “$c”; print command: “ ” - bracket output expression print “Hello n”; n - print a end-of-the-line character (equivalent to pressing ‘Enter’) Strings concatenation: print “Hello everyonen”; print “Hello” . ” everyone” . “n”; Expressions and strings together: print “2 + 2 = “ . (2+2) . ”n”; 2 + 2 = 4 expression
  • 27. Loops and cycles (for statement): # Output all the numbers from 1 to 100 for ($n=1; $n<=100; $n+=1) { print “$n n”; } 1. Initialization: for ( $n=1 ; ; ) { … } 2. Increment: for ( ; ; $n+=1 ) { … } 3. Termination (do until the criteria is satisfied): for ( ; $n<=100 ; ) { … } 4. Body of the loop - command inside curly brackets: for ( ; ; ) { … }
  • 28. FOR & IF -- all the even numbers from 1 to 100: for ($n=1; $n<=100; $n+=1) { if (($n % 2) == 0) { print “$n”; } } Note: $a % $b -- Modulus -- Remainder when $a is divided by $b
  • 29. Two brief diversions (warnings & strict) • Use warnings • strict – forces you to „declare‟ a variable the first time you use it. – usage: use strict; (somewhere near the top of your script) • declare variables with „my‟ – usage: my $variable; – or: my $variable = „value‟; • my sets the „scope‟ of the variable. Variable exists only within the current block of code • use strict and my both help you to debug errors, and help prevent mistakes.
  • 30. Unary Arithmetic Operators eg. Autoincrement ++ • If you place one of the auto operators before the variable, it is known as a pre-incremented (pre-decremented) variable. Its value will be changed before it is referenced. If it is placed after the variable, it is known as a post-incremented (post- decremented) variable and its value is changed after it is used For example: • $a = 5; # $a is assigned 5 • $b = ++$a; # $b is assigned the incremented value of $a, 6 • $c = $a--; # $c is assigned 6, then $a is decremented to 5 #!e:perlbinperl.exe • $getal1 = 5; • print $getal1."n"; • print $getal1++."n"; • print ++$getal1."n";
  • 31. Logical and Comparison operators • Equal (True if $a is equal to $b) – Numeric: == – String: eq • And: && • Or: ||
  • 32. Schuifoperatoren • Schuifoperatoren zijn handing voor manipulaties op bit-niveau: bv 40 256 128 64 32 16 8 4 2 1 0 0 0 1 0 1 0 0 0 >>2 0 0 0 1 0 1 0 00 <<3 000 1 0 1 0 0 0 Program • $getal1 = 40; • print "/4 ".($getal1 >> 2)."n"; • print "*8 ".($getal1 << 3)."n";
  • 33. Text Processing Functions The substr function • Definition • The substr function extracts a substring out of a string and returns it. The function receives 3 arguments: a string value, a position on the string (starting to count from 0) and a length. Example: • $a = "university"; • $k = substr ($a, 3, 5); • $k is now "versi" $a remains unchanged. • If length is omitted, everything to the end of the string is returned.
  • 34. Random #!c:perlbinperl.exe -w #srand(time|$$); $x = rand(1); • srand – The default seed for srand, which used to be time, has been changed. Now it's a heady mix of difficult-to-predict system-dependent values, which should be sufficient for most everyday purposes. Previous to version 5.004, calling rand without first calling srand would yield the same sequence of random numbers on most or all machines. Now, when perl sees that you're calling rand and haven't yet called srand, it calls srand with the default seed. You should still call srand manually if your code might ever be run on a pre-5.004 system, of course, or if you want a seed other than the default
  • 35. • Oefening hoe goed zijn de random nummers ? • Als ze goed zijn kan je er Pi mee berekenen … • Een goede random generator is belangrijk voor goede randomsequenties die we nadien kunnen gebruiken in simulaties
  • 36. Bereken Pi aan de hand van twee random getallen y x 1