diff --git a/tool_conf.xml.sample b/tool_conf.xml.sample
index 912c755c015..75163d8c41d 100644
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -27,6 +27,9 @@
+
diff --git a/tools/extract/liftOver_wrapper.py b/tools/extract/liftOver_wrapper.py
new file mode 100644
index 00000000000..d072101bd21
--- /dev/null
+++ b/tools/extract/liftOver_wrapper.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python2.4
+#Guru
+"""
+Converts coordinates from one build/assembly to another using liftOver binary and mapping files downloaded from UCSC.
+"""
+
+import sys, os, string
+
+def stop_err(msg):
+ sys.stderr.write(msg)
+ sys.exit()
+
+if len(sys.argv) != 6:
+ stop_error("USAGE: prog input out_file1 out_file2 input_dbkey output_dbkey")
+
+infile = sys.argv[1]
+outfile1 = sys.argv[2]
+outfile2 = sys.argv[3]
+in_dbkey = sys.argv[4]
+out_dbkey = sys.argv[5]
+
+#ensure dbkeys are set
+if in_dbkey == "?":
+ stop_err("You must specify a build to the input dataset in order to covert genome coordinates.")
+if out_dbkey == "?":
+ stop_err("Please specify a build for the output dataset using the 'To' dropdown menu.")
+
+#Check if the apping file exists
+#example file path: hg18ToHg17.over.chain
+mapfilename = in_dbkey + "To" + out_dbkey[0].capitalize() + out_dbkey[1:] + ".over.chain"
+mapfilepath = "/depot/data2/galaxy/" + in_dbkey + "/liftOver/" + mapfilename
+try:
+ open(mapfilepath, 'r')
+except Exception, ex:
+ stop_err("Mapping information from %s to %s is unavailable." %(in_dbkey, out_dbkey))
+
+print "Mapping from %s to %s" %(in_dbkey,out_dbkey)
+try:
+ cmd_line = "liftOver " + infile + " " + mapfilepath + " " + outfile1 + " " + outfile2 + " > /dev/null 2>&1"
+ os.system(cmd_line)
+except Exception, exc:
+ print >>sys.stderr, exc
+
+
diff --git a/tools/extract/liftOver_wrapper.xml b/tools/extract/liftOver_wrapper.xml
new file mode 100644
index 00000000000..bc7d4b49470
--- /dev/null
+++ b/tools/extract/liftOver_wrapper.xml
@@ -0,0 +1,52 @@
+
+ between assemblies and genomes
+ liftOver_wrapper.py $input "$out_file1" "$out_file2" $dbkey $to_dbkey
+
+
+
+
+
+
+
+
+
+
+
+.. class:: warningmark
+
+Make sure that the genome build is specified for the input dataset (click the pencil icon if it is not specified).
+
+-----
+
+**What it does**
+
+This tool converts genome coordinates and annotation files between assemblies and genomes. It outputs 2 files, one containing all the mapped coordinates and one containing the unmapped coordinates (if any).
+
+-----
+
+**Example**
+
+Running this tool to convert the following hg16 intervals into hg18 intervals::
+
+ chrX 85170 112199 AK002185 0 +
+ chrX 110458 112199 AK097346 0 +
+ chrX 112203 121212 AK074528 0 -
+
+will return the following hg18 intervals::
+
+ chrX 132991 160020 AK002185 0 +
+ chrX 158279 160020 AK097346 0 +
+ chrX 160024 169033 AK074528 0 -
+
+
+
+
diff --git a/tools/extract/liftOver_wrapper_code.py b/tools/extract/liftOver_wrapper_code.py
new file mode 100644
index 00000000000..0d7ec90629a
--- /dev/null
+++ b/tools/extract/liftOver_wrapper_code.py
@@ -0,0 +1,6 @@
+def exec_before_job(app, inp_data, out_data, param_dict, tool):
+ out_data['out_file1'].set_dbkey(param_dict['to_dbkey'])
+ out_data['out_file2'].set_dbkey(param_dict['to_dbkey'])
+ out_data['out_file1'].name = out_data['out_file1'].name + " [ MAPPED COORDINATES ]"
+ out_data['out_file2'].name = out_data['out_file2'].name + " [ UNMAPPED COORDINATES ]"
+