GithubHelp home page GithubHelp logo

Comments (9)

anthonyprinaldi avatar anthonyprinaldi commented on May 11, 2024 1

I will test out MIRACL on my Windows system today and let you know the solution I find. My apologies I haven't used MIRACL on Windows in a while so I can't think of the solution right away.

from miracl.

anthonyprinaldi avatar anthonyprinaldi commented on May 11, 2024 1

Hi @louispivron I got it working on Windows. Here are the steps I took. All of this is performed in a WSL terminal:

  1. Clone the MIRACL project with git clone https://github.com/AICONSlab/MIRACL.git
  2. cd MIRACL
  3. Build MIRACL using ./build.sh (along with any options you want to pass to the build script)
  4. Start Xming (don't need to adjust any settings, just click through)
  5. Look into the Xming logs to see what IP address it is running at:
    image
  6. Copy the IP address from the logs:
    image
  7. Run export DISPLAY=<IP ADDRESS>:0 e.g., export DISPLAY=172.19.144.1:0
  8. Run docker compose up -d
  9. Run docker exec -it miracl bash
  10. Run miraclGUI

You should see the GUI open and you can use it as you wish from there. As you click through the GUI you may see some warnings in your WSL terminal, but those can be ignored.

Please let me know if this works for you!

from miracl.

louispivron avatar louispivron commented on May 11, 2024 1

Hey Anthony, this is working...just fine !

Huge thanks for your help 👍

from miracl.

anthonyprinaldi avatar anthonyprinaldi commented on May 11, 2024

Hi, @louispivron thank you for your interest in the tool and for reaching out for help.

This problem occurs sometimes and has to do with X11 forwarding. I'm not familiar with Xming so I don't know how that affects the setup.

What I would suggest to do is shut down the docker container with:

docker compose down

Then let's edit the docker-compose.yml and add /tmp/.X11-unix:/tmp/.X11-unix to the volumes section. So it should look something like this:

    volumes:
      - ...
      - /tmp/.X11-unix:/tmp/.X11-unix

Start up the docker container again with:

docker compose up -d

Connect to the container using:

docker exec -it <CONTAINER_NAME> bash

And finally, try miraclGUI again.

Please let me know if this works, or if you get a new error message. Best of luck!

from miracl.

louispivron avatar louispivron commented on May 11, 2024

Hey @anthonyprinaldi, thank you for your quick response yesterday 👍

Instead of using Xming, I used VcXsrv instead as a third-party X server and the GUI started working. The command you provided was probably useful but I'm not sure why Xming was still not launching the GUI properly.

after running 'miraclGUI' the following is printed in the terminal window

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-usr_m_elbousta1'
QPixmap::scaled: Pixmap is a null pixmap

EDIT :

maybe, I should have started with this : is the ace workflow the only feature available currently ?

I tried launching other workflows such as Clarity registration with the Allen Atlas as shown in the tutorial page

https://miracl.readthedocs.io/en/latest/tutorials/workflows/clarity_registration/clar_reg.html

but there is no python script in the reg folder to run but only the shell script which is not found by the command

miracl flow reg_clar

If you have any comment on that, let me know.

Really appreciated your help, thanks !

from miracl.

anthonyprinaldi avatar anthonyprinaldi commented on May 11, 2024

Hi @louispivron . I'm glad you got the GUI working 😄

As for the warning messages, you can ignore those. We will suppress those in a future version.

As for your question about features, ACE is not the only workflow available currently. All workflows on the tutorial page you referenced are working. You are correct that the reg_clar workflow only uses shell scripts and no Python files.

If you are in the GUI mode, and you navigate to Workflows --> Clarity-Allen Registration you should see a pop-up that asks you to select the Clarity directory (it may take a few seconds to open up the pop-up window). Alternatively, if you type

miracl flow reg_clar

in your terminal, you should see the same pop-up window open. To confirm that something is happening when you are running the workflow, you should see this output in your docker container:

 c3d path check: OK... 

 No inputs given ... running in GUI mode 

 Running Set orient with the following command: 

 miracl conv set_orient 

Please let me know if your docker container prints an error message or anything other than the above message.

If you do not see the pop-up, you may need to check VcXsrv to see how it deals with pop-ups, or if it notifies you that another window has opened.

from miracl.

louispivron avatar louispivron commented on May 11, 2024

Also I should add that the GUI is launching properly only if those commands are run every time the docker container is being built and run :

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
export XAUTHORITY=$HOME/.Xauthority

it is a bit tedious to do it every time. Would you advice anything on that part ?

Concerning my previous request, I do see the pop up window for other tasks such as the conversion ones "Nii to Tiff" and Tiff to Nii" (which are the only tasks displayed by the GUI btw) but not for the registration. The docker container prints out

/usr/bin/env: 'bash\r' : No such file or directory

and same for the command line. That's why I was assuming that some sort of python script was necessary for the pop up window to appear...

Please tell me if I'm missing something here.

from miracl.

anthonyprinaldi avatar anthonyprinaldi commented on May 11, 2024

I'm not too sure about those commands. Are they Windows-specific (or VcXsrv-soecific) variables that need to be added? It seems like the DISPLAY variable being set has to do with an IP address.

If you would like to avoid running those commands each time, you can add them to the end of your ~/.bashrc so that they run every time you open your terminal. In a text editor, you can add the following to the end of your ~/.bashrc

...
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
export XAUTHORITY=$HOME/.Xauthority

Do you mind sharing how you have set up your MIRACL environment? E.g., are you using WSL, did you build the docker image using build.sh, how are you starting the docker container, and how are you connecting to the docker container? This can help diagnose the issue.

from miracl.

louispivron avatar louispivron commented on May 11, 2024

I'm not familiar with Windows OS at all but I'm using it for the purpose of the my lab, so I couldn't explain in great terms what is the true meaning behind this command, but apparently

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

is necessary to allow the docker container to access the X server. The installation tutorial on Windows https://miracl.readthedocs.io/en/latest/installation/installation.html was mentioning a similar command

export DISPLAY=$DISPLAY:localhost:0

which didn't help on my case.

Anyway, the GUI is running so that's good, but I did not solve the issue with some workflows not working and throwing error message in the terminal.

I should provide some info regarding the way I'm using MIRACL on my machine :

  • I built the docker image using build.sh
  • I use WSL by running wsl under Ubuntu distribution ( I could also use docker-desktop one instead) seen under wsl -l -v
  • I run the command export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
  • I build the docker container with docker compose up -d
  • I shell inside the container with docker exec -it miracl bash
  • I then finally launch the GUI miraclGUI

from miracl.

Related Issues (13)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.