Sun, 21 Apr 2024 18:45:09 +0300
added data generation for new phantom
Manifest.toml | file | annotate | diff | comparison | revisions | |
Project.toml | file | annotate | diff | comparison | revisions | |
src/PET/ImGenerate.jl | file | annotate | diff | comparison | revisions | |
src/PET/PET.jl | file | annotate | diff | comparison | revisions | |
src/PredictPDPS.jl | file | annotate | diff | comparison | revisions |
--- a/Manifest.toml Sun Apr 21 13:44:02 2024 +0300 +++ b/Manifest.toml Sun Apr 21 18:45:09 2024 +0300 @@ -40,6 +40,12 @@ [[Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +[[AssetRegistry]] +deps = ["Distributed", "JSON", "Pidfile", "SHA", "Test"] +git-tree-sha1 = "b25e88db7944f98789130d7b503276bc34bc098e" +uuid = "bf4720bc-e11a-5d0c-854e-bdca1663c893" +version = "0.1.0" + [[AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7" @@ -60,6 +66,17 @@ uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" version = "0.1.8" +[[Blink]] +deps = ["Base64", "Distributed", "HTTP", "JSExpr", "JSON", "Lazy", "Logging", "MacroTools", "Mustache", "Mux", "Pkg", "Reexport", "Sockets", "WebIO"] +git-tree-sha1 = "bc93511973d1f949d45b0ea17878e6cb0ad484a1" +uuid = "ad839575-38b3-5650-b840-f874b8c74a25" +version = "0.12.9" + +[[BufferedStreams]] +git-tree-sha1 = "4ae47f9a4b1dc19897d3743ff13685925c5202ec" +uuid = "e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d" +version = "1.2.1" + [[Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" @@ -71,6 +88,12 @@ uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.5.0" +[[CSV]] +deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] +git-tree-sha1 = "6c834533dc1fabd820c1db03c839bf97e45a3fab" +uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +version = "0.10.14" + [[Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" @@ -178,6 +201,11 @@ uuid = "150eb455-5306-5404-9cee-2592286d6298" version = "0.6.3" +[[Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + [[CustomUnitRanges]] git-tree-sha1 = "1a3f97f907e6dd8983b744d2642651bb162a3f7a" uuid = "dc8bdbbb-1ca9-579f-8c36-e416f6a65cce" @@ -188,12 +216,23 @@ uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.16.0" +[[DataFrames]] +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.6.1" + [[DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" version = "0.18.20" +[[DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + [[Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" @@ -278,6 +317,12 @@ uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" version = "1.16.3" +[[FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] +git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.21" + [[FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" @@ -305,6 +350,12 @@ uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.10+0" +[[FunctionalCollections]] +deps = ["Test"] +git-tree-sha1 = "04cb9cfaa6ba5311973994fe3496ddec19b6292a" +uuid = "de31a74c-ac4f-5751-b3fd-e18cd04993ca" +version = "0.5.0" + [[Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" @@ -363,6 +414,24 @@ uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" version = "1.10.0" +[[HDF5]] +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "e856eef26cf5bf2b0f95f8f4fc37553c72c8641c" +uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" +version = "0.17.2" + + [HDF5.extensions] + MPIExt = "MPI" + + [HDF5.weakdeps] + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + +[[HDF5_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "82a471768b513dc39e471540fdadc84ff80ff997" +uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" +version = "1.14.3+3" + [[HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] git-tree-sha1 = "8e59b47b9dc525b70550ca082ce85bcd7f5477cd" @@ -375,6 +444,18 @@ uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "2.8.1+1" +[[Hiccup]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "6187bb2d5fcbb2007c39e7ac53308b0d371124bd" +uuid = "9fb69e20-1954-56bb-a84f-559cc56a8ff7" +version = "0.2.2" + +[[Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.10.0+0" + [[ImageAxes]] deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" @@ -493,6 +574,12 @@ uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" version = "0.1.4" +[[InlineStrings]] +deps = ["Parsers"] +git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.4.0" + [[IntegralArrays]] deps = ["ColorTypes", "FixedPointNumbers", "IntervalSets"] git-tree-sha1 = "be8e690c3973443bec584db3346ddc904d4884eb" @@ -530,6 +617,11 @@ RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +[[InvertedIndices]] +git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" +uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" +version = "1.3.0" + [[IrrationalConstants]] git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" @@ -540,6 +632,11 @@ uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" version = "1.10.0" +[[IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + [[JLD2]] deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" @@ -552,6 +649,12 @@ uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" version = "1.5.0" +[[JSExpr]] +deps = ["JSON", "MacroTools", "Observables", "WebIO"] +git-tree-sha1 = "b413a73785b98474d8af24fd4c8a975e31df3658" +uuid = "97c1335a-c9c5-57fe-bc5d-ec35cebe8660" +version = "0.5.4" + [[JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" @@ -570,6 +673,12 @@ uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "3.0.2+0" +[[Kaleido_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "43032da5832754f58d14a91ffbe86d5f176acda9" +uuid = "f7e6163d-2fa5-5f23-b69c-1db539e41963" +version = "0.2.1+0" + [[LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" @@ -599,6 +708,12 @@ uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.1" +[[Lazy]] +deps = ["MacroTools"] +git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" +uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" +version = "0.15.1" + [[LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" @@ -713,12 +828,36 @@ uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.0.3" +[[MAT]] +deps = ["BufferedStreams", "CodecZlib", "HDF5", "SparseArrays"] +git-tree-sha1 = "ed1cf0a322d78cee07718bed5fd945e2218c35a1" +uuid = "23992714-dd62-5051-b70f-ba57cb901cac" +version = "0.10.6" + [[MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" version = "2024.0.0+0" +[[MPICH_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" +uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" +version = "4.2.0+0" + +[[MPIPreferences]] +deps = ["Libdl", "Preferences"] +git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +version = "0.1.10" + +[[MPItrampoline_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" +uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" +version = "5.3.2+0" + [[MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" @@ -751,6 +890,12 @@ uuid = "626554b9-1ddb-594c-aa3c-2596fe9399a5" version = "0.7.2" +[[MicrosoftMPI_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" +uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" +version = "10.1.4+2" + [[Missings]] deps = ["DataAPI"] git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" @@ -770,6 +915,18 @@ uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2022.10.11" +[[Mustache]] +deps = ["Printf", "Tables"] +git-tree-sha1 = "a7cefa21a2ff993bff0456bf7521f46fc077ddf1" +uuid = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70" +version = "1.0.19" + +[[Mux]] +deps = ["AssetRegistry", "Base64", "HTTP", "Hiccup", "MbedTLS", "Pkg", "Sockets"] +git-tree-sha1 = "7295d849103ac4fcbe3b2e439f229c5cc77b9b69" +uuid = "a975b10e-0019-58db-a62f-e48ff68538c9" +version = "1.0.2" + [[NaNMath]] deps = ["OpenLibm_jll"] git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" @@ -792,6 +949,11 @@ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" +[[Observables]] +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.5" + [[OffsetArrays]] git-tree-sha1 = "e64b4f5ea6b7389f6f046d13d4896a8f9c1ba71e" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" @@ -835,11 +997,17 @@ uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+0" +[[OpenMPI_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "e25c1778a98e34219a00455d6e4384e017ea9762" +uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" +version = "4.1.6+0" + [[OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" +git-tree-sha1 = "38cb508d080d21dc1128f7fb04f20387ed4c0af4" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.2" +version = "1.4.3" [[OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -899,6 +1067,12 @@ uuid = "54e51dfa-9dd7-5231-aa84-a4037b83483a" version = "0.3.6" +[[Pidfile]] +deps = ["FileWatching", "Test"] +git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" +uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" +version = "1.3.0" + [[Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" @@ -916,12 +1090,48 @@ uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" version = "0.3.3" +[[PlotlyBase]] +deps = ["ColorSchemes", "Dates", "DelimitedFiles", "DocStringExtensions", "JSON", "LaTeXStrings", "Logging", "Parameters", "Pkg", "REPL", "Requires", "Statistics", "UUIDs"] +git-tree-sha1 = "56baf69781fc5e61607c3e46227ab17f7040ffa2" +uuid = "a03496cd-edff-5a9b-9e67-9cda94a718b5" +version = "0.8.19" + +[[PlotlyJS]] +deps = ["Base64", "Blink", "DelimitedFiles", "JSExpr", "JSON", "Kaleido_jll", "Markdown", "Pkg", "PlotlyBase", "PlotlyKaleido", "REPL", "Reexport", "Requires", "WebIO"] +git-tree-sha1 = "e62d886d33b81c371c9d4e2f70663c0637f19459" +uuid = "f0f68f2c-4968-5e81-91da-67840de0976a" +version = "0.18.13" + + [PlotlyJS.extensions] + CSVExt = "CSV" + DataFramesExt = ["DataFrames", "CSV"] + IJuliaExt = "IJulia" + JSON3Ext = "JSON3" + + [PlotlyJS.weakdeps] + CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" + +[[PlotlyKaleido]] +deps = ["Base64", "JSON", "Kaleido_jll"] +git-tree-sha1 = "2650cd8fb83f73394996d507b3411a7316f6f184" +uuid = "f2990250-8cf9-495f-b13a-cce12b45703c" +version = "2.2.4" + [[PoissonRandom]] deps = ["Random"] git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" version = "0.4.4" +[[PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.3" + [[PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" @@ -934,6 +1144,12 @@ uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.3" +[[PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.3.1" + [[Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" @@ -1042,6 +1258,12 @@ uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" +[[SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.1" + [[Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -1152,6 +1374,12 @@ uuid = "88034a9c-02f8-509d-84a9-84ec65e18404" version = "0.11.3" +[[StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.3.4" + [[SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" @@ -1162,6 +1390,18 @@ uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" +[[TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + [[Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" @@ -1244,12 +1484,41 @@ uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" version = "1.31.0+0" +[[WeakRefStrings]] +deps = ["DataAPI", "InlineStrings", "Parsers"] +git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" +uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" +version = "1.4.2" + +[[WebIO]] +deps = ["AssetRegistry", "Base64", "Distributed", "FunctionalCollections", "JSON", "Logging", "Observables", "Pkg", "Random", "Requires", "Sockets", "UUIDs", "WebSockets", "Widgets"] +git-tree-sha1 = "0eef0765186f7452e52236fa42ca8c9b3c11c6e3" +uuid = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29" +version = "0.8.21" + +[[WebSockets]] +deps = ["Base64", "Dates", "HTTP", "Logging", "Sockets"] +git-tree-sha1 = "4162e95e05e79922e44b9952ccbc262832e4ad07" +uuid = "104b5d7c-a370-577a-8038-80a2059c5097" +version = "1.6.0" + +[[Widgets]] +deps = ["Colors", "Dates", "Observables", "OrderedCollections"] +git-tree-sha1 = "fcdae142c1cfc7d89de2d11e08721d0f2f86c98a" +uuid = "cc8bc4a8-27d6-5769-a93b-9d913e69aa62" +version = "0.6.6" + [[WoodburyMatrices]] deps = ["LinearAlgebra", "SparseArrays"] git-tree-sha1 = "5f24e158cf4cee437052371455fe361f526da062" uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" version = "0.5.6" +[[WorkerUtilities]] +git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" +uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" +version = "1.6.1" + [[XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] git-tree-sha1 = "532e22cf7be8462035d092ff21fada7527e2c488" @@ -1435,6 +1704,12 @@ uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" version = "3.1.1+0" +[[libaec_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "46bf7be2917b59b761247be3f317ddf75e50e997" +uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" +version = "1.1.2+0" + [[libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4"
--- a/Project.toml Sun Apr 21 13:44:02 2024 +0300 +++ b/Project.toml Sun Apr 21 18:45:09 2024 +0300 @@ -4,10 +4,12 @@ [deps] AlgTools = "c46e2e78-5339-41fd-a966-983ff60ab8e7" +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" ColorSchemes = "35d6a980-a343-548e-a6ea-1d62b119f2f4" ColorTypes = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" CoordinateTransformations = "150eb455-5306-5404-9cee-2592286d6298" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" GR = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" @@ -17,8 +19,10 @@ ImageTransformations = "02fcd773-0e25-5acc-982a-7f6622650795" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +MAT = "23992714-dd62-5051-b70f-ba57cb901cac" OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" PerceptualColourMaps = "54e51dfa-9dd7-5231-aa84-a4037b83483a" +PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a" PoissonRandom = "e409e4f3-bfea-5376-8464-e040bb5c01ab" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" QuartzImageIO = "dca85d43-d64c-5e67-8c65-017450d5d020"
--- a/src/PET/ImGenerate.jl Sun Apr 21 13:44:02 2024 +0300 +++ b/src/PET/ImGenerate.jl Sun Apr 21 18:45:09 2024 +0300 @@ -25,10 +25,11 @@ # Added for PET import PoissonRandom: pois_rand import Random: shuffle -import Images: center, warp +import Images: center, warp, imresize import CoordinateTransformations: recenter import Rotations: RotMatrix import Interpolations: Flat +import MAT: matread ############## @@ -40,7 +41,8 @@ imgen_square, imgen_shake, PetOnlineData, - imgen_shepplogan_radon + imgen_shepplogan_radon, + imgen_brainphantom_radon ################## # Data structures @@ -279,12 +281,18 @@ end end - function imgen_shepplogan_radon(sz) im = convert(Array{Float64},TestImages.shepp_logan(sz[1], highContrast=true)) dynrange = maximum(im) return ImGen(curry(generate_radon, im, sz), sz, 1, dynrange, "shepplogan$(sz[1])x$(sz[2])") end +function imgen_brainphantom_radon(sz) + data = matread("src/PET/phantom_slice.mat") + im = normalise(imresize(convert(Array{Float64},data["square_data"]),sz)) + dynrange = maximum(im) + return ImGen(curry(generate_radon, im, sz), sz, 1, dynrange, "brainphantom$(sz[1])x$(sz[2])") +end +normalise = (data) -> data./maximum(data) end # Module
--- a/src/PET/PET.jl Sun Apr 21 13:44:02 2024 +0300 +++ b/src/PET/PET.jl Sun Apr 21 18:45:09 2024 +0300 @@ -39,6 +39,8 @@ include("AlgorithmPrimalOnly.jl") include("AlgorithmProximal.jl") include("AlgorithmRotation.jl") +include("AlgorithmZeroDual.jl") +include("PlotResults.jl") using .Radon using .ImGenerate @@ -49,13 +51,20 @@ using .AlgorithmPrimalOnly using .AlgorithmProximal using .AlgorithmRotation +using .AlgorithmZeroDual +using .PlotResults ############## # Our exports ############## -export demo_pet1, demo_pet2, demo_pet3, demo_pet4, demo_pet5, demo_pet6, batchrun_pet +export demo_petS1, demo_petS2, demo_petS3, + demo_petS4, demo_petS5, demo_petS6, demo_petS7, + demo_petB1, demo_petB2, demo_petB3, + demo_petB4, demo_petB5, demo_petB6, demo_petB7, + batchrun_shepplogan, batchrun_brainphantom, batchrun_pet, + plot_pet ################################### # Parameterisation and experiments @@ -109,8 +118,7 @@ δ = 0.9, σ₀ = 0.5, τ₀ = 0.9, - λ = 1, - origsize = 256, + λ = 1, radondims = [128,64], sz = (256,256), scale = 1, @@ -118,28 +126,54 @@ sino_sparsity = 0.5, L = 300.0, L_experiment = false, - stable_interval = union(Set(1500:200),Set(3500:4000)), + stable_interval = union(Set(1500:2000),Set(3500:4000)), +) + +const shepplogan = imgen_shepplogan_radon(p_known₀_pet.sz) + +const brainphantom = imgen_brainphantom_radon(p_known₀_pet.sz) + +const shepplogan_experiments_pdps_known = ( + Experiment(AlgorithmDualScaling, DisplacementConstant, shepplogan, + p_known₀_pet), + Experiment(AlgorithmGreedy, DisplacementConstant, shepplogan, + p_known₀_pet), + Experiment(AlgorithmNoPrediction, DisplacementConstant, shepplogan, + p_known₀_pet), + Experiment(AlgorithmPrimalOnly, DisplacementConstant, shepplogan, + p_known₀_pet), + Experiment(AlgorithmProximal, DisplacementConstant, shepplogan, + p_known₀_pet ⬿ (phantom_ρ = 100,)), + Experiment(AlgorithmRotation, DisplacementConstant, shepplogan, + p_known₀_pet), + Experiment(AlgorithmZeroDual, DisplacementConstant, shepplogan, + p_known₀_pet), ) -const petscan = imgen_shepplogan_radon(p_known₀_pet.sz) - -const pet_experiments_pdps_known = ( - Experiment(AlgorithmDualScaling, DisplacementConstant, petscan, +const brainphantom_experiments_pdps_known = ( + Experiment(AlgorithmDualScaling, DisplacementConstant, brainphantom, p_known₀_pet), - Experiment(AlgorithmGreedy, DisplacementConstant, petscan, + Experiment(AlgorithmGreedy, DisplacementConstant, brainphantom, p_known₀_pet), - Experiment(AlgorithmNoPrediction, DisplacementConstant, petscan, + Experiment(AlgorithmNoPrediction, DisplacementConstant, brainphantom, p_known₀_pet), - Experiment(AlgorithmPrimalOnly, DisplacementConstant, petscan, + Experiment(AlgorithmPrimalOnly, DisplacementConstant, brainphantom, p_known₀_pet), - Experiment(AlgorithmProximal, DisplacementConstant, petscan, + Experiment(AlgorithmProximal, DisplacementConstant, brainphantom, p_known₀_pet ⬿ (phantom_ρ = 100,)), - Experiment(AlgorithmRotation, DisplacementConstant, petscan, - p_known₀_pet), + Experiment(AlgorithmRotation, DisplacementConstant, brainphantom, + p_known₀_pet), + Experiment(AlgorithmZeroDual, DisplacementConstant, brainphantom, + p_known₀_pet), ) -const pet_experiments_all = Iterators.flatten(( - pet_experiments_pdps_known, + +const shepplogan_experiments_all = Iterators.flatten(( + shepplogan_experiments_pdps_known, +)) + +const brainphantom_experiments_all = Iterators.flatten(( + brainphantom_experiments_pdps_known, )) ################ @@ -312,16 +346,25 @@ kwargs...) end -demo_pet1 = () -> demo(pet_experiments_pdps_known[1]) # Dual scaling -demo_pet2 = () -> demo(pet_experiments_pdps_known[2]) # Greedy -demo_pet3 = () -> demo(pet_experiments_pdps_known[3]) # No Prediction -demo_pet4 = () -> demo(pet_experiments_pdps_known[4]) # Primal only -demo_pet5 = () -> demo(pet_experiments_pdps_known[5]) # Proximal (old) -demo_pet6 = () -> demo(pet_experiments_pdps_known[6]) # Rotation +demo_petS1 = () -> demo(shepplogan_experiments_pdps_known[1]) # Dual scaling +demo_petS2 = () -> demo(shepplogan_experiments_pdps_known[2]) # Greedy +demo_petS3 = () -> demo(shepplogan_experiments_pdps_known[3]) # No Prediction +demo_petS4 = () -> demo(shepplogan_experiments_pdps_known[4]) # Primal only +demo_petS5 = () -> demo(shepplogan_experiments_pdps_known[5]) # Proximal (old) +demo_petS6 = () -> demo(shepplogan_experiments_pdps_known[6]) # Rotation +demo_petS7 = () -> demo(shepplogan_experiments_pdps_known[7]) # Zero dual + +demo_petB1 = () -> demo(brainphantom_experiments_pdps_known[1]) # Dual scaling +demo_petB2 = () -> demo(brainphantom_experiments_pdps_known[2]) # Greedy +demo_petB3 = () -> demo(brainphantom_experiments_pdps_known[3]) # No Prediction +demo_petB4 = () -> demo(brainphantom_experiments_pdps_known[4]) # Primal only +demo_petB5 = () -> demo(brainphantom_experiments_pdps_known[5]) # Proximal (old) +demo_petB6 = () -> demo(brainphantom_experiments_pdps_known[6]) # Rotation +demo_petB7 = () -> demo(brainphantom_experiments_pdps_known[7]) # Zero dual -function batchrun_pet(kwargs...) - run_experiments(;experiments=pet_experiments_all, +function batchrun_shepplogan(kwargs...) + run_experiments(;experiments=shepplogan_experiments_all, save_results=true, save_images=true, visualise=false, @@ -329,6 +372,20 @@ kwargs...) end +function batchrun_brainphantom(kwargs...) + run_experiments(;experiments=brainphantom_experiments_all, + save_results=true, + save_images=true, + visualise=false, + recalculate=false, + kwargs...) +end + +function batchrun_pet(kwargs...) + batchrun_shepplogan() + batchrun_brainphantom() +end + ###################################################### # Iterator that does visualisation and log collection ###################################################### @@ -336,11 +393,8 @@ function rescale(arr, new_range) old_min = minimum(arr) old_max = maximum(arr) - - scale_factor = (new_range[2] - new_range[1]) / (old_max - old_min) - + scale_factor = (new_range[2] - new_range[1]) / (old_max - old_min) scaled_arr = new_range[1] .+ (arr .- old_min) * scale_factor - return scaled_arr end @@ -496,6 +550,19 @@ return apply.(im) end + +######################### +# Plotting SSIM and PSNR +######################### + +function plot_pet(kwargs...) + ssim_plot("shepplogan") + ssim_plot("brainphantom") + psnr_plot("shepplogan") + psnr_plot("brainphantom") +end + + ############### # Precompiling ###############
--- a/src/PredictPDPS.jl Sun Apr 21 13:44:02 2024 +0300 +++ b/src/PredictPDPS.jl Sun Apr 21 18:45:09 2024 +0300 @@ -69,9 +69,12 @@ using .ImGenerate using .OpticalFlow: DisplacementFull, DisplacementConstant -using .PET: demo_pet1, demo_pet2, demo_pet3, - demo_pet4, demo_pet5, demo_pet6, - batchrun_pet +using .PET: demo_petS1, demo_petS2, demo_petS3, + demo_petS4, demo_petS5, demo_petS6, demo_petS7, + demo_petB1, demo_petB2, demo_petB3, + demo_petB4, demo_petB5, demo_petB6, demo_petB7, + batchrun_shepplogan, batchrun_brainphantom, batchrun_pet, + plot_pet ############## # Our exports @@ -82,11 +85,15 @@ demo_known1, demo_known2, demo_known3, demo_unknown1,demo_unknown2,demo_unknown3, batchrun_denoising, + batchrun_predictors, demo_denoising1, demo_denoising2, demo_denoising3, demo_denoising4, demo_denoising5, demo_denoising6, - demo_pet1, demo_pet2, demo_pet3, - demo_pet4, demo_pet5, demo_pet6, - batchrun_pet, batchrun_predictors + demo_petS1, demo_petS2, demo_petS3, + demo_petS4, demo_petS5, demo_petS6, demo_petS7, + demo_petB1, demo_petB2, demo_petB3, + demo_petB4, demo_petB5, demo_petB6, demo_petB7, + batchrun_shepplogan, batchrun_brainphantom, batchrun_pet, + plot_pet ################################### # Parameterisation and experiments