GithubHelp home page GithubHelp logo

sciinstitute / fluorender Goto Github PK

View Code? Open in Web Editor NEW
38.0 12.0 11.0 664.54 MB

FluoRender is an interactive rendering tool for confocal microscopy data visualization.

Home Page: http://www.sci.utah.edu/software/fluorender.html

License: Other

C 45.74% C++ 51.74% Shell 0.01% Python 0.02% QMake 0.01% CMake 0.28% Batchfile 0.01% Java 0.12% C# 1.44% Inno Setup 0.45% HTML 0.14% Pascal 0.05%

fluorender's Introduction

FluoRender

FluoRender Source Code

This is the open-source repository for FluoRender, an interactive rendering tool for confocal microscopy data visualization. It combines the renderings of multi-channel volume data and polygon mesh data, where the properties of each dataset can be adjusted independently and quickly. The tool is designed especially for neurobiologists, and it helps them better visualize the fluorescent-stained confocal samples.

Aknowledgements

If you use FluoRender in work that leads to published research, we humbly ask that you add the following to the 'Acknowledgments' section of your paper: "This work was made possible in part by software funded by the NIH: Fluorender: Visualization-Based and Interactive Analysis for Multichannel Microscopy Data, R01EB023947." If you would like to cite FluoRender, you may reference the following publication: Wan, Y., et al. (2017). FluoRender: joint free-hand segmentation and visualization for many-channel fluorescence data analysis. BMC Bioinformatics, 18:280.

Author: Yong Wan
Developer: Brig Bagley

Requirements

Building FluoRender

Linux

  1. Make sure OpenGL and OpenCL drivers are correctly installed and configured. This is OS and hardware dependent.

    Libs needed: libOpenCL1, glu-devel; headers needed: opencl-headers.

  2. Other dependencies include: gcc, g++, git, cmake, jdk, gtk3-devel, ffmpeg-4-libavcodec-devel, ffmpeg-4-libavformat-devel, ffmpeg-4-libavutil-devel, ffmpeg-4-libswscale-devel, ffmpeg-4-libswresample-devel, etc.

  3. Clone and build boost.

  4. Clone and build wxWidgets.

    • git clone --recursive https://github.com/wxWidgets/wxWidgets.git

    • cd wxwidgets

    • mkdir mybuild

    • cd mybuild

    • ../configure --disable-shared --enable-cxx11 --with-cxx=11 --enable-stl --enable-std_containers --enable-std_iostreams --with-libpng=builtin --with-libtiff=builtin --with-libjpeg=builtin --with-zlib=builtin --with-opengl

    • make

  5. Use CMake to generate FluoRender project.

  6. Build FluoRender. An IDE such as CodeBlocks can be used.

Mac

  1. Clone the latest wxWidgets using GIT (git clone [email protected]:wxWidgets/wxWidgets.git).

    • The steps following will assume the wxWidgets root directory is at /wxWidgets
  2. Build wxWidgets from the command line.

    • cd /wxWidgets/

    • mkdir mybuild

    • cd mybuild

    • ../configure --disable-shared --enable-macosx_arch=x86_64 --with-cocoa --with-macosx-version-min=10.15 --enable-cxx11 --with-cxx=11 --enable-stl --enable-std_containers --enable-std_iostreams --with-libpng=builtin --with-libtiff=builtin --with-libjpeg=builtin --with-zlib=builtin

    • make

  3. Download and build boost.

    • Download boost (http://www.boost.org/users/download/#live) and extract onto your machine.

    • Build boost using ./bootstrap.sh and ./b2 in the boost directory.

    • The steps following will assume the boost root directory is at /boost_1_xx_0 (your version might differ).

  4. Get homebrew, libtiff, and freetype

  5. Get and build FluoRender

    • git clone [email protected]:SCIInstitute/fluorender.git

    • cd fluorender

    • mkdir build

    • cd build

    • cmake -G Xcode -DwxWidgets_CONFIG_EXECUTABLE="/wxWidgets/mybuild/wx-config" -DwxWidgets_wxrc_EXECUTABLE="/wxWidgets/mybuild/utils/wxrc/wxrc" -DwxWidgets_USE_DEBUG=ON -DwxWidgets_ROOT_DIR="/wxWidgets" -DBoost_INCLUDE_DIR="/Users/YourUserName/boost_1_xx_0" -DJAVA_AWT_INCLUDE_PATH="/Library/Java/JavaVirtualMachines/jdk-xx.x.x.jdk/Contents/Home/include" -DJAVA_INCLUDE_PATH="/Library/Java/JavaVirtualMachines/jdk-xx.x.x.jdk/Contents/Home/include" -DJAVA_INCLUDE_PATH2="/Library/Java/JavaVirtualMachines/jdk-xx.x.x.jdk/Contents/Home/include/darwin" -DCMAKE_BUILD_TYPE="Debug" .. (replace directories with your versions)

  6. Open the Xcode file generated to build and run FluoRender.

Windows

  1. Clone the latest wxWidgets using GIT (git clone [email protected]:wxWidgets/wxWidgets.git).

    • The steps following will assume the wxWidgets repository is at C:\wxWidgets
  2. Open a 64 bit Visual Studio command prompt to build wxWidgets. (make sure you use the prompt version you wish to build all dependencies, IE , MSVC 15.0 2017 x64)

    • Go to directory C:\wxWidgets\build\msw

    • Type nmake /f makefile.vc TARGET_CPU=x64 BUILD=debug to build debug libraries.

    • Type nmake /f makefile.vc TARGET_CPU=x64 BUILD=release to build release libraries.

  3. Download and build boost.

    • Download boost (http://www.boost.org/users/download/#live) and extract onto your machine.

    • Build boost using bootstrap.exe and b2.exe --toolset=msvc-15.0 --build-type=complete architecture=x86 address-model=64 stage in the boost directory in a MSVC prompt. (change the toolset to the version of MSVC you are using, and omit address-model and architecture for 32-bit)

    • The steps following will assume the boost root directory is at C:\boost_1_xx_0 (your version might differ).

  4. You may need to add lines to C:\Program Files (x86)\CMake X.X\share\cmake-x.x\Modules\FindwxWidgets.cmake (x's are your version) for wxWidgets 3.* if it still complains that you haven't installed wxWidgets.

    • Starting about line 277, you will have listed a few sets of library versions to search for like wxbase29${_UCD}${_DBG}

    • In 4 places, you will need to add above each line with a "29" a new line that is exactly the same, but with a "31" instead, assuming your version of wxWidgets is 3.1.*).

  5. Other dependencies: OpenCV, JDK, Python, HDF5.

  6. Download FluoRender using Git git clone [email protected]:SCIInstitute/fluorender.git

  7. Use the C:\Program Files(x86)\CMake2.8\bin\cmake-gui.exe program to configure build properties and generate your Visual Studio Solution file. (Remember to keep your MSVC version consistent)

    • Select your FluoRender source and build directories (create a new folder for building), and add the locations of boost and wxWidgets.
    • Choose the FluoRender main folder for source and create a new folder for the build.

    • Click Configure. NOTE: You may need to display advanced options to set below options.

    • Choose the build type CMAKE_BUILD_TYPE to be "Debug" or "Release"

    • Be sure to set wxWidgets_LIB_DIR to C:\wxWidgets\lib\vc_x64_lib. (this will differ from 32 bit)

    • Be sure to set wxWidgets_ROOT_DIR to C:\wxWidgets.

    • Be sure to set Boost_INCLUDE_DIR to C:\boost_1_xx_0 (x's are your version).

    • Click Generate.

    • You may also generate using the command prompt, but you must explicitly type the paths for the cmake command.
    • Open Visual Studio Command Prompt. Go to the CMakeLists.txt directory.

    • Type cmake -G "Visual Studio 15 2017 Win64" -DwxWidgets_LIB_DIR="C:\wxWidgets\lib\vc_x64_lib" -DwxWidgets_ROOT_DIR="C:\wxWidgets" -DBoost_INCLUDE_DIR="C:\boost_1_xx_0" -DCMAKE_BUILD_TYPE="Debug" .. in your build directory (again assuming these are your directory locations / Generator versions, and the build folder is in the FluoRender root directory).

    • Open the Visual Studio SLN file generated by CMake (found in your "build" directory).

    • Build the solution. Use CMake to generate both "Release" and "Debug" configurations if you wish to build both in Visual Studio.

      Notes for Visual Studio

    • Visual Studio may not set the correct machine target when building 64 bit. Check Project Properties -> Configuration Properties -> Linker -> Command line. Make sure "Additional Options" is /machine:X64 NOT /machine:X86.

    • You may need to right-click FluoRender project on the Solution Explorer to "Set as StartUp Project" for it to run.

    • If you are building on Windows 8 or later, you will need to set a Visual Studio Graphics Option. This enables the application to build in higher definition.
      Project Properties -> Manifest Tool -> Input and Output -> Enable DPI Awareness -> Yes

    • On Mac OS, add this setting to info.plist: NSHighResolutionCapable

Contact

If there are any problems, email: [email protected]

fluorender's People

Contributors

astraw avatar basisunus avatar brigb123 avatar dependabot[bot] avatar emmenlau avatar jefferis avatar mcuma avatar remalcodex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fluorender's Issues

missing libtiff with binary download on mac

Is there any chance that the precompiled binary FluoRender2.30_mac64.pkg could include libtiff? I am on macosx 14.5 / M3 chip and hesitating about installing homebrew intel (as would be required here) vs homebrew arm ...

Termination Reason:    Namespace DYLD, Code 1 Library missing
Library not loaded: /usr/local/opt/libtiff/lib/libtiff.6.dylib
Referenced from: <C4C17092-52A0-31A9-81CE-0388E9A452F2> /Applications/FluoRender.app/Contents/MacOS/FluoRender
Reason: tried: '/usr/local/opt/libtiff/lib/libtiff.6.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/libtiff/lib/libtiff.6.dylib' (no such file), '/usr/local/opt/libtiff/lib/libtiff.6.dylib' (no such file)
(terminated at launch; ignore backtrace)

Linux support (Ubuntu 16.04)

Fluorender looks very interesting! I would like to try it on my data, but I only have Linux. There seems
to be no Linux support. If I add Linux support,would you be willing to consider such a pull request?

I already got to ~78% of the build. Until now there where mostly some minor issues with some missing
header includes, or uppercase/lowercase file name issues, and minor issues in the CMakeLists.txt.
Now I got to the first "real" problem: there is class KeyCode defined in Animator/FlKey.h. This name
collides with a name in:

/usr/include/X11/X.h:108:23: note: ‘KeyCode’ has a previous declaration here
 typedef unsigned char KeyCode;

To build on Linux I think its required to rename the class KeyCode to something else. Is that an
option?

Linker cannot find wxWidgets

Hello,

I would like to build the newest FluoRender release on my Windows PC, but I have run into problems I could not solve.

I followed your guide on GitHub and I could successfully build both boost (1.78) and wxwidgets (3.1.6) using MSVC 14.2 (I use Visual Studio 2019).

CMake found wxwidgets by itself and it was my job to type in the path to boost.

Configuration passed without errors, the project was generated and it could be opened without problems.

However, I cannot build FluoRender at all. I get around 17000 errors complaining about various missing wxwidgets symbols and functions such as

Error LNK2001 unresolved external symbol "protected: static struct wxEventTable const wxWindow::sm_eventTable" (?sm_eventTable@wxWindow@@1UwxEventTable@@b) FluoRender D:\FluoRender\build2-27\VMovieView.obj

Error LNK2001 unresolved external symbol "public: virtual bool __cdecl wxWindow::LoadNativeDialog(class wxWindow *,class wxString const &)" (?LoadNativeDialog@wxWindow@@UEAA_NPEAV1@AEBVwxString@@@z) FluoRender D:\FluoRender\build2-27\Tester.obj

or

Error LNK2001 unresolved external symbol "public: virtual bool __cdecl wxWindow::RegisterHotKey(int,int,int)" (?RegisterHotKey@wxWindow@@UEAA_NHHH@Z) FluoRender D:\FluoRender\build2-27\BrushToolDlg.obj

As I said there are 17 000 of those. The program can not see wxWidgets at all, I think.

Are there any additional settings to the linker I have to fill in myself? I tried to add different additional (in addition to those set by CMake) directories to the additional dependencies, but it did not help.

I could build an older version of Fluorender (v2.25) without problems. The linked settings are the same, but the newer version does not get built.

I would be glad for any tips on how to fix this.

Thanks a lot in advance

Mailing list refusing access

I have tried to join the fluorender-users mailing list on two occassions (following the instructions on the website), and I get an error saing that it is undeliverable due to the recipient system refusing to accept a connection.... any help is appreciated.

Instructions that were followed:
Joining the FluoRender Users Mailing List

  1. Compose an email to [email protected] with the following in the body of message: subscribe fluorender-users
    Nothing needed in the Subject line. Just send.
  2. You will receive a response from the list manager requesting confirmation. Just send back a reply message to confirm your subscription (no added text needed).
  3. Finally, you will receive a welcome message confirming that you have been added to the mailing list.

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.