1) { var row_height = this.stack_height + this.pad_middle; if (allow_space_for_names) { row_height += this.name_height; //the label is allowed to overlap into the spacer row_height += Math.max(this.y_num_height/2, this.name_spacer); //the label is allowed to overlap the space used by the other label row_height += Math.max(this.y_num_height/2, this.x_num_height + this.x_num_above); } else { row_height += this.y_num_height/2; //the label is allowed to overlap the space used by the other label row_height += Math.max(this.y_num_height/2, this.x_num_height + this.x_num_above); } this.summed_height += row_height * (logo_rows - 1); } //the last row has the name and fine text below it but no padding this.summed_height += this.stack_height + this.y_num_height/2; if (allow_space_for_names) { this.summed_height += this.fine_txt_height + this.fine_txt_above + this.name_height; this.summed_height += Math.max(this.y_num_height/2, this.x_num_height + this.x_num_above + this.name_spacer); } else { this.summed_height += Math.max(this.y_num_height/2, this.x_num_height + this.x_num_above + this.fine_txt_height + this.fine_txt_above); } //calculate how much horizontal space we want to draw this //first add the padding at the left and right since that's always there this.summed_width += this.pad_left + this.pad_right; //add on the space for the y-axis label this.summed_width += this.y_label_height + this.y_label_spacer; //add on the space for the y-axis this.summed_width += this.y_num_width + this.y_tic_width; //add on the space for the stacks this.summed_width += (this.stack_pad_left + this.stack_width) * logo_columns; //add on the padding after the stacks (an offset from the fine text) this.summed_width += this.stacks_pad_right; //calculate scaling factors this.scale_y = this.canvas_height / this.summed_height; this.scale_x = this.canvas_width / this.summed_width; //maintain aspect ratio if (this.scale_y > this.scale_x) { this.scale_y = this.scale_x; } else { this.scale_x = this.scale_y; } } //====================================================================== // end LogoMetrics object //====================================================================== //found this trick at http://talideon.com/weblog/2005/02/detecting-broken-images-js.cfm function image_ok(img) { // During the onload event, IE correctly identifies any images that // weren't downloaded as not complete. Others should too. Gecko-based // browsers act like NS4 in that they report this incorrectly. if (!img.complete) { return false; } // However, they do have two very useful properties: naturalWidth and // naturalHeight. These give the true size of the image. If it failed // to load, either of these should be zero. if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) { return false; } // No other way of checking: assume it's ok. return true; } function supports_text(ctx) { if (!ctx.fillText) return false; if (!ctx.measureText) return false; return true; } //draws the scale, returns the width function draw_scale(ctx, metrics, alphabet_ic) { var tic_height = metrics.stack_height / alphabet_ic; ctx.save(); ctx.lineWidth = 1.5; ctx.translate(metrics.y_label_height, metrics.y_num_height/2); //draw the axis label ctx.save(); ctx.font = metrics.y_label_font; ctx.translate(0, metrics.stack_height/2); ctx.save(); ctx.rotate(-(Math.PI / 2)); ctx.textAlign = "center"; ctx.fillText("bits", 0, 0); ctx.restore(); ctx.restore(); ctx.translate(metrics.y_label_spacer + metrics.y_num_width, 0); //draw the axis tics ctx.save(); ctx.translate(0, metrics.stack_height); ctx.font = metrics.y_num_font; ctx.textAlign = "right"; ctx.textBaseline = "middle"; for (var i = 0; i <= alphabet_ic; i++) { //draw the number ctx.fillText("" + i, 0, 0); //draw the tic ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(metrics.y_tic_width, 0); ctx.stroke(); //prepare for next tic ctx.translate(0, -tic_height); } ctx.restore(); ctx.translate(metrics.y_tic_width, 0); ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(0, metrics.stack_height); ctx.stroke(); ctx.restore(); } function draw_stack_num(ctx, metrics, row_index) { ctx.save(); ctx.font = metrics.x_num_font; ctx.translate(metrics.stack_width / 2, metrics.stack_height + metrics.x_num_above); ctx.save(); ctx.rotate(-(Math.PI / 2)); ctx.textBaseline = "middle" ctx.textAlign = "right" ctx.fillText("" + (row_index + 1), 0, 0); ctx.restore(); ctx.restore(); } function draw_stack(ctx, metrics, symbols, raster) { var preferred_pad = 0; var sym_min = 5; ctx.save();//1 ctx.translate(0, metrics.stack_height); for (var i in symbols) { //exclude inherited properties and undefined properties if (!symbols.hasOwnProperty(i) || symbols[i] === undefined) continue; var sym = symbols[i]; var sym_height = metrics.stack_height * sym.get_scale(); var pad = preferred_pad; if (sym_height - pad < sym_min) { pad = Math.min(pad, Math.max(0, sym_height - sym_min)); } sym_height -= pad; //translate to the correct position ctx.translate(0, -(pad/2 + sym_height)); //draw raster.draw(ctx, sym.get_symbol(), 0, 0, metrics.stack_width, sym_height); //translate past the padding ctx.translate(0, -(pad/2)); } ctx.restore();//1 } //draws a stack of symbols function draw_stack_old(ctx, metrics, symbols) { var lpad = 2; var sym_min = 5; var pos = metrics.stack_height; for (var i in symbols) { //exclude inherited properties and undefined properties if (!symbols.hasOwnProperty(i) || symbols[i] === undefined) continue; var sym = symbols[i]; var sym_height = metrics.stack_height*sym.get_scale(); var letter = metrics.get_letter_metrics(sym.get_symbol()); //attempting to draw something smaller than a pixel causes display corruption if (sym_height >= 1) { //it's better to see the letter than to pad it var pad = lpad; if (sym_height - pad < sym_min) { pad = Math.min(pad, Math.max(0, sym_height - sym_min)); } //move to the correct drawing position ctx.save();//s1 ctx.translate(0, pos); //create a clipping rectangle to ensure the letter doesn't overlap when it's distorted ctx.save();//s2 //ctx.beginPath(); //disabled clipping because after the improvements in the text metrics it looks better without //ctx.moveTo(-metrics.stack_width/2,0); //ctx.lineTo(metrics.stack_width/2, 0); //ctx.lineTo(metrics.stack_width/2, -sym_height); //ctx.lineTo(-metrics.stack_width/2, -sym_height); //ctx.lineTo(-metrics.stack_width/2,0); //ctx.clip(); //now draw ctx.translate(0, -(pad/2)); ctx.translate(0, -letter.get_descent(sym_height - pad)); ctx.fillStyle = sym.get_colour(); ctx.textAlign = "center"; ctx.save();//s3 ctx.scale(letter.wscale, letter.get_hscale(sym_height - pad)); ctx.fillText(sym.get_symbol(), 0, 0); ctx.restore();//s3 ctx.restore();//s2 ctx.restore();//s1 } pos = pos - sym_height; } } function draw_dashed_line(ctx, pattern, start, x1, y1, x2, y2) { var x, y, len, i; var dx = x2 - x1; var dy = y2 - y1; var tlen = Math.pow(dx*dx + dy*dy, 0.5); var theta = Math.atan2(dy,dx); var mulx = Math.cos(theta); var muly = Math.sin(theta); var lx = []; var ly = []; for (i = 0; i < pattern; ++i) { lx.push(pattern[i] * mulx); ly.push(pattern[i] * muly); } i = start; x = x1; y = y1; len = 0; ctx.beginPath(); while (len + pattern[i] < tlen) { ctx.moveTo(x, y); x += lx[i]; y += ly[i]; ctx.lineTo(x, y); len += pattern[i]; i = (i + 1) % pattern.length; x += lx[i]; y += ly[i]; len += pattern[i]; i = (i + 1) % pattern.length; } if (len < tlen) { ctx.moveTo(x, y); x += mulx * (tlen - len); y += muly * (tlen - len); ctx.lineTo(x, y); } ctx.stroke(); } function draw_trim_background(ctx, metrics, pspm, offset) { var lwidth = metrics.stack_width * pspm.get_left_trim(); var rwidth = metrics.stack_width * pspm.get_right_trim(); var mwidth = metrics.stack_width * pspm.get_motif_length(); var rstart = mwidth - rwidth; ctx.save();//s8 ctx.translate(offset * metrics.stack_width, 0); ctx.fillStyle = "rgb(240, 240, 240)"; if (pspm.get_left_trim() > 0) ctx.fillRect(0, 0, lwidth, metrics.stack_height); if (pspm.get_right_trim() > 0) ctx.fillRect(rstart, 0, rwidth, metrics.stack_height); ctx.fillStyle = "rgb(51, 51, 51)"; if (pspm.get_left_trim() > 0) draw_dashed_line(ctx, [3], 0, lwidth-0.5, 0, lwidth-0.5, metrics.stack_height); if (pspm.get_right_trim() > 0) draw_dashed_line(ctx, [3], 0, rstart+0.5, 0, rstart+0.5, metrics.stack_height); ctx.restore();//s8 } function draw_logo_on_canvas(logo, canvas, show_names, scale) { var draw_name = (typeof show_names == "boolean" ? show_names : (logo.get_rows() > 1)); var cwidth = canvas.width; var cheight = canvas.height; //need a minimum 46 x 120 canvas to draw the font size checks on if (canvas.width < 46) canvas.width = 46; if (canvas.height < 120) canvas.height = 120; var ctx = canvas.getContext('2d'); //assume that the user wants the canvas scaled equally so calculate what the best width for this image should be var metrics = new LogoMetrics(ctx, canvas.width, canvas.height, logo.get_columns(), logo.get_rows(), draw_name); ctx.save();//s1 if (typeof scale == "number") { //resize the canvas to fit the scaled logo cwidth = metrics.summed_width * scale; cheight = metrics.summed_height * scale; } else { if (cwidth == 0 && cheight == 0) { throw "CANVAS_MUST_HAVE_DIMENSIONS"; } else if (cwidth == 0) { scale = cheight / metrics.summed_height; cwidth = metrics.summed_width * scale; } else if (cheight == 0) { scale = cwidth / metrics.summed_width; cheight = metrics.summed_height * scale; } else { scale = Math.min(cwidth / metrics.summed_width, cheight / metrics.summed_height); } } var raster = new RasterizedAlphabet(logo.alphabet, metrics.stack_font, metrics.stack_width * scale * 2); if (cwidth != canvas.width || cheight != canvas.height) { canvas.width = cwidth; canvas.height = cheight; //as the canvas has been resized the context is now out of date ctx = canvas.getContext('2d'); } ctx.scale(scale, scale); ctx.save();//s2 ctx.save();//s7 //create margin ctx.translate(metrics.pad_left, metrics.pad_top); for (var pspm_i = 0; pspm_i < logo.get_rows(); ++pspm_i) { var pspm = logo.get_pspm(pspm_i); var offset = logo.get_offset(pspm_i); //optionally draw name if this isn't the last row or is the only row if (draw_name && (logo.get_rows() == 1 || pspm_i != (logo.get_rows()-1))) { ctx.save();//s4 ctx.translate(metrics.summed_width/2, metrics.name_height); ctx.font = metrics.name_font; ctx.textAlign = "center"; ctx.fillText(pspm.name, 0, 0); ctx.restore();//s4 ctx.translate(0, metrics.name_height + Math.min(0, metrics.name_spacer - metrics.y_num_height/2)); } //draw scale draw_scale(ctx, metrics, logo.alphabet.get_ic()); ctx.save();//s5 //translate across past the scale ctx.translate(metrics.y_label_height + metrics.y_label_spacer + metrics.y_num_width + metrics.y_tic_width, 0); //draw the trimming background if (pspm.get_left_trim() > 0 || pspm.get_right_trim() > 0) { draw_trim_background(ctx, metrics, pspm, offset); } //draw letters ctx.translate(0, metrics.y_num_height / 2); for (var col_index = 0; col_index < logo.get_columns(); col_index++) { ctx.translate(metrics.stack_pad_left,0); if (col_index >= offset && col_index < (offset + pspm.get_motif_length())) { var motif_position = col_index - offset; draw_stack_num(ctx, metrics, motif_position); draw_stack(ctx, metrics, pspm.get_stack(motif_position, logo.alphabet), raster); } ctx.translate(metrics.stack_width, 0); } ctx.restore();//s5 ////optionally draw name if this is the last row but isn't the only row if (draw_name && (logo.get_rows() != 1 && pspm_i == (logo.get_rows()-1))) { //translate vertically past the stack and axis's ctx.translate(0, metrics.y_num_height/2 + metrics.stack_height + Math.max(metrics.y_num_height/2, metrics.x_num_above + metrics.x_num_width + metrics.name_spacer)); ctx.save();//s6 ctx.translate(metrics.summed_width/2, metrics.name_height); ctx.font = metrics.name_font; ctx.textAlign = "center"; ctx.fillText(pspm.name, 0, 0); ctx.restore();//s6 ctx.translate(0, metrics.name_height); } else { //translate vertically past the stack and axis's ctx.translate(0, metrics.y_num_height/2 + metrics.stack_height + Math.max(metrics.y_num_height/2, metrics.x_num_above + metrics.x_num_width)); } //if not the last row then add middle padding if (pspm_i != (logo.get_rows() -1)) { ctx.translate(0, metrics.pad_middle); } } ctx.restore();//s7 ctx.translate(metrics.summed_width - metrics.pad_right, metrics.summed_height - metrics.pad_bottom); ctx.font = metrics.fine_txt_font; ctx.textAlign = "right"; ctx.fillText(logo.fine_text, 0,0); ctx.restore();//s2 ctx.restore();//s1 } function create_canvas(c_width, c_height, c_id, c_title, c_display) { var canvas = document.createElement("canvas"); //check for canvas support before attempting anything if (!canvas.getContext) return null; var ctx = canvas.getContext('2d'); //check for html5 text drawing support if (!supports_text(ctx)) return null; //size the canvas canvas.width = c_width; canvas.height = c_height; canvas.id = c_id; canvas.title = c_title; canvas.style.display = c_display; return canvas; } function logo_1(alphabet, fine_text, pspm) { var logo = new Logo(alphabet, fine_text); logo.add_pspm(pspm); return logo; } function logo_2(alphabet, fine_text, target, query, query_offset) { var logo = new Logo(alphabet, fine_text); if (query_offset < 0) { logo.add_pspm(target, -query_offset); logo.add_pspm(query); } else { logo.add_pspm(target); logo.add_pspm(query, query_offset); } return logo; } /* * Specifies an alternate source for an image. * If the image with the image_id specified has * not loaded then a generated logo will be used * to replace it. * * Note that the image must either have dimensions * or a scale must be set. */ function alternate_logo(logo, image_id, scale) { var image = document.getElementById(image_id); if (!image) { alert("Can't find specified image id (" + image_id + ")"); return; } //if the image has loaded then there is no reason to use the canvas if (image_ok(image)) return; //the image has failed to load so replace it with a canvas if we can. var canvas = create_canvas(image.width, image.height, image_id, image.title, image.style.display); if (canvas == null) return; //draw the logo on the canvas draw_logo_on_canvas(logo, canvas, undefined, scale); //replace the image with the canvas image.parentNode.replaceChild(canvas, image); } /* * Specifes that the element with the specified id * should be replaced with a generated logo. */ function replace_logo(logo, replace_id, scale, title_txt, display_style) { var element = document.getElementById(replace_id); if (!replace_id) { alert("Can't find specified id (" + replace_id + ")"); return; } //found the element! var canvas = create_canvas(50, 120, replace_id, title_txt, display_style); if (canvas == null) return; //draw the logo on the canvas draw_logo_on_canvas(logo, canvas, undefined, scale); //replace the element with the canvas element.parentNode.replaceChild(canvas, element); } /* * Fast string trimming implementation found at * http://blog.stevenlevithan.com/archives/faster-trim-javascript * * Note that regex is good at removing leading space but * bad at removing trailing space as it has to first go through * the whole string. */ function trim (str) { str = str.replace(/^\s\s*/, ''); var ws = /\s/, i = str.length; while (ws.test(str.charAt(--i))); return str.slice(0, i + 1); } /* END INCLUDED FILE "motif_logo.js" */ function setup() { var motif_count = 5; //create canvas logos var alphabet = new Alphabet(document.getElementById("alphabet").value, document.getElementById("bgfreq").value); for (var i = 1; i <= motif_count; i++) { var pspm = new Pspm(document.getElementById("pspm" + i).value); var logo = logo_1(alphabet, "MEME", pspm); alternate_logo(logo, "thumbnail_logo_" + i, 0.5); alternate_logo(logo, "logo_img_" + i, 1); var logo_rc = logo_1(alphabet, "MEME", pspm.copy().reverse_complement(alphabet)); alternate_logo(logo_rc, "thumbnail_logo_rc_" + i, 0.5); alternate_logo(logo_rc, "logo_rc_img_" + i, 1); } //ensure radio buttons have data generated for them by fireing events var allInputs = document.getElementsByTagName("input"); for (var i = 0; i < allInputs.length; i++) { var input = allInputs[i]; if (input.type == "radio" && input.checked) { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); input.dispatchEvent(evt); } } var tbl = document.getElementById("tbl_blocks_combined"); wireUpTable(tbl, true); for (var i = 1; i <= motif_count; i++) { tbl = document.getElementById("tbl_sites_" + i); wireUpTable(tbl, false); tbl = document.getElementById("tbl_blocks_" + i); wireUpTable(tbl, true); } } function showDesc(source, targetid) { document.getElementById(targetid).childNodes[0].nodeValue = source.title; } function hideDesc(targetid) { document.getElementById(targetid).childNodes[0].nodeValue = "Mouse-over buttons for more information."; } function showEmbededFormat(motifnum, format) { var source = document.getElementById(format + motifnum); var txtarea = document.getElementById("format_display_area_" + motifnum); txtarea.value = source.value; txtarea.style.display = 'block'; } function hideFormat(motifnum) { var txtarea = document.getElementById("format_display_area_" + motifnum); txtarea.style.display = 'none'; } function block2raw(block) { var raw = ""; var endpat = /\/\//; var wordpat = /\S+/gi; var lines = block.split("\n"); for (i = 2; i < lines.length; ++i) { if (lines[i].match(endpat) != null) break; var words = lines[i].match(wordpat); raw += words[3] + "\n"; } return raw; } function block2fasta(block) { var fasta = ""; var endpat = /\/\//; var wordpat = /\S+/gi; var lines = block.split("\n"); for (i = 2; i < lines.length; ++i) { if (lines[i].match(endpat) != null) break; var words = lines[i].match(wordpat); var start = words[2].substring(0, words[2].length - 1); fasta += ">" + words[0] + " ( start= " + start + " )\n" + words[3] + "\n"; } return fasta; } function showRaw(motifnum) { var source = document.getElementById('blocks' + motifnum); var txtarea = document.getElementById("format_display_area_" + motifnum); txtarea.value = block2raw(source.value); txtarea.style.display = 'block'; } function showFasta(motifnum) { var source = document.getElementById('blocks' + motifnum); var txtarea = document.getElementById("format_display_area_" + motifnum); txtarea.value = block2fasta(source.value); txtarea.style.display = 'block'; } function showHidden(prefix) { document.getElementById(prefix + '_activator').style.display = 'none'; document.getElementById(prefix + '_deactivator').style.display = 'block'; document.getElementById(prefix + '_data').style.display = 'block'; } function hideShown(prefix) { document.getElementById(prefix + '_activator').style.display = 'block'; document.getElementById(prefix + '_deactivator').style.display = 'none'; document.getElementById(prefix + '_data').style.display = 'none'; } function wireUpTable(table, skiplast) { if (table && table.rows) { var nRows = table.rows.length; if (skiplast) {nRows--;} for (var i = 1; i < nRows; i++) { var row = table.rows[i]; row.style.cursor = 'pointer'; row.onclick = function() { processHighlight(this); } } } else { alert(table); } } function processHighlight(sourceRow) { var name = sourceRow.cells[0].firstChild.nodeValue; var tbl = document.getElementById("tbl_blocks_combined"); highlightTable(name, tbl); for (var i = 1; i <= 5; i++) { tbl = document.getElementById("tbl_sites_" + i); highlightTable(name, tbl); tbl = document.getElementById("tbl_blocks_" + i); highlightTable(name, tbl); } } function highlightTable(name, table) { if (table == null) return; nRows = table.rows.length; for (var i = 0; i < nRows; i++) { var row = table.rows[i]; if(row.cells[0].firstChild.nodeValue == name) { row.style.backgroundColor = "#aaffaa"; } else { row.style.backgroundColor = "white"; } } } function warnExternal() { if (confirm("Using BLOCKS requires the data to be sent to an external webservice even if you have setup your own meme installation. Continue?")) { return true; } return false; } function clickLogoTab(is_rc, num) { var stdTab = document.getElementById("logo_tab_std_" + num); var rcTab = document.getElementById("logo_tab_rc_" + num); var logoImg = document.getElementById("logo_img_" + num); var logoRcImg = document.getElementById("logo_rc_img_" + num); if (is_rc) { logoImg.style.display = 'none'; logoRcImg.style.display = 'block'; rcTab.setAttribute("class", "tab activeTab"); stdTab.setAttribute("class", "tab"); } else { logoRcImg.style.display = 'none'; logoImg.style.display = 'block'; rcTab.setAttribute("class", "tab"); stdTab.setAttribute("class", "tab activeTab"); } }

MEME

For further information on how to interpret these results or to get a copy of the MEME software please access http://meme.nbcr.net.

If you use MEME in your research, please cite the following paper:
Timothy L. Bailey and Charles Elkan, "Fitting a mixture model by expectation maximization to discover motifs in biopolymers", Proceedings of the Second International Conference on Intelligent Systems for Molecular Biology, pp. 28-36, AAAI Press, Menlo Park, California, 1994.

Discovered Motifs   |   Block diagrams of Motifs   |   Program information   |   Explanation

Discovered Motifs

Motif Overview

Motif 1
  • 5.9e+002
  • 7 sites
Motif 1 Logo Motif 1 Logo
Motif 2
  • 8.5e+003
  • 6 sites
Motif 2 Logo Motif 2 Logo
Motif 3
  • 9.2e+003
  • 5 sites
Motif 3 Logo Motif 3 Logo
Motif 4
  • 9.3e+003
  • 4 sites
Motif 4 Logo Motif 4 Logo
Motif 5
  • 3.5e+004
  • 4 sites
Motif 5 Logo Motif 5 Logo

Further Analysis

Submit all motifs to  
      
      
      
 Mouse-over buttons for more information.

Motif 1

Next Top

Summary

Sequence Logo

E-value 5.9e+002
Width 13
Sites 7
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

[TG]CG[CG]C[AT]T[TC]TT[CG]CT

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
aroA + 71 1.93e-07 AGTAAAAACA TCGGCTTTTTGCT AATAATCCGA
aroKB1 + 44 3.13e-07 TATCATTCAG GCGGCATTTTGCT GTCTTTTTTA
aroD+ydiB - 139 5.21e-07 TTGTTTTTGA TCGCGATTTTCCT TAGTTAGCGC
aroD+ydiB - 51 7.61e-07 CCCACCCGGA GCGACATTTTCCT TTAGCGAGTG
pheA - 40 7.61e-07 ACGACGTGCT TCGCCTTTGTGCT GCAGTTTATT
tyrB + 172 1.26e-06 CACTCGATCT TCGCCTTCTTCCG GTTTATTGTG
aroC + 139 3.94e-06 TGCTGATTTA TCGTCATCTTCAT GGCAAACTAG

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
pheA 7.61e-07
+
-
tyrB 1.26e-06
+
-
aroKB1 3.13e-07
+
-
aroA 1.93e-07
+
-
aroC 3.94e-06
+
-
aroD+ydiB 5.21e-07
+
-
 
0
50
100
150
200

Time 7.3 secs.

Motif 2

Previous Next Top

Summary

Sequence Logo

E-value 8.5e+003
Width 27
Sites 6
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

GCC[GA]C[CA][AG]A[GA]A[AT]T[CA]T[TC]G[AC]GAT[AC]AT[TG]C[AG]C

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
    

MEME

For further information on how to interpret these results or to get a copy of the MEME software please access http://meme.nbcr.net.

If you use MEME in your research, please cite the following paper:
Timothy L. Bailey and Charles Elkan, "Fitting a mixture model by expectation maximization to discover motifs in biopolymers", Proceedings of the Second International Conference on Intelligent Systems for Molecular Biology, pp. 28-36, AAAI Press, Menlo Park, California, 1994.

Discovered Motifs

Motif Overview

Motif 1
  • 5.9e+002
  • 7 sites
Motif 1 Logo Motif 1 Logo
Motif 2
  • 8.5e+003
  • 6 sites
Motif 2 Logo Motif 2 Logo
Motif 3
  • 9.2e+003
  • 5 sites
Motif 3 Logo Motif 3 Logo
Motif 4
  • 9.3e+003
  • 4 sites
Motif 4 Logo Motif 4 Logo
Motif 5
  • 3.5e+004
  • 4 sites
Motif 5 Logo Motif 5 Logo

Further Analysis

Submit all motifs to  
      
      
      
 Mouse-over buttons for more information.

Motif 1

Next Top

Summary

Sequence Logo

E-value 5.9e+002
Width 13
Sites 7
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

[TG]CG[CG]C[AT]T[TC]TT[CG]CT

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
aroA + 71 1.93e-07 AGTAAAAACA TCGGCTTTTTGCT AATAATCCGA
aroKB1 + 44 3.13e-07 TATCATTCAG GCGGCATTTTGCT GTCTTTTTTA
aroD+ydiB - 139 5.21e-07 TTGTTTTTGA TCGCGATTTTCCT TAGTTAGCGC
aroD+ydiB - 51 7.61e-07 CCCACCCGGA GCGACATTTTCCT TTAGCGAGTG
pheA - 40 7.61e-07 ACGACGTGCT TCGCCTTTGTGCT GCAGTTTATT
tyrB + 172 1.26e-06 CACTCGATCT TCGCCTTCTTCCG GTTTATTGTG
aroC + 139 3.94e-06 TGCTGATTTA TCGTCATCTTCAT GGCAAACTAG

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
pheA 7.61e-07
+
-
tyrB 1.26e-06
+
-
aroKB1 3.13e-07
+
-
aroA 1.93e-07
+
-
aroC 3.94e-06
+
-
aroD+ydiB 5.21e-07
+
-
 
0
50
100
150
200

Time 7.3 secs.

Motif 2

Previous Next Top

Summary

Sequence Logo

E-value 8.5e+003
Width 27
Sites 6
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

GCC[GA]C[CA][AG]A[GA]A[AT]T[CA]T[TC]G[AC]GAT[AC]AT[TG]C[AG]C

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
aroC + 161 1.55e-12 TGGCAAACTA GCCGCCGAAATTATTGCGATCATGCCC TGGAGGAATA
aroH2 + 47 3.61e-11 AGAAGAGATT GCCACCAAGATCCTCGATATCATGGGC CTTAGTCGCC
aroG + 30 1.50e-10 GTTATGAAAC GCAGCAGAGAATCTTGAAATAATTAAC AAACAAAGGA
aroD+ydiB + 21 1.13e-09 GGCTTACGCA GCCGCAAAAAAACGCGGCATCACTCGC TAAAGGAAAA
aroKB1 - 82 4.52e-09 GCGCTGCCTT GCTACCACCGCTCTGGCGATAAATCAC CGGGTAAGAT
aroKB1 + 170 1.16e-08 CAGTTGCCAA ACCCGCTGGAGTATTGAGATAATTTTC AGT

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
aroH2 3.61e-11
+
-
aroKB1 4.52e-09
+
-
aroC 1.55e-12
+
-
aroG 1.50e-10
+
-
aroD+ydiB 1.13e-09
+
-
 
0
50
100
150
200

Time 13.9 secs.

Motif 3

Previous Next Top

Summary

Sequence Logo

E-value 9.2e+003
Width 8
Sites 5
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

GT[CG]GTG[GC]C

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
aroL + 132 8.71e-06 GTGCAACGTA GTCGTGGC TAAATGTAAT
aroKB2 - 90 8.71e-06 CTGGAAACCA GTCGTGGC GTGATAAACA
tyrB + 89 1.74e-05 TCTTATAAAG GTCGTGCC TCTGGCGGAT
pheA + 58 1.74e-05 GGCGAAGCAC GTCGTGCC GCAACATCGG
aroL + 109 2.61e-05 AGCTGGAGAA GTGGTGGC TGGAAGTGCA

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
pheA 1.74e-05
+
-
tyrB 1.74e-05
+
-
aroKB2 8.71e-06
+
-
aroL 8.71e-06
+
-
 
0
50
100
150
200

Time 19.9 secs.

Motif 4

Previous Next Top

Summary

Sequence Logo

E-value 9.3e+003
Width 10
Sites 4
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

C[AT]CAC[CA][TG]CGC

Further Analysis

Submit this motif to  
      
      
      
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
aroC + 161 1.55e-12 TGGCAAACTA GCCGCCGAAATTATTGCGATCATGCCC TGGAGGAATA
aroH2 + 47 3.61e-11 AGAAGAGATT GCCACCAAGATCCTCGATATCATGGGC CTTAGTCGCC
aroG + 30 1.50e-10 GTTATGAAAC GCAGCAGAGAATCTTGAAATAATTAAC AAACAAAGGA
aroD+ydiB + 21 1.13e-09 GGCTTACGCA GCCGCAAAAAAACGCGGCATCACTCGC TAAAGGAAAA
aroKB1 - 82 4.52e-09 GCGCTGCCTT GCTACCACCGCTCTGGCGATAAATCAC CGGGTAAGAT
aroKB1 + 170 1.16e-08 CAGTTGCCAA ACCCGCTGGAGTATTGAGATAATTTTC AGT

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
aroH2 3.61e-11
+
-
aroKB1 4.52e-09
+
-
aroC 1.55e-12
+
-
aroG 1.50e-10
+
-
aroD+ydiB 1.13e-09
+
-
 
0
50
100
150
200

Time 13.9 secs.

Motif 3

Previous Next Top

Summary

Sequence Logo

E-value 9.2e+003
Width 8
Sites 5
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

GT[CG]GTG[GC]C

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
aroL + 132 8.71e-06 GTGCAACGTA GTCGTGGC TAAATGTAAT
aroKB2 - 90 8.71e-06 CTGGAAACCA GTCGTGGC GTGATAAACA
tyrB + 89 1.74e-05 TCTTATAAAG GTCGTGCC TCTGGCGGAT
pheA + 58 1.74e-05 GGCGAAGCAC GTCGTGCC GCAACATCGG
aroL + 109 2.61e-05 AGCTGGAGAA GTGGTGGC TGGAAGTGCA

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
pheA 1.74e-05
+
-
tyrB 1.74e-05
+
-
aroKB2 8.71e-06
+
-
aroL 8.71e-06
+
-
 
0
50
100
150
200

Time 19.9 secs.

Motif 4

Previous Next Top

Summary

Sequence Logo

E-value 9.3e+003
Width 10
Sites 4
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

C[AT]CAC[CA][TG]CGC

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
aroH2 + 153 5.36e-07 CGAGGTGTGA CACACCTCGC ACTTGAAATC
aroH2 - 142 5.36e-07 CGAGGTGTGT CACACCTCGC CGGGTGGTTA
aroA - 149 2.18e-06 CATTCAGTGA CACACATCGC AATGAGTAAA
aroC + 114 2.60e-06 TTTTTCCTCA CTCACCGCGC GTGAATGCTG

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
aroH2 5.36e-07
+
-
aroA 2.18e-06
+
-
aroC 2.60e-06
+
-
 
0
50
100
150
200

Time 25.7 secs.

Motif 5

Previous Top

Summary

Sequence Logo

E-value 3.5e+004
Width 21
Sites 4
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

[AC][CG][CG][GC][GAC][TC]A[ACG][GT][GC][CT][TA]TT[CGT][AC]CGC[TCG]G

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
pheA - 169 6.67e-11 TTAGTACAGT ACCCGTACTGTTTTCACGCTG TCAACAAAAA
aroKB2 + 126 1.99e-10 CAGCCGTAAA AGCGGTAATGTTTTTACGCTG AACGTGTTTC
tyrB - 14 1.75e-09 ATTTTATTGG CCGGATAAGGCATTCACGCCG CATCCGGCAC
aroL + 78 2.53e-09 TCACAACGTG ACCGCCAGGCCTTTGCCGCGG AGCTGGAGAA

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
pheA 6.67e-11
+
-
tyrB 1.75e-09
+
-
aroKB2 1.99e-10
+
-
aroL 2.53e-09
+
-
 
0
50
100
150
200

Time 31.5 secs.

All Motifs

Top

Combined Block Diagrams

Non-overlapping sites with a p-value better than 0.0001.
The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. The motif blocks have tool tips with more information.

Motif 1
Motif 2
Motif 3
Motif 4
Motif 5
Name Combined p-value Motif Location
pheA 5.68e-11
+
-
aroH2 4.08e-09
+
-
tyrB 2.58e-08
+
-
aroKB2 5.97e-07
+
-
aroKB1 1.66e-07
+
-
aroA 9.09e-05
+
-
aroL 1.74e-06
+
-
aroC 3.92e-11
+
-
aroG 4.49e-05
+
-
 
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
aroH2 + 153 5.36e-07 CGAGGTGTGA CACACCTCGC ACTTGAAATC
aroH2 - 142 5.36e-07 CGAGGTGTGT CACACCTCGC CGGGTGGTTA
aroA - 149 2.18e-06 CATTCAGTGA CACACATCGC AATGAGTAAA
aroC + 114 2.60e-06 TTTTTCCTCA CTCACCGCGC GTGAATGCTG

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
aroH2 5.36e-07
+
-
aroA 2.18e-06
+
-
aroC 2.60e-06
+
-
 
0
50
100
150
200

Time 25.7 secs.

Motif 5

Previous Top

Summary

Sequence Logo

E-value 3.5e+004
Width 21
Sites 4
show more
PNG LOGOS require CONVERT from ImageMagick; see MEME installation guide

Download LOGO
   Orientation:    SSC:    Format:    Width: cm    Height: cm   

Regular expression

[AC][CG][CG][GC][GAC][TC]A[ACG][GT][GC][CT][TA]TT[CGT][AC]CGC[TCG]G

Further Analysis

Submit this motif to  
      
      
      
      
 Mouse-over buttons for more information.

Data Formats

View the motif in PSPM Format 
     PSSM Format 
     BLOCKS Format 
     FASTA Format 
     Raw Format 
     or Hide

Sites

Click on any row to highlight sequence in all motifs.

Name Strand Start p-value Sites
pheA - 169 6.67e-11 TTAGTACAGT ACCCGTACTGTTTTCACGCTG TCAACAAAAA
aroKB2 + 126 1.99e-10 CAGCCGTAAA AGCGGTAATGTTTTTACGCTG AACGTGTTTC
tyrB - 14 1.75e-09 ATTTTATTGG CCGGATAAGGCATTCACGCCG CATCCGGCAC
aroL + 78 2.53e-09 TCACAACGTG ACCGCCAGGCCTTTGCCGCGG AGCTGGAGAA

Block Diagrams

The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. Mouse over the center of the motif blocks to see more information.

Name Lowest p-value Motif Location
pheA 6.67e-11
+
-
tyrB 1.75e-09
+
-
aroKB2 1.99e-10
+
-
aroL 2.53e-09
+
-
 
0
50
100
150
200

Time 31.5 secs.

All Motifs

Top

Combined Block Diagrams

Non-overlapping sites with a p-value better than 0.0001.
The height of the motif "block" is proportional to -log(p-value), truncated at the height for a motif with a p-value of 1e-10.
Click on any row to highlight sequence in all motifs. The motif blocks have tool tips with more information.

Motif 1
Motif 2
Motif 3
Motif 4
Motif 5
Name Combined p-value Motif Location
pheA 5.68e-11
+
-
aroH2 4.08e-09
+
-
tyrB 2.58e-08
+
-
aroKB2 5.97e-07
+
-
aroKB1 1.66e-07
+
-
aroA 9.09e-05
+
-
aroL 1.74e-06
+
-
aroC 3.92e-11
+
-
aroG 4.49e-05
+
-
aroD+ydiB 9.29e-08
+
-
 
0
50
100
150
200
Motif 1
Motif 2
Motif 3
Motif 4
Motif 5
MEME version
4.8.1 (Release date: Tue Feb 7 14:03:40 EST 2012)
Reference
Timothy L. Bailey and Charles Elkan, "Fitting a mixture model by expectation maximization to discover motifs in biopolymers", Proceedings of the Second International Conference on Intelligent Systems for Molecular Biology, pp. 28-36, AAAI Press, Menlo Park, California, 1994.
show training set...
Command line summary

Letter frequencies in dataset
A: 0.281   C: 0.219   G: 0.219   T: 0.281

Background letter frequencies (from dataset with add-one prior applied):
A: 0.281   C: 0.219   G: 0.219   T: 0.281

Stopping Reason
Stopped because nmotifs = 5 reached. Program ran on compute-0-16.local.
show model parameters...

Explanation of MEME Results

Top

The MEME results consist of

  • The overview of all discovered motifs.
  • Information on each of the motifs MEME discovered, including:
    1. A summary table showing the width, number of contributing sites, log likelihood ratio, statistical significance, information content and relative entropy of the motif.
    2. A sequence LOGO.
    3. Downloadable LOGO files suitable for publication.
    4. A regular expression describing the motif.
    5. Some further analysis that can be performed on the motif.
    6. A list of data formats describing the motif.
    7. The contributing sites of the motif sorted by p-value and aligned with each other.
    8. The block diagrams of the contributing sites of the motif within each sequence in the training set.
  • A combined block diagram showing an optimized (non-overlapping) tiling of all of the motifs onto each of the sequences in the training set.
  • The version of MEME and the date it was released.
  • The reference to cite if you use MEME in your research.
  • A description of the sequences you submitted (the "training set") showing the name, "weight" and length of each sequence.
  • The command line summary detailing the parameters with which you ran MEME.
  • The reason why MEME stopped and the name of the CPU on which it ran.
  • This explanation of how to interpret MEME results.

Motifs

For each motif that it discovers in the training set, MEME prints the following information:

Summary Table

This summary table gives the main attributes of the motif.

E-value
The statistical significance of the motif. MEME usually finds the most statistically significant (low E-value) motifs first. The E-value of a motif is based on its log likelihood ratio, width, sites, the background letter frequencies (given in the command line summary), and the size of the training set. The E-value is an estimate of the expected number of motifs with the given log likelihood ratio (or higher), and with the same width and site count, that one would find in a similarly sized set of random sequences. (In random sequences each position is independent with letters chosen according to the background letter frequencies.)
Width
The width of the motif. Each motif describes a pattern of a fixed with as no gaps are allowed in MEME motifs.
Sites
The number of sites contributing to the construction of the motif.
Log Likelihood Ratio
The log likelihood ratio of the motif.The log likelihood ratio is the logarithm of the ratio of the probability of the occurrences of the motif given the motif model (likelihood given the motif) versus their probability given the background model (likelihood given the null model). (Normally the background model is a 0-order Markov model using the background letter frequencies, but higher order Markov models may be specified via the -bfile option to MEME.)
Information Content
The information content of the motif in bits. It is equal to the sum of the uncorrected information content, R(), in the columns of the LOGO. This is equal relative entropy of the motif relative to a uniform background frequency model.
Relative Entropy
The relative entropy of the motif, computed in bits and relative to the background letter frequencies given in the command line summary. It is equal to the log-likelihood ratio (llr) divided by the number of contributing sites of the motif times 1/ln(2),

re = llr / (sites * ln(2)).
Sequence LOGO

MEME motifs are represented by position-specific probability matrices that specify the probability of each possible letter appearing at each possible position in an occurrence of the motif. These are displayed as "sequence LOGOS", containing stacks of letters at each position in the motif. The total height of the stack is the "information content" of that position in the motif in bits. The height of the individual letters in a stack is the probability of the letter at that position multiplied by the total information content of the stack.

Note: The MEME LOGO differs from those produced by the Weblogo program because a small-sample correction is NOT applied. However, MEME LOGOs in PNG and encapsulated postscript (EPS) formats with small-sample correction (SSC) are available by clicking on the download button with "SSC" set to "on" under Download LOGO. The MEME LOGOs without small sample correction are similarly available. Error bars are included in the LOGOs with small-sample correction.

Modern web browsers supporting the canvas element and it's text manipulation functions as described in the html 5 standard, can render the sequence LOGOs without needing the images. The browsers which work with this feature are:

  • Firefox 3.5 and above
  • Safari 4 and above
  • Google Chrome 4 and above

Unfortunately Internet Explorer 8 does not support any html 5 features.

The information content of each motif position is computed as described in the paper by Schneider and Stephens, "Sequence Logos: A New Way to Display Consensus Sequences" but the small-sample correction, e(n), is set to zero for the LOGO displayed in the MEME output. The corrected information content of position i is given by

            R(i) for amino acids   = log2(20) - (H(i) + e(n))   (1a) 
            R(i) for nucleic acids =    2    - (H(i) + e(n))    (1b)
          

where H(i) is the entropy of position i,

            H(l) = - (Sum f(a,i) * log2[ f(a,i) ]).             (2)
          

Here, f(a,i) is the frequency of base or amino acid a at position i, and e(n) is the small-sample correction for an alignment of n letters. The height of letter a in column i is given by

            height = f(a,i) * R(i)                              (3)
          

The approximation for the small-sample correction, e(n), is given by:

            e(n) = (s-1) / (2 * ln(2) * n),                     (4)
          

where s is 4 for nucleotides, 20 for amino acids, and n is the number of sequences in the alignment.

The letters in the logos are colored as follows.
For DNA sequences, the letter categories contain one letter each.

NUCLEIC ACIDS COLOR
A RED
C BLUE
G ORANGE
T GREEN

For proteins, the categories are based on the biochemical properties of the various amino acids.

AMINO ACIDS COLOR PROPERTIES
A, C, F, I, L, V, W and M BLUE Most hydrophobic[Kyte and Doolittle, 1982]
NQST GREEN Polar, non-charged, non-aliphatic residues
DE MAGENTA Acidic
KR RED Positively charged
H PINK  
G ORANGE  
P YELLOW  
Y TURQUOISE  

J. Kyte and R. Doolittle, 1982. "A Simple Method for Displaying the Hydropathic Character of a Protein", J. Mol Biol. 157, 105-132.

Note: the "text" output format of MEME preserves the historical MEME format where LOGOS are replaced by a simplified probability matrix, a relative entropy plot, and a multi-level consensus sequence.

Download LOGO

Logos can be generated on the fly by the meme webservice and you may specify a number of options to customize them to your needs. The options are:

Orientation
Only valid for nucleotide motifs. Generate the standard view or the reverse complemented view of the motif.
SSC
Use small sample correction and show errorbars on the image. Small sample correction is used by the Weblogo program.
Format
The format of the generated image. If the image is to be used on the web then png is recommend. If the image is to be published then eps is recommended.
Width
The width of the generated image in centimetres.
Height
The height of the generated image in centimetres.

Regular Expression

This is a regular expression (RE) describing the motif. In each column, all letters with observed frequencies greater than 0.2 are shown; less-frequent letters are not included in the RE. MEME regular expressions are interpreted as follows: single letters match that letter; groups of letters in square brackets match any of the letters in the group. Regular expressions can be used for searching for the motif in sequences (using, for example, PatMatch) but the search accuracy will usually be better with the PSSM (using, for example MAST.)

Further Analysis

Either as a group or individually the motifs have a number of options for further analysis.

MAST
Finds the best matching positions for a set of motifs in each sequence provided to it, ranked by the combined score of each sequence. For more information about MAST please read the introduction.
FIMO
Finds all matches for a motif. For more information about FIMO please read the introduction.
TOMTOM
Compares a single motif to a database of motifs. For more information about TOMTOM please read the introduction.
GOMO
Identifies possible roles of DNA binding motifs. For more information about GOMO please read the introduction.
BLOCKS
Submit to Blocks Multiple Alignment Processor where you can do several things like create phylogeny trees and search the blocks against a database of other blocks (protein only). For more information about BLOCKS Multiple Alignment Processor please visit the website.
Data Formats

The extracted data is avaliable in the following formats.

PSPM Format
The motif itself is a position-specific probability matrix giving, for each position in the pattern, the observed frequency ("probability") of each possible letter. The probability matrix is printed "sideways"--columns correspond to the letters in the alphabet (in the same order as shown in the simplified motif) and rows corresponding to the positions of the motif, position one first. The motif is preceded by a line starting with "letter-probability matrix:" and containing the length of the alphabet, width of the motif, number of occurrences of the motif, and the E-value of the motif.
Note: Earlier versions of MEME gave the posterior probabilities--the probability after applying a prior on letter frequencies--rather than the observed frequencies. These versions of MEME also gave the number of possible positions for the motif rather than the actual number of occurrences. The output from these earlier versions of MEME can be distinguished by "n=" rather than "nsites=" in the line preceding the matrix.
PSSM Format
The position-specific scoring matrix corresponding to the motif is printed for use by database search programs such as MAST. This matrix is a log-odds matrix calculated by taking 100 times the log (base 2) of the ratio p/f at each position in the motif where p is the probability of a particular letter at that position in the motif, and f is the background frequency of the letter (given in the command line summary section.) This is the same matrix that is used above in computing the p-values of the occurrences of the motif in the Sites and Block Diagrams sections. The scoring matrix is printed "sideways"--columns correspond to the letters in the alphabet (in the same order as shown in the simplified motif) and rows corresponding to the positions of the motif, position one first. The scoring matrix is preceded by a line starting with "log-odds matrix:" and containing the length of the alphabet, width of the motif, number of characters in the training set, the scoring threshold (obsolete) and the motif E-value.
Note: The probability p used to compute the PSSM is not exactly the same as the corresponding value in the Position Specific Probability Matrix (PSPM). The values of p used to compute the PSSM take into account the motif prior, whereas the values in the PSPM are just the observed frequencies of letters in the motif sites.
BLOCKS Format
For use with BLOCKS tools.
FASTA Format
The FASTA format as described here.
Raw Format
Just the sites of the sequences that contributed to the motif. One site per line.
Sites

MEME displays the occurrences (sites) of the motif in the training set. The sites are shown aligned with each other, and the ten sequence positions preceding and following each site are also shown. Each site is identified by the name of the sequence where it occurs, the strand (if both strands of DNA sequences are being used), and the position in the sequence where the site begins. When the DNA strand is specified, '+' means the sequence in the training set, and '-' means the reverse complement of the training set sequence. (For '-' strands, the 'start' position is actually the position on the positive strand where the site ends.) The sites are listed in order of increasing statistical significance (p-value). The p-value of a site is computed from the the match score of the site with the position specific scoring matrix for the motif. The p-value gives the probability of a random string (generated from the background letter frequencies) having the same match score or higher. (This is referred to as the position p-value by the MAST algorithm.)

Block Diagrams

The occurrences of the motif in the training set sequences are shown as coloured blocks on a line. One diagram is printed for each sequence showing all the sites contributating to that motif in that sequence. The sequences are listed in the same order as in the input to make it easier to compare multiple block diagrams. Additionally the best p-value for the sequence/motif combination is listed though this may not be in ascending order as with the sites. The p-value of an occurrence is the probability of a single random subsequence the length of the motif, generated according to the 0-order background model, having a score at least as high as the score of the occurrence. When the DNA strand is specified '+', it means the motif appears from left to right on the sequence, and '-' means the motif appears from right to left on the complementary strand. A sequence position scale is shown at the end of each table of block diagrams.

Combined Block Diagrams

The motif occurrences shown in the motif summary may not be exactly the same as those reported in each motif section because only motifs with a position p-value of 0.0001 that don't overlap other, more significant motif occurrences are shown.

See the documentation for MAST output for the definition of position and combined p-values.