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/
>
>
>

Reply via email to