-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathBioJava:CookBook1.7.html
More file actions
350 lines (295 loc) · 16 KB
/
BioJava:CookBook1.7.html
File metadata and controls
350 lines (295 loc) · 16 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
<h2 id="biojava-30-release">BioJava 3.0 release</h2>
<p>Many things changed in the BioJava 3.0 release. The cookbook for the new
API is available from here: <biojava:cookbook3.0> The content on this
page is still available to support the legacy code base, which is now
available through the biojava-legacy project in the BioJava SVN.</biojava:cookbook3.0></p>
<h2 id="biojava-in-anger---a-tutorial-and-recipe-book-for-those-in-a-hurry">BioJava In Anger - A Tutorial and Recipe Book for Those in a Hurry</h2>
<p>BioJava can be both big and intimidating. For those of us who are in a
hurry there really is a whole lot there to get your head around. This
document is designed to help you develop BioJava programs that do 99% of
common tasks without needing to read and understand 99% of the BioJava
API.</p>
<p>The page was inspired by various programming cookbooks and follows a
“How do I…?” type approach. Each “How do I?” is linked to some example
code that does what you want and sometimes more. Basically if you find
the code you want and copy and paste it into your program you should be
up and running quickly. I have endeavoured to over document the code to
make it more obvious what I am doing so some of the code might look a
bit bloated.</p>
<p>If you have any suggestions, questions or comments contact the <a href="mailto:biojava-l@biojava.org">biojava
mailing list</a>. To subscribe to this list
go <a href="http://biojava.org/mailman/listinfo/biojava-l">here</a></p>
<p>If you re-use code from the cookbook please cite:</p>
<h2 id="announcing">Announcing</h2>
<p>You can now read BioJava in Anger in
<a href="Biojava:CookbookFrench" title="wikilink">French</a> (Translated by Sylvain
Foisy; mise à jour / updated : 28 décembre 2009).</p>
<p>You can also read Biojava in Anger in
<a href="Biojava:CookbookPortuguese" title="wikilink">Portuguese</a> (Translated by
Dickson Guedes)</p>
<p>You can also read BioJava in Anger in
<a href="http://www.geocities.jp/bio_portal/bj_in_anger_ja/">Japanese</a>
(Translated by Takeshi Sasayama and Kentaro Sugino, updated 14 Aug
2004).</p>
<p>How about simplified
<a href="http://www.cbi.pku.edu.cn/chinese/documents/PUMA/biojava/index-cn.html">Chinese</a>?
(Translated by Wu Xin).</p>
<p>And lets not forget this new
<a href="BioJava:CookBookItaliano" title="wikilink">Italian</a> translation (translated
by Alessandro Cipriani; last update: 9 Sep 2010).</p>
<h2 id="how-do-i">How Do I….?</h2>
<h3 id="setup">Setup</h3>
<ul>
<li><a href="http://java.sun.com/javase/downloads/index.jsp">Where do I get a Java
installation</a>?</li>
<li><a href="BioJava:GetStarted" title="wikilink">How do I get and install BioJava</a>?</li>
</ul>
<h3 id="alphabets-and-symbols">Alphabets and Symbols</h3>
<ul>
<li><a href="Biojava:Cookbook:Alphabets" title="wikilink">How do I get a DNA, RNA or Protein
Alphabet</a>?</li>
<li><a href="Biojava:Cookbook:Alphabets:Custom" title="wikilink">How do I make a custom Alphabet from custom
Symbols</a>?</li>
<li><a href="Biojava:Cookbook:Alphabets:CrossProduct" title="wikilink">How do I make a CrossProductAlphabet such as a codon
Alphabet</a>?</li>
<li><a href="Biojava:Cookbook:Alphabets:Component" title="wikilink">How do I break Symbols from CrossProduct Alphabets into their
component Symbols</a>?</li>
<li><a href="Biojava:Cookbook:Alphabets:Cononical" title="wikilink">How can I tell if two Alphabets or Symbols are
equal</a>?</li>
<li><a href="Biojava:Cookbook:Alphabets:Ambiguous" title="wikilink">How can I make an ambiguous Symbol like Y or
R</a>?</li>
</ul>
<h3 id="basic-sequence-manipulation">Basic Sequence Manipulation</h3>
<ul>
<li><a href="Biojava:Cookbook:Sequence" title="wikilink">How do I make a Sequence from a String or make a Sequence Object
back into a String</a>?</li>
<li><a href="Biojava:Cookbook:Sequence:SubSequence" title="wikilink">How do I get a subsection of a
Sequence</a>?</li>
<li><a href="Biojava:Cookbook:Sequence:Transcribe" title="wikilink">How do I transcribe a DNA Sequence to a RNA
Sequence</a>?</li>
<li><a href="Biojava:Cookbook:Sequence:Reverse" title="wikilink">How do I reverse complement a DNA or RNA
Sequence</a>?</li>
<li><a href="Biojava:Cookbook:Sequence:ChangeName" title="wikilink">Sequences are immutable so how can I change it’s
name</a>?</li>
<li><a href="Biojava:Cookbook:Sequence:Edit" title="wikilink">How can I edit a Sequence or
SymbolList</a>?</li>
<li><a href="Biojava:Cookbook:Sequence:Regex" title="wikilink">How can I make a sequence motif into a regular
expression</a>?</li>
<li><a href="Biojava:Cookbook:Sequence:ExtractGeneRegions" title="wikilink">How can I extract all regions beeing marked (or not) with a special
feature (e.g. ‘gene’ or
‘CDS’)</a>?</li>
</ul>
<h3 id="translation">Translation</h3>
<ul>
<li><a href="Biojava:Cookbook:Translation" title="wikilink">How do I translate a DNA or RNA Sequence or SymbolList to
Protein</a>?</li>
<li><a href="Biojava:Cookbook:Translation:Single" title="wikilink">How do I translate a single codon to a single amino
acid</a>?</li>
<li><a href="Biojava:Cookbook:Translation:NonStandart" title="wikilink">How do I use a non standard translation
table</a>?</li>
<li><a href="Biojava:Cookbook:Translation:SixFrames" title="wikilink">How do I translate a nucleotide sequence in all six
frames</a>?</li>
<li><a href="Biojava:Cookbook:Translation:OneLetterAmbi" title="wikilink">How do I retrieve the 1-Letter code of a translated sequence
containing
ambiguities</a>?</li>
</ul>
<h3 id="proteomics">Proteomics</h3>
<ul>
<li><a href="Biojava:Cookbook:Proteomics" title="wikilink">How do I calculate the mass and pI of a
peptide</a>?</li>
<li><a href="Biojava:Cookbook:Proteomics:AAindex" title="wikilink">How do I analyze the symbol properties of an amino acid sequence
using the Amino Acid Index
database</a>?</li>
</ul>
<h3 id="sequence-io">Sequence I/O</h3>
<ul>
<li><a href="Biojava:Cookbook:SeqIO:WriteInFasta" title="wikilink">How do I write Sequences in Fasta
format</a>?</li>
<li><a href="Biojava:Cookbook:SeqIO:ReadFasta" title="wikilink">How do I read in a Fasta
file</a>?</li>
<li><a href="Biojava:Cookbook:SeqIO:ReadGES" title="wikilink">How do I read a GenBank/EMBL/SwissProt
file</a>?(deprecated)</li>
<li><a href="Biojava:Cookbook:SeqIO:ReadGESBiojavax" title="wikilink">How do I read a GenBank/EMBL/UniProt/FASTA/INSDseq
file</a>?</li>
<li><a href="Biojava:Cookbook:SeqIO:GBtoFasta" title="wikilink">How do I extract GenBank/EMBL/UniProt/FASTA/INSDseq sequences and
write them as Fasta</a>?</li>
<li><a href="Biojava:Cookbook:SeqIO:ABItoSequence" title="wikilink">How do I turn an ABI sequence trace into a BioJava
Sequence</a>?</li>
<li><a href="Biojava:Cookbook:SeqIO:Echo" title="wikilink">How does sequence I/O work in
BioJava</a>?</li>
</ul>
<h3 id="annotations">Annotations</h3>
<ul>
<li><a href="BioJava:Cookbook:Annotations:List" title="wikilink">How do I list the Annotations in a
Sequence</a>?</li>
<li><a href="BioJava:Cookbook:Annotations:List2" title="wikilink">How do I extract Annotations for a set of
Features</a>?</li>
<li><a href="BioJava:Cookbook:Annotations:Filter" title="wikilink">How do I filter a Sequences based on their species (or another
Annotation
property)</a>?</li>
</ul>
<h3 id="locations-and-features">Locations and Features</h3>
<ul>
<li><a href="BioJava:Cookbook:Locations:Point" title="wikilink">How do I specify a
PointLocation</a>?</li>
<li><a href="BioJava:Cookbook:Locations:Range" title="wikilink">How do I specify a
RangeLocation</a>?</li>
<li><a href="BioJava:Cookbook:Locations:Circular" title="wikilink">How do CircularLocations
work</a>?</li>
<li><a href="BioJava:Cookbook:Locations:Feature" title="wikilink">How can I make a
Feature</a>?</li>
<li><a href="BioJava:Cookbook:Locations:Filter" title="wikilink">How can I filter Features by
type</a>?</li>
<li><a href="BioJava:Cookbook:Locations:Remove" title="wikilink">How can I remove
features</a>?</li>
</ul>
<h3 id="blast-and-fasta">BLAST and FASTA</h3>
<ul>
<li><a href="BioJava:CookBook:Blast:Parser" title="wikilink">How do I set up a BLAST
parser</a>?</li>
<li><a href="BioJava:CookBook:Fasta:Parser" title="wikilink">How do I set up a FASTA
parser</a>?</li>
<li><a href="BioJava:CookBook:Blast:Extract" title="wikilink">How do I extract information from parsed
results</a>?</li>
<li><a href="BioJava:CookBook:Blast:Echo" title="wikilink">How do I parse a large file; Or, How do I make a custom
SearchContentHandler</a>?</li>
<li><a href="BioJava:CookBook:Blast:XML" title="wikilink">How do I convert an XML BLAST result into HTML
page</a>?</li>
</ul>
<h3 id="counts-and-distributions">Counts and Distributions</h3>
<ul>
<li><a href="BioJava:CookBook:Count:Residues" title="wikilink">How do I count the residues in a
Sequence</a>?</li>
<li><a href="BioJava:CookBook:Count:Frequency" title="wikilink">How do I calculate the frequency of a Symbol in a
Sequence</a>?</li>
<li><a href="BioJava:CookBook:Count:ToDistrib" title="wikilink">How can I turn a Count into a
Distribution</a>?</li>
<li><a href="BioJava:CookBook:Distribution:RandomSeqs" title="wikilink">How can I generate a random sequence from a
Distribution</a>?</li>
<li><a href="BioJava:CookBook:Distribution:Entropy" title="wikilink">How can I find the amount of information or entropy in a
Distribution</a>?</li>
<li><a href="BioJava:CookBook:Distribution:Emission" title="wikilink">What is an easy way to tell if two Distributions have equal
weights</a>?</li>
<li><a href="BioJava:CookBook:Distribution:Custom" title="wikilink">How can I make an OrderNDistribution over a custom
Alphabet</a>?</li>
<li><a href="BioJava:CookBook:Distribution:XML" title="wikilink">How can I write a Distribution as
XML</a>?</li>
<li><a href="BioJava:CookBook:Distribution:Gibbs" title="wikilink">Using Distributions to make a Gibbs
sampler</a></li>
<li><a href="BioJava:CookBook:Distribution:Bayes" title="wikilink">Using Distributions to make a naive Bayes
classifier</a></li>
<li><a href="Biojava:CookBook:Distribution:Composition" title="wikilink">How do I calculate the composition of a Sequence or collection of
Sequences?</a>
This example uses JDK 1.5 and BioJavaX</li>
</ul>
<h3 id="weight-matrices-and-dynamic-programming">Weight Matrices and Dynamic Programming</h3>
<ul>
<li><a href="BioJava:CookBook:DP:WeightMatrix" title="wikilink">How do I use a WeightMatrix to find a
motif</a>?</li>
<li><a href="BioJava:CookBook:DP:HMM" title="wikilink">How do I make a HMMER like profile
HMM</a>?</li>
<li>|How do I set up a custom HMM? (Link to
Tutorial?? –<a href="User:Guedes" title="wikilink">Guedes</a> 11:43, 8 February 2006
(EST) )</li>
<li><a href="BioJava:CookBook:DP:PairWise" title="wikilink">How do I generate a pair-wise alignment with a Hidden Markov
Model</a>?</li>
<li><a href="BioJava:CookBook:DP:PairWise2" title="wikilink">How do I generate a global or local alignment with the
Needleman-Wunsch- or the
Smith-Waterman-algorithm</a>?</li>
</ul>
<h3 id="user-interfaces">User Interfaces</h3>
<ul>
<li><a href="BioJava:CookBook:Interfaces:ViewAsTree" title="wikilink">How can I visualize Annotations and Features as a
tree</a>?</li>
<li><a href="BioJava:CookBook:Interfaces:ViewInGUI" title="wikilink">How can I display a Sequence in a
GUI</a>?</li>
<li><a href="BioJava:CookBook:Interfaces:ViewInGUI2" title="wikilink">How can I create a RichSequence
viewer</a>?</li>
<li><a href="BioJava:CookBook:Interfaces:Coordinates" title="wikilink">How do I display Sequence
coordinates</a>?</li>
<li><a href="BioJava:CookBook:Interfaces:Features" title="wikilink">How can I display
features</a>?</li>
<li><a href="BioJava:CookBook:Interfaces:Alignments" title="wikilink">How can I view an
Alignment</a>?</li>
<li><a href="BioJava:CookBook:Interfaces:Alignments II" title="wikilink">How can I view an Alignment
II</a>?</li>
<li><a href="BioJava:CookBook:Interfaces:ProteinPeptideFeatures" title="wikilink">How can I display Protein Features / a Peptide
Digest</a>?</li>
</ul>
<h3 id="biosql-and-sequence-databases">BioSQL and Sequence Databases</h3>
<ul>
<li><a href="BioJava:CookBook:BioSQL:SetupPostGre" title="wikilink">How do I set up BioSQL with
PostgreSQL?</a> (by
<a href="User:David" title="wikilink">David Huen</a>)</li>
<li><a href="BioJava:CookBook:BioSQL:SetupOracle" title="wikilink">How do I set up BioSQL with
Oracle?</a> (by
<a href="User:Richard" title="wikilink">Richard Holland</a>)</li>
<li><a href="BioJava:CookBook:BioSQL:Manage" title="wikilink">How do I add, view and remove Sequence Objects from a BioSQL
DB?</a></li>
<li><a href="BioJava:CookBook:ExternalSources:NCBIFetch" title="wikilink">How can I get a sequence straight from
NCBI?</a></li>
</ul>
<h3 id="external-applications-and-services">External Applications and Services</h3>
<ul>
<li><a href="BioJava:CookBook:Services:Qblast" title="wikilink">How can I use QBlast to do my alignments
remotely</a>?</li>
</ul>
<h3 id="genetic-algorithms">Genetic Algorithms</h3>
<ul>
<li><a href="BioJava:CookBook:GA" title="wikilink">How can I make a Genetic Algorithm with
BioJava</a>?</li>
</ul>
<h3 id="protein-structure">Protein Structure</h3>
<ul>
<li><a href="BioJava:CookBook:PDB:read" title="wikilink">How can I parse a PDB file?</a></li>
<li><a href="BioJava:CookBook:PDB:mmcif" title="wikilink">How can I parse a .mmcif
file?</a></li>
<li><a href="BioJava:CookBook:PDB:atoms" title="wikilink">How can I access the atoms in a
structure?</a></li>
<li><a href="BioJava:CookBook:PDB:atomsCalc" title="wikilink">How can I do calculations on
atoms?</a></li>
<li><a href="BioJava:CookBook:PDB:groups" title="wikilink">How to work with Groups (AminoAcid, Nucleotide,
Hetatom)?</a></li>
<li><a href="BioJava:CookBook:PDB:header" title="wikilink">How can I access the header information of a PDB
file?</a></li>
<li><a href="BioJava:CookBook:PDB:seqres" title="wikilink">How does BioJava deal with SEQRES and ATOM
groups?</a></li>
<li><a href="BioJava:CookBook:PDB:mutate" title="wikilink">How can I mutate a
residue?</a></li>
<li><a href="BioJava:CookBook:PDB:align" title="wikilink">How can I calculate a structure
alignment?</a></li>
<li><a href="BioJava:CookBook:PDB:alignGUI" title="wikilink">How can I use a simple GUI to calculate an
alignment?</a></li>
<li><a href="BioJava:CookBook:PDB:Jmol" title="wikilink">How can I interact with
Jmol?</a></li>
<li><a href="BioJava:CookBook:PDB:hibernate" title="wikilink">How can I serialize to a
database?</a></li>
</ul>
<h3 id="ontologies">Ontologies</h3>
<ul>
<li><a href="BioJava:CookBook:OBO:parse" title="wikilink">How can I parse an OBO
file?</a></li>
<li><a href="BioJava:CookBook:OBO:visualize" title="wikilink">How can I visualize an OBO file as a directed acyclic
graph?</a></li>
</ul>
<h3 id="cloud-computing">Cloud computing</h3>
<ul>
<li><a href="BioJava:CookBook:Cloud:ec2" title="wikilink">How do I use Biojava in the Amazon EC2
cloud?</a></li>
</ul>
<h2 id="disclaimer">Disclaimer</h2>
<p>This code is generously donated by people who probably have better
things to do. Where possible we test it but errors may have crept in. As
such, all code and advice here in has no warranty or guarantee of any
sort. You didn’t pay for it and if you use it we are not responsible for
anything that goes wrong. Be a good programmer and test it yourself
before unleashing it on your corporate database.</p>
<h2 id="copyright">Copyright</h2>
<p>The documentation on this site is the property of the people who
contributed it. If you wish to use it in a publication please make a
request through the <a href="mailto:biojava-l@biojava.org">biojava mailing
list</a>.</p>
<p>The code is <a href="wp:Open source" title="wikilink">open-source</a>. A good definition
of open-source can be found <a href="http://www.opensource.org/docs/osd">here</a>.
If you agree with that definition then you can use it.</p>
<p>–<a href="User:Guedes" title="wikilink">Guedes</a> 16:19, 28 March 2006 (EST)</p>