From 2bdb4fc293f928033bd2968f2cf53d2a146a8762 Mon Sep 17 00:00:00 2001 From: efmanu Date: Sun, 4 Jul 2021 04:49:02 +1000 Subject: [PATCH 1/3] unit tests --- Manifest.toml | 288 +++++++++++++++++++++++++++++++++++++++++++++++ Project.toml | 4 +- test/runtests.jl | 102 +++++++++++++++++ 3 files changed, 392 insertions(+), 2 deletions(-) create mode 100644 Manifest.toml create mode 100644 test/runtests.jl diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000..91bb4d9 --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,288 @@ +# This file is machine-generated - editing it directly is not advised + +[[ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" + +[[Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.0" + +[[Compat]] +deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] +git-tree-sha1 = "dc7dedc2c2aa9faf59a55c622760a25cbefbe941" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "3.31.0" + +[[Dash]] +deps = ["CodecZlib", "DashBase", "DashCoreComponents", "DashHtmlComponents", "DashTable", "DataStructures", "HTTP", "JSON", "JSON2", "MD5", "PlotlyBase", "Sockets", "Test", "UUIDs"] +git-tree-sha1 = "7c09315c7dbfd9510dd822fcee3910c4c139afd8" +uuid = "1b08a953-4be3-4667-9a23-3db579824955" +version = "0.1.4" + +[[DashBase]] +deps = ["JSON2", "Test"] +git-tree-sha1 = "fc7632ba6b4f1c085620870142114f428f51eff0" +uuid = "03207cf0-e2b3-4b91-9ca8-690cf0fb507e" +version = "0.1.0" + +[[DashCoreComponents]] +deps = ["DashBase"] +git-tree-sha1 = "4f4935719119350b1f4c464341ef64743920ea74" +uuid = "1b08a953-4be3-4667-9a23-9da06441d987" +version = "1.16.0" + +[[DashHtmlComponents]] +deps = ["DashBase"] +git-tree-sha1 = "86d6f3575d8456190f0f3523e7313eaa8432c905" +uuid = "1b08a953-4be3-4667-9a23-24100242a84a" +version = "1.1.3" + +[[DashTable]] +deps = ["DashBase"] +git-tree-sha1 = "93dc7fa58ce249c507e9a5b59b347ff623f32f76" +uuid = "1b08a953-4be3-4667-9a23-f0e2ba4deb9a" +version = "4.11.3" + +[[DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "4437b64df1e0adccc3e5d1adbc3ac741095e4677" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.9" + +[[Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[DelimitedFiles]] +deps = ["Mmap"] +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" + +[[Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "a32185f5428d3986f47c2ab78b1f216d5e6cc96f" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.8.5" + +[[Downloads]] +deps = ["ArgTools", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" + +[[HTTP]] +deps = ["Base64", "Dates", "IniFile", "Logging", "MbedTLS", "NetworkOptions", "Sockets", "URIs"] +git-tree-sha1 = "c6a1fff2fd4b1da29d3dccaffb1e1001244d844e" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "0.9.12" + +[[IniFile]] +deps = ["Test"] +git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" +uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" +version = "0.5.0" + +[[InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[JLLWrappers]] +deps = ["Preferences"] +git-tree-sha1 = "642a199af8b68253517b80bd3bfd17eb4e84df6e" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.3.0" + +[[JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.1" + +[[JSON2]] +deps = ["Dates", "Parsers", "Test"] +git-tree-sha1 = "66397cc6c08922f98a28ab05a8d3002f9853b129" +uuid = "2535ab7d-5cd8-5a07-80ac-9b1792aadce3" +version = "0.3.2" + +[[Kaleido_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "2ef87eeaa28713cb010f9fb0be288b6c1a4ecd53" +uuid = "f7e6163d-2fa5-5f23-b69c-1db539e41963" +version = "0.1.0+0" + +[[LaTeXStrings]] +git-tree-sha1 = "c7f1c695e06c01b95a67f0cd1d34994f3e7db104" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.2.1" + +[[LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" + +[[LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" + +[[LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" + +[[Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[LinearAlgebra]] +deps = ["Libdl"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[MD5]] +deps = ["Random", "SHA"] +git-tree-sha1 = "eeffe42284464c35a08026d23aa948421acf8923" +uuid = "6ac74813-4b46-53a4-afec-0b5dc9d7885c" +version = "0.2.1" + +[[Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"] +git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.0.3" + +[[MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" + +[[Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" + +[[NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" + +[[OrderedCollections]] +git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.4.1" + +[[Parsers]] +deps = ["Dates"] +git-tree-sha1 = "c8abc88faa3f7a3950832ac5d6e690881590d6dc" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "1.1.0" + +[[Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" + +[[PlotlyBase]] +deps = ["Base64", "Dates", "DelimitedFiles", "DocStringExtensions", "JSON", "Kaleido_jll", "LaTeXStrings", "Logging", "Pkg", "REPL", "Requires", "Statistics", "UUIDs"] +git-tree-sha1 = "bca220daa9705b891a42c6ce0c20534a3196e73e" +uuid = "a03496cd-edff-5a9b-9e67-9cda94a718b5" +version = "0.5.4" + +[[Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00cfd92944ca9c760982747e9a1d0d5d86ab1e5a" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.2.2" + +[[Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[Random]] +deps = ["Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "4036a3bd08ac7e968e27c203d45f5fff15020621" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.1.3" + +[[SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[SparseArrays]] +deps = ["LinearAlgebra", "Random"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" + +[[Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" + +[[Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[TranscodingStreams]] +deps = ["Random", "Test"] +git-tree-sha1 = "7c53c35547de1c5b9d46a4797cf6d8253807108c" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.9.5" + +[[URIs]] +git-tree-sha1 = "97bbe755a53fe859669cd907f2d96aee8d2c1355" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.3.0" + +[[UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" + +[[nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" + +[[p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" diff --git a/Project.toml b/Project.toml index 74466cd..35ee269 100644 --- a/Project.toml +++ b/Project.toml @@ -1,4 +1,3 @@ - name = "DashBio" uuid = "1b08a953-4be3-4667-9a23-39d4b6b31131" authors = ["The Plotly Team "] @@ -6,7 +5,8 @@ version = "0.7.0" [deps] Dash = "1b08a953-4be3-4667-9a23-3db579824955" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] -julia = "1.2" Dash = "0.1.3" +julia = "1.2" diff --git a/test/runtests.jl b/test/runtests.jl new file mode 100644 index 0000000..d77f29d --- /dev/null +++ b/test/runtests.jl @@ -0,0 +1,102 @@ +using Test, DashBio + +@testset "Alignment Chart" begin + alchart = dashbio_alignmentchart( + id="my-dashbio-alignmentchart" + ) + @test getfield(alchart, :name) == "dashbio_alignmentchart" + @test alchart isa DashBio.DashBase.Component + @test alchart.id == "my-dashbio-alignmentchart" +end +@testset "Forna Container" begin + fc = dashbio_fornacontainer( + id="my-dashbio-fornacontainer" + ) + @test getfield(fc, :name) == "dashbio_fornacontainer" + @test fc isa DashBio.DashBase.Component + @test fc.id == "my-dashbio-fornacontainer" +end +@testset "Ideogram" begin + ig = dashbio_ideogram( + id="my-dashbio-ideogram", + chrHeight=250 + ) + @test getfield(ig, :name) == "dashbio_ideogram" + @test ig isa DashBio.DashBase.Component + @test ig.id == "my-dashbio-ideogram" + @test ig.chrHeight == 250 +end +@testset "Igv" begin + igv = dashbio_igv( + id="my-dashbio-igv", + genome="ce11", + minimumBases=100, + locus="chrV" + ) + @test getfield(igv, :name) == "dashbio_igv" + @test igv isa DashBio.DashBase.Component + @test igv.id == "my-dashbio-igv" + @test igv.genome == "ce11" + @test igv.minimumBases == 100 + @test igv.locus == "chrV" +end +@testset "Molecule 2d Viewer" begin + m2v = dashbio_molecule2dviewer( + id="my-dashbio-molecule2dviewer" + ) + @test getfield(m2v, :name) == "dashbio_molecule2dviewer" + @test m2v isa DashBio.DashBase.Component + @test m2v.id == "my-dashbio-molecule2dviewer" +end +@testset "Molecule 3d Viewer" begin + m3v = dashbio_molecule3dviewer( + id="my-dashbio-molecule3dviewer", + backgroundOpacity=0 + ) + @test getfield(m3v, :name) == "dashbio_molecule3dviewer" + @test m3v isa DashBio.DashBase.Component + @test m3v.id == "my-dashbio-molecule3dviewer" + @test m3v.backgroundOpacity == 0 +end +@testset "Needle Plot" begin + np = dashbio_needleplot( + id="my-dashbio-needleplot" + ) + @test getfield(np, :name) == "dashbio_needleplot" + @test np isa DashBio.DashBase.Component + @test np.id == "my-dashbio-needleplot" +end +@testset "Ngl Molecule Viewer" begin + nmv = dashbio_nglmoleculeviewer( + id="nglmoleculeviewer" + ) + @test getfield(nmv, :name) == "dashbio_nglmoleculeviewer" + @test nmv isa DashBio.DashBase.Component + @test nmv.id == "nglmoleculeviewer" +end +@testset "Onco Print" begin + op = dashbio_oncoprint( + id="my-dashbio-oncoprint" + ) + @test getfield(op, :name) == "dashbio_oncoprint" + @test op isa DashBio.DashBase.Component + @test op.id == "my-dashbio-oncoprint" +end +@testset "Sequence Viewer" begin + sv = dashbio_sequenceviewer( + id="my-dashbio-sequenceviewer" + ) + @test getfield(sv, :name) == "dashbio_sequenceviewer" + @test sv isa DashBio.DashBase.Component + @test sv.id == "my-dashbio-sequenceviewer" +end +@testset "Speck" begin + sp = dashbio_speck( + id="my-dashbio-speck", + view=Dict("resolution" => 600) + ) + @test getfield(sp, :name) == "dashbio_speck" + @test sp isa DashBio.DashBase.Component + @test sp.id == "my-dashbio-speck" + @test sp.view == Dict("resolution" => 600) +end \ No newline at end of file From 34da906d8d0579975cad23ea1f9bc4e16cdb2b51 Mon Sep 17 00:00:00 2001 From: efmanu Date: Sun, 4 Jul 2021 16:46:44 +1000 Subject: [PATCH 2/3] readme --- README.md | 73 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 61 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f82ee56..115c800 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Dash Bio -[![CircleCI](https://circleci.com/gh/plotly/dash-bio/tree/master.svg?style=svg)](https://circleci.com/gh/plotly/dash-bio) -[![PyPI version](https://badge.fury.io/py/dash-bio.svg)](https://badge.fury.io/py/dash-bio) +[docs-dev-img]: https://img.shields.io/badge/docs-dev-blue.svg +[docs-dev-url]: https://dash-julia.plotly.com/dash_bio +[![][docs-dev-img]][docs-dev-url] Dash Bio is a suite of bioinformatics components built to work with [Dash](https://github.com/plotly/dash/). @@ -10,8 +11,62 @@ Announcement: https://medium.com/@plotlygraphs/announcing-dash-bio-ed8835d5da0c Demo: [https://dash-gallery.plotly.host/Portal/?search=Bioinformatics](https://dash-gallery.plotly.host/Portal/?search=Bioinformatics) -Documentation: -[https://dash.plotly.com/dash-bio](https://dash.plotly.com/dash-bio) +## Installation + +```julia + using Pkg + Pkg.add("DashBio") +``` +## Installation in development mode + +```julia + (v1.6) pkg> dev DashBio +``` +## Install specific version + +```julia + using Pkg + Pkg.add(name="DashBio", version="0.1.0") +``` +## Test + +You can run unit test for `DashBio.jl` as: + +```julia + using Pkg + Pkg.test("DashBio") +``` + +## Issues +Report issues related to `DashBio.jl` at [https://github.com/plotly/DashBio.jl/issues](https://github.com/plotly/DashBio.jl/issues) + + +## Documentation +Component API documentation can be found at https://dash-julia.plotly.com/dash_bio + + +### Basic Example + +A switch component that toggles between on and off can be implemented using `DashDaq.jl` as: + +```julia +using Dash, DashBio + +app = dash() + +app.layout = daq_booleanswitch( + id="my-daq-booleanswitch", + on=true +) +run_server(app, "0.0.0.0", debug=true) +``` + +## Uninstall `DashDaq.jl` + +```julia + using Pkg + Pkg.rm("DashBio") +``` ## Components @@ -24,11 +79,8 @@ The Dash Bio components each fall into one of three categories: ### Custom chart types -- Dash Circos - Dash Clustergram -- Dash Manhattan Plot - Dash Needle Plot -- Dash Volcano Plot ### Sequence analysis tools @@ -51,12 +103,9 @@ Learn more about Dash at ## Consulting and OEM -For inquiries about Dash app development, advanced OEM integration, -and more, please [reach -out](https://plotly.typeform.com/to/mH1Cpb). +For inquiries about Dash app development, advanced OEM integration, and more, please [reach out](https://plotly.typeform.com/to/mH1Cpb). ## Contributing If you would like to contribute to this repository, please refer to -the [contributing -guidelines](https://github.com/plotly/dash-bio/blob/master/CONTRIBUTING.md). +the [contributing guidelines](https://github.com/plotly/dash-bio/blob/master/CONTRIBUTING.md). From 3952b589585dfd1a6a6aa0331de6d55ead5bfc97 Mon Sep 17 00:00:00 2001 From: efmanu Date: Sun, 4 Jul 2021 16:49:30 +1000 Subject: [PATCH 3/3] readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 115c800..32abfca 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ app.layout = daq_booleanswitch( run_server(app, "0.0.0.0", debug=true) ``` -## Uninstall `DashDaq.jl` +## Uninstall `DashBio.jl` ```julia using Pkg