Repository navigation
Expand file tree
/
Copy pathSequenceOptimizationHints.java
More file actions
86 lines (70 loc) · 2.62 KB
/
Copy pathSequenceOptimizationHints.java
File metadata and controls
86 lines (70 loc) · 2.62 KB
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
/*
* BioJava development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. If you do not have a copy,
* see:
*
* http://www.gnu.org/copyleft/lesser.html
*
* Copyright for this code is held jointly by the individual
* authors. These should be listed in @author doc comments.
*
* For more information on the BioJava project and its aims,
* or to join the biojava-l mailing list, visit the home page
* at:
*
* http://www.biojava.org/
*
* Created on DATE
*
*/
package org.biojava.nbio.core.sequence;
/**
* A static class that provides optimization hints for memory or performance handling of sequence data.
* If you are working with genomic sequence data and the use case is sub sequence then the sequence proxy loader
* implementation may do file reads for each sub-sequence request instead of loading everything into memory.
* If a large collection of protein sequences is being loaded from a fasta file but only a few sequences will be selected
* then the file loader could create a sequence proxy loader that retains the offset in the file for each sequence
* and it is loaded when the sequence data is requested. This way you could load a pointer to all sequences but delay
* loading until the user actually needs the data. The sequence loader could also have an internal sequence management
* algorithm that goes through and returns sequence data freeing up memory where a future request for sequence data will
* then be reloaded.
*
* @author Scooter Willis
*/
public class SequenceOptimizationHints {
/**
* @return the sequenceUsage
*/
public static SequenceUsage getSequenceUsage() {
return sequenceUsage;
}
/**
* @param aSequenceUsage the sequenceUsage to set
*/
public static void setSequenceUsage(SequenceUsage aSequenceUsage) {
sequenceUsage = aSequenceUsage;
}
/**
* @return the sequenceColection
*/
public static SequenceCollection getSequenceCollection() {
return sequenceCollection;
}
/**
* @param aSequenceColection the sequenceColection to set
*/
public static void setSequenceCollection(SequenceCollection aSequenceColection) {
sequenceCollection = aSequenceColection;
}
public enum SequenceUsage {
FULL_SEQUENCE_DATA, SUB_SEQUENCE_DATA, MINIMAL_SEQUENCE_DATA;
}
public enum SequenceCollection {
ALL_SEQUENCES, VARIABLE_SEQUENCES, MINIMINAL_SEQUENCES;
}
static private SequenceUsage sequenceUsage = SequenceUsage.FULL_SEQUENCE_DATA;
static private SequenceCollection sequenceCollection = SequenceCollection.ALL_SEQUENCES;
}