diy bioinf pt 3

[A while ago I started a series of posts about the basics of bioinformatics, basic tools, programming, etc. It is intended mainly for my hungarian readers, with only limited knowledge in bioinformatics, so the posts are in hungarian.]

Eljutottam odáig, hogy kirakjak még egy kis bioinformatikai alapozást ide, az első két rész itt és itt található. Írtam a BioPerl és a shellscriptek hasznáról is, most néhány egyszerű scriptet ki is rakok a következő napokban amik [nálam legalábbis] sűrűn előforduló, de nem túl komoly feladatokra jelentenek megoldást.

Az első script egy fasta fájlból kiszedi egy tetszőleges azonosítókat, kulcsszavakat tartalmazó lista alapján a megfelelő szekvenciákat, majd azokat kírja egy másik fájlba. A ‘-i’ kapcsoló a bementi fájl, a ‘-o’ a kimenet és a ‘-l’ a lista, ami az azonosítókat tartalmazza.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/perl

use Getopt::Std;
use Bio::SeqIO;

getopts('i:o:l:');

my $in  = $opt_i;
my $out = $opt_o;

my $fasta = Bio::SeqIO->new('-file'   => "$in",
                '-format' => 'fasta');

my $output = Bio::SeqIO->new('-file'   => ">>$out",
                 '-format' => 'fasta');

my $list = $opt_l;

my @list = ();
open LIST, $list or die "$0 : can't open file $list : $!\n";
while (<LIST>) {
    chomp;
    my @line = split;
    push @list, $line[0];
}
close LIST;

@search_patterns = map { qr/$_/i } @list;

while (my $seq = $fasta->next_seq()) {
    my $id = $seq->id();
    for my $searchobj (@search_patterns) {
        if ($id =~ /$searchobj/) {
            $output->write_seq($seq);
        }
    }
}

A script nagyon egyszerű, a lista tartalmát beolvassa egy tömbbe, majd a map segítségével egy reguláris kifejezés listát kreál belőle, utána pedig a BioPerl segítségével megnyitott fasta fájlokat egyesével végigrágva kiszedi azok azonosítóját és megnézi, hogy szerepel-e benne a lista valamelyik tagja. Ha igen, akkor az adott szekvenciát kiírja a kimeneti fájlba.

Share and Enjoy:
  • email
  • Google Bookmarks
  • del.icio.us
  • Facebook
  • Twitter
  • Netvibes
  • Tumblr
  • FriendFeed
  • connotea
  • blogtercimlap

Tags: , , , ,

Comments are closed.

biopunk

A biopunk egy biotech, bioinf csináld-magad szubkultúra némi evolúcióelmélettel, memetikával, szkepticizmussal, futurizmussal és hacker kultúrával körítve.

kategóriák