added data generation for new phantom

Sun, 21 Apr 2024 18:45:09 +0300

author
Neil Dizon <neil.dizon@helsinki.fi>
date
Sun, 21 Apr 2024 18:45:09 +0300
changeset 18
e6a2ebaf467d
parent 17
6ce506e8ab02
child 19
7c4dfeb48dd9

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

mercurial