Source: fastqc
Version: 0.11.5+dfsg-4
Severity: important
Tags: patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi,

HDF5 1.10 is about to transition into unstable [1], and unfortunately a
FastQC build-dependency, libsis-jhdf5-java, doesn't support this new
release yet [2], and we have no information about its upstream schedule
wrt HDF5 1.10.

I've had a look at the FastQC code, and AFAIUI, libsis-jhdf5-java is
required only to support fast5 files from nanopore sequences.

Since these files can easily be converted to FastQ format using
poretools [3], I propose to temporarily drop fast5 support from FastQC
to avoid a removal from testing.

Please find attached a patch proposal to this end.

Thanks in advance,

_g.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842177#40
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842815
{3] https://bioinfoexpert.com/2016/06/15/minion-fast5-to-fastq/

-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJYL03KAAoJEO/obGx//s+D0uAH/3dDwjK+eAjV5lrCu7sa17rR
RFVYrJMhpnwwgH3q4cNHPvcHeyYZYwyC7WZMw++RWOIEDOlp04KeTkXNhW0/nlt+
FYlGwc1PjHnKUVVy3oyJBTeHnydHU0gP2qNkndvGtrxTjhsIT2toxU3gR+1Z86OI
iW7UAxmuhBoOF3rqYUb9pevRVQjOu8ikrG5ExS7Lg1Fk4TKu00IjaiqvppndoqPO
dsahyQkorSn+Rw0qQFxO4COBZVx5cMsFgIqa+QVvEhSw1Muw/x1S4m2NSfOsM9wQ
H2S3vIrbeDYuyI7ACZSfqHlOsuxVi8v6Y50kZqo0eGZM3km1z5r/cJHqalKt7hI=
=yCAp
-----END PGP SIGNATURE-----
diff --git a/debian/changelog b/debian/changelog
index aeba166..20d6f39 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+fastqc (0.11.5+dfsg-4.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * New patch drop-fast5.patch to temporarily drop support for fast5
+    file format. This way we can drop the build-dependency on
+    libsis-jhdf5-java which doesn't support HDF5 1.10 yet (#842815).
+    fast5 files can easily be converted to fastq using poretools.
+
+ -- Gilles Filippini <p...@debian.org>  Fri, 18 Nov 2016 19:03:15 +0100
+
 fastqc (0.11.5+dfsg-4) unstable; urgency=low
 
   * Team upload.
diff --git a/debian/control b/debian/control
index 7fa5f02..9cd7223 100644
--- a/debian/control
+++ b/debian/control
@@ -11,8 +11,7 @@ Build-Depends: debhelper (>= 9),
                ant,
                libhtsjdk-java,
                libjbzip2-java,
-               libcommons-math3-java,
-               libsis-jhdf5-java
+               libcommons-math3-java
 Standards-Version: 3.9.8
 Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/fastqc.git
 Vcs-Git: https://anonscm.debian.org/git/debian-med/fastqc.git
diff --git a/debian/patches/drop-fast5.patch b/debian/patches/drop-fast5.patch
new file mode 100644
index 0000000..f9a0cf6
--- /dev/null
+++ b/debian/patches/drop-fast5.patch
@@ -0,0 +1,151 @@
+Index: fastqc/fastqc
+===================================================================
+--- fastqc.orig/fastqc
++++ fastqc/fastqc
+@@ -74,7 +74,6 @@ my $quiet;
+ my $nogroup;
+ my $expgroup;
+ my $casava;
+-my $nano;
+ my $nofilter;
+ my $kmer_size;
+ my $temp_directory;
+@@ -91,7 +90,6 @@ my $result = GetOptions('version' => \$v
+ 						'threads=i' => \$threads,
+ 						'kmers=i' => \$kmer_size,
+ 						'casava' => \$casava,
+-						'nano' => \$nano,
+ 						'nofilter' => \$nofilter,
+ 						'contaminants=s' => \$contaminant,
+ 						'adapters=s' => \$adapter,
+@@ -183,10 +181,6 @@ if ($casava) {
+ 	push @java_args ,"-Dfastqc.casava=true";		
+ }
+ 
+-if ($nano) {
+-	push @java_args ,"-Dfastqc.nano=true";		
+-}
+-
+ 
+ if ($nofilter) {
+ 	push @java_args ,"-Dfastqc.nofilter=true";		
+@@ -320,11 +314,6 @@ DESCRIPTION
+                     (including being gzipped and ending with .gz) otherwise they
+                     won't be grouped together correctly.
+                     
+-    --nano          Files come from naopore sequences and are in fast5 format. In
+-                    this mode you can pass in directories to process and the program
+-                    will take in all fast5 files within those directories and produce
+-                    a single output file from the sequences found in all files.                    
+-                    
+     --nofilter      If running with --casava then don't remove read flagged by
+                     casava as poor quality when performing the QC analysis.
+                    
+Index: fastqc/uk/ac/babraham/FastQC/Sequence/SequenceFactory.java
+===================================================================
+--- fastqc.orig/uk/ac/babraham/FastQC/Sequence/SequenceFactory.java
++++ fastqc/uk/ac/babraham/FastQC/Sequence/SequenceFactory.java
+@@ -99,9 +99,6 @@ public class SequenceFactory {
+ 			// We default to using all reads
+ 			return new BAMFile(file,false);
+ 		}
+-		else if (file.getName().toLowerCase().endsWith(".fast5")) {
+-			return new Fast5File(file);
+-		}
+ 		else {
+ 			return new FastQFile(config,file);
+ 		}
+Index: fastqc/uk/ac/babraham/FastQC/Sequence/Fast5File.java
+===================================================================
+--- fastqc.orig/uk/ac/babraham/FastQC/Sequence/Fast5File.java
++++ /dev/null
+@@ -1,89 +0,0 @@
+-/**
+- * Copyright Copyright 2010-15 Simon Andrews
+- *
+- *    This file is part of FastQC.
+- *
+- *    FastQC is free software; you can redistribute it and/or modify
+- *    it under the terms of the GNU General Public License as published by
+- *    the Free Software Foundation; either version 3 of the License, or
+- *    (at your option) any later version.
+- *
+- *    FastQC is distributed in the hope that it will be useful,
+- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- *    GNU General Public License for more details.
+- *
+- *    You should have received a copy of the GNU General Public License
+- *    along with FastQC; if not, write to the Free Software
+- *    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+- */
+-package uk.ac.babraham.FastQC.Sequence;
+-
+-import java.io.File;
+-import java.io.IOException;
+-
+-import ch.systemsx.cisd.hdf5.HDF5Factory;
+-import ch.systemsx.cisd.hdf5.IHDF5SimpleReader;
+-
+-public class Fast5File implements SequenceFile {
+-
+-	private Sequence nextSequence = null;
+-	private File file;
+-
+-	private String name;
+-
+-	protected Fast5File(File file) throws SequenceFormatException, IOException {
+-		this.file = file;
+-		name = file.getName();
+-
+-		IHDF5SimpleReader reader = HDF5Factory.openForReading(file);
+-		
+-		if (reader.exists("Analyses/Basecall_2D_000/BaseCalled_template/Fastq")) {
+-		
+-			String fastq = reader.readString("Analyses/Basecall_2D_000/BaseCalled_template/Fastq");
+-		
+-			String [] sections = fastq.split("\\n");
+-			
+-			if (sections.length != 4) {
+-				throw new SequenceFormatException("Didn't get 4 sections from "+fastq);
+-			}
+-			
+-			nextSequence = new Sequence(this, sections[1].toUpperCase(),sections[3], sections[0]);
+-		}
+-		reader.close();
+-
+-	}
+-
+-	public String name() {
+-		return name;
+-	}
+-
+-	public int getPercentComplete() {
+-		if (! hasNext()) return 100;
+-
+-		return 0;		
+-	}
+-
+-	public boolean isColorspace() {
+-		return false;
+-	}
+-
+-	public boolean hasNext() {
+-		return nextSequence != null;
+-	}
+-
+-	public Sequence next() throws SequenceFormatException {
+-		Sequence seq = nextSequence;
+-		nextSequence = null;
+-		return seq;
+-	}
+-
+-	public void remove() {
+-		// No action here
+-	}
+-
+-	public File getFile() {
+-		return file;
+-	}
+-
+-}
diff --git a/debian/patches/series b/debian/patches/series
index 0801e7d..6f96f87 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@ fastqc.patch
 fix-help-call.patch
 set_configuration_path.patch
 adapt_to_htslib.patch
+drop-fast5.patch

Reply via email to