root/README

Revision 173, 20.2 kB (checked in by cholt, 8 months ago)

update README

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
114
115
116 #----------------------------------------------------
117 RUNNING MAKER WITH EXAMPLE DATA
118
119 1) Copy the files in the data directories to a temporary directory where you will run an example file.
120 2) Type maker -CTL to generate generic maker control files
121 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.
122 4) Then try the following command from your temporary directory:
123
124 perl maker_directory/bin/maker maker_exe.ctl maker_opts.ctl maker_bopts.ctl
125
126 MAKER will create at least the following files/directories:
127
128 XXX.maker.output/ - contains all output for a given run of make
129 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/
130 XXX.maker.output/XXX_datastore/ - contains folders containing the output for each individual contig of the input fasta file
131 *Within these folders
132         seq_name.gff - a gff file that can be loaded into GMOD, GBROWSE, or Apollo
133         seq_name.maker.transcripts.fasta - a file of the maker transcript sequences
134         seq_name.maker.proteins.fasta - a file of the maker protein sequences
135         seq_name.maker.XXX.transcript.fasta - a file of ab-inito transcript sequences from program XXX
136         seq_name.maker.XXX.proteins.fasta - a file of ab-inito protein sequences from program XXX
137         seq_name.maker.non_overlapping_ab_initio.transcripts.fasta - a file of filtered ab-inito transcript sequences that don't overlap annotations
138         seq_name.maker.non_overlapping_ab_initio.proteins.fasta - a file of filtered ab-inito protein sequences that don't overlap annotations
139         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
140
141 WARNING:
142 *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.
143 *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.
144 *If sequence ids contain characters that are illegal in file names, those characters will be replaced automatically before building output file names.
145
146 #----------------------------------------------------
147 DATASTORE
148
149 "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)
150
151 A deep datastore will be used by maker if there are more than 1,000 sequences in a multi-fasta file.
152
153 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.
154
155 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:
156         STARTED - Indicates that maker has started proccessing this contig.
157         FINISHED - Indicates that maker has finished processing this contig and all data is currently available in that subdirectory.
158         DIED - Indicates that maker failed.
159         DIED_SKIPPED_PERMANENT - Indicates that maker failed up to the specified number of retries and will not try again.
160         RETRY - Indicates that maker is retrying the contig after a failure.
161         SKIPPED_SMALL - Indicates that this contig was skipped because it is too short (based on control file values set by the user)
162
163
164 #----------------------------------------------------
165 CONFIG FILE EDITING
166
167 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
168
169
170 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).
171
172 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.
173
174 A. maker_exe.ctl - includes information about programs executed by MAKER.
175 Here an example of a section of the maker_exe.ctl file:
176 ====================================
177 #-----Location of Executables Used by Maker/Evaluator
178 formatdb:/usr/local/bin/formatdb                              #location of NCBI formatdb executable
179 blastall:/usr/local/bin/blastall                              #location of NCBI blastall executable
180 xdformat:/usr/local/bin/xdformat                              #location of WUBLAST xdformat executable
181 blastn:/usr/local/bin/blastn                                  #location of WUBLAST blastn executable
182 blastx:/usr/local/bin/blastx                                  #location of WUBLAST blastx executable
183 tblastx:/usr/local/bin/tblastx                                #location of WUBLAST tblastx executable
184 RepeatMasker:/home/cholt/usr/local/RepeatMasker/RepeatMasker  #location of RepeatMasker executable
185 exonerate:/home/cholt/usr/local/exonerate/bin/exonerate       #location of exonerate executable
186
187 #-----Ab-initio Gene Prediction Algorithms
188 snap:/home/cholt/usr/local/snap/snap                  #location of snap executable
189 gmhmme3:/home/cholt/usr/local/gmes/gmhmme3            #location of eukaryotic genemark executable
190 augustus:/home/cholt/usr/local/augustus/bin/augustus  #location of augustus executable
191 fgenesh:/home/cholt/usr/local/fgenesh/fgenesh         #location of fgenesh executable
192
193 ====================================
194
195
196 B. maker_bopts.ctl - contains statistics for fltering blast and exonerate data
197 Here an example of a section of the maker_bopts.ctl file:
198 ====================================
199
200 #-----BLAST and Exonerate statistics thresholds
201 blast_type:wublast    #set to 'wublast' or 'ncbi'
202
203 pcov_blastn:0.8       #Blastn Percent Coverage Threhold EST-Genome Alignments
204 pid_blastn:0.85       #Blastn Percent Identity Threshold EST-Genome Aligments
205 eval_blastn:1e-10     #Blastn eval cutoff
206 bit_blastn:40         #Blastn bit cutoff
207
208 pcov_blastx:0.5       #Blastx Percent Coverage Threhold Protein-Genome Alignments
209 pid_blastx:0.4        #Blastx Percent Identity Threshold Protein-Genome Aligments
210 eval_blastx:1e-06     #Blastx eval cutoff
211 bit_blastx:30         #Blastx bit cutoff
212
213 pcov_rm_blastx:0.5    #Blastx Percent Coverage Threhold For Transposable Element Masking
214 pid_rm_blastx:0.4     #Blastx Percent Identity Threshold For Transposbale Element Masking
215 eval_rm_blastx:1e-06  #Blastx eval cutoff for transposable element masking
216 bit_rm_blastx:30      #Blastx bit cutoff for transposable element masking
217 ====================================
218
219
220 C. maker_opts.ctl - contains options for maker and external programs used by maker
221 Here an example of a section of the maker_opts.ctl file:
222 ====================================
223 #-----Genome (Required for De-Novo Annotations)
224 genome:input/genome.fasta  #genome sequence file in fasta format
225
226 #-----Re-annotation Options
227 genome_gff:     #re-annotate genome based on this gff3 file
228 est_pass:0      #use ests in genome_gff: 1 = yes, 0 = no
229 altest_pass:0   #use alternate organism ests in genome_gff: 1 = yes, 0 = no
230 protein_pass:0  #use proteins in genome_gff: 1 = yes, 0 = no
231 rm_pass:0       #use repeats in genome_gff: 1 = yes, 0 = no
232 model_pass:0    #use gene models in genome_gff: 1 = yes, 0 = no
233 pred_pass:0     #use ab-initio predictions in genome_gff: 1 = yes, 0 = no
234 other_pass:0    #passthrough everything else in genome_gff: 1 = yes, 0 = no
235
236 #-----EST Evidence (you must provide a value for at least one)
237 est:input/est.fasta        #non-redundant set of assembled ESTs in fasta format (classic EST analysis)
238 est_reads:                 #un-assembled EST reads in fasta format (for deep nextgen mRNASeq)
239 altest:input/altest.fasta  #EST/cDNA sequence file in fasta format from an alternate organism
240 est_gff:                   #EST evidence from a seperate gff3 file
241 altest_gff:                #Alternate organism EST evidence from a seperate gff3 file
242
243 #-----Protein Homology Evidence (you must provide a value for at least one)
244 protein:input/protein.fasta  #protein sequence file in fasta format
245 protein_gff:                 #protein homology evidence from a gff3 file
246 ====================================
247
248 #----------------------------------------------------
249 GFF3 Passthrough
250
251 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.).
252
253 #----------------------------------------------------
254 ADDING UTRs for GBROWSE
255
256 * 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:
257
258 maker2zff.pl <directory>
259 <directory> is the directory where all of your GFF files are located
260
261 each GFF file will have a sister file called sequence.wutr.gff3
262
263
264 #----------------------------------------------------
265 APOLLO
266
267 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/.
268
269
270 #----------------------------------------------------
271 HMM BUILDING (based on snap documentation)
272
273 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.
274
275 This program is run with the following command:
276
277       maker2zff.pl <directory> genome
278
279 *<directory> is the directory where all of your GFF3 files are located
280 *geneome is the name for the outfile
281
282 Files Created:
283
284       genome.ann
285       genome.dna
286
287 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.
288
289 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.
290
291 Combining both CEGMA and maker datasets to build the first HMM is also a good strategy.
292
293
294 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):
295
296 The first step is to look at some features of the genes:
297
298     fathom genome.ann genome.dna -gene-stats
299
300 Next, you want to verify that the genes have no obvious errors:
301
302     fathom genome.ann genome.dna -validate
303
304 You may find some errors and warnings. Check these out in some kind of genome
305 browser and remove those that are real errors. Next, break up the sequences into
306 fragments with one gene per sequence with the following command:
307
308     fathom -genome.ann genome.dna -categorize 1000
309
310 There will be up to 1000 bp on either side of the genes. You will find
311 several new files.
312
313     alt.ann, alt.dna (genes with alternative splicing)
314     err.ann, err.dna (genes that have errors)
315     olp.ann, olp.dna (genes that overlap other genes)
316     wrn.ann, wrn.dna (genes with warnings)
317     uni.ann, uni.dna (single gene per sequence)
318
319 Convert the uni genes to plus stranded with the command:
320
321     fathom uni.ann uni.dna -export 1000 -plus
322
323 You will find 4 new files:
324
325     export.aa   proteins corresponding to each gene
326     export.ann  gene structure on the plus strand
327     export.dna  DNA of the plus strand
328     export.tx   transcripts for each gene
329
330 The parameter estimation program, forge, creates a lot of files. You probably
331 want to create a directory to keep things tidy before you execute the program.
332
333     mkdir params
334     cd params
335     forge ../export.ann ../export.dna
336     cd ..
337
338 Last is to build an HMM.
339
340     hmm-assembler.pl my-genome params > my-genome.hmm
341
342
343 Lastly, you will want to add the location of your hmm file to your maker_opts.ctl file.
344
345 *For more information see SNAP documentation on how to build an HMM
Note: See TracBrowser for help on using the browser.