Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Shiny.setInputValue() in a few places to make some variables av… #37

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jkh1
Copy link

@jkh1 jkh1 commented Feb 13, 2019

…ailable to Shiny app.

@jkh1
Copy link
Author

jkh1 commented Feb 13, 2019

This partly addresses issue #33.

@aoles
Copy link
Owner

aoles commented Mar 11, 2019

Thanks a lot!

I will get back to you as soon as I have reviewed your code.

Cheers,
Andrzej

@mattwarkentin
Copy link

mattwarkentin commented Apr 17, 2019

@jkh1 Should using this version of the viewer.js file in place of the original file that installs by default provide the relevant variables simply when calling the Viewer in R/RStudio using EBImage::display(x)? Or does one need to integrate Shiny in some way? I am new to all things Shiny so forgive my ignorance.

@jkh1
Copy link
Author

jkh1 commented Apr 24, 2019

@warkentinmatt Yes, this can be used as a drop-in replacement. You then access the variables in the usual Shiny way with input$variable_name, e.g. input$pixelPosition.

@mattwarkentin
Copy link

@jkh1 Thank you for your response.

So I have tried to drop-in this javascript file and it does not seem to be working as anticipated. You say it should work "in the usual Shiny way", perhaps this is where I am falling short. What does this mean? My expectation was that after replacing the viewer.js file, that when I call EBImage::display(x) in RStudio, that I would be able to click a specific pixel and access its value by calling input$pixelPosition interactively in the console. Is this an incorrect expectation? Where does Shiny fit in?

Thank you for your help.

@jkh1
Copy link
Author

jkh1 commented Apr 24, 2019

Shiny is a web framework so I don't quite see where the console comes in. I've only used Shiny to create web-based apps. If this is a more generic Shiny programming problem, it might be better addressed on StackOverflow.

@chrisjw18
Copy link

Thanks for this update its exactly what I have been looking for to aid in identifying objects within images ( in a round about way). I've changed the viewer.js file and added an observe() event in the server side of my shiny app to monitor the variable input$pixelPosition but unfortunately it doesn't seem to be providing input either automatically or when clicking the mouse over the image. Is there a way to test the input variable is available server side? I have tried wrapping this in observe(), reactive() and observeEvent(input$pixelPosition,{}) with a simple call to print(input$pixelPosition) to highlight if it is working.

Any help would be greatly appreciated.

@jkh1
Copy link
Author

jkh1 commented May 21, 2019

The way I do it is with:

rv <- reactiveValues(pixelPosition = NULL)
observe({ rv$pixelPosition <- input$pixelPosition })

Then you can access it from rv$pixelPosition in the rest of the server code.
You can see it in action in our Image Data Explorer (look in the file image_data_explorer.R). By the way, the Image Data Explorer may already be doing some of what you want.

@chrisjw18
Copy link

Third attempt to reply properly>

Many thanks for the quick reply - afraid it is still not working. I have found a way to print all available inputs to console when my app is running and pixelPosition is not listed. The Image Data Explorer looks brilliant and after reviewing the script I think I am trying to read in pixel values from an image constructed in the same way to your app, i.e. load image and use displayOutput ui side to display image using the EBImage package.

My app is much more simple than yours and I'm very new to shiny (and GitHub). If you have the chance to review my script with regard to the pixelPosition aspect it would be greatly appreciated. I have attached it here as a.txt file but it is a R file (seems GitHub doesn't support .R files) and an example image should also be attached. The relevant pieces of text are located at the very end of the server function (very bottom of the script), and I am trying to get the x/y pixel locations from output$img1 which is shown in the main plotting image on the first tab once an image has been uploaded.

Apologies for the untidiness of my script - it is a serious work in progress.

Many Thanks,

Chris.
shiny_script_txt.txt
2018_mixed_samples_1_bak

@chrisjw18
Copy link

Further to my last post - I decided to check this at home on my Ubunto system (as opposed to my mac at work) and it works fine, so I dont know why this isnt currently working on my mac. It might be due to failure to override the standard EBImage package, so I will manually delete and reinstall the amended package from your github and see how it goes.

@chrisjw18
Copy link

Yes, that was the issue. I've now (properly) re-installed the updated EBImage from your GitHub and it is working perfectly. Thank you very much.

Chris.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants