From 17e047dbbfac75cbeb0cec11248cc89cf294445b Mon Sep 17 00:00:00 2001
From: james94 <james94@mi.fu-berlin.de>
Date: Wed, 10 Mar 2021 20:26:26 +0100
Subject: [PATCH] to get running on HPC

---
 envs/genomescope.yaml                         |   6 +
 envs/merylMerq.yaml                           |   7 +-
 programs/merqury-1.1/LICENSE                  |  19 ++
 programs/merqury-1.1/README.md                | 191 ++++++++++++++++++
 .../_submit_build.sh                          |   6 +-
 .../_submit_build_10x.sh                      |   2 +-
 .../_submit_hapmers.sh                        |   0
 .../_submit_merqury.sh                        |   0
 .../_submit_split.sh                          |   0
 .../best_k.sh                                 |   0
 .../build/concat_splits.sh                    |   0
 .../build/count.sh                            |   0
 .../build/count_10x.sh                        |  20 +-
 .../build/diff.sh                             |   0
 .../build/filt.sh                             |   0
 .../build/intersect.sh                        |   0
 .../build/split.sh                            |   5 +-
 .../build/split_10x.sh                        |  10 +-
 .../build/union_sum.sh                        |  10 -
 programs/merqury-1.1/eval/asm_multiplicity.sh |  33 +++
 .../eval/bedCalcN50.jar                       | Bin
 .../merqury-1.1/eval/false_duplications.sh    |  21 ++
 .../eval/kmerHistToPloidyDepth.jar            | Bin
 programs/merqury-1.1/eval/per_seq_qv.sh       |  43 ++++
 .../eval/qv.sh                                |   8 +-
 .../merqury-1.1/eval/read_multiplicity.sh     |  31 +++
 .../eval/spectra-cn.sh                        |  19 +-
 .../example/README.txt                        |   0
 .../example/inherited_hapmers.fl.png          | Bin
 .../example/inherited_hapmers.ln.png          | Bin
 .../example/inherited_hapmers.st.png          | Bin
 .../triocanu_clr.100_20000.col.block.N.png    | Bin
 ...riocanu_clr.100_20000.col.continuity.N.png | Bin
 .../triocanu_clr.100_20000.cvi.block.N.png    | Bin
 ...riocanu_clr.100_20000.cvi.continuity.N.png | Bin
 .../triocanu_clr.10_20000.col.block.N.png     | Bin
 ...triocanu_clr.10_20000.col.continuity.N.png | Bin
 .../triocanu_clr.10_20000.cvi.block.N.png     | Bin
 ...triocanu_clr.10_20000.cvi.continuity.N.png | Bin
 ...anu_clr.col.10_20000.phased_block.blob.png | Bin
 .../example/triocanu_clr.col.block.N.png      | Bin
 ...canu_clr.col.col0.hapmer.spectra-cn.fl.png | Bin
 ...canu_clr.col.col0.hapmer.spectra-cn.ln.png | Bin
 ...canu_clr.col.col0.hapmer.spectra-cn.st.png | Bin
 .../example/triocanu_clr.col.continuity.N.png | Bin
 ...canu_clr.col.cvi0.hapmer.spectra-cn.fl.png | Bin
 ...canu_clr.col.cvi0.hapmer.spectra-cn.ln.png | Bin
 ...canu_clr.col.cvi0.hapmer.spectra-cn.st.png | Bin
 .../triocanu_clr.col.spectra-cn.fl.png        | Bin
 .../triocanu_clr.col.spectra-cn.ln.png        | Bin
 .../triocanu_clr.col.spectra-cn.st.png        | Bin
 ...anu_clr.cvi.10_20000.phased_block.blob.png | Bin
 .../example/triocanu_clr.cvi.block.N.png      | Bin
 ...canu_clr.cvi.col0.hapmer.spectra-cn.fl.png | Bin
 ...canu_clr.cvi.col0.hapmer.spectra-cn.ln.png | Bin
 ...canu_clr.cvi.col0.hapmer.spectra-cn.st.png | Bin
 .../example/triocanu_clr.cvi.continuity.N.png | Bin
 ...canu_clr.cvi.cvi0.hapmer.spectra-cn.fl.png | Bin
 ...canu_clr.cvi.cvi0.hapmer.spectra-cn.ln.png | Bin
 ...canu_clr.cvi.cvi0.hapmer.spectra-cn.st.png | Bin
 .../triocanu_clr.cvi.spectra-cn.fl.png        | Bin
 .../triocanu_clr.cvi.spectra-cn.ln.png        | Bin
 .../triocanu_clr.cvi.spectra-cn.st.png        | Bin
 .../example/triocanu_clr.hapmers.blob.png     | Bin
 .../example/triocanu_clr.spectra-asm.fl.png   | Bin
 .../example/triocanu_clr.spectra-asm.ln.png   | Bin
 .../example/triocanu_clr.spectra-asm.st.png   | Bin
 .../example/triocanu_clr.spectra-cn.fl.png    | Bin
 .../example/triocanu_clr.spectra-cn.ln.png    | Bin
 .../example/triocanu_clr.spectra-cn.st.png    | Bin
 .../merqury-mash.sh                           |  10 +-
 .../merqury.sh                                |   0
 .../plot/plot_blob.R                          |   0
 .../plot/plot_block_N.R                       |   0
 .../plot/plot_spectra_asm.R                   |   0
 .../plot/plot_spectra_cn.R                    |   0
 .../trio/bedMerToPhaseBlock.jar               | Bin
 .../trio/block_n_stats.sh                     |   2 +-
 .../trio/exclude_reads.sh                     |   0
 .../trio/fastaGetGaps.jar                     | Bin
 .../trio/hap_blob.sh                          |   0
 .../trio/hapmers.sh                           |   8 +-
 .../merqury-1.1/trio/hapmers_to_bigwig.sh     |  38 ++++
 .../trio/phase_block.sh                       |   0
 .../trio/phase_block/IO/Rwrapper.java         |   0
 .../IO/basic/BufferedFileReader.java          |   0
 .../trio/phase_block/IO/basic/FileMaker.java  |   0
 .../trio/phase_block/IO/basic/FileReader.java |   0
 .../trio/phase_block/IO/basic/Format.java     |   0
 .../trio/phase_block/IO/basic/IOUtil.java     |   0
 .../trio/phase_block/IO/basic/RegExp.java     |   0
 .../trio/phase_block/IO/basic/Wrapper.java    |   0
 .../trio/phase_block/MerToPhaseBlock.java     |   0
 .../trio/phase_block/README.md                |   0
 .../trio/phase_block/bed/util/Bed.java        |   0
 .../trio/phase_block/bed/util/Region.java     |   0
 .../trio/phase_block/build_jar.sh             |   0
 .../trio/phase_block/genome/Chromosome.java   |   0
 .../genome/ChromosomeComparator.java          |   0
 .../trio/phase_block/genome/util/Util.java    |   0
 .../trio/spectra-hap.sh                       |   0
 .../trio/switch_error.sh                      |   0
 programs/merqury-1.1/util/bed_to_bigwig.sh    |  39 ++++
 programs/merqury-1.1/util/merylDumpToWig.jar  | Bin 0 -> 17892 bytes
 .../util/util.sh                              |   0
 programs/merqury_June2020/.DS_Store           | Bin 6148 -> 0 bytes
 programs/meryl-1.0/.DS_Store                  | Bin 6148 -> 0 bytes
 107 files changed, 485 insertions(+), 43 deletions(-)
 create mode 100644 envs/genomescope.yaml
 create mode 100644 programs/merqury-1.1/LICENSE
 create mode 100644 programs/merqury-1.1/README.md
 rename programs/{merqury_June2020 => merqury-1.1}/_submit_build.sh (96%)
 rename programs/{merqury_June2020 => merqury-1.1}/_submit_build_10x.sh (98%)
 rename programs/{merqury_June2020 => merqury-1.1}/_submit_hapmers.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/_submit_merqury.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/_submit_split.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/best_k.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/concat_splits.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/count.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/count_10x.sh (74%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/diff.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/filt.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/intersect.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/split.sh (91%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/split_10x.sh (87%)
 rename programs/{merqury_June2020 => merqury-1.1}/build/union_sum.sh (90%)
 create mode 100755 programs/merqury-1.1/eval/asm_multiplicity.sh
 rename programs/{merqury_June2020 => merqury-1.1}/eval/bedCalcN50.jar (100%)
 create mode 100755 programs/merqury-1.1/eval/false_duplications.sh
 rename programs/{merqury_June2020 => merqury-1.1}/eval/kmerHistToPloidyDepth.jar (100%)
 create mode 100755 programs/merqury-1.1/eval/per_seq_qv.sh
 rename programs/{merqury_June2020 => merqury-1.1}/eval/qv.sh (87%)
 create mode 100755 programs/merqury-1.1/eval/read_multiplicity.sh
 rename programs/{merqury_June2020 => merqury-1.1}/eval/spectra-cn.sh (92%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/README.txt (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/inherited_hapmers.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/inherited_hapmers.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/inherited_hapmers.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.100_20000.col.block.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.100_20000.col.continuity.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.100_20000.cvi.block.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.100_20000.cvi.continuity.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.10_20000.col.block.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.10_20000.col.continuity.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.10_20000.cvi.block.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.10_20000.cvi.continuity.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.10_20000.phased_block.blob.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.block.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.col0.hapmer.spectra-cn.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.col0.hapmer.spectra-cn.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.col0.hapmer.spectra-cn.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.continuity.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.spectra-cn.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.spectra-cn.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.col.spectra-cn.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.10_20000.phased_block.blob.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.block.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.continuity.N.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.spectra-cn.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.spectra-cn.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.cvi.spectra-cn.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.hapmers.blob.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.spectra-asm.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.spectra-asm.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.spectra-asm.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.spectra-cn.fl.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.spectra-cn.ln.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/example/triocanu_clr.spectra-cn.st.png (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/merqury-mash.sh (81%)
 rename programs/{merqury_June2020 => merqury-1.1}/merqury.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/plot/plot_blob.R (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/plot/plot_block_N.R (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/plot/plot_spectra_asm.R (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/plot/plot_spectra_cn.R (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/bedMerToPhaseBlock.jar (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/block_n_stats.sh (96%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/exclude_reads.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/fastaGetGaps.jar (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/hap_blob.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/hapmers.sh (97%)
 create mode 100755 programs/merqury-1.1/trio/hapmers_to_bigwig.sh
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/IO/Rwrapper.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/IO/basic/BufferedFileReader.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/IO/basic/FileMaker.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/IO/basic/FileReader.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/IO/basic/Format.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/IO/basic/IOUtil.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/IO/basic/RegExp.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/IO/basic/Wrapper.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/MerToPhaseBlock.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/README.md (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/bed/util/Bed.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/bed/util/Region.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/build_jar.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/genome/Chromosome.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/genome/ChromosomeComparator.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/phase_block/genome/util/Util.java (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/spectra-hap.sh (100%)
 rename programs/{merqury_June2020 => merqury-1.1}/trio/switch_error.sh (100%)
 create mode 100755 programs/merqury-1.1/util/bed_to_bigwig.sh
 create mode 100644 programs/merqury-1.1/util/merylDumpToWig.jar
 rename programs/{merqury_June2020 => merqury-1.1}/util/util.sh (100%)
 delete mode 100644 programs/merqury_June2020/.DS_Store
 delete mode 100644 programs/meryl-1.0/.DS_Store

diff --git a/envs/genomescope.yaml b/envs/genomescope.yaml
new file mode 100644
index 0000000..e852490
--- /dev/null
+++ b/envs/genomescope.yaml
@@ -0,0 +1,6 @@
+channels:
+  - bioconda
+  - conda-forge
+dependencies:
+  - genomescope2=2.0
+  - python=3.9.2
diff --git a/envs/merylMerq.yaml b/envs/merylMerq.yaml
index a7d2a4e..96c6aed 100644
--- a/envs/merylMerq.yaml
+++ b/envs/merylMerq.yaml
@@ -1,15 +1,12 @@
 channels:
-  - bioconda
   - conda-forge
-  - r
+  - bioconda
 dependencies:
   - igvtools
   - openjdk=11.0.8
-  - r=3
+  - r-base=3.6.3
   - r-ggplot2
   - r-argparse
   - r-scales
-  - genomescope2=2.0
   - samtools
   - bedtools
-  - python=3.9.2
diff --git a/programs/merqury-1.1/LICENSE b/programs/merqury-1.1/LICENSE
new file mode 100644
index 0000000..1696843
--- /dev/null
+++ b/programs/merqury-1.1/LICENSE
@@ -0,0 +1,19 @@
+
+  PUBLIC DOMAIN NOTICE
+
+  This software is "United States Government Work" under the terms of the United
+  States Copyright Act. It was written as part of the authors' official duties
+  for the United States Government and thus cannot be copyrighted. This software
+  is freely available to the public for use without a copyright
+  notice. Restrictions cannot be placed on its present or future use.
+
+  Although all reasonable efforts have been taken to ensure the accuracy and
+  reliability of the software and associated data, the National Human Genome
+  Research Institute (NHGRI), National Institutes of Health (NIH) and the
+  U.S. Government do not and cannot warrant the performance or results that may
+  be obtained by using this software or data. NHGRI, NIH and the U.S. Government
+  disclaim all warranties as to performance, merchantability or fitness for any
+  particular purpose.
+
+  Please cite the authors in any work or product based on this material.
+
diff --git a/programs/merqury-1.1/README.md b/programs/merqury-1.1/README.md
new file mode 100644
index 0000000..4808a8c
--- /dev/null
+++ b/programs/merqury-1.1/README.md
@@ -0,0 +1,191 @@
+# Merqury
+
+## Evaluate genome assemblies with k-mers and more
+
+Often, genome assembly projects have illumina whole genome sequencing reads available for the assembled individual.
+The k-mer spectrum of this read set can be used for independently evaluating assembly quality without the need of a high quality reference.
+Merqury provides a set of tools for this purpose.
+
+## Dependency
+* gcc 4.8 or higher
+* meryl
+* Java run time environment (JRE)
+* R with argparse, ggplot2, and scales (tested on R 3.6.1)
+* bedtools
+* samtools
+* igvtools
+
+## Installation
+
+### Get a working meryl in your PATH
+Download meryl release: https://github.com/marbl/meryl/releases/tag/v1.0
+
+If the binary doesn't work, download the source and compile:
+```shell
+cd meryl/src
+make -j 24
+export PATH=/path/to/meryl/…/bin:$PATH
+```
+See if we get help message for `meryl`.
+
+### Add a path variable MERQURY
+```shell
+git clone https://github.com/marbl/merqury.git
+cd merqury
+export MERQURY=$PWD
+```
+Add the “export” part to your environment (~/.bash_profile or ~/.profile).
+Add installation dir paths for `bedtools`, `samtools` and `igvtools` to your enviroenment.
+`source` it.
+
+
+## Run
+
+* !! Merqury assumes all meryl dbs (dirs) are named with `.meryl`. !!
+
+On a single machine:
+```
+ln -s $MERQURY/merqury.sh		# Link merqury
+./merqury.sh <read-db.meryl> [<mat.meryl> <pat.meryl>] <asm1.fasta> [asm2.fasta] <out>
+
+Usage: merqury.sh <read-db.meryl> [<mat.meryl> <pat.meryl>] <asm1.fasta> [asm2.fasta] <out>
+	<read-db.meryl>	: k-mer counts of the read set
+	<mat.meryl>		: k-mer counts of the maternal haplotype (ex. mat.only.meryl or mat.hapmer.meryl)
+	<pat.meryl>		: k-mer counts of the paternal haplotype (ex. pat.only.meryl or pat.hapmer.meryl)
+	<asm1.fasta>	: Assembly fasta file (ex. pri.fasta, hap1.fasta or maternal.fasta)
+	[asm2.fasta]	: Additional fasta file (ex. alt.fasta, hap2.fasta or paternal.fasta)
+	*asm1.meryl and asm2.meryl will be generated. Avoid using the same names as the hap-mer dbs
+	<out>		: Output prefix
+```
+`< >` : required  
+`[ ]` : optional
+
+## Example
+
+Below is showing examples how to run Merqury using the prebuilt meryl dbs on a. thaliana F1 hybrid.
+The fasta files are the trio-binned assemblies from [Koren et al](https://doi.org/10.1038/nbt.4277).
+
+```shell
+### Download assemblies ###
+wget https://gembox.cbcb.umd.edu/triobinning/athal_COL.fasta
+wget https://gembox.cbcb.umd.edu/triobinning/athal_CVI.fasta
+
+### Download prebuilt meryl dbs ###
+# read.meryl of the F1 hybrid between COL-0 and CVI-0
+wget https://obj.umiacs.umd.edu/marbl_publications/merqury/athal/a_thal.k18.meryl.tar.gz
+# hap-mers for COL-0 haplotype
+wget https://obj.umiacs.umd.edu/marbl_publications/merqury/athal/a_thal.col0.hapmer.meryl.tar.gz
+# hap-mers for CVI-0 haplotype
+wget https://obj.umiacs.umd.edu/marbl_publications/merqury/athal/a_thal.cvi0.hapmer.meryl.tar.gz
+
+# Untar
+for gz in *.tar.gz
+do
+    tar -zxf $gz
+done
+
+# Run merqury
+$MERQURY/merqury.sh F1.k18.meryl col0.hapmer.meryl cvi0.hapmer.meryl athal_COL.fasta athal_CVI.fasta test
+```
+
+
+### 1. I have one assembly (pseudo-haplotype or mixed-haplotype)
+```shell
+# I don't have the hap-mers
+$MERQURY/merqury.sh read-db.meryl asm1.fasta out_prefix
+# Using the example above
+$MERQURY/merqury.sh F1.k18.meryl athal_COL.fasta test-1
+
+# I have the hap-mers
+$MERQURY/merqury.sh read-db.meryl mat.meryl pat.meryl asm1.fasta out_prefix
+# Using the example above
+$MERQURY/merqury.sh F1.k18.meryl col0.hapmer.meryl cvi0.hapmer.meryl athal_COL.fasta test-1
+```
+
+### 2. I have two assemblies (diploid)
+```shell
+# I don't have the hap-mers
+$MERQURY/merqury.sh read-db.meryl asm1.fasta asm2.fasta out_prefix
+# Using the example above
+$MERQURY/merqury.sh F1.k18.meryl athal_COL.fasta athal_CVI.fasta test-2
+
+# I have the hap-mers
+$MERQURY/merqury.sh read-db.meryl mat.meryl pat.meryl asm1.fasta asm2.fasta out_prefix
+# Using the example above
+$MERQURY/merqury.sh F1.k18.meryl col0.hapmer.meryl cvi0.hapmer.meryl athal_COL.fasta athal_CVI.fasta test-2
+```
+
+* Note there is no need to run merqury per-assemblies. Give two fasta files, Merqury generates stats for each and combined.
+
+
+
+### How to parallelize
+Merqury starts with `eval/spectra_cn.sh`.
+When hap-mers are provided, merqury runs modules under `trio/` in addition to `eval/spectra_cn.sh`.
+
+
+The following can run at the same time. Modules with dependency are followed by arrows (->).
+* `eval/spectra_cn.sh` -> `trio/spectra_hap.sh`
+* `trio/hap_blob.sh`
+* `trio/phase_block.sh` per assembly -> `trio/block_n_stats.sh`
+
+
+Meryl, the k-mer counter inside, uses the maximum cpus available.
+Set `OMP_NUM_THREADS=24` for example to use 24 threads.
+
+On slurm environment, simply run:
+```
+ln -s $MERQURY/_submit_merqury.sh	# Link merqury
+./_submit_merqury.sh <read-db.meryl> [<mat.meryl> <pat.meryl>] <asm1.fasta> [asm2.fasta] <out>
+```
+Change the `sbatch` to match your environment. (ex. partition)
+
+
+## Outputs from each modules
+* `eval/spectra_cn.sh`: k-mer completeness, qv, spectra-cn and spectra-asm plots, asm-only `.bed` and `.tdf` for tracking errors
+* `eval/qv.sh`: just get the qv stats and quit.
+* `trio/spectra_hap.sh`: hap-mer level spectra-cn plots, hap-mer completeness
+* `trio/hap_blob.sh`: blob plots of the hap-mers in each contg/scaffold
+* `trio/phase_block.sh`: phase block statistics, phase block N* plots, hap-mer tracks (`.bed` and `.tdf` files)
+* `trio/block_n_stats.sh`: continuity plots (phase block N* or NG* plots, phase block vs. contig/scaffold plots)
+* `trio/switch_error.sh`: this is run part of `phase_blck.sh`, however can be re-run with desired short-range switch parameters. Run `trio/block_n_stats.sh` along with it to get the associated plots.
+
+## Tips for helps
+Run each script without any parameters if not sure what to do.
+For example, `./trio/switch_error.sh` will give a help message and quit.
+
+Following wiki pages have more detailed examples.
+
+## 1. Prepare meryl dbs ([details](https://github.com/marbl/merqury/wiki/1.-Prepare-meryl-dbs))
+1. Get the right k size
+2. Build k-mer dbs with meryl
+3. Build hap-mers for trios
+
+## 2. Overall assembly evaluation ([details](https://github.com/marbl/merqury/wiki/2.-Overall-k-mer-evaluation))
+1. Reference free QV estimate
+2. k-mer completeness (recovery rate)
+3. Spectra copy number analysis
+4. Track error bases in the assembly
+
+## 3. Phasing assessment with hap-mers ([details](https://github.com/marbl/merqury/wiki/3.-Phasing-assessment-with-hap-mers))
+1. Inherited hap-mer plots
+2. Hap-mer blob plots
+3. Hap-mer completeness (recovery rate)
+4. Spectra copy number analysis per hap-mers
+5. Phased block statistics and switch error rates
+6. Track each haplotype block in the assembly
+
+## Available pre-built meryl dbs
+Meryl dbs from Illumina WGS and hapmers are available [here](https://obj.umiacs.umd.edu/marbl_publications/merqury/index.html) for
+* A. thaliana COL-0 x CVI-0 F1
+* NA12878 (HG001)
+* HG002
+
+## Citing merqury
+
+Please use the following [preprint](https://www.biorxiv.org/content/10.1101/2020.03.15.992941v1) to cite Merqury:
+
+Arang Rhie, Brian P. Walenz, Sergey Koren, Adam M. Phillippy, Merqury: reference-free quality and phasing assessment for genome assemblies, bioRxiv (2020). doi: https://doi.org/10.1101/2020.03.15.992941
+
+
+
diff --git a/programs/merqury_June2020/_submit_build.sh b/programs/merqury-1.1/_submit_build.sh
similarity index 96%
rename from programs/merqury_June2020/_submit_build.sh
rename to programs/merqury-1.1/_submit_build.sh
index 988e26d..e44a8b8 100755
--- a/programs/merqury_June2020/_submit_build.sh
+++ b/programs/merqury-1.1/_submit_build.sh
@@ -45,11 +45,11 @@ for i in $(seq 1 $LEN)
 do
 	fq=`sed -n ${i}p $input_fofn`
 	GB=`du -k $fq  | awk '{printf "%.0f", $1/1024/1024}'`
-	if [[ $GB -lt 12 ]]; then
-	    echo "$fq is $GB, less than 12GB. Skip splitting."
+	if [[ $GB -lt 15 ]]; then
+	    echo "$fq is $GB, less than 15GB. Skip splitting."
 	    echo $fq >> $input_fofn.$i
 	else
-	    echo "$fq is $GB, over 12GB. Will split and run meryl in parallel."
+	    echo "$fq is $GB, over 15GB. Will split and run meryl in parallel."
 	    echo "Split files will be in $input_fofn.$i"
 	    args="$input_fofn"
 	    split_arrs="$split_arrs$i,"
diff --git a/programs/merqury_June2020/_submit_build_10x.sh b/programs/merqury-1.1/_submit_build_10x.sh
similarity index 98%
rename from programs/merqury_June2020/_submit_build_10x.sh
rename to programs/merqury-1.1/_submit_build_10x.sh
index 6c424db..c1c9c42 100755
--- a/programs/merqury_June2020/_submit_build_10x.sh
+++ b/programs/merqury-1.1/_submit_build_10x.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-build=/srv/public/users/tomas/programs/merqury/build
+build=$MERQURY/build
 
 if [ -z $1 ]; then
     echo "Usage: ./_submit_build.sh <k-size> <R1.fofn> <R2.fofn> <out_prefix> [mem=T]"
diff --git a/programs/merqury_June2020/_submit_hapmers.sh b/programs/merqury-1.1/_submit_hapmers.sh
similarity index 100%
rename from programs/merqury_June2020/_submit_hapmers.sh
rename to programs/merqury-1.1/_submit_hapmers.sh
diff --git a/programs/merqury_June2020/_submit_merqury.sh b/programs/merqury-1.1/_submit_merqury.sh
similarity index 100%
rename from programs/merqury_June2020/_submit_merqury.sh
rename to programs/merqury-1.1/_submit_merqury.sh
diff --git a/programs/merqury_June2020/_submit_split.sh b/programs/merqury-1.1/_submit_split.sh
similarity index 100%
rename from programs/merqury_June2020/_submit_split.sh
rename to programs/merqury-1.1/_submit_split.sh
diff --git a/programs/merqury_June2020/best_k.sh b/programs/merqury-1.1/best_k.sh
similarity index 100%
rename from programs/merqury_June2020/best_k.sh
rename to programs/merqury-1.1/best_k.sh
diff --git a/programs/merqury_June2020/build/concat_splits.sh b/programs/merqury-1.1/build/concat_splits.sh
similarity index 100%
rename from programs/merqury_June2020/build/concat_splits.sh
rename to programs/merqury-1.1/build/concat_splits.sh
diff --git a/programs/merqury_June2020/build/count.sh b/programs/merqury-1.1/build/count.sh
similarity index 100%
rename from programs/merqury_June2020/build/count.sh
rename to programs/merqury-1.1/build/count.sh
diff --git a/programs/merqury_June2020/build/count_10x.sh b/programs/merqury-1.1/build/count_10x.sh
similarity index 74%
rename from programs/merqury_June2020/build/count_10x.sh
rename to programs/merqury-1.1/build/count_10x.sh
index 8ec5736..1f5e226 100755
--- a/programs/merqury_June2020/build/count_10x.sh
+++ b/programs/merqury-1.1/build/count_10x.sh
@@ -28,9 +28,19 @@ else
     line_num=$SLURM_ARRAY_TASK_ID
 fi
 
-#  Note: Provide memory in Gb unit. SLURM provides $SLURM_MEM_PER_NODE in Mb.
-#            Give extra 4Gb to avoid 'Bus Error' form running out of memory.
-mem=$(((SLURM_MEM_PER_NODE/1024)-4))
+if [[ ! -z $SLURM_CPUS_PER_TASK ]]; then
+	cpus="threads=$SLURM_CPUS_PER_TASK"
+fi
+
+# If SLURM_MEM_PER_NODE exist; give extra 4Gb
+# otherwise, let meryl determine
+if [[ ! -z $SLURM_MEM_PER_NODE ]]; then
+	# Note: Provide memory in Gb unit. SLURM provides $SLURM_MEM_PER_NODE in Mb.
+	# Give extra 4Gb to avoid 'Bus Error' form running out of memory.
+	mem=$(((SLURM_MEM_PER_NODE/1024)-4))
+	mem="memory=$mem"
+fi
+
 line_num=$(((offset * 1000) + $line_num))
 
 # Read in the input path
@@ -45,9 +55,9 @@ output=$name.$k.$line_num.meryl
 if [ ! -d $output ]; then
     # Run meryl count: Collect k-mer frequencies
     echo "
-    zcat $input | awk '{if (NR%2==1) {print $1} else {print substr($1,24)}}' | meryl k=$k threads=$SLURM_CPUS_PER_TASK memory=$mem count output $output -
+    zcat $input | awk '{if (NR%2==1) {print $1} else {print substr($1,24)}}' | meryl k=$k $cpus $mem count output $output -
     "
-    zcat $input | awk '{if (NR%2==1) {print $1} else {print substr($1,24)}}' | meryl k=$k threads=$SLURM_CPUS_PER_TASK memory=$mem count output $output -
+    zcat $input | awk '{if (NR%2==1) {print $1} else {print substr($1,24)}}' | meryl k=$k $cpus $mem count output $output -
 else
     echo "$output dir already exist. Nothing to do with $name."
 fi
diff --git a/programs/merqury_June2020/build/diff.sh b/programs/merqury-1.1/build/diff.sh
similarity index 100%
rename from programs/merqury_June2020/build/diff.sh
rename to programs/merqury-1.1/build/diff.sh
diff --git a/programs/merqury_June2020/build/filt.sh b/programs/merqury-1.1/build/filt.sh
similarity index 100%
rename from programs/merqury_June2020/build/filt.sh
rename to programs/merqury-1.1/build/filt.sh
diff --git a/programs/merqury_June2020/build/intersect.sh b/programs/merqury-1.1/build/intersect.sh
similarity index 100%
rename from programs/merqury_June2020/build/intersect.sh
rename to programs/merqury-1.1/build/intersect.sh
diff --git a/programs/merqury_June2020/build/split.sh b/programs/merqury-1.1/build/split.sh
similarity index 91%
rename from programs/merqury_June2020/build/split.sh
rename to programs/merqury-1.1/build/split.sh
index 40e3980..9dca150 100755
--- a/programs/merqury_June2020/build/split.sh
+++ b/programs/merqury-1.1/build/split.sh
@@ -3,7 +3,7 @@
 echo "Usage: ./split.sh <input.fofn> [LINE_NUM]"
 echo -e "\t<input.fofn>: fastq.gz files we want to split by every 300 million lines."
 echo -e "\t<input.fofn>.LINE_NUM will be generated."
-echo -e "\t\tUse it for building meryl dbs"
+echo -e "\t\tUse it for building meryl dbs. pigz will use maximum of 8 processes by default."
 echo
 
 FOFN=$1
@@ -25,6 +25,9 @@ if [ -z $tid ]; then
 fi
 
 cpus=$SLURM_CPUS_PER_TASK
+if [[ -z $cpus ]]; then
+    cpus=8
+fi
 
 fq=`sed -n ${tid}p $FOFN`
 fq_prefix=`echo $fq | sed 's/.fastq.gz$//g' | sed 's/.fq.gz$//g' | sed 's/.fastq$//g' | sed 's/.fq$//g'`
diff --git a/programs/merqury_June2020/build/split_10x.sh b/programs/merqury-1.1/build/split_10x.sh
similarity index 87%
rename from programs/merqury_June2020/build/split_10x.sh
rename to programs/merqury-1.1/build/split_10x.sh
index 6654096..e125233 100755
--- a/programs/merqury_June2020/build/split_10x.sh
+++ b/programs/merqury-1.1/build/split_10x.sh
@@ -3,7 +3,7 @@
 echo "Usage: ./split_10x.sh <input.fofn> [LINE_NUM]"
 echo -e "\t<input.fofn>: 10XG fastq R1.gz files to split per 300 million lines."
 echo -e "\t<input.fofn>.LINE_NUM will be generated."
-echo -e "\t\tUse it for building meryl dbs"
+echo -e "\t\tUse it for building meryl dbs. pigz will use maximum of 8 processes by default."
 echo
 
 FOFN=$1
@@ -12,7 +12,7 @@ if [ -z $FOFN ]; then
     exit -1
 fi
 
-tid=300000000	# slurm environment variable for job arrays
+tid=$SLURM_ARRAY_TASK_ID	# slurm environment variable for job arrays
 LINE_NUM=$2
 
 if [ -z $tid ]; then
@@ -24,11 +24,13 @@ if [ -z $tid ]; then
     exit -1
 fi
 
-cpus=20
+cpus=$SLURM_CPUS_PER_TASK
+if [[ -z $cpus ]]; then
+    cpus=8
+fi
 
 fq=`sed -n ${tid}p $FOFN`
 fq_prefix=`echo $fq | sed 's/.fastq.gz$//g' | sed 's/.fq.gz$//g' | sed 's/.fastq$//g' | sed 's/.fq$//g'`
-echo $fq_prefix
 fq_prefix=`basename $fq_prefix`
 
 mkdir -p split
diff --git a/programs/merqury_June2020/build/union_sum.sh b/programs/merqury-1.1/build/union_sum.sh
similarity index 90%
rename from programs/merqury_June2020/build/union_sum.sh
rename to programs/merqury-1.1/build/union_sum.sh
index dc21905..a01c15e 100755
--- a/programs/merqury_June2020/build/union_sum.sh
+++ b/programs/merqury-1.1/build/union_sum.sh
@@ -16,8 +16,6 @@ output_prefix=$3.k$k
 LEN=`wc -l $input_fofn | awk '{print $1}'`
 NUM_DBS_TO_JOIN=100	# Join every $NUM_DBS_TO_JOIN as intermediates, then merge at the end
 JOIN_IDX=0
-CPU=$SLURM_CPUS_PER_TASK
-MEM=$SLURM_MEM_PER_NODE
 
 echo "Set ulimit: ulimit -Sn 32000"
 ulimit -Sn 32000
@@ -44,8 +42,6 @@ do
 	if [ ! -d $output ]; then
 	    echo "
 	    meryl \
-	        threads=$CPU \
-	        memory=$((MEM/1024)) \
 	        k=$k \
 	        union-sum \
 	        output $output \
@@ -53,8 +49,6 @@ do
 	    "
 
 	    meryl \
-	        threads=$CPU \
-	        memory=$((MEM/1024)) \
 	        k=$k \
 	        union-sum \
 	        output $output \
@@ -97,8 +91,6 @@ echo "union-sum of $output_prefix.[ 1 - $JOIN_IDX ] :"
 if [ ! -d $output_prefix ]; then
     echo "
     meryl \
-        threads=$CPU \
-        memory=$((MEM/1024)) \
         k=$k \
         union-sum \
         output $output_prefix.meryl \
@@ -106,8 +98,6 @@ if [ ! -d $output_prefix ]; then
     "
 
     meryl \
-        threads=$CPU \
-        memory=$((MEM/1024)) \
         k=$k \
         union-sum \
         output $output_prefix.meryl \
diff --git a/programs/merqury-1.1/eval/asm_multiplicity.sh b/programs/merqury-1.1/eval/asm_multiplicity.sh
new file mode 100755
index 0000000..51ed3ec
--- /dev/null
+++ b/programs/merqury-1.1/eval/asm_multiplicity.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+if [[ "$#" -lt 3 ]]; then
+	echo "Usage: ./asm_multiplicity.sh <asm.fasta> <asm.meryl> <out>"
+	echo -e "\t<asm.fasta>: assembly fasta file"
+	echo -e "\t<asm.meryl>: assembly meryl dir"
+	echo -e "\t<out>: output file prefix. <out>.copies.wig and <out>.asm_multiplicity.bigWig will be generated."
+	exit 0
+fi
+
+asm_fa=$1
+asm=$2
+out=$3
+
+# Requirements: samtools, ucsc kent utils
+module load samtools
+module load ucsc/396
+
+if [[ ! -e $asm_fa ]]; then
+	samtools faidx $asm_fa
+fi
+
+
+echo "
+# Collect copy numbers in assembly"
+meryl-lookup -dump -memory 12 -sequence $asm_fa -mers $asm | awk '$4=="T"' | java -jar -Xmx1g $MERQURY/util/merylDumpToWig.jar - > $out.copies.wig
+
+echo "
+# Convert to bigwig"
+wigToBigWig $out.copies.wig $asm_fa.fai $out.asm_multiplicity.bigWig
+
+echo "Done!"
+
diff --git a/programs/merqury_June2020/eval/bedCalcN50.jar b/programs/merqury-1.1/eval/bedCalcN50.jar
similarity index 100%
rename from programs/merqury_June2020/eval/bedCalcN50.jar
rename to programs/merqury-1.1/eval/bedCalcN50.jar
diff --git a/programs/merqury-1.1/eval/false_duplications.sh b/programs/merqury-1.1/eval/false_duplications.sh
new file mode 100755
index 0000000..ed7bf0a
--- /dev/null
+++ b/programs/merqury-1.1/eval/false_duplications.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+if [[ -z $1 ]]; then
+	echo "Usage: ./false_duplications.sh <name.asm.spectra-cn.hist>"
+	echo "Get the number of additional k-mers found in an assembly in the single and two copy k-mer peaks from the reads"
+	echo -e "<name.asm.spectra-cn.hist>: spectra-cn.hist generated with Merqury for a pseudo-haplotype or mixed haplotype assembly"
+	exit 0
+fi
+
+hist=$1
+
+cutoff=`cat $hist  | awk '$1==1 {print $2"\t"$3}' | awk -v max=0 'max<$2 {max=$2; mult=$1 } END {printf "%.0f\n", mult*(1.5)}'`
+one_cp=`awk -v cutoff=$cutoff '$1==1 && $2<cutoff {sum+=$NF} END {print sum}' $hist`
+two_cp=`awk -v cutoff=$cutoff '$1==2 && $2<cutoff {sum+=$NF} END {print sum}' $hist`
+thr_cp=`awk -v cutoff=$cutoff '$1==3 && $2<cutoff {sum+=$NF} END {print sum}' $hist`
+fou_cp=`awk -v cutoff=$cutoff '$1==4 && $2<cutoff {sum+=$NF} END {print sum}' $hist`
+mor_cp=`awk -v cutoff=$cutoff '$1==">4" && $2<cutoff {sum+=$NF} END {print sum}' $hist`
+DUPS_TOTAL=`echo "$one_cp $two_cp $thr_cp $fou_cp $mor_cp" | awk '{dup=$2+$3+$4+$5; all=dup+$1} END {print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"dup"\t"all"\t"(100*dup/all)}'`
+echo -e "hist\tcutoff\t1\t2\t3\t4\t>4\tdup(>1)\tall\tdup%"
+echo -e "$hist\t$cutoff\t$DUPS_TOTAL"
+
diff --git a/programs/merqury_June2020/eval/kmerHistToPloidyDepth.jar b/programs/merqury-1.1/eval/kmerHistToPloidyDepth.jar
similarity index 100%
rename from programs/merqury_June2020/eval/kmerHistToPloidyDepth.jar
rename to programs/merqury-1.1/eval/kmerHistToPloidyDepth.jar
diff --git a/programs/merqury-1.1/eval/per_seq_qv.sh b/programs/merqury-1.1/eval/per_seq_qv.sh
new file mode 100755
index 0000000..9f0125d
--- /dev/null
+++ b/programs/merqury-1.1/eval/per_seq_qv.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+if [[ "$#" -lt 3 ]]; then
+	echo "Usage: ./per_seq_qv.sh seq.fasta read.meryl out"
+	echo ""
+	echo "Get QV per seqIDs in seq.fasta"
+	echo -e "seq.fasta:\tassembly, multi-fasta file"
+	echo -e "read.meryl:\tk-mer counts of read set"
+	echo -e "out:\toutput prefix"
+	echo
+	echo "Output will be generated as out.qv"
+	echo "Arang Rhie, 2020-06-15. arrhie@gmail.com"
+	echo
+	exit 0
+fi
+
+seq=$1	# asm.fasta
+read=$2	# read.meryl
+name=$3	# output prefix
+
+k=`meryl print $read | head -n 2 | tail -n 1 | awk '{print length($1)}'`
+echo "Detected k-mer size $k"
+echo
+
+seq_name=`echo $seq | sed 's/.fasta$//g' | sed 's/.fa$//g'`
+
+
+if [[ ! -e $seq_name.0.meryl ]]; then
+
+	if [[ ! -e $seq_name.meryl ]]; then
+		echo "# No $seq_name.meryl found. Counting ${k}-mers..."
+		meryl count k=$k output $seq_name.meryl $seq
+		echo
+	fi
+	echo "# Collect k-mers found in $seq_name only"
+	meryl difference $seq_name.meryl $read output $seq_name.0.meryl
+	echo
+fi
+
+echo "QV per sequences"
+meryl-lookup -existence -sequence $seq -mers $seq_name.0.meryl/ | \
+   awk -v k=$k '{print $1"\t"$NF"\t"$(NF-2)"\t"(-10*log(1-(1-$NF/$(NF-2))^(1/k))/log(10))"\t"(1-(1-$NF/$(NF-2))^(1/k))}' > $name.qv
+
diff --git a/programs/merqury_June2020/eval/qv.sh b/programs/merqury-1.1/eval/qv.sh
similarity index 87%
rename from programs/merqury_June2020/eval/qv.sh
rename to programs/merqury-1.1/eval/qv.sh
index bc37f00..c5ccdaf 100755
--- a/programs/merqury_June2020/eval/qv.sh
+++ b/programs/merqury-1.1/eval/qv.sh
@@ -50,6 +50,9 @@ do
         QV=`echo "$ASM_ONLY $TOTAL" | awk -v k=$k '{print (-10*log(1-(1-$1/$2)^(1/k))/log(10))}'`
         echo -e "$asm\t$ASM_ONLY\t$TOTAL\t$QV\t$ERROR" >> $name.qv
         echo
+
+        meryl-lookup -existence -sequence $asm_fa -mers $asm.0.meryl/ | \
+        awk -v k=$k '{print $1"\t"$NF"\t"$(NF-2)"\t"(-10*log(1-(1-$NF/$(NF-2))^(1/k))/log(10))"\t"(1-(1-$NF/$(NF-2))^(1/k))}' > $name.$asm.qv
 done
 
 if [[ "$asm2_fa" == "" ]]; then
@@ -62,8 +65,8 @@ asm2=`echo $asm2_fa | sed 's/.fasta.gz//g' | sed 's/.fa.gz//g' | sed 's/.fasta//
 
 asm="both"
 
-meryl union output $asm.meryl   $asm1.meryl   $asm2.meryl
-meryl union output $asm.0.meryl $asm1.0.meryl $asm2.0.meryl
+meryl union-sum output $asm.meryl   $asm1.meryl   $asm2.meryl
+meryl union-sum output $asm.0.meryl $asm1.0.meryl $asm2.0.meryl
 
 echo "# QV statistics for $asm"
 ASM_ONLY=`meryl statistics $asm.0.meryl  | head -n4 | tail -n1 | awk '{print $2}'`
@@ -75,3 +78,4 @@ echo
 
 rm -r $asm1.0.meryl $asm1.meryl $asm2.0.meryl $asm2.meryl $asm.0.meryl $asm.meryl
 echo "Done!"
+
diff --git a/programs/merqury-1.1/eval/read_multiplicity.sh b/programs/merqury-1.1/eval/read_multiplicity.sh
new file mode 100755
index 0000000..062add8
--- /dev/null
+++ b/programs/merqury-1.1/eval/read_multiplicity.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+if [[ "$#" -lt 3 ]]; then
+	echo "Usage: ./read_multiplicity.sh <asm.fasta> <read.meryl> <out>"
+	echo -e "\t<asm.fasta>: assembly fasta file"
+	echo -e "\t<read.meryl>: k-mer counts of the reads"
+	echo -e "\t<out>: output file prefix. <out>.read.wig and <out>.read_multiplicity.bigWig will be generated."
+	exit 0
+fi
+
+asm_fa=$1
+read=$2
+out=$3
+asm=`echo $asm_fa | sed 's/.gz$//g' | sed 's/.fasta$//g' | sed 's/.fa$//g'`
+
+module load samtools
+module load ucsc/396
+
+if [[ ! -e $asm_fa.fai ]]; then
+	samtools faidx $asm_fa
+fi
+
+echo "
+# Collect k-mer multiplicity in reads"
+# Adjust memory accordingly
+meryl-lookup -dump -memory 68 -sequence $asm_fa -mers $read | awk '$4=="T"' | java -jar -Xmx1g $MERQURY/util/merylDumpToWig.jar - > $out.read.wig
+
+echo "
+# Convert to bigwig"
+wigToBigWig $out.read.wig $asm_fa.fai $out.read_multiplicity.bigwig
+
diff --git a/programs/merqury_June2020/eval/spectra-cn.sh b/programs/merqury-1.1/eval/spectra-cn.sh
similarity index 92%
rename from programs/merqury_June2020/eval/spectra-cn.sh
rename to programs/merqury-1.1/eval/spectra-cn.sh
index 0338699..f528c47 100755
--- a/programs/merqury_June2020/eval/spectra-cn.sh
+++ b/programs/merqury-1.1/eval/spectra-cn.sh
@@ -115,8 +115,8 @@ do
 
 	echo "# Plot $hist"
 	echo "\
-	$MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-cn -z $hist_asm_only"
-	$MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-cn -z $hist_asm_only
+	Rscript $MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.$asm.spectra-cn -z $hist_asm_only"
+	Rscript $MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.$asm.spectra-cn -z $hist_asm_only
 	echo
 
 	echo "# QV statistics"
@@ -127,6 +127,11 @@ do
         echo -e "$asm\t$ASM_ONLY\t$TOTAL\t$QV\t$ERROR" >> $name.qv
 	echo
 
+	echo "# Per seq QV statistics"
+	meryl-lookup -existence -sequence $asm_fa -mers $asm.0.meryl/ | \
+	awk -v k=$k '{print $1"\t"$NF"\t"$(NF-2)"\t"(-10*log(1-(1-$NF/$(NF-2))^(1/k))/log(10))"\t"(1-(1-$NF/$(NF-2))^(1/k))}' > $name.$asm.qv
+	echo
+
         echo "# k-mer completeness (recoveray rate) with solid k-mers for $asm with > $filt counts"
 	meryl intersect output $asm.solid.meryl $asm.meryl $read_solid
         TOTAL=`meryl statistics $read_solid | head -n3 | tail -n1 | awk '{print $2}'`
@@ -177,8 +182,8 @@ if [[ "$asm2_fa" = "" ]]; then
 
 	echo "#	Plot $hist"
 	echo "\
-	$MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-asm -z $hist_asm_dist_only"
-	$MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-asm -z $hist_asm_dist_only
+	Rscript $MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-asm -z $hist_asm_dist_only"
+	Rscript $MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-asm -z $hist_asm_dist_only
 	echo
 
 	echo "# Clean up"
@@ -265,8 +270,8 @@ echo
 
 echo "# Plot $hist"
 echo "\
-$MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-cn -z $hist_asm_only"
-$MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-cn -z $hist_asm_only
+Rscript $MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-cn -z $hist_asm_only"
+Rscript $MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-cn -z $hist_asm_only
 echo
 
 echo "# QV"
@@ -317,7 +322,7 @@ else
 fi
 
 echo "Plot $hist"
-$MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-asm -z $hist_asm_dist_only
+Rscript $MERQURY/plot/plot_spectra_cn.R -f $hist -o $name.spectra-asm -z $hist_asm_dist_only
 echo
 
 echo "Clean up"
diff --git a/programs/merqury_June2020/example/README.txt b/programs/merqury-1.1/example/README.txt
similarity index 100%
rename from programs/merqury_June2020/example/README.txt
rename to programs/merqury-1.1/example/README.txt
diff --git a/programs/merqury_June2020/example/inherited_hapmers.fl.png b/programs/merqury-1.1/example/inherited_hapmers.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/inherited_hapmers.fl.png
rename to programs/merqury-1.1/example/inherited_hapmers.fl.png
diff --git a/programs/merqury_June2020/example/inherited_hapmers.ln.png b/programs/merqury-1.1/example/inherited_hapmers.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/inherited_hapmers.ln.png
rename to programs/merqury-1.1/example/inherited_hapmers.ln.png
diff --git a/programs/merqury_June2020/example/inherited_hapmers.st.png b/programs/merqury-1.1/example/inherited_hapmers.st.png
similarity index 100%
rename from programs/merqury_June2020/example/inherited_hapmers.st.png
rename to programs/merqury-1.1/example/inherited_hapmers.st.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.100_20000.col.block.N.png b/programs/merqury-1.1/example/triocanu_clr.100_20000.col.block.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.100_20000.col.block.N.png
rename to programs/merqury-1.1/example/triocanu_clr.100_20000.col.block.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.100_20000.col.continuity.N.png b/programs/merqury-1.1/example/triocanu_clr.100_20000.col.continuity.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.100_20000.col.continuity.N.png
rename to programs/merqury-1.1/example/triocanu_clr.100_20000.col.continuity.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.100_20000.cvi.block.N.png b/programs/merqury-1.1/example/triocanu_clr.100_20000.cvi.block.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.100_20000.cvi.block.N.png
rename to programs/merqury-1.1/example/triocanu_clr.100_20000.cvi.block.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.100_20000.cvi.continuity.N.png b/programs/merqury-1.1/example/triocanu_clr.100_20000.cvi.continuity.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.100_20000.cvi.continuity.N.png
rename to programs/merqury-1.1/example/triocanu_clr.100_20000.cvi.continuity.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.10_20000.col.block.N.png b/programs/merqury-1.1/example/triocanu_clr.10_20000.col.block.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.10_20000.col.block.N.png
rename to programs/merqury-1.1/example/triocanu_clr.10_20000.col.block.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.10_20000.col.continuity.N.png b/programs/merqury-1.1/example/triocanu_clr.10_20000.col.continuity.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.10_20000.col.continuity.N.png
rename to programs/merqury-1.1/example/triocanu_clr.10_20000.col.continuity.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.10_20000.cvi.block.N.png b/programs/merqury-1.1/example/triocanu_clr.10_20000.cvi.block.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.10_20000.cvi.block.N.png
rename to programs/merqury-1.1/example/triocanu_clr.10_20000.cvi.block.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.10_20000.cvi.continuity.N.png b/programs/merqury-1.1/example/triocanu_clr.10_20000.cvi.continuity.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.10_20000.cvi.continuity.N.png
rename to programs/merqury-1.1/example/triocanu_clr.10_20000.cvi.continuity.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.10_20000.phased_block.blob.png b/programs/merqury-1.1/example/triocanu_clr.col.10_20000.phased_block.blob.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.10_20000.phased_block.blob.png
rename to programs/merqury-1.1/example/triocanu_clr.col.10_20000.phased_block.blob.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.block.N.png b/programs/merqury-1.1/example/triocanu_clr.col.block.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.block.N.png
rename to programs/merqury-1.1/example/triocanu_clr.col.block.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.col0.hapmer.spectra-cn.fl.png b/programs/merqury-1.1/example/triocanu_clr.col.col0.hapmer.spectra-cn.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.col0.hapmer.spectra-cn.fl.png
rename to programs/merqury-1.1/example/triocanu_clr.col.col0.hapmer.spectra-cn.fl.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.col0.hapmer.spectra-cn.ln.png b/programs/merqury-1.1/example/triocanu_clr.col.col0.hapmer.spectra-cn.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.col0.hapmer.spectra-cn.ln.png
rename to programs/merqury-1.1/example/triocanu_clr.col.col0.hapmer.spectra-cn.ln.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.col0.hapmer.spectra-cn.st.png b/programs/merqury-1.1/example/triocanu_clr.col.col0.hapmer.spectra-cn.st.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.col0.hapmer.spectra-cn.st.png
rename to programs/merqury-1.1/example/triocanu_clr.col.col0.hapmer.spectra-cn.st.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.continuity.N.png b/programs/merqury-1.1/example/triocanu_clr.col.continuity.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.continuity.N.png
rename to programs/merqury-1.1/example/triocanu_clr.col.continuity.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.fl.png b/programs/merqury-1.1/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.fl.png
rename to programs/merqury-1.1/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.fl.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.ln.png b/programs/merqury-1.1/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.ln.png
rename to programs/merqury-1.1/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.ln.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.st.png b/programs/merqury-1.1/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.st.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.st.png
rename to programs/merqury-1.1/example/triocanu_clr.col.cvi0.hapmer.spectra-cn.st.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.spectra-cn.fl.png b/programs/merqury-1.1/example/triocanu_clr.col.spectra-cn.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.spectra-cn.fl.png
rename to programs/merqury-1.1/example/triocanu_clr.col.spectra-cn.fl.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.spectra-cn.ln.png b/programs/merqury-1.1/example/triocanu_clr.col.spectra-cn.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.spectra-cn.ln.png
rename to programs/merqury-1.1/example/triocanu_clr.col.spectra-cn.ln.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.col.spectra-cn.st.png b/programs/merqury-1.1/example/triocanu_clr.col.spectra-cn.st.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.col.spectra-cn.st.png
rename to programs/merqury-1.1/example/triocanu_clr.col.spectra-cn.st.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.10_20000.phased_block.blob.png b/programs/merqury-1.1/example/triocanu_clr.cvi.10_20000.phased_block.blob.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.10_20000.phased_block.blob.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.10_20000.phased_block.blob.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.block.N.png b/programs/merqury-1.1/example/triocanu_clr.cvi.block.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.block.N.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.block.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.fl.png b/programs/merqury-1.1/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.fl.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.fl.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.ln.png b/programs/merqury-1.1/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.ln.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.ln.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.st.png b/programs/merqury-1.1/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.st.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.st.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.col0.hapmer.spectra-cn.st.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.continuity.N.png b/programs/merqury-1.1/example/triocanu_clr.cvi.continuity.N.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.continuity.N.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.continuity.N.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.fl.png b/programs/merqury-1.1/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.fl.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.fl.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.ln.png b/programs/merqury-1.1/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.ln.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.ln.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.st.png b/programs/merqury-1.1/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.st.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.st.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.cvi0.hapmer.spectra-cn.st.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.spectra-cn.fl.png b/programs/merqury-1.1/example/triocanu_clr.cvi.spectra-cn.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.spectra-cn.fl.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.spectra-cn.fl.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.spectra-cn.ln.png b/programs/merqury-1.1/example/triocanu_clr.cvi.spectra-cn.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.spectra-cn.ln.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.spectra-cn.ln.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.cvi.spectra-cn.st.png b/programs/merqury-1.1/example/triocanu_clr.cvi.spectra-cn.st.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.cvi.spectra-cn.st.png
rename to programs/merqury-1.1/example/triocanu_clr.cvi.spectra-cn.st.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.hapmers.blob.png b/programs/merqury-1.1/example/triocanu_clr.hapmers.blob.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.hapmers.blob.png
rename to programs/merqury-1.1/example/triocanu_clr.hapmers.blob.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.spectra-asm.fl.png b/programs/merqury-1.1/example/triocanu_clr.spectra-asm.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.spectra-asm.fl.png
rename to programs/merqury-1.1/example/triocanu_clr.spectra-asm.fl.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.spectra-asm.ln.png b/programs/merqury-1.1/example/triocanu_clr.spectra-asm.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.spectra-asm.ln.png
rename to programs/merqury-1.1/example/triocanu_clr.spectra-asm.ln.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.spectra-asm.st.png b/programs/merqury-1.1/example/triocanu_clr.spectra-asm.st.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.spectra-asm.st.png
rename to programs/merqury-1.1/example/triocanu_clr.spectra-asm.st.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.spectra-cn.fl.png b/programs/merqury-1.1/example/triocanu_clr.spectra-cn.fl.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.spectra-cn.fl.png
rename to programs/merqury-1.1/example/triocanu_clr.spectra-cn.fl.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.spectra-cn.ln.png b/programs/merqury-1.1/example/triocanu_clr.spectra-cn.ln.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.spectra-cn.ln.png
rename to programs/merqury-1.1/example/triocanu_clr.spectra-cn.ln.png
diff --git a/programs/merqury_June2020/example/triocanu_clr.spectra-cn.st.png b/programs/merqury-1.1/example/triocanu_clr.spectra-cn.st.png
similarity index 100%
rename from programs/merqury_June2020/example/triocanu_clr.spectra-cn.st.png
rename to programs/merqury-1.1/example/triocanu_clr.spectra-cn.st.png
diff --git a/programs/merqury_June2020/merqury-mash.sh b/programs/merqury-1.1/merqury-mash.sh
similarity index 81%
rename from programs/merqury_June2020/merqury-mash.sh
rename to programs/merqury-1.1/merqury-mash.sh
index d7b4372..8788b46 100755
--- a/programs/merqury_June2020/merqury-mash.sh
+++ b/programs/merqury-1.1/merqury-mash.sh
@@ -15,7 +15,15 @@ input_fofn=$3
 cpus=$4
 
 name=`echo $asm | sed 's/.fasta$//g' | sed 's/.fa$//g' | sed 's/.fasta.gz//g' | sed 's/.fa.gz//g'`
-module load mash
+
+source $MERQURY/util/util.sh
+
+has_module=$(check_module)
+if [[ $has_module -gt 0 ]]; then
+        echo "No modules available.."
+else
+        module load mash
+fi
 
 mash sketch -s 1000000 -k $k $asm
 mash screen -p $cpus $asm.msh `cat $input_fofn | tr '\n' ' '` > $name.msh.idy
diff --git a/programs/merqury_June2020/merqury.sh b/programs/merqury-1.1/merqury.sh
similarity index 100%
rename from programs/merqury_June2020/merqury.sh
rename to programs/merqury-1.1/merqury.sh
diff --git a/programs/merqury_June2020/plot/plot_blob.R b/programs/merqury-1.1/plot/plot_blob.R
similarity index 100%
rename from programs/merqury_June2020/plot/plot_blob.R
rename to programs/merqury-1.1/plot/plot_blob.R
diff --git a/programs/merqury_June2020/plot/plot_block_N.R b/programs/merqury-1.1/plot/plot_block_N.R
similarity index 100%
rename from programs/merqury_June2020/plot/plot_block_N.R
rename to programs/merqury-1.1/plot/plot_block_N.R
diff --git a/programs/merqury_June2020/plot/plot_spectra_asm.R b/programs/merqury-1.1/plot/plot_spectra_asm.R
similarity index 100%
rename from programs/merqury_June2020/plot/plot_spectra_asm.R
rename to programs/merqury-1.1/plot/plot_spectra_asm.R
diff --git a/programs/merqury_June2020/plot/plot_spectra_cn.R b/programs/merqury-1.1/plot/plot_spectra_cn.R
similarity index 100%
rename from programs/merqury_June2020/plot/plot_spectra_cn.R
rename to programs/merqury-1.1/plot/plot_spectra_cn.R
diff --git a/programs/merqury_June2020/trio/bedMerToPhaseBlock.jar b/programs/merqury-1.1/trio/bedMerToPhaseBlock.jar
similarity index 100%
rename from programs/merqury_June2020/trio/bedMerToPhaseBlock.jar
rename to programs/merqury-1.1/trio/bedMerToPhaseBlock.jar
diff --git a/programs/merqury_June2020/trio/block_n_stats.sh b/programs/merqury-1.1/trio/block_n_stats.sh
similarity index 96%
rename from programs/merqury_June2020/trio/block_n_stats.sh
rename to programs/merqury-1.1/trio/block_n_stats.sh
index ae7eadb..af85ef5 100755
--- a/programs/merqury_June2020/trio/block_n_stats.sh
+++ b/programs/merqury-1.1/trio/block_n_stats.sh
@@ -65,7 +65,7 @@ do
     if [[ $num_gaps -gt 0 ]]; then
         echo "# Found $num_gaps. Generating stats for both scaffolds and contigs."
         awk -v asm=$asm '{print "scaffold\t"asm"\t"$2}' $asm.fasta.fai | sort -nr -k3 - > $out.$asm.scaff.sizes
-        awk '{print $1"\t0\t"$2}' $asm.fasta.fai | bedtools subtract -a - -b $asm.gaps.bed | awk '{print "contig\t"asm"\t"($NF-$(NF-1))}' | sort -nr -k3 - > $out.$asm.contig.sizes
+        awk '{print $1"\t0\t"$2}' $asm.fasta.fai | bedtools subtract -a - -b $asm.gaps.bed | awk -v asm=$asm '{print "contig\t"asm"\t"($NF-$(NF-1))}' | sort -nr -k3 - > $out.$asm.contig.sizes
     else
         echo "# No gaps found. This is a contig set."
         awk -v asm=$asm '{print "contig\t"asm"\t"$2}' $asm.fasta.fai | sort -nr -k3 - > $out.$asm.contig.sizes
diff --git a/programs/merqury_June2020/trio/exclude_reads.sh b/programs/merqury-1.1/trio/exclude_reads.sh
similarity index 100%
rename from programs/merqury_June2020/trio/exclude_reads.sh
rename to programs/merqury-1.1/trio/exclude_reads.sh
diff --git a/programs/merqury_June2020/trio/fastaGetGaps.jar b/programs/merqury-1.1/trio/fastaGetGaps.jar
similarity index 100%
rename from programs/merqury_June2020/trio/fastaGetGaps.jar
rename to programs/merqury-1.1/trio/fastaGetGaps.jar
diff --git a/programs/merqury_June2020/trio/hap_blob.sh b/programs/merqury-1.1/trio/hap_blob.sh
similarity index 100%
rename from programs/merqury_June2020/trio/hap_blob.sh
rename to programs/merqury-1.1/trio/hap_blob.sh
diff --git a/programs/merqury_June2020/trio/hapmers.sh b/programs/merqury-1.1/trio/hapmers.sh
similarity index 97%
rename from programs/merqury_June2020/trio/hapmers.sh
rename to programs/merqury-1.1/trio/hapmers.sh
index 6e4551c..aeaa48f 100755
--- a/programs/merqury_June2020/trio/hapmers.sh
+++ b/programs/merqury-1.1/trio/hapmers.sh
@@ -22,9 +22,11 @@ if [[ "$#" -lt 2 ]]; then
 	exit -1
 fi
 
-hap1_meryl=$1
-hap2_meryl=$2
-child_meryl=$3
+source $MERQURY/util/util.sh
+
+hap1_meryl=`link $1`
+hap2_meryl=`link $2`
+child_meryl=`link $3`
 
 hap1=${hap1_meryl%.meryl*}
 hap2=${hap2_meryl%.meryl*}
diff --git a/programs/merqury-1.1/trio/hapmers_to_bigwig.sh b/programs/merqury-1.1/trio/hapmers_to_bigwig.sh
new file mode 100755
index 0000000..4b208ac
--- /dev/null
+++ b/programs/merqury-1.1/trio/hapmers_to_bigwig.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+if [[ -z $1 ]]; then
+    echo "Usage: ./hapmers_to_bigWig.sh <in.hap.bed> <asm.fai> [convert_pipes]"
+    echo -e "\t<in.hap.bed>: ex. out.asm.mat.inherited.bed"
+    echo -e "\t<asm.fai>: generate with samtools faidx"
+    echo -e "\t[convert_pipes]: convert '|' to '_' in asm seq names by default. Set to F if not wanted."
+    exit 0
+fi
+
+bed=$1
+fai=$2
+convert=$3
+
+module load bedtools
+module load ucsc/396
+
+bg=${bed/.bed/.bg}
+
+if [[ "$convert" = "F" ]]; then
+    echo "# keep pipes"
+    sizes=${fai/.fai/.sizes}
+    cat $fai | cut -f1-2 > $sizes
+    cat $bed | bedtools genomecov -bg -g $sizes -i - > $bg
+else
+    sizes=${fai/.fai/.sizes}
+    cat $fai | cut -f1-2 | sed 's/|/_/g' > $sizes
+    cat $bed | sed 's/|/_/g' | bedtools genomecov -bg -g $sizes -i - > $bg
+fi
+
+sort=${bg/.bg/.srt.bg}
+bedSort $bg $sort
+
+bw=${bed/.bed/.bigwig}
+bedGraphToBigWig $sort $sizes $bw
+
+rm $bg $sort
+
diff --git a/programs/merqury_June2020/trio/phase_block.sh b/programs/merqury-1.1/trio/phase_block.sh
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block.sh
rename to programs/merqury-1.1/trio/phase_block.sh
diff --git a/programs/merqury_June2020/trio/phase_block/IO/Rwrapper.java b/programs/merqury-1.1/trio/phase_block/IO/Rwrapper.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/IO/Rwrapper.java
rename to programs/merqury-1.1/trio/phase_block/IO/Rwrapper.java
diff --git a/programs/merqury_June2020/trio/phase_block/IO/basic/BufferedFileReader.java b/programs/merqury-1.1/trio/phase_block/IO/basic/BufferedFileReader.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/IO/basic/BufferedFileReader.java
rename to programs/merqury-1.1/trio/phase_block/IO/basic/BufferedFileReader.java
diff --git a/programs/merqury_June2020/trio/phase_block/IO/basic/FileMaker.java b/programs/merqury-1.1/trio/phase_block/IO/basic/FileMaker.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/IO/basic/FileMaker.java
rename to programs/merqury-1.1/trio/phase_block/IO/basic/FileMaker.java
diff --git a/programs/merqury_June2020/trio/phase_block/IO/basic/FileReader.java b/programs/merqury-1.1/trio/phase_block/IO/basic/FileReader.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/IO/basic/FileReader.java
rename to programs/merqury-1.1/trio/phase_block/IO/basic/FileReader.java
diff --git a/programs/merqury_June2020/trio/phase_block/IO/basic/Format.java b/programs/merqury-1.1/trio/phase_block/IO/basic/Format.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/IO/basic/Format.java
rename to programs/merqury-1.1/trio/phase_block/IO/basic/Format.java
diff --git a/programs/merqury_June2020/trio/phase_block/IO/basic/IOUtil.java b/programs/merqury-1.1/trio/phase_block/IO/basic/IOUtil.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/IO/basic/IOUtil.java
rename to programs/merqury-1.1/trio/phase_block/IO/basic/IOUtil.java
diff --git a/programs/merqury_June2020/trio/phase_block/IO/basic/RegExp.java b/programs/merqury-1.1/trio/phase_block/IO/basic/RegExp.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/IO/basic/RegExp.java
rename to programs/merqury-1.1/trio/phase_block/IO/basic/RegExp.java
diff --git a/programs/merqury_June2020/trio/phase_block/IO/basic/Wrapper.java b/programs/merqury-1.1/trio/phase_block/IO/basic/Wrapper.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/IO/basic/Wrapper.java
rename to programs/merqury-1.1/trio/phase_block/IO/basic/Wrapper.java
diff --git a/programs/merqury_June2020/trio/phase_block/MerToPhaseBlock.java b/programs/merqury-1.1/trio/phase_block/MerToPhaseBlock.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/MerToPhaseBlock.java
rename to programs/merqury-1.1/trio/phase_block/MerToPhaseBlock.java
diff --git a/programs/merqury_June2020/trio/phase_block/README.md b/programs/merqury-1.1/trio/phase_block/README.md
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/README.md
rename to programs/merqury-1.1/trio/phase_block/README.md
diff --git a/programs/merqury_June2020/trio/phase_block/bed/util/Bed.java b/programs/merqury-1.1/trio/phase_block/bed/util/Bed.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/bed/util/Bed.java
rename to programs/merqury-1.1/trio/phase_block/bed/util/Bed.java
diff --git a/programs/merqury_June2020/trio/phase_block/bed/util/Region.java b/programs/merqury-1.1/trio/phase_block/bed/util/Region.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/bed/util/Region.java
rename to programs/merqury-1.1/trio/phase_block/bed/util/Region.java
diff --git a/programs/merqury_June2020/trio/phase_block/build_jar.sh b/programs/merqury-1.1/trio/phase_block/build_jar.sh
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/build_jar.sh
rename to programs/merqury-1.1/trio/phase_block/build_jar.sh
diff --git a/programs/merqury_June2020/trio/phase_block/genome/Chromosome.java b/programs/merqury-1.1/trio/phase_block/genome/Chromosome.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/genome/Chromosome.java
rename to programs/merqury-1.1/trio/phase_block/genome/Chromosome.java
diff --git a/programs/merqury_June2020/trio/phase_block/genome/ChromosomeComparator.java b/programs/merqury-1.1/trio/phase_block/genome/ChromosomeComparator.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/genome/ChromosomeComparator.java
rename to programs/merqury-1.1/trio/phase_block/genome/ChromosomeComparator.java
diff --git a/programs/merqury_June2020/trio/phase_block/genome/util/Util.java b/programs/merqury-1.1/trio/phase_block/genome/util/Util.java
similarity index 100%
rename from programs/merqury_June2020/trio/phase_block/genome/util/Util.java
rename to programs/merqury-1.1/trio/phase_block/genome/util/Util.java
diff --git a/programs/merqury_June2020/trio/spectra-hap.sh b/programs/merqury-1.1/trio/spectra-hap.sh
similarity index 100%
rename from programs/merqury_June2020/trio/spectra-hap.sh
rename to programs/merqury-1.1/trio/spectra-hap.sh
diff --git a/programs/merqury_June2020/trio/switch_error.sh b/programs/merqury-1.1/trio/switch_error.sh
similarity index 100%
rename from programs/merqury_June2020/trio/switch_error.sh
rename to programs/merqury-1.1/trio/switch_error.sh
diff --git a/programs/merqury-1.1/util/bed_to_bigwig.sh b/programs/merqury-1.1/util/bed_to_bigwig.sh
new file mode 100755
index 0000000..fcc554b
--- /dev/null
+++ b/programs/merqury-1.1/util/bed_to_bigwig.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+if [[ -z $1 ]]; then
+    echo "Usage: ./bed_to_bigWig.sh <bed> <asm.fai> <convert_pipes>"
+    echo -e "\t<bed>: ex. out.asm.mat.inherited.bed"
+    echo -e "\t<asm.fai>: generate with samtools faidx"
+    echo -e "\t<convert_pipes>: convert | to _ by default. Set to F if not wanted."
+    exit 0
+fi
+
+bed=$1
+fai=$2
+convert=$3
+
+module load bedtools
+module load ucsc/396
+
+bg=${bed/.bed/.bg}
+
+if [[ "$convert" = "F" ]]; then
+    echo "# keep pipes"
+    sizes=${fai/.fai/.sizes}
+    cat $fai | cut -f1-2 > $sizes
+    cat $bed | bedtools genomecov -bg -g $sizes -i - > $bg
+else
+    sizes=${fai/.fai/.sizes}
+    cat $fai | cut -f1-2 | sed 's/|/_/g' > $sizes
+    cat $bed | sed 's/|/_/g' | bedtools genomecov -bg -g $sizes -i - > $bg
+fi
+
+sort=${bg/.bg/.srt.bg}
+bedSort $bg $sort
+
+bw=${bed/.bed/.bigwig}
+bedGraphToBigWig $sort $sizes $bw
+
+rm $bg $sort
+
+
diff --git a/programs/merqury-1.1/util/merylDumpToWig.jar b/programs/merqury-1.1/util/merylDumpToWig.jar
new file mode 100644
index 0000000000000000000000000000000000000000..96b05c7206e38a4a03522e3e6c33d0d8f9543071
GIT binary patch
literal 17892
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
F4*)=pAMOAE

literal 0
HcmV?d00001

diff --git a/programs/merqury_June2020/util/util.sh b/programs/merqury-1.1/util/util.sh
similarity index 100%
rename from programs/merqury_June2020/util/util.sh
rename to programs/merqury-1.1/util/util.sh
diff --git a/programs/merqury_June2020/.DS_Store b/programs/merqury_June2020/.DS_Store
deleted file mode 100644
index f30f8f11f1832ec8963d2f01db1c78ff59a93b04..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8zEL;p&0Z1N%F(jFwBGMr9z-FYR6es5-<>%)>Wk#vd
z5Eu=C!5jjhyvxdv#8AqR$&kZ<l7EqebJ7iilk;;6AU@HnV_;xFlFiL`aY@R_PXd)C
z3q{ZUx_bDKBf5$d0xAkJkZqU%vWSHtm7$Cwks$}gc1HeZ3=9l#Ib^$Exi$ZV+KnWS
zuo;^?ioJ{qAbZ&vQW+{35*czC3K()2Qc-MoUTMX^z<{O#*$pzaQZP4Qs6w~|w<;9(
zxPqL+zyfwhK0^ttaAgDs0LXFq3?(SeV{ku>EQjo{`L`>6!UG4YH#Z;QBy931j$udu
zxrT+IgrSHblOZ3)UdBt!V0)o*$o4AluZ1NDxL#y?vB{&@%X9%^Zz)3wD2<{90#p#i
zF$@eZ!H$8-Av@;B8!uSwurR>o5rKeB9>p=>3KQg>;ebKu2$W~Jhl6KE{V*B=qai@m
z5CD}Apc)ZGJ3!j_3=I$(B*ehTzyR(7FoNo1sLhPvegFeV4x|-CgS3KZkX8mp5DRPu
zSSte~0}EIuBe)v^(g*62fM~FG21W+3b_PbU%?u2TV4E2j7$Mpj7$Mpj7@<8BMu>I>
zNL9|jzzER}wqukS4S~@RK!gA@ged^3|6LgvaP|Kosz%At5Eu=CVHpC9EH1$=PT)!z
zyZ=CSEvPyM_W+^lK(#p|sGf%KK}x`ynIHp-5?~HQ4x|-S?SrdgMg~YtKH3m~h0rKH
J8UpkW0RSt4-I@RZ

diff --git a/programs/meryl-1.0/.DS_Store b/programs/meryl-1.0/.DS_Store
deleted file mode 100644
index cc1ad41252f6ce4314ddfc1ef5f88a2bc6376f17..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8zj35RBCIAV8Fop~hRD=~|9@vZu23>|khFpde1~aJK
zV5dNC=VtI>$YjW4C}lu)ze!4Qa!yiyeh$bBIF#h18wMxm=N5pJFsA9vVPIgup)xn$
z#U&{xKM54x?W?T6T|Ior5ufT55>yvtAh{xY0?09=cr*k?Ltr!nMnhmU1aO7`BSeOS
z8$yqgqaiRF0;3@S4*^j5pa5yxGdMu$1_%w3Vqj!o0Cxcx85me#ni#?T00xj8NGpg2
zX$8?BtqhDH7T651Rt83>Rz`3)1f&ntB>~Z3?F@`yn?ZcAb_PbU%?u2T5bX?%P@7?$
z7e<J721bZ>21c;$FxQRJqaiRF0<aKZhA;#`^}j0v11t+cL`TWd5Eu=C5fK86EH1$=
zPT)!zyMIA-EvP<CfJ%evU`TZgs+dt50ZfnqMG2@<P<0Q|3ZlVPF(U&5SnFs*02V@{
K^k@jsKLh}hZ9AI)

-- 
GitLab