[Bioperl-l] use Bio::SeqIO to read Fasta sequence from pipe, or @ARGV, like "while (<>) {....}"
Fields, Christopher J
cjfields at illinois.edu
Sun Jul 13 15:12:38 UTC 2014
Haiyan,
Do you want a test script that uses the DATA handle or a script that can pull in data from STDIN (e.g. from outside)? They are not the same. It’s possible to do both but I think you’re conflating purposes here; someone using this script might not expect it to behave both ways.
chris
On Jul 12, 2014, at 9:23 PM, Haiyan Lin <linhy0120 at gmail.com> wrote:
> Hi, geogre,
>
> Thanks your code is working for data embedded in code with "__DATA__".
> But, it failed to hand data from outside. Following is the data and
> result.
>
> [linhy at bioinfo1 Script]$ more try.fa
>> Contig000001
> CCACGTAAGAGCACCTGGGTCCCCGCCCGCCAAGCGCCGCGAGCGCCAGCAGCAGCTCGC
>> hello
> ATATATTTTT
> [linhy at bioinfo1 Script]$ cat try.fa | perl try.pl
> seq is AGAGAGAGA
> seq is ATATATAT
>
> Thanks
>
> Haiyan
>
>
>
> On Sat, 2014-07-12 at 18:36 -0700, george hartzell wrote:
>> I just did this on my Mac OS X 10.9.4 system with perl 5.18.2:
>>
>> cd tmp
>> mkdir haiyan
>> cd haiyan
>> cpanm -n -L local Bio::SeqIO
>>
>> perl -Ilocal/lib/perl5 foo.pl
>>
>> With the following little program in foo.pl:
>>
>> use Bio::SeqIO ;
>>
>> my $in = Bio::SeqIO->new(-format=>"Fasta", -fh => \*DATA);
>> while(my $s = $in->next_seq()){
>> print "seq is " . $s->seq . "\n"
>> }
>>
>> __DATA__
>>> ct1
>> AGAGAGAGA
>>> ctg2
>> ATATATAT
>>
>> and it does this when I run it:
>>
>> (alacrity)[18:22:58]haiyan>>perl -Ilocal/lib/perl5 foo.pl
>> seq is AGAGAGAGA
>> seq is ATATATAT
>> (alacrity)[18:24:42]haiyan>>
>>
>> Can you get the same series of things to work?
>>
>> If you’re doing a bunch of this kind of stuff, you might want to look
>> at Data::Section; rjbs discusses it
>> here. It’s warmer and fuzzier than dealing with the DATA handle by
>> yourself.
>>
>> g.
>>
>>
>
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at mailman.open-bio.org
> http://mailman.open-bio.org/mailman/listinfo/bioperl-l
More information about the Bioperl-l
mailing list