root/README

Revision 174, 22.9 kB (checked in by cholt, 8 months ago)

added DBI and DBD::SQLite

Line 
1 ***MAKER Documentation***
2
3 #----------------------------------------------------
4 INSTALLATION INSTUCTIONS FOR MAKER
5
6 *Step by step instructions are also available in the INSTALL text file.
7
8 MAKER is an annotation pipeline.  In other words it links together many steps and programs to produce final annotations.  For this reason, you must first install a number of programs that MAKER depends on.
9
10
11 To install maker, you will first need to install the following external programs:
12
13      *PERL 5.8.0 or higher
14      *BioPerl 1.5 or higher (www.bioperl.org)
15      *SNAP version 2009-02-03  or higher (homepage.mac.com/iankorf)
16      *RepeatMasker 3.1.6  or higher (www.repeatmasker.org)
17      *Exonerate 1.4  or higher (www.ebi.ac.uk/~guy/exonerate)
18
19 You must also install one of the following:
20
21      *Wu-BLAST 2.0  or higher (Wu-BLAST is becoming AB-BLAST which can not yet be downloaded)
22         or
23      *NCBI BLAST 2.2.X or higher (http://www.ncbi.nlm.nih.gov/BLAST/download.shtml)
24  
25 You might want to also install these optional external programs:
26
27      *Augustus 2.0  or higher (augustus.gobics.de)
28      *GeneMark.hmm-E 3.9 or higher (exon.biology.gatech.edu)
29      *FgenesH (www.softberry.com/) - requires licence
30
31 To install mpi_maker, you must have an mpi package installed, try the following:
32
33      *MPICH2 (http://www.mcs.anl.gov/research/projects/mpich2/)
34
35 note:  Remember to install MPICH2 with the --enable-sharedlibs flag set to the appropriate value (See MPICH2 Installer's Guide at http://www.mcs.anl.gov/research/projects/mpich2/documentation/index.php?s=docs).
36
37
38 Notes:
39 1) Wu-BLAST is becoming AB-BLAST.  Once AB-BLAST becomes available we will do some testing to see if it is compatible with MAKER.  Wu-BLAST is no longer available online, so if you don't already have it, you will have to use NCBI BLAST instead.
40 2) RepeatMasker requires Wu-BLAST or Cross_Match and a single file executable called TRF (see RepeatMasker website for details), so please install these before installing RepeatMasker
41 3) Exonerate Binaries can be downloaded from the website.  If you use Mac OSX, however, binaries are only available for version 1.0.  This verion will work too.  If you would like to compile exonerate, it requires GLIB, a C-library, that has a link from the exonerate website.  If you use Mac OSX, GLIB can downloaded using FINK.
42 4) RepeatMasker requires a repeat library file, which can be downloaded from Repbase upon registration (http://www.girinst.org/), this is explained on the RepeatMasker website.
43 5) Please note the location of all of the programs that you have installed, and add them to you $PATH variable in your .profile file.  You will need this information in the maker.exe file, one of MAKER's 3 control files.
44
45
46 Now that you have all the necessary programs installed, MAKER can be unpacked using:
47
48 tar xvfz maker.tar.gz
49
50 This will create a directory called maker with 5 sub directories:
51
52         bin - contains the maker executables.
53         lib - contains all the necessary perl libaries for MAKER.
54         MPI - contains MPI specific data to configure MAKER for a cluster that supports MPI.
55         Apollo - contains gff3.tiers file (See section titled APOLLO below)
56         data  - contains some sample data used to make sure everything works
57
58 Maker uses control files to guide each run.  Generic control files can be built using the -CTL flag in maker.  These control files can then be edited by the user to identify the location of all required input data and statistics.  Control files are run specific and seperate control will need to be built for each genome given to maker.  Maker will look for control files in the current working directory, so it is recomended that maker should be ran in a seperate directory containing unique control files for each genome.
59
60 Control files:
61
62          1. maker_exe.ctl - contains the path information for needed executables
63          2. maker_bopts - contains filtering statistics for BLAST and Exonerate
64          3. maker_opts.ctl - contains all other information for MAKER, including the location of the input genome file.
65
66
67 Always remember to be examine the control files before each run of MAKER on your specific data
68
69
70 Programs required by maker rely on certain environmental variables being set.  If you have not set these variables per the installation instructions of the external programs, a reminder list is provided below:
71
72 for tcsh:
73 setenv PERL5LIB where_bioperl_is_installed
74 setenv WUBLASTMAT where_wublast_is_installed/matrix
75 setenv ZOE where_snap_is_installed
76 setenv WUBLASTFILTER where_wublast_is_installed/filter
77 setenv AUGUSTUS_CONFIG_PATH where_augustus_is_installed/config
78
79 for bash:
80 export PERL5LIB=where_bioperl_is_installed
81 export WUBLASTMAT=where_wublast_is_installed/matrix
82 export ZOE=where_snap_is_installed
83 export WUBLASTFILTER=where_wublast_is_installed/filter
84 export AUGUSTUS_CONFIG_PATH=where_augustus_is_installed/config
85
86
87 #----------------------------------------------------
88 MPI MAKER INSTALL
89
90 If you are running maker on an MPI capable cluster, you can install an MPI version of maker by doing the following:
91
92         1. Install standard maker and verify that it runs.
93         2. Install MPICH2 with the --enable-sharedlibs flag set to the appropriate value (See MPICH2 documentation)
94         3. Use cd to change to the MPI subdirectory in the maker instalation folder (i.e. maker/MPI/)
95         4. Run Install.PL by typing:     perl Install.PL
96
97 A new version of maker called mpi_maker should now be installed under maker/bin.
98
99 To run mpi_maker, first verify that your mpi environment is initiated, (i.e. using the mpdboot or mpd command). Now start mpi_maker via mpiexec.
100
101 Example: (This will run MAKER on 3 nodes or processors)
102
103         mpiexec -n 3 perl maker_directory/maker/bin/mpi_maker maker_opts.ctl maker_bopts.ctl maker_exe.ctl
104
105
106
107 Please see the documentation of the MPI environment you use for instructions on how to initiate an MPI process.
108
109
110 #----------------------------------------------------
111 MAKER USAGE STATEMENT
112
113 Usage:
114
115      maker [options] <maker_opts> <maker_bopts> <maker_exe> <evaluator>
116
117      Maker is a program that produces gene annotations in GFF3 file format using
118      evidence such as EST alignments and protein homology.  Maker can be used to
119      produce gene annotations for new genomes as well as update annoations from
120      existing genome databases.
121
122      The four input arguments are user control files that specify how maker
123      should behave. The evaluator options file contains control options specific
124      for the evaluation of gene annotations. All options for maker should be set
125      in the control files, but a few can also be set on the command line.
126      Command line options provide a convenient machanism to override commonly
127      altered control file values.
128
129      Input files listed in the control options files must be in fasta format.
130      Please see maker documentation to learn more about control file
131      configuration.  Maker will automatically try and locate the user control
132      files in the current working directory if these arguments are not supplied
133      when initializing maker.
134
135      It is important to note that maker does not try and recalculated data that
136      it has already calculated.  For example, if you run an analysis twice on
137      the same dataset file you will notice that maker does not rerun any of the
138      blast analyses, but instead uses the blast analyses stored from the
139      previous run.  To force maker to rerun all analyses, use the -f flag.
140
141
142 Options:
143
144      -genome|g <filename> Specify the genome file.
145
146      -predictor|p <type>  Selects the predictor(s) to use when building
147                           annotations.  Use a ',' to seperate types (no spaces).
148                           i.e. -predictor=snap,augustus,fgenesh
149
150                           types: snap
151                                  augustus
152                                  fgenesh
153                                  genemark
154                                  est2genome (Uses EST's directly)
155                                  abinit (ab-initio predictions)
156                                  model_gff (Passes through GFF3 annotations)
157
158      -RM_off|R           Turns all repeat masking off.
159
160      -retry   <integer>  Rerun failed contigs up to the specified count.
161
162      -cpus|c  <integer>  Tells how many cpus to use for BLAST analysis.
163
164      -force|f            Forces maker to delete old files before running again.
165                          This will require all blast analyses to be rerun.
166
167      -evaluate|e         Run Evaluator on final annotations (under development).
168
169      -quiet|q            Silences most of maker's status messages.
170
171      -CTL                Generate empty control files in the current directory.
172
173      -help|?             Prints this usage statement.
174
175
176 #----------------------------------------------------
177 RUNNING MAKER WITH EXAMPLE DATA
178
179 1) Copy the files in the data directories to a temporary directory where you will run an example file.
180 2) Type maker -CTL to generate generic maker control files
181 3) Next you will need to edit the control files to include the path of the genome file, EST file, and protein file, as well as the paths to all required executables.  See CONFIG FILE EDITING for more information.
182 4) Then try the following command from your temporary directory:
183
184 perl maker_directory/bin/maker maker_exe.ctl maker_opts.ctl maker_bopts.ctl
185
186 MAKER will create at least the following files/directories:
187
188 XXX.maker.output/ - contains all output for a given run of make
189 XXX.maker.output/XXX_master_datastore_index.log - log of MAKER run progress as well as an index for traversing XXX.maker.output/XXX_datastore/
190 XXX.maker.output/XXX_datastore/ - contains folders containing the output for each individual contig of the input fasta file
191 *Within these folders
192         seq_name.gff - a gff file that can be loaded into GMOD, GBROWSE, or Apollo
193         seq_name.maker.transcripts.fasta - a file of the maker transcript sequences
194         seq_name.maker.proteins.fasta - a file of the maker protein sequences
195         seq_name.maker.XXX.transcript.fasta - a file of ab-inito transcript sequences from program XXX
196         seq_name.maker.XXX.proteins.fasta - a file of ab-inito protein sequences from program XXX
197         seq_name.maker.non_overlapping_ab_initio.transcripts.fasta - a file of filtered ab-inito transcript sequences that don't overlap annotations
198         seq_name.maker.non_overlapping_ab_initio.proteins.fasta - a file of filtered ab-inito protein sequences that don't overlap annotations
199         theVoid.seq_name/ - a directory containing all of the raw output files produced by maker, including BLAST reports, SNAP output, exonnerate output and the masked sequence
200
201 WARNING:
202 *The names of output files are based on sequence ids.  If giving maker a multi-fasta file, it is important to verify that all sequence id are unique, so files are not overwritten.
203 *If there are more than 1,000 sequences in a multi-fasta file a deep datastore structure will be used. see DATASTORE in this document.
204 *If sequence ids contain characters that are illegal in file names, those characters will be replaced automatically before building output file names.
205
206 #----------------------------------------------------
207 DATASTORE
208
209 "Many filesystems have performance problems with large numbers of subdirectories and files within a single directory and even when the underlying filesystems handle things gracefully, access via network filesystems can be an issue.  The Datastore modules create a hiearchy of subdirectory layers, starting from a 'base', and mapping end-user's identifiers to the corresponding subdirectory." - quote from http://www.yandell-lab.org/  (See site for more information on the Datastore module)
210
211 A deep datastore will be used by maker if there are more than 1,000 sequences in a multi-fasta file.
212
213 When a datastore is implemented, the output files described above will not appear where you would normally expect them to be.  Instead they will be located in a series of sub-directory under a new base-directory whose name is determined from the input genome file name, i.e. current_working_directory/genome_datastore/EE/Af/Contig1/Contig1.gff.  A master_datastore_index file will be made in the current working directory to help you find the output files from each sequence.
214
215 The master_datastore_index file is a file created to allow the user to easily find the exact output directory corresponding to contigs from the input genome file.  The The master_datastore_index file contains three columns of text; the first column shows the sequence identifier from each fasta header, and the second column shows the location of the output files for that sequence. The third column is for logging the status of data related to an individual contig. The values of the third column are as follows:
216         STARTED - Indicates that maker has started proccessing this contig.
217         FINISHED - Indicates that maker has finished processing this contig and all data is currently available in that subdirectory.
218         DIED - Indicates that maker failed.
219         DIED_SKIPPED_PERMANENT - Indicates that maker failed up to the specified number of retries and will not try again.
220         RETRY - Indicates that maker is retrying the contig after a failure.
221         SKIPPED_SMALL - Indicates that this contig was skipped because it is too short (based on control file values set by the user)
222
223
224 #----------------------------------------------------
225 CONFIG FILE EDITING
226
227 Lines in the maker control files have the format key:value whith no spaces before or after the colon(:).  If the value is a file name, you can use relative paths and environmental variables, i.e. genome:$HOME/my_genome.fasta
228
229
230 MAKER has 3 control files for configuration options. A fourth file evaluator.ctl is used to supply a MAKER related program EVALUATOR with options specific to that program (only important if 'evaluate' is set to 1 in maker_opts.ctl).
231
232 Note that for all control files the comments written to help users begin with a pound sign(#).  In addition, options before the colon(:) can not be changed, nor should there be a space before or after the colon.
233
234 A. maker_exe.ctl - includes information about programs executed by MAKER.
235 Here an example of a section of the maker_exe.ctl file:
236 ====================================
237 #-----Location of Executables Used by Maker/Evaluator
238 formatdb:/usr/local/bin/formatdb                              #location of NCBI formatdb executable
239 blastall:/usr/local/bin/blastall                              #location of NCBI blastall executable
240 xdformat:/usr/local/bin/xdformat                              #location of WUBLAST xdformat executable
241 blastn:/usr/local/bin/blastn                                  #location of WUBLAST blastn executable
242 blastx:/usr/local/bin/blastx                                  #location of WUBLAST blastx executable
243 tblastx:/usr/local/bin/tblastx                                #location of WUBLAST tblastx executable
244 RepeatMasker:/home/cholt/usr/local/RepeatMasker/RepeatMasker  #location of RepeatMasker executable
245 exonerate:/home/cholt/usr/local/exonerate/bin/exonerate       #location of exonerate executable
246
247 #-----Ab-initio Gene Prediction Algorithms
248 snap:/home/cholt/usr/local/snap/snap                  #location of snap executable
249 gmhmme3:/home/cholt/usr/local/gmes/gmhmme3            #location of eukaryotic genemark executable
250 augustus:/home/cholt/usr/local/augustus/bin/augustus  #location of augustus executable
251 fgenesh:/home/cholt/usr/local/fgenesh/fgenesh         #location of fgenesh executable
252
253 ====================================
254
255
256 B. maker_bopts.ctl - contains statistics for fltering blast and exonerate data
257 Here an example of a section of the maker_bopts.ctl file:
258 ====================================
259
260 #-----BLAST and Exonerate statistics thresholds
261 blast_type:wublast    #set to 'wublast' or 'ncbi'
262
263 pcov_blastn:0.8       #Blastn Percent Coverage Threhold EST-Genome Alignments
264 pid_blastn:0.85       #Blastn Percent Identity Threshold EST-Genome Aligments
265 eval_blastn:1e-10     #Blastn eval cutoff
266 bit_blastn:40         #Blastn bit cutoff
267
268 pcov_blastx:0.5       #Blastx Percent Coverage Threhold Protein-Genome Alignments
269 pid_blastx:0.4        #Blastx Percent Identity Threshold Protein-Genome Aligments
270 eval_blastx:1e-06     #Blastx eval cutoff
271 bit_blastx:30         #Blastx bit cutoff
272
273 pcov_rm_blastx:0.5    #Blastx Percent Coverage Threhold For Transposable Element Masking
274 pid_rm_blastx:0.4     #Blastx Percent Identity Threshold For Transposbale Element Masking
275 eval_rm_blastx:1e-06  #Blastx eval cutoff for transposable element masking
276 bit_rm_blastx:30      #Blastx bit cutoff for transposable element masking
277 ====================================
278
279
280 C. maker_opts.ctl - contains options for maker and external programs used by maker
281 Here an example of a section of the maker_opts.ctl file:
282 ====================================
283 #-----Genome (Required for De-Novo Annotations)
284 genome:input/genome.fasta  #genome sequence file in fasta format
285
286 #-----Re-annotation Options
287 genome_gff:     #re-annotate genome based on this gff3 file
288 est_pass:0      #use ests in genome_gff: 1 = yes, 0 = no
289 altest_pass:0   #use alternate organism ests in genome_gff: 1 = yes, 0 = no
290 protein_pass:0  #use proteins in genome_gff: 1 = yes, 0 = no
291 rm_pass:0       #use repeats in genome_gff: 1 = yes, 0 = no
292 model_pass:0    #use gene models in genome_gff: 1 = yes, 0 = no
293 pred_pass:0     #use ab-initio predictions in genome_gff: 1 = yes, 0 = no
294 other_pass:0    #passthrough everything else in genome_gff: 1 = yes, 0 = no
295
296 #-----EST Evidence (you must provide a value for at least one)
297 est:input/est.fasta        #non-redundant set of assembled ESTs in fasta format (classic EST analysis)
298 est_reads:                 #un-assembled EST reads in fasta format (for deep nextgen mRNASeq)
299 altest:input/altest.fasta  #EST/cDNA sequence file in fasta format from an alternate organism
300 est_gff:                   #EST evidence from a seperate gff3 file
301 altest_gff:                #Alternate organism EST evidence from a seperate gff3 file
302
303 #-----Protein Homology Evidence (you must provide a value for at least one)
304 protein:input/protein.fasta  #protein sequence file in fasta format
305 protein_gff:                 #protein homology evidence from a gff3 file
306 ====================================
307
308 #----------------------------------------------------
309 GFF3 Passthrough
310
311 If you have data from a source that MAKER does not support, and you wish to use the data in annotating a genome, then you can pass the data to MAKER as an aligned GFF3 file.  This is done by supplying the files location to the appropriate value in the maker_opt.ctl file (i.e. est_gff:input\est.gff).  Note that MAKER expects all data sent to it to be of the type specified, so don't put mixed data in a file (i.e. don't mix EST and other data in the file pointed to by est_gff, otherwise it all gets used as EST data).  Also the genome_gff option is only for MAKER produced GFF3 files.  Other GFF3 files of mixed data must be split by type and identified by the appropriate control file option (i.e. rm_gff for repeat data, pred_gff for ab-initio prediction data, est_gff for EST data, etc.).
312
313 #----------------------------------------------------
314 ADDING UTRs for GBROWSE
315
316 * When using APOLLO to visualize gene annotations, UTRs are inferred based on exon and CDS locations.  However GMOD and GBROWSE do not infer the UTR, so to visualize the UTR, you will have to run: add_utr_gff.pl with the following command:
317
318 maker2zff.pl <directory>
319 <directory> is the directory where all of your GFF files are located
320
321 each GFF file will have a sister file called sequence.wutr.gff3
322
323
324 #----------------------------------------------------
325 APOLLO
326
327 Maker is bundled with a configuration file that improves the color and display of maker annotations and evidence in the Apollo genome browser.  The configuration file is called "gff3.tiers" and is located in the maker/Apollo/ directory.  The file should be copied to the conf/ sub_directory which is located under the Apollo instalation directory.  Using the Mac version of Apollo the conf/ directory is located at /Applications/Apollo.app/Contents/Resources/app/conf/.
328
329
330 #----------------------------------------------------
331 HMM BUILDING (based on snap documentation)
332
333 A.  First you will need to determine the genes used to model future genes, by determining a high quality gene set (annotations for the high quality gene should be in GFF3 format).  The high quality gene set can then be coverted into snap ZFF format using maker2zff.pl found in maker/bin.
334
335 This program is run with the following command:
336
337       maker2zff.pl <directory> genome
338
339 *<directory> is the directory where all of your GFF3 files are located
340 *geneome is the name for the outfile
341
342 Files Created:
343
344       genome.ann
345       genome.dna
346
347 Note:  A convenient way to identify and initial high quality gene set for the HMM is to use the -predictor est2genome option in maker.  This will produce gene annotations based solely on EST evidence.  These annoations can then seed the first HMM.  After running maker again using this new HMM and the -predictor snap option, you can use the second round of annotations as the seed for an even better HMM model.  In this way the HMM model progressively improves with each run of maker.
348
349 Another strategy for identifying an initial gene set to model the HMM is to use the program CEGMA (http://korflab.ucdavis.edu/software.html).  CEGMA builds a highly reliable set of gene annotations in the absence of experimental data by identifying DNA regions with homology to a set of 458 proteins that are highly conserved among taxa.
350
351 Combining both CEGMA and maker datasets to build the first HMM is also a good strategy.
352
353
354 B.  Next you will use the dna and zff file (genome.dna and genome.ann) to produce a SNAP HMM as described in the SNAP documation (which we have provided below):
355
356 The first step is to look at some features of the genes:
357
358     fathom genome.ann genome.dna -gene-stats
359
360 Next, you want to verify that the genes have no obvious errors:
361
362     fathom genome.ann genome.dna -validate
363
364 You may find some errors and warnings. Check these out in some kind of genome
365 browser and remove those that are real errors. Next, break up the sequences into
366 fragments with one gene per sequence with the following command:
367
368     fathom -genome.ann genome.dna -categorize 1000
369
370 There will be up to 1000 bp on either side of the genes. You will find
371 several new files.
372
373     alt.ann, alt.dna (genes with alternative splicing)
374     err.ann, err.dna (genes that have errors)
375     olp.ann, olp.dna (genes that overlap other genes)
376     wrn.ann, wrn.dna (genes with warnings)
377     uni.ann, uni.dna (single gene per sequence)
378
379 Convert the uni genes to plus stranded with the command:
380
381     fathom uni.ann uni.dna -export 1000 -plus
382
383 You will find 4 new files:
384
385     export.aa   proteins corresponding to each gene
386     export.ann  gene structure on the plus strand
387     export.dna  DNA of the plus strand
388     export.tx   transcripts for each gene
389
390 The parameter estimation program, forge, creates a lot of files. You probably
391 want to create a directory to keep things tidy before you execute the program.
392
393     mkdir params
394     cd params
395     forge ../export.ann ../export.dna
396     cd ..
397
398 Last is to build an HMM.
399
400     hmm-assembler.pl my-genome params > my-genome.hmm
401
402
403 Lastly, you will want to add the location of your hmm file to your maker_opts.ctl file.
404
405 *For more information see SNAP documentation on how to build an HMM
Note: See TracBrowser for help on using the browser.