pI

use strict;
use Bio::SeqIO;
use Data::Dumper;
use Bio::Tools::pICalculator;
  
my $filename="c:\\uniprot_sprot.dat";
my $sequence_object;

my $seqio = Bio::SeqIO -> new   (
                                '-format' => 'swiss',
                                '-file' => $filename
            );

my $calc = Bio::Tools::pICalculator->new(-places => 2,
                                           -pKset => 'EMBOSS');

my $c;

while ($sequence_object = $seqio -> next_seq) {
$c++;
#my $sequentie = $sequence_object-> id(); 
#print Dumper $sequence_object;
$calc->seq($sequence_object);
     my $iep = $calc->iep;
     print sprintf( "%s\t%s\t%.2f\n",
                    $sequence_object->id,
                    $iep,
                    $calc->charge_at_pH($iep) );

last if $c >= 1000;
}

bioperl

use strict;
use Bio::SeqIO;
use Data::Dumper;

my $filename="uniprot_sprot.dat";
my $sequence_object;
my $c;

my $seqio = Bio::SeqIO -> new   (
                                '-format' => 'swiss',
                                '-file' => $filename
                                );

while ($sequence_object = $seqio -> next_seq) {
$c++;
print Dumper $sequence_object;
my $sequentie = $sequence_object-> seq(); 
print $sequentie."\n";
last if $c > 1;
}

Relative abundance

open (FH,"<uniprot_sprot.dat");
while (<FH>){
$c++;
#SQ   SEQUENCE   320 AA;  34642 MW;  9E110808B6E328E0 CRC64;
#if (/^SQ   SEQUENCE(.+)AA\;(.+)MW\;/) {
if (/^ /) {
chomp;
s/ //g;
#print "$1\t$2\n";
#print;
@aa = split(//,$_);
foreach $aa(@aa){
$count{$aa}++;
} 
#last if $c > 10000;
}
}
print "results\n";
foreach (keys %count) {
$d++;
print "$d:amino acid $_ occurs $count{$_}\n";
}