diff --git a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/qiime/PickClosedReferenceOtus.scala b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/qiime/PickClosedReferenceOtus.scala
new file mode 100644
index 0000000000000000000000000000000000000000..0a2e307fc8733851ea4003d42548ff22fd80ccbb
--- /dev/null
+++ b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/qiime/PickClosedReferenceOtus.scala
@@ -0,0 +1,51 @@
+package nl.lumc.sasc.biopet.extensions.qiime
+
+import java.io.File
+
+import nl.lumc.sasc.biopet.core.{BiopetCommandLineFunction, Version}
+import nl.lumc.sasc.biopet.utils.config.Configurable
+import org.broadinstitute.gatk.utils.commandline.Input
+
+/**
+ * Created by pjvan_thof on 12/4/15.
+ */
+class PickClosedReferenceOtus(val root: Configurable) extends BiopetCommandLineFunction with Version {
+  executable = config("exe", default = "pick_closed_reference_otus.py")
+
+  @Input(required = true)
+  var inputFasta: File = _
+
+  var outputDir: File = null
+
+  override def defaultThreads = 2
+  override def defaultCoreMemory = 5.0
+  def versionCommand = executable + " --version"
+  def versionRegex = """Version: (.*)""".r
+
+  @Input(required = false)
+  var parameter_fp: Option[File] = config("parameter_fp")
+
+  @Input(required = false)
+  var reference_fp: Option[File] = config("reference_fp")
+
+  @Input(required = false)
+  var taxonomy_fp: Option[File] = config("taxonomy_fp")
+
+  var assign_taxonomy: Boolean = config("assign_taxonomy", default = false)
+  var force: Boolean = config("force", default = false)
+  var print_only: Boolean = config("print_only", default = false)
+  var suppress_taxonomy_assignment: Boolean = config("suppress_taxonomy_assignment", default = false)
+
+  def cmdLine = executable +
+    required("-i", inputFasta) +
+    required("-o", outputDir) +
+    optional("--reference_fp", reference_fp) +
+    optional("--parameter_fp", parameter_fp) +
+    optional("--taxonomy_fp", taxonomy_fp) +
+    conditional(assign_taxonomy, "--assign_taxonomy") +
+    conditional(force, "--force") +
+    conditional(print_only, "--print_only") +
+    conditional(suppress_taxonomy_assignment, "--suppress_taxonomy_assignment") +
+    (if (threads > 1) required("-a") + required("-O", threads) else "")
+
+}