diff -r 63014e06f26e build.xml
--- a/build.xml Tue Feb 21 18:17:33 2017 -0800
+++ b/build.xml Sat Mar 11 22:22:10 2017 -0800
@@ -127,7 +127,6 @@
-
diff -r 63014e06f26e doc/release-notes.html
--- a/doc/release-notes.html Tue Feb 21 18:17:33 2017 -0800
+++ b/doc/release-notes.html Sat Mar 11 22:22:10 2017 -0800
@@ -13,7 +13,29 @@
The MEME Suite
Motif-based sequence analysis tools
+
MEME Suite Release Notes
+
+ MEME version 4.11.3 patch 1 -- March 11, 2017
+
+ -
+ Bug fixes
+
+ -
+ Fixed bug causing FIMO not to generate GFF output for motifs using
+ RNA or custom alphabets.
+
+ -
+ Fixed bug that caused MEME-ChIP to halt with an error when TomTom finds no matches.
+
+ -
+ Fixed bug that caused MEME Suite build and install to fail when no system copy
+ of the XSLT library was installed.
+
+ - Fixed Java 8 incompatibility in web site installation.
+
+
MEME version 4.11.3 -- February 21, 2017
diff -r 63014e06f26e scripts/meme-chip.pl.in
--- a/scripts/meme-chip.pl.in Tue Feb 21 18:17:33 2017 -0800
+++ b/scripts/meme-chip.pl.in Sat Mar 11 22:22:10 2017 -0800
@@ -1154,19 +1154,21 @@
my %query_id_to_target_idxs = ();
my %query_id_to_idx = ();
my $matches = $data->{matches}->[0]->{query};
- for (my $i = 0; $i < scalar(@{$matches}); $i++) {
- my $q_idx = $matches->[$i]->{idx};
- my $q_id = $queries->[$q_idx]->{id};
- $query_id_to_idx{$q_id} = $q_idx;
- my $q_targets = $matches->[$i]->{target};
- my @target_list = ();
- for (my $j = 0; $j < scalar(@{$q_targets}); $j++) {
- my $t_idx = $q_targets->[$j]->{idx};
- my $t_id = $targets->[$t_idx]->{id};
- push(@target_list, $t_idx);
+ if (defined $matches) {
+ for (my $i = 0; $i < scalar(@{$matches}); $i++) {
+ my $q_idx = $matches->[$i]->{idx};
+ my $q_id = $queries->[$q_idx]->{id};
+ $query_id_to_idx{$q_id} = $q_idx;
+ my $q_targets = $matches->[$i]->{target};
+ my @target_list = ();
+ for (my $j = 0; $j < scalar(@{$q_targets}); $j++) {
+ my $t_idx = $q_targets->[$j]->{idx};
+ my $t_id = $targets->[$t_idx]->{id};
+ push(@target_list, $t_idx);
+ }
+ #printf "query idx %s : matches %s\n", $q_idx, join(" ", @target_list);
+ $query_id_to_target_idxs{$q_id} = \@target_list;
}
- #printf "query idx %s : matches %s\n", $q_idx, join(" ", @target_list);
- $query_id_to_target_idxs{$q_id} = \@target_list;
}
# Iterate over the motif objects and add the non-self matches.
diff -r 63014e06f26e src/fimo-output.c
--- a/src/fimo-output.c Tue Feb 21 18:17:33 2017 -0800
+++ b/src/fimo-output.c Sat Mar 11 22:22:10 2017 -0800
@@ -290,6 +290,13 @@
int num_patterns = get_cisml_num_patterns(cisml);
PATTERN_T **patterns = get_cisml_patterns(cisml);
+ const char *seq_ontology_term = NULL;
+ if (alph_extends_dna(options.alphabet) || alph_extends_rna(options.alphabet)) {
+ seq_ontology_term = "nucleotide_motif";
+ }
+ else {
+ seq_ontology_term = "sequence_motif";
+ }
int i = 0;
for (i = 0; i < num_patterns; ++i) {
int num_seqs = get_pattern_num_scanned_sequences(patterns[i]);
@@ -313,7 +320,7 @@
"%s\tfimo\t%s\t%d\t%d\t%3.3g\t%c\t.\t"
"Name=%s;ID=%s-%d-%s;pvalue=%.3g;qvalue= %.3g;sequence=%s;\n",
get_scanned_sequence_name(seqs[j]),
- alph_is_builtin_dna(options.alphabet) ? "nucleotide_motif" : "polypeptide_motif",
+ seq_ontology_term,
start,
stop,
MIN(1000.0, -4.342 * my_log(get_matched_element_pvalue(matches[k]))), // -10 * log10(x)
@@ -333,7 +340,7 @@
"%s\tfimo\t%s\t%d\t%d\t%3.3g\t%c\t.\t"
"Name=%s;ID=%s-%d-%s;pvalue=%.3g;sequence=%s;\n",
get_scanned_sequence_name(seqs[j]),
- alph_is_builtin_dna(options.alphabet) ? "nucleotide_motif" : "polypeptide_motif",
+ seq_ontology_term,
start,
stop,
-4.342 * my_log(get_matched_element_pvalue(matches[k])), // -10 * log10(x)
@@ -788,15 +795,13 @@
print_fimo_text_file(fimo_file, cisml, options);
fclose(fimo_file);
- // Print GFF (for DNA or PROTEIN only!)
- if (alph_is_builtin_dna(options.alphabet) || alph_is_builtin_protein(options.alphabet)) {
- fimo_file = fopen(options.gff_path, "w");
- if (!fimo_file) {
- die("Couldn't open file %s for output.\n", options.gff_path);
- }
- print_fimo_gff_file(fimo_file, cisml, options);
- fclose(fimo_file);
+ // Print GFF.
+ fimo_file = fopen(options.gff_path, "w");
+ if (!fimo_file) {
+ die("Couldn't open file %s for output.\n", options.gff_path);
}
+ print_fimo_gff_file(fimo_file, cisml, options);
+ fclose(fimo_file);
// Print HTML
fimo_file = fopen(options.html_path, "w");
diff -r 63014e06f26e src/momo-output.c
--- a/src/momo-output.c Tue Feb 21 18:17:33 2017 -0800
+++ b/src/momo-output.c Sat Mar 11 22:22:10 2017 -0800
@@ -1,5 +1,4 @@
#include "motif-in.h"
-#include "cisml.h"
#include "config.h"
#include "momo-output.h"
#include "momo-html-string.h"
diff -r 63014e06f26e src/xml-util.c
--- a/src/xml-util.c Tue Feb 21 18:17:33 2017 -0800
+++ b/src/xml-util.c Sat Mar 11 22:22:10 2017 -0800
@@ -11,6 +11,10 @@
#include "alphabet.h"
#include "utils.h"
#include "xml-util.h"
+#include
+#include
+#include
+#include
/***********************************************************************
* Look up a set of elments using an XPath string.
diff -r 63014e06f26e src/xml-util.h
--- a/src/xml-util.h Tue Feb 21 18:17:33 2017 -0800
+++ b/src/xml-util.h Sat Mar 11 22:22:10 2017 -0800
@@ -12,10 +12,6 @@
#include
#include
#include
-#include
-#include
-#include
-#include
#include "alphabet.h"
/***********************************************************************