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!";
In reply to One more problem
by ashnator
in thread While loop printing only one fasta header file
by ashnator
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |