Pobieranie plików wget -m -nd -r -l1 --no-parent -A.csv http://kghrin.up.wroc.pl/pages/dydaktyka/mat_cw_bioinf/cwiczenia_3/ wget -m -nd -r -l1 --no-parent -A.txt http://kghrin.up.wroc.pl/pages/dydaktyka/mat_cw_bioinf/cwiczenia_3/
Skrypt Wget http://kghrin.up.wroc.pl/pages/dydaktyka/mat_cw_bioinf/cwiczenia_3/pobieranie
Skrypty bash cd
Instrukcje warunkowe #!/bin/bash sort scafold1.csv scafold2.csv scafold3.csv | awk 'dup[$0]++ == 1' > dup.txt dup="dup.txt" while IFS='' read -r line || [[ -n "$line" ]]; do sed "/$line/d" < scafold2.csv > scafold2a.csv done < "$dup" sed "/$line/d" < scafold3.csv > scafold3a.csv cat scafold1.csv scafold2a.csv scafold3a.csv > scafold_full.csv rm scafold2a.csv scafold3a.csv dup.txt
Objaśnienia skryptu sort scafold1.csv scafold2.csv scafold3.csv | awk 'dup[$0]++ == 1' > dup.txt Pozwala na znalezienie linii które wystpęują więcej niż raz
Objaśnienia skryptu while IFS='' read -r line || [[ -n "$line" ]]; do sed "/$line/d" < scafold2.csv > scafold2a.csv done < "$dup" ISF=‚’ - uniemożliwia wczytanie pustego wiersza -r – uniemożliwia wczytywanie znaków spechalnych np. \n itp. || [[ -n $line ]] – zapobiega ignorowaniu ostatniej linii, jeśli nie kończy się ona \n (ponieważ read zwraca kod zero jeśli nie napotka na EOF (\n)
Podstawy skryptów Perl
Perl Język programowania wyspecjalizowany w: Łączeniu Dzieleniu Przetwarzaniu plików danych, bardzo użyteczny dla bioinformatyka
Pierwszy skrypt #!/usr/bin/perl print "Hello World !!! \n"; print "To jest mój pierwszy skrypt Perl";
Pierwszy skrypt #!/usr/bin/perl print "Hello World !!! \n"; print "To jest mój pierwszy skrypt Perl \n";
Znaki specjalne (nowa linia, tab) #!/usr/bin/perl print "Nowa linia jest \ntutaj, a znak tab\t tutaj. \n";
Podstawowe wejście i wyjście print <> #!/usr/bin/perl $linia=<>; print "Wprowadzony tekst to: $linia. \n";
Podstawowe wejście i wyjście print <> #!/usr/bin/perl chomp($linia=<>); print "Wprowadzony tekst to $linia. \n";
Interaktywny skrypt Perl #!/usr/bin/perl print "Podaj swój wiek: "; $wiek=<>; print "Twój wiek w psich latach to ",$wiek/7,"\n";
Instrukcje warunkowe #!/usr/bin/perl print "Podaj swój wiek: "; $wiek=<>; if ($wiek <=0) { print "Jesteś za młody żeby używać komputera. \n"; } elsif ($wiek >=100) { print "Nie w psim życiu! \n"; } else { print "Twój wiek w psich latach to ",$wiek/7,"\n"; }
Instrukcje warunkowe #!/usr/bin/perl open MYFILE, '>data.txt'; print "Podaj swój wiek: "; $wiek=<>; if ($wiek <=0) { print MYFILE "Jesteś za młody żeby używać komputera. \n"; } elsif ($wiek >=100) { print MYFILE "Nie w psim życiu! \n"; } else { print MYFILE "Twój wiek w psich latach to ",$wiek/7,"\n"; } close MYFILE;
Defined #!/usr/bin/perl open MYFILE, 'seq.txt'; while (defined($line=<MYFILE>)) { print $line; } close MYFILE;
Length #!/usr/bin/perl open MYFILE, 'seq.txt'; while (defined($line=<MYFILE>)) { print $line; print length $line, "\n"; } close MYFILE;
Pętla while #!/usr/bin/perl open MYFILE, 'dna.txt'; $length=0; $lines=0; while (defined($line=<MYFILE>)){ chomp $line; $length=$length+length $line; $lines=$lines+1; } print "Dlugosc sekwencji: $length\n"; print "Liczba lini: $lines\n"; close MYFILE;
Dopasowanie do wzorca #!/usr/bin/perl $lines=0; open MYFILE, 'dna.txt'; while (defined($line=<MYFILE>)){ chomp $line; $lines+=1 if $line =~ /GAATTCCCCCCCCCCCCCCCCCCCCCCTTTTTTT/i; print "Znaleziono szukana sekwencje w lini $lines !\n" if $line =~ /GAA$ } close MYFILE; print "Zrobione \n";
Skrypt obliczający długość sekwencji #!/usr/bin/perl open MYFILE, 'scafold_full.fasta'; $length=0; $lines=0; while (defined($line=<MYFILE>)){ chomp $line; $length+=length $line if $line =~ /^[GATCN]+$/i; $lines+=1 if $line =~ /^[GATCN]+$/i; } print "Dlugosc sekwencji: $length\n"; print "Liczba lini: $lines\n"; close MYFILE;