File: chado.pm

package info (click to toggle)
libchado-perl 1.23-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 23,976 kB
  • ctags: 10,378
  • sloc: xml: 192,540; sql: 165,945; perl: 28,339; sh: 101; python: 73; makefile: 46
file content (92 lines) | stat: -rw-r--r-- 1,751 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package Bio::FeatureIO::chado;

use strict;
use base qw(Bio::FeatureIO);

use Bio::SeqIO;
use Bio::Chado::LoadDBI;
use Data::Dumper;

sub _initialize {
  my($self,%arg) = @_;
  $self->SUPER::_initialize(%arg);

  $self->feature_count(0);
  $self->organism($arg{-organism} || 'Human');
  $self->cachesize($arg{-cachesize} || 1000);
}

sub next_feature {
  shift->throw('this class only writes to database');
}

sub write_feature {
  my($self,$feature) = shift;

}

=head2 cache

 Title   : cache
 Usage   : $obj->cache($newval)
 Function: cache an object for commit to db.  when number of
           items in cache exceeds cachesize(), objects are flushed
 Example : 
 Returns : value of cache (a scalar)
 Args    : on set, new value (a scalar or undef, optional)


=cut

sub cache{
  my $self = shift;
  my $val = shift;

  push @{ $self->{'cache'} }, $val if ref($val);

  if(scalar @{ $self->{'cache'} } > $self->cachesize){
    $_->dbi_commit foreach @{ $self->{'cache'} };
    @{ $self->{'cache'} } = ();
  }
}

=head2 cachesize

 Title   : cachesize
 Usage   : $obj->cachesize($newval)
 Function: number of features to cache before flushing to db
 Example : 
 Returns : value of cachesize (a scalar)
 Args    : on set, new value (a scalar or undef, optional)


=cut

sub cachesize{
    my $self = shift;

    return $self->{'cachesize'} = shift if @_;
    return $self->{'cachesize'};
}


=head2 organism

 Title   : organism
 Usage   : $obj->organism($newval)
 Function: organism of features being loaded
 Example : 
 Returns : value of organism (a scalar)
 Args    : on set, new value (a scalar or undef, optional)


=cut

sub organism{
    my $self = shift;

    return $self->{'organism'} = shift if @_;
    return $self->{'organism'};
}

1;