From 21499f6accbba3722f050fcbe20a14d11fa65f57 Mon Sep 17 00:00:00 2001 From: Pavankumar Videm Date: Thu, 23 Jan 2025 12:19:27 +0100 Subject: [PATCH] Add tests for plotEnrichment --- .../test_data/multiBamSummary_regions.bed | 3 ++ .../test/test_data/plotEnrichment_output.png | Bin 0 -> 36874 bytes .../deeptools/test/test_plotEnrichment.py | 39 ++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 pydeeptools/deeptools/test/test_data/multiBamSummary_regions.bed create mode 100644 pydeeptools/deeptools/test/test_data/plotEnrichment_output.png create mode 100644 pydeeptools/deeptools/test/test_plotEnrichment.py diff --git a/pydeeptools/deeptools/test/test_data/multiBamSummary_regions.bed b/pydeeptools/deeptools/test/test_data/multiBamSummary_regions.bed new file mode 100644 index 0000000000..5122659209 --- /dev/null +++ b/pydeeptools/deeptools/test/test_data/multiBamSummary_regions.bed @@ -0,0 +1,3 @@ +chrM 1 10 +chrM 5 15 +chrM 10 20 diff --git a/pydeeptools/deeptools/test/test_data/plotEnrichment_output.png b/pydeeptools/deeptools/test/test_data/plotEnrichment_output.png new file mode 100644 index 0000000000000000000000000000000000000000..6302d954538f365f8fcd31ed62708b5b1485bbac GIT binary patch literal 36874 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 literal 0 HcmV?d00001 diff --git a/pydeeptools/deeptools/test/test_plotEnrichment.py b/pydeeptools/deeptools/test/test_plotEnrichment.py new file mode 100644 index 0000000000..11fb08a751 --- /dev/null +++ b/pydeeptools/deeptools/test/test_plotEnrichment.py @@ -0,0 +1,39 @@ +import deeptools.plotEnrichment +import deeptools.utilities +import os.path +from os import unlink +from matplotlib.testing.compare import compare_images + +ROOT = os.path.dirname(os.path.abspath(__file__)) + "/test_data/" + + +def test_plotEnrichment(): + """ + Test minimal command line args for plotEnrichment + """ + BAM = ROOT + "bowtie2_test1.bam" + BED = ROOT + "multiBamSummary_regions.bed" + outpng = '/tmp/test_plot.png' + outcounts = '/tmp/test_counts.txt' + + args = "--bamfiles {0} {0} --BED {1} {1} --minMappingQuality 0 --labels bowtie2_test1.bam bowtie2_test1.bam --regionLabels up down --plotWidth 20 --plotHeight 20 --numPlotsPerRow 4 --alpha 0.9 --plotFileFormat png --plotFile {2} --outRawCounts {3}".format(BAM, BED, outpng, outcounts).split() + deeptools.plotEnrichment.main(args) + + res = compare_images(ROOT + 'plotEnrichment_output.png', outpng, 50) + + + assert res is None, res + unlink(outpng) + + _foo = open(outcounts, 'r') + resp = _foo.readlines() + _foo.close() + + expected = ['file\tfeatureType\tpercent\tfeatureReadCount\ttotalReadCount\n', + 'bowtie2_test1.bam\tup\t100.00\t47\t47\n', + 'bowtie2_test1.bam\tdown\t100.00\t47\t47\n', + 'bowtie2_test1.bam\tup\t100.00\t47\t47\n', + 'bowtie2_test1.bam\tdown\t100.00\t47\t47\n'] + + assert f"{resp}" == f"{expected}", f"{resp} != {expected}" + unlink(outcounts)