in reply to While loop printing only one fasta header file
Hi Monks, 1) I am reading a file fastaheaders.txt which contains something like +this >DFHGSUEIEEK >JKDHUEIEEOE >KDJIEEIOIEO 2) In the second file I am trying to search and print the lines when f +ound . It looks like this >DFHGSUEIEEK ACGTCGTACGATCGATCAGTACGTACGAT // >JKDHUEIEEOE ACGATGCGTACAGTACAGTACAGTACAGT // >KDJIEEIOIEO AGTCGTCGTAGTGTTTTACCCCCATGTCA // >HSKWJSSWWOW AGTAGTAGTAGTAGGGGTTTTTTTTACCC // >ADJHFHIOHFO ACGTGGGGGGGGGGTTATTACCCCCCCCA // >DTEEIJEJEOJE TTTTTTTTTTGGGGGGGGGACCCCCCCAT 3) I am trying to print only those fasta file which are in my fastahe +aders.txt file, i.e., >DFHGSUEIEEK >JKDHUEIEEOE >KDJIEEIOIEO. 4) Problem is that my program is doing that but like this:- >DFHGSUEIEEK >DFHGSUEIEEK >DFHGSUEIEEK >DFHGSUEIEEK ACGTCGTACGATCGATCAGTACGTACGAT ACGTCGTACGATCGATCAGTACGTACGAT ACGTCGTACGATCGATCAGTACGTACGAT ACGTCGTACGATCGATCAGTACGTACGAT // >JKDHUEIEEOE >JKDHUEIEEOE >JKDHUEIEEOE >JKDHUEIEEOE >JKDHUEIEEOE ACGATGCGTACAGTACAGTACAGTACAGT ACGATGCGTACAGTACAGTACAGTACAGT ACGATGCGTACAGTACAGTACAGTACAGT ACGATGCGTACAGTACAGTACAGTACAGT 6) Here is my program code... Can you please help me to whats going wr +ong ??? #!/usr/bin/perl open(FD, "<fastaheaders.txt"); @headers = <FD>; print "Enter the file name:"; $fn=<STDIN>; + open(FH,$fn) || die "Error opening the file:$fn"; while (<FH>) { foreach $head(@headers) { if (($head =~ /$_/) .. ($_ =~ /\/\//)) { print "$_"; } } } close FH; close FD; print "Loop Finished!";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: One more problem
by didess (Sexton) on Sep 11, 2008 at 08:00 UTC | |
|
Re: One more problem
by juster (Friar) on Sep 11, 2008 at 08:33 UTC | |
|
Re: One more problem
by llancet (Friar) on Sep 11, 2008 at 07:55 UTC |