Than you Chris, your scrip is very helpful and know about BioPerl Module also. I appreciated it .
On Mon, Jul 2, 2012 at 11:55 PM, Chris Charley <char...@pulsenet.com> wrote: > Hi there: > >> >> I am very new in Perl and I am trying to write a script to search for >> similar text in two different files, If it founds a match, it should out >> put the whole line from the second file in a third file. >> >> >> >> Let say that my first file (F1) has a list of some samples like >> >> Cortezaaerea23489284 >>> >> >> Cortezaterreste0714857 >>> >> >> >> >> And the second file (F2) has information about all my universe of samples >> >> Cortezaaerea23489284 >>> >> QIUEFQIFNIQAONDAIFIQHFAIFAUIFN**UAINAHDUFUDHJAHFUAHFUAFYAUFAUH** >> ADUHAUFHAUHFUAHUAHFUAUFAUFHAUF**HAUFHUAHFUDAHFUAFUAI >> >> Cortezaterreste0918347 >>> >> QIUEFQIFNIQAONDAIFIQHFAIFAUIFN**UAINAHDUFUDHJAHFUAHFUAFYAUFAUH** >> ADUHAUFHAUHFUAHUAHFUAUFAUFHAUF**HAUFHUAHFUDAHFUAFUAI >> >> Cortezaterreste09899897 >>> >> IADUFIAJIOADFIOAMCIADFAIUFIAUF**IOAUFDIOAUFAIUFAIIUFIAUFIDAUFI** >> AIAUFIAUFIAUFIOAUFIOAUDOIFAUIO**DUAIOFUAIOFUAIUFOIAUFIAOUFDOIA**U >> >> Cortezaaerea234789048 >>> >> IADUFIAJIOADFIOAMCIADFAIUFIAUF**IOAUFDIOAUFAIUFAIIUFIAUFIDAUFI** >> AIAUFIAUFIAUFIOAUFIOAUDOIFAUIO**DUAIOFUAIOFUAIUFOIAUFIAOUFDOIA**U >> >> Cortezaterreste0714857 >>> >> >> >> IADUFIAJIOADFIOAMCIADFAIUFIAUF**IOAUFDIOAUFAIUFAIIUFIAUFIDAUFI** >> AIAUFIAUFIAUFIOAUFIOAUDOIFAUIO**DUAIOFUAIOFUAIUFOIAUFIAOUFDOIA**U >> >> >> >> The output for this example should be like this >> >> Cortezaaerea23489284 >>> >> QIUEFQIFNIQAONDAIFIQHFAIFAUIFN**UAINAHDUFUDHJAHFUAHFUAFYAUFAUH** >> ADUHAUFHAUHFUAHUAHFUAUFAUFHAUF**HAUFHUAHFUDAHFUAFUAI >> >> Cortezaterreste0714857 >>> >> >> >> IADUFIAJIOADFIOAMCIADFAIUFIAUF**IOAUFDIOAUFAIUFAIIUFIAUFIDAUFI** >> AIAUFIAUFIAUFIOAUFIOAUDOIFAUIO**DUAIOFUAIOFUAIUFOIAUFIAOUFDOIA**U >> >> >> >> My script is as follows, it work partially but always just with the last >> element in file 1. Could anyone help me to improve it? >> >> >> >> >> > > > {snip] code > > Hello Yuma, > I didn't debug your code, but I thought I would show how this might be done > using the Bio::SeqIO module in the BioPerl package. > > > #!/usr/bin/perl > use strict; > use warnings; > use Bio::SeqIO; > > my %id; > open my $fh, "<", 'f1.txt' or die $!; > > while (<$fh>) { > chomp; > my $id = substr $_, 1; > $id{$id}++; > } > close $fh or die $!; > > my $in = Bio::SeqIO->new ( -file => "f2.txt", > -format => 'fasta'); > my $out = Bio::SeqIO->new( -file => '>fasta.dat', > -format => 'fasta'); > > while(my $seq = $in->next_seq() ) { > $out->write_seq($seq) if exists $id{$seq->id}; > } > > > > Chris > > > >> >> >> Thanks on advances >> >> >> >> > > -- > To unsubscribe, e-mail: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > >