.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Bio::DB::FileCache 3pm" .TH Bio::DB::FileCache 3pm "2020-10-28" "perl v5.30.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Bio::DB::FileCache \- In file cache for BioSeq objects .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& $cachedb = Bio::DB::FileCache\->new($real_db); \& \& # \& # $real_db is a Bio::DB::RandomAccessI database \& # \& \& $seq = $cachedb\->get_Seq_by_id(\*(AqROA1_HUMAN\*(Aq); \& \& # \& # $seq is a Bio::Seq object \& # \& \& # more control provided with named\-parameter form \& \& $cachedb = Bio::DB::FileCache\->new( \-seqdb => $real_db, \& \-file => $path, \& \-keep => $flag, \& ); \&=head1 DESCRIPTION .Ve .PP This is a disk cache system which saves the objects returned by Bio::DB::RandomAccessI on disk. The disk cache grows without limit, while the process is running, but is automatically unlinked at process termination unless the \-keep flag is set. .PP This module requires DB_File and Storable. .SH "CONTACT" .IX Header "CONTACT" Lincoln Stein .SS "Support" .IX Subsection "Support" Please direct usage questions or support issues to the mailing list: .PP \&\fIbioperl\-l@bioperl.org\fR .PP rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible. .SS "Reporting Bugs" .IX Subsection "Reporting Bugs" Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via the web: .PP .Vb 1 \& https://github.com/bioperl/bioperl\-live/issues .Ve .SH "APPENDIX" .IX Header "APPENDIX" The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _ .SS "new" .IX Subsection "new" .Vb 11 \& Title : new \& Usage : $db = Bio::DB::FileCache\->new( \& \-seqdb => $db, # Bio::DB::RandomAccessI database \& \-file => $path, # path to index file \& \-keep => $flag, # don\*(Aqt unlink index file \& ) \& Function: creates a new on\-disk cache \& Returns : a Bio::DB::RandomAccessI database \& Args : as above \& Throws : "Must be a randomaccess database" exception \& "Could not open primary index file" exception .Ve .PP If no index file is specified, will create a temporary file in your system's temporary file directory. The name of this temporary file can be retrieved using \fBfile_name()\fR. .SS "get_Seq_by_id" .IX Subsection "get_Seq_by_id" .Vb 6 \& Title : get_Seq_by_id \& Usage : $seq = $db\->get_Seq_by_id(\*(AqROA1_HUMAN\*(Aq) \& Function: Gets a Bio::Seq object by its name \& Returns : a Bio::Seq object \& Args : the id (as a string) of a sequence \& Throws : "id does not exist" exception .Ve .SS "get_Seq_by_acc" .IX Subsection "get_Seq_by_acc" .Vb 6 \& Title : get_Seq_by_acc \& Usage : $seq = $db\->get_Seq_by_acc(\*(AqX77802\*(Aq); \& Function: Gets a Bio::Seq object by accession number \& Returns : A Bio::Seq object \& Args : accession number (as a string) \& Throws : "acc does not exist" exception .Ve .SS "seqdb" .IX Subsection "seqdb" .Vb 6 \& Title : seqdb \& Usage : $seqdb = $db\->seqdb([$seqdb]) \& Function: gets/sets the Bio::DB::RandomAccessI database \& Returns : a Bio::DB::RandomAccessI database \& Args : new sequence database (optional) \& Throws : nothing .Ve .SS "file_name" .IX Subsection "file_name" .Vb 6 \& Title : file_name \& Usage : $path = $db\->file_name([$file_name]) \& Function: gets/sets the name of the cache file \& Returns : a path \& Args : new cache file name (optional) \& Throws : nothing .Ve .PP It probably isn't useful to set the cache file name after you've opened it. .SS "keep" .IX Subsection "keep" .Vb 6 \& Title : keep \& Usage : $keep = $db\->keep([$flag]) \& Function: gets/sets the value of the "keep" flag \& Returns : current value \& Args : new value (optional) \& Throws : nothing .Ve .PP The keep flag will cause the index file to be unlinked when the process exits. Since on some operating systems (Unix, \s-1OS/2\s0) the unlinking occurs during the \fBnew()\fR call immediately after opening the file, it probably isn't safe to change this value. .SS "db" .IX Subsection "db" .Vb 6 \& Title : db \& Usage : $db\->db \& Function: returns tied hash to index database \& Returns : a Berkeley DB tied hashref \& Args : none \& Throws : nothing .Ve .SS "flush" .IX Subsection "flush" .Vb 6 \& Title : flush \& Usage : $db\->flush \& Function: flushes the cache \& Returns : nothing \& Args : none \& Throws : nothing .Ve .SS "get_Seq_by_version" .IX Subsection "get_Seq_by_version" .Vb 6 \& Title : get_Seq_by_version \& Usage : $seq = $db\->get_Seq_by_version(\*(AqX77802.1\*(Aq); \& Function: Gets a Bio::Seq object by sequence version \& Returns : A Bio::Seq object \& Args : accession.version (as a string) \& Throws : "acc.version does not exist" exception .Ve