fetching lines....until something

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • idorjee
    New Member
    • Mar 2007
    • 76

    fetching lines....until something

    hi guys,
    here is what i've been trying to do. i have two arrays (@arr1 and @arr2) which i compare and get the difference in them, which work fine. but now i'm trying to get the info (ie, the id of the sequence) from the file that has the difference ('diff_file'),a nd compare it with the id in the sequence itself (starts with '>') from the 'mySeqFile', and get just that sequece. i'm stucked at this point. i hope i'm clear. following is the sample of the mySeqFile and the script:
    any help would be really appreciated.

    --------mySeqFile---------
    >ebA1155
    MRMKACFNLFRVRDR FVLLAKDILPEDAKD ILPEDAKDILP
    QSQKMLADPLMQNDE VRAACDAPKVGIDDM LATIFRH
    >ebA5 ebA5
    MSVIAIHAAIVGVTV VVAYVLHMRTVAKDI LPEDSRVFVHY
    YGRINKLLCDAPKVG IDDMLATIFRHVPNG EFDQALERARS


    ------theScript----------------
    [CODE=perl]
    #!/urs/bin/perl -w
    my @arr2 = (ebA1135, ebA1158, ebA1251, ebA150);

    my $differ = 'diff_file';
    open(OF1, ">$differ") ;

    my $fasta = './mySeqFile';
    open(FH3, "<$fasta");

    my $file1 = '2tmsNabove.tab ';
    open(FH1,"<$fil e1");

    while (<FH1>) {
    if ($_ =~ /(\S+)\t(\S+)\t( \S+)/) {
    push(@arr1, $1); next;
    }
    }
    my %arr1 = map{$_ => 1} @arr1;
    my %arr2 = map{$_ => 1} @arr2;

    my @diff = grep(!defined $arr2{$_}, @arr1);
    foreach $diff (@diff) {
    my $num = $diff;
    while (<FH3>) {
    if ($_ =~ /^\>(\S+).+/) {
    if ($num eq $1) {
    # print $_; next;
    do {
    push(@seq, $_);
    next;
    } until ($_ =~ /^\>/);
    next;
    }
    }
    }
    }
    [/CODE]
    Last edited by miller; Jul 4 '07, 09:58 PM. Reason: Code Tag and ReFormatting
Working...