Personal tools
You are here: Home Projects Traps Jitka Mily denicku 071212
Document Actions

071212

programovani Perl - http://cpan.perl.org

Perl:

 http://cpan.perl.org

- na charonovi: prikaz perldoc ...

  • 3 typy promennych: 1) skalar=jedina vec = znacime $...
                                     2) pole=seznam skalaru= znacime @...
                                    
3) list=seznam dvojic skalaru= znacime %...
  • $debug = 0;
    $file = "protein.fa"            promenne, kdekoliv v programu se objevi $file, program mi tam za to automaticky doplni "protein.fa"
  • \ mi meni bezny vyznam symbolu na ten opacny : \$ = vytiskni mi $, \n = novy radek, \s = mezera, tabulator, konec radku, \d = cislo, \d+ = alespon jedno cislo, S+ = alespon jeden symbol,   .+ = alespon jedno cokoliv
  • funkce join = spoji jednotlive skalary
  • $all = join "", @all; = do uvozovek se uvadi, cim to ma spojit, v mem pripade nicim + vytvor z toho pole all
  • funkce split = rozdeli pole na jednotlive skalary
  • @all = split ">",$all; = rozdeli pole skalaru na jednotlive skalary podle symbolu v uvozovkach a vytvori skalary
  • funkce regularni exprese znaci se ~       = neco najde a pokud tu vec, kterou ma hledat dam navic do zavorek (), vrati mi to do filu, ktery pred to specifikuju zase v ()
  • ($gi,$ref,$desc) = $id_line =~ /^\d+ gi\|(\d+)\|ref\|(\S+)\| (.+)$/;
  • $seq =~ s/\n//g; = s pro nahrad to co najdes v prvnim // tim, co je v druhem //, g pro globalne= pro vsechny sekvence

#!/usr/bin/perl -w

$debug = 0;
$file = "protein.fa";

open FILE, $file   or die "Error: can't open $file\n";
@all = <FILE>      or die "Error: can't read from $file\n";
close FILE;

$counter = @all;
print "Debug: got $counter lines\n" if $debug > 1;
$all = join "", @all;
@all = split ">",$all;
shift @all;
$counter = @all;
print "Debug: got $counter proteins\n" if $debug > 0;

$counter = 0;
foreach $prot (@all) {
    $counter++; # $counter = $counter + 1;
    ($id_line,@prot) = split "\n",$prot;
    $seq = join "",@prot;
#    $seq =~ s/\n//g;
    ($gi,$ref,$desc) = $id_line =~ /^\d+ gi\|(\d+)\|ref\|(\S+)\| (.+)$/;
    $desc =~ s/'//g;
 
    $sql = "insert into hs_prot set";
    $sql .= " gi='$gi', ";
    $sql .= " ref='$ref', ";
    $sql .= " description='$desc';";
    print ">$gi counter[$counter]: gi[$gi] ref[$ref] desc[$desc] sql[$sql]\n" if $debug > 1 and $counter < 5;

    print "$sql\n";

};



Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: