korbinian90 / clearswi.jl Goto Github PK
View Code? Open in Web Editor NEWimproved susceptibility weighted imaging using multi-echo aquisitions
Home Page: https://korbinian90.github.io/CLEARSWI.jl/dev
License: MIT License
improved susceptibility weighted imaging using multi-echo aquisitions
Home Page: https://korbinian90.github.io/CLEARSWI.jl/dev
License: MIT License
This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml
to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix
on this issue.
I'll open a PR within a few hours, please be patient!
Dear Korbinian,
I am trying to install clearswi in Neurodesk, but I get a dependency error with MriResearchTools:
I am running in Ubuntu 20.04 with base julia:
using Pkg
Pkg.add(PackageSpec(url="https://github.com/korbinian90/CLEARSWI.jl"))
Pkg.add(PackageSpec(url="https://github.com/korbinian90/MriResearchTools.jl"))
and I get:
Cloning git-repo `https://github.com/korbinian90/CLEARSWI.jl`
Updating git-repo `https://github.com/korbinian90/CLEARSWI.jl`
Resolving package versions...
Cloning default registries into `~/.julia`
Cloning registry from "https://github.com/JuliaRegistries/General.git"
Added registry `General` to `~/.julia/registries/General`
Installed AxisAlgorithms ───── v1.0.1
Installed Ratios ───────────── v0.4.2
Installed Compat ───────────── v3.39.0
Installed FFTW_jll ─────────── v3.3.9+8
Installed FFTW ─────────────── v1.3.2
Installed MriResearchTools ─── v0.5.1
Installed TranscodingStreams ─ v0.9.6
Installed IntelOpenMP_jll ──── v2018.0.3+2
Installed FixedPointNumbers ── v0.8.4
Installed Adapt ────────────── v3.3.1
Installed CodecZlib ────────── v0.7.0
Installed OffsetArrays ─────── v1.10.7
Installed ROMEO ────────────── v0.1.5
Installed LazyArtifacts ────── v1.3.0
Installed WoodburyMatrices ─── v0.5.4
Installed ChainRulesCore ───── v1.8.0
Installed JLLWrappers ──────── v1.3.0
Installed DataStructures ───── v0.18.10
Installed StaticArrays ─────── v1.2.13
Installed Artifacts ────────── v1.3.0
Installed Zlib_jll ─────────── v1.2.11+18
Installed Reexport ─────────── v1.2.2
Installed TOML ─────────────── v1.0.3
Installed MappedArrays ─────── v0.3.0
Installed MKL_jll ──────────── v2021.1.1+2
Installed Preferences ──────── v1.2.2
Installed AbstractFFTs ─────── v1.0.1
Installed Requires ─────────── v1.1.3
Installed OrderedCollections ─ v1.4.1
Installed Interpolations ───── v0.13.4
Installed NIfTI ────────────── v0.5.6
######################################################################## 100.0%##O=# # ######################################################################## 100.0%
######################################################################## 100.0%##O#- # ######################################################################## 100.0%
######################################################################## 100.0%##O#- # ######################################################################## 100.0%
Updating `~/.julia/environments/v1.4/Project.toml`
[06ae4d9b] + CLEARSWI v0.2.4 #master (https://github.com/korbinian90/CLEARSWI.jl)
Updating `~/.julia/environments/v1.4/Manifest.toml`
[621f4979] + AbstractFFTs v1.0.1
[79e6a3ab] + Adapt v3.3.1
[56f22d72] + Artifacts v1.3.0
[13072b0f] + AxisAlgorithms v1.0.1
[06ae4d9b] + CLEARSWI v0.2.4 #master (https://github.com/korbinian90/CLEARSWI.jl)
[d360d2e6] + ChainRulesCore v1.8.0
[944b1d66] + CodecZlib v0.7.0
[34da2185] + Compat v3.39.0
[864edb3b] + DataStructures v0.18.10
[7a1cc6ca] + FFTW v1.3.2
[f5851436] + FFTW_jll v3.3.9+8
[53c48c17] + FixedPointNumbers v0.8.4
[1d5cc7b8] + IntelOpenMP_jll v2018.0.3+2
[a98d9a8b] + Interpolations v0.13.4
[692b3bcd] + JLLWrappers v1.3.0
[4af54fe1] + LazyArtifacts v1.3.0
[856f044c] + MKL_jll v2021.1.1+2
[dbb5928d] + MappedArrays v0.3.0
[557dad86] + MriResearchTools v0.5.1
[a3a9e032] + NIfTI v0.5.6
[6fe1bfb0] + OffsetArrays v1.10.7
[bac558e1] + OrderedCollections v1.4.1
[21216c6a] + Preferences v1.2.2
[1ea8258b] + ROMEO v0.1.5
[c84ed2f1] + Ratios v0.4.2
[189a3867] + Reexport v1.2.2
[ae029012] + Requires v1.1.3
[90137ffa] + StaticArrays v1.2.13
[fa267f1f] + TOML v1.0.3
[3bb67fe8] + TranscodingStreams v0.9.6
[efce3f68] + WoodburyMatrices v0.5.4
[83775a58] + Zlib_jll v1.2.11+18
[2a0f44e3] + Base64
[ade2ca70] + Dates
[8bb1440f] + DelimitedFiles
[8ba89e20] + Distributed
[b77e0a4c] + InteractiveUtils
[76f85450] + LibGit2
[8f399da3] + Libdl
[37e2e46d] + LinearAlgebra
[56ddb016] + Logging
[d6f4376e] + Markdown
[a63ad114] + Mmap
[44cfe95a] + Pkg
[de0858da] + Printf
[3fa0cd96] + REPL
[9a3f8284] + Random
[ea8e919c] + SHA
[9e88b42a] + Serialization
[1a1011a3] + SharedArrays
[6462fe0b] + Sockets
[2f01184e] + SparseArrays
[10745b16] + Statistics
[8dfed614] + Test
[cf7118a7] + UUIDs
[4ec0a83e] + Unicode
Building FFTW → `~/.julia/packages/FFTW/G3lSO/deps/build.log`
Cloning git-repo `https://github.com/korbinian90/MriResearchTools.jl`
Updating git-repo `https://github.com/korbinian90/MriResearchTools.jl`
Resolving package versions...
julia version requirement for package `MriResearchTools [557dad86]` not satisfied
julia version requirement for package `MriResearchTools [557dad86]` not satisfied
julia version requirement for package `MriResearchTools [557dad86]` not satisfied
julia version requirement for package `MriResearchTools [557dad86]` not satisfied
ERROR: LoadError: Unsatisfiable requirements detected for package ROMEO [1ea8258b]:
ROMEO [1ea8258b] log:
├─possible versions are: [0.1.0-0.1.5, 0.2.0-0.2.8] or uninstalled
├─restricted to versions 0.2.5-0.2 by MriResearchTools [557dad86], leaving only versions 0.2.5-0.2.8
│ └─MriResearchTools [557dad86] log:
│ ├─possible versions are: 0.5.2 or uninstalled
│ └─MriResearchTools [557dad86] is fixed to version 0.5.2
└─restricted by julia compatibility requirements to versions: 0.1.0-0.1.5 or uninstalled — no versions left
Stacktrace:
[1] propagate_constraints!(::Pkg.Resolve.Graph, ::Set{Int64}; log_events::Bool) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Resolve/graphtype.jl:1010
[2] propagate_constraints! at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Resolve/graphtype.jl:951 [inlined] (repeats 2 times)
[3] simplify_graph!(::Pkg.Resolve.Graph, ::Set{Int64}; clean_graph::Bool) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Resolve/graphtype.jl:1465
[4] simplify_graph! at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Resolve/graphtype.jl:1465 [inlined] (repeats 2 times)
[5] resolve_versions!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:341
[6] targeted_resolve(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Pkg.Types.PreserveLevel) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1057
[7] tiered_resolve(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1043
[8] _resolve at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1063 [inlined]
[9] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Array{Base.UUID,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Linux) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1078
[10] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; preserve::Pkg.Types.PreserveLevel, platform::Pkg.BinaryPlatforms.Linux, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:159
[11] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:112
[12] #add#27 at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:109 [inlined]
[13] add at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:109 [inlined]
[14] #add#23 at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:106 [inlined]
[15] add(::Pkg.Types.PackageSpec) at /build/julia-98cBbp/julia-1.4.1+dfsg/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:106
[16] top-level scope at /opt/install_packages.jl:3
[17] include(::Module, ::String) at ./Base.jl:377
[18] exec_options(::Base.JLOptions) at ./client.jl:288
[19] _start() at ./client.jl:484
in expression starting at /opt/install_packages.jl:3
Dear Korbinian,
Would it be useful for users to have a versioned standalone version of CLEARSWI as well like you did with ROMEO?
Cheers
Steffen
Hello, I was reading your recent publication and decided to test your method in our 7T data (Siemens). The differences between my data and your test data are: 1) our data only have 2 echos; 2) our data include the whole brain; 3) we have different echo times. Your test data runs fine but I'm getting the error below. I tested in both 2D and 3D GRE (the 3D GRE includes a high pass filter in the phase images while the 2D does not). I'm using julia version 1.6.1. To convert from Dicom to Nifti, I used the command dcm2niix -m y .
. Please let me know if you have any suggestions.
ERROR: LoadError: MethodError: no method matching to_dim(::Matrix{Int64}, ::Int64)
You might have used a 2d row vector where a 1d column vector was required.
Note the difference between 1d column vector [1,2,3] and 2d row vector [1 2 3].
You can convert to a column vector with the vec() function.
Closest candidates are:
to_dim(::AbstractVector{T} where T, ::Int64) at /home/ts/.julia/packages/MriResearchTools/IJXp0/src/utility.jl:139
Stacktrace:
[1] getcombinedphase(data::Data, options::Options, mask::BitArray{3})
@ CLEARSWI ~/.julia/packages/CLEARSWI/bAFSt/src/phase_processing.jl:43
[2] getswiphase(data::Data, options::Options)
@ CLEARSWI ~/.julia/packages/CLEARSWI/bAFSt/src/phase_processing.jl:5
[3] calculateSWI(data::Data, options::Options)
@ CLEARSWI ~/.julia/packages/CLEARSWI/bAFSt/src/functions.jl:8
[4] calculateSWI(data::Data)
@ CLEARSWI ~/.julia/packages/CLEARSWI/bAFSt/src/functions.jl:7
[5] top-level scope
@ ~/210522-testing_clear_SWI/testing:12
in expression starting at /home/ts/210522-testing_clear_SWI/testing:12
Here is my script:
using CLEARSWI
TEs = [14 28] # change this to the Echo Time of your sequence. For multi-echoes, set a list of TE values, else set a list with a single TE value.
nifti_folder = "/home/ts/210522-testing_clear_SWI" # replace with path to your folder e.g. nifti_folder="/data/clearswi"
magfile = joinpath(nifti_folder, "mag.nii") # Path to the magnitude image in nifti format, must be .nii or .hdr
phasefile = joinpath(nifti_folder, "phase.nii") # Path to the phase image
mag = readmag(magfile);
phase = readphase(phasefile);
data = Data(mag, phase, mag.header, TEs);
swi = calculateSWI(data);
mip = createMIP(swi);
savenii(swi, "/home/ts/210522-testing_clear_SWI/swi"; header=mag.header) # change <outputpath> with the path where you want to save the reconstructed SWI
savenii(mip, "/home/ts/210522-testing_clear_SWI/mip"; header=mag.header)
Is there a package that can run clearswi in the linux terminal?
Thanks
Jiaen
Hi, in your instructions for using SWI, you indicate using MRI.jl but it looks like you have changed that name to MriResearchTools. Your Project and Manifest files on this project both indicate to use MRI as well as the instructions in your readme file. Maybe consider changing this?
thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.