[Bioperl-l] Bio::DB::SwissProt
Jason Stajich
jason.stajich at gmail.com
Wed Jul 20 12:52:07 EDT 2011
Please keep asking your questions on the mailing list - I can't answer everyone's questions and others learn from this exchange.
You do it just like it says in the documentation, here's a loop showing you can retrieve the same sequence by two different IDs, swissprot ID and accession number:
#!/usr/bin/perl -w
use strict;
use Bio::DB::GenPept;
use Bio::SeqIO;
my $db = Bio::DB::GenPept->new;
my $out = Bio::SeqIO->new(-format => 'swiss', -fh => \*STDOUT);
for my $id ( qw(P22815 BOSS_DROME) ) {
my $seq = $db->get_Seq_by_acc($id);
if( $seq ) {
$out->write_seq($seq);
} else {
warn("no seq $id\n");
}
}
Alternatively you can do this to get the sequence and turn it into an object but you have to use accession number:
(curl or GET as part of libwwww perl will work)
open(my $fh => 'curl http://www.uniprot.org/uniprot/P22815.txt') || die $!;
my $seqio = Bio::SeqIO->new(-fh => $fh, -format => 'swiss');
while(my $seq = $seqio->next_seq ) {
print $seq->id, "\n";
}
-jason
On Jul 20, 2011, at 9:21 AM, Oliver Schilling wrote:
> Thanks a lot for your reply!
>
> Sorry for asking - but do you have an example on how to retrieve Swissprot data via a genbank DB handle?
>
> Thanks
>
> Oliver
>
>
> On Jul 20, 2011, at 18:00 PM, Jason Stajich wrote:
>
>> It is just waiting for someone to code it up. It requires a different, simpler approach.
>>
>> I don't have any time to do this but we welcome volunteers.
>>
>> The simple approach is just to open a file handle and use GET cmd to open the URL with the accession number per the msg I sent before. That filehandle goes to SeqIO and you don't need the Bio::DB module.
>>
>> You can also get Swissprot data via genbank DB handle.
>>
>> Jason Stajich
>>
>>
>> On Jul 20, 2011, at 4:23 AM, Oliver Schilling <oliver.schilling at mol-med.uni-freiburg.de> wrote:
>>
>>> Dear Jason,
>>>
>>> as thankfully pointed out by you on http://old.nabble.com/Fwd%3A-URGENT%21-Update-of-Bio%3A%3ADB%3A%3ASwissProt-td32059436.html#a32059436,
>>>
>>> it seems that Bio::DB::SwissProt is not supported by expasy any more. In a perl script, I used to access Swissprot data and annotations by
>>>
>>> $sp = Bio::DB::SwissProt->new('-servertype' => 'expasy',
>>> '-hostlocation' => 'switzerland');
>>> $seq = $sp->get_Seq_by_id($id_swiss);
>>>
>>> This of course does not work any more. Will Bio::DB::SwissProt be adapted to the new expasy site in the near future?
>>>
>>> Thanks a lot!
>>>
>>> Oliver
>>>
>>>
>>> Dr. Oliver Schilling
>>> Group Leader & Emmy-Noether Research Fellow
>>> Institute for Molecular Medicine and Cell Research
>>> University of Freiburg
>>> Stefan-Meier-Str. 17, Room 02 027
>>> D-79104 Freiburg, Germany
>>> Tel: +49 761 203 9615
>>> email: oliver.schilling at mol-med.uni-freiburg.de
>
More information about the Bioperl-l
mailing list