BisQue is a web-based platform designed to provide researchers with organizational and quantitative analysis tools for 5D image data. Users can extend BisQue by implementing containerized ML workflows.

Overview


Overview

BisQue is a web-based platform specifically designed to provide researchers with organizational and quantitative analysis tools for up to 5D image data. Users can extend BisQue by creating their own modules that take advantage of cutting edge machine learning algorithms. BisQue’s extensibility stems from two core concepts: flexible metadata facility and an open web-based architecture. Together these empower researchers to create, develop and share novel multimodal data analyses.

Features

  • Bisque is free and open-source
  • Flexible textual and graphical annotations
  • Cloud scalability: PBs of images, millions of annotations
  • Distributed storage: local, iRODS, S3
  • Integrated image analysis, high-throughput with Condor
  • Analysis in MATLAB, Python, Java+ImageJ
  • 100+ biological image formats
  • Very large 5D images (100+ GB)

Documentation

BisQue Documentation

The official documentation covers the BisQue cloud service running live at UCSB, module development for the platform, and the BQAPI. If you have any questions, feel free to reach out. We will be continuously updating the documentation so check back often for updates!

Papers using BisQue

  • Latypov, M.I., Khan, A., Lang, C.A. et al. Integr Mater Manuf Innov (2019) 8: 52. https://doi.org/10.1007/s40192-019-00128-5
  • Polonsky, A.T., Lang, C.A., Kvilekval, K.G. et al. Integr Mater Manuf Innov (2019) 8: 37. https://doi.org/10.1007/s40192-019-00126-7
  • Kvilekval K, Fedorov D, Obara B, Singh A, Manjunath BS. Bisque: a platform for bioimage analysis and management. Bioinformatics. 2010 Feb 15;26(4):544-52. doi: 10.1093/bioinformatics/btp699. Epub 2009 Dec 22. PMID: 20031971.

Team

  • Amil Khan (BisQue Team)
  • Satish Kumar (BisQue Team)
  • Mike Goebel

Built With

  • Docker
  • ExtJS (UI)
  • Imaris Convert (Image Service)
  • OpenSlide (Image Service)
  • Bio-Formats (Image Service)
  • FFMpeg (Image Service)
  • libTIFF (Image Service)
  • TurboGears (backend)
  • SQLAlchemy (backend)

Acknowledgments

  • NSF SI2-SSI No.1664172, NSF MCB Grant No. 1715544

License

Comments
  • TurboGears 2.3.0b2

    TurboGears 2.3.0b2

    TurboGears 2.3.0b2

    This is the second upgrade in the process. If you have any questions, tag @amilworks on here. Current Version: TurboGears2==2.2.0 Upgrade Version: TurboGears2==2.3.0b2

    As you are going through, check off what Step you completed to make it easier for us to help, and for you to feel accomplished.

    Getting Started

    Step 1. Clone the Repo


    GOAL

    • [x] Start by cloning the branch from this current repo

    git clone -b tg-upgrade --single-branch https://github.com/UCSB-VRL/bisqueUCSB.git
    

    cd tg-upgrade and you should see a folder structure like this

    .
    ├── boot
    ├── builder
    ├── COPYRIGHT
    ├── DOCKER-BUILD_LOG.md
    ├── Dockerfile.caffe.xenial
    ├── DOCKER-RUN_LOG.md
    ├── entry.sh
    ├── LICENSE
    ├── Makefile
    ├── modules
    ├── README.md
    ├── requirements.txt
    ├── run-bisque.sh
    ├── source
    ├── sources.list
    ├── start-bisque.sh
    └── virtualenv.sh
    
    4 directories, 13 files
    

    Step 2. Verify Everything Works


    GOAL

    • [x] Establish a baseline that BisQue works on your local system before changing anything.

    You have two choices to verify that the repo is working.

    Option 1. Pull the Latest Docker Build (Recommended)

    The repo is rebuilt and pushed automatically after a successful push/merge on GitHub. Download the latest image by running the following command:

    docker pull amilworks/bisque-tg2-upgrade:git
    

    You can run this image to verify BisQue is working and able to run locally on your system by running:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    You should see BisQue on http://localhost:8080/ in your browser. If not, paste the logs below and we will take a look.

    Option 2. Build the Image

    Building the image from scratch is what you will end up doing throughout the upgrade process. Luckily, we automated it to where you run a Makefile.

    make bisque05-caffe-xenial
    

    If you vim Makefile, you will see it's a series of basic commands. I suggest you Edit this file and --tag the image something different and update the version you are upgrading instead of amilworks/bisque05-caffe-xenial:flour-tg2.2. You can leave it but it's kind of long. Once the build is done, verify that BisQue comes up on your local system just as above:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    You should see BisQue on http://localhost:8080/ in your browser. If not, paste both the Build and Run Logs below and we will take a look.

    Step 3. Make Changes/Break Stuff


    GOAL

    • [ ] Upgrade TurboGears to TurboGears2==2.3.0b2, fix problems that arise, document changes.

    Create a new branch Creating a new branch will enable you to make changes, nuke your own branch over and over again, and maintain a clean copy of the original branch when you need to start fresh for the millionth time.

    git checkout -b [name_of_your_new_branch]
    

    Open source/requirements.txt with your favorite editor (hopefully Vim). Change the version to the one you are assigned, and save the file.

    Here is the link to the line you will update.

    TurboGears2==2.2   # <--- Update Version
    TurboMail==3.0.3
    WebError==0.10.3
    WebFlash==0.1a9
    WebHelpers==1.3
    WebOb==1.1.1       # <--- Potential Update Needed, Check Build Logs
    

    Push to GitHub You made changes and you want to have version control. Push your new branch and changes to GitHub by running:

    git push -u origin  [name_of_your_new_branch]
    

    Step 4. Build and Run!


    GOAL

    • [ ] Build and run your changes, fix any dependency issues, document changes, rebuild if necessary (most likely unless you are super lucky), trust the process, and always ask for help if you get stuck!

    Once you made your changes, make sure you cd .. out of source/ and are back to the tree view displayed above. You should see a file called Makefile. You can Edit this file as mentioned in Option 2. or simply run the following command to build the image with your updated TurboGears2.

    make bisque05-caffe-xenial
    

    While its building, make sure that there are no errors during the pip installs. Typically errors are skipped over in favor of a successful build. I know, right?

    Next, once the build is finished, run the image and verify BisQue comes up on your local system:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    NOTE: There might be other packages that need updating when upgrading to different TurboGears2 versions. Sometimes there will be an error raised with the version required, or it simply will not run and you will have to do a logsdump here and we will have to sift through it together to track the failed step(s).

    If everything is successful, push your branch to GitHub if you have not already, file a pull request, and pat yourself on the back. Job well done. We will review it and test it on our production-like setup and give feedback if any issues arise.

    Post Upgrade

    Use this issue to document any issues you faced during the upgrade process. Log dumps can be thrown here as well. Try to use the code syntax for large blocks of code so we can easily read through it. Otherwise, go crazy.

    • [x] What broke, if anything? Just a simple list will suffice.
    • [ ] Were there any files significantly changed or that requires significant attention?
    • [ ] Can we move forward to the next upgrade?
    • [ ] Any blockers now or that you foresee?
    dependencies no-issue-activity 
    opened by amilworks 16
  • TurboGears==2.2.1

    TurboGears==2.2.1

    TurboGears 2.2.1

    This is the second upgrade in the process. If you have any questions, tag @amilworks on here. Current Version: TurboGears2==2.2.0 Upgrade Version: TurboGears2==2.2.1

    As you are going through, check off what Step you completed to make it easier for us to help, and for you to feel accomplished.

    Getting Started

    Step 1. Clone the Repo


    GOAL

    • [ ] Start by cloning the branch from this current repo

    git clone -b tg-upgrade --single-branch https://github.com/UCSB-VRL/bisqueUCSB.git
    

    cd tg-upgrade and you should see a folder structure like this

    .
    ├── boot
    ├── builder
    ├── COPYRIGHT
    ├── DOCKER-BUILD_LOG.md
    ├── Dockerfile.caffe.xenial
    ├── DOCKER-RUN_LOG.md
    ├── entry.sh
    ├── LICENSE
    ├── Makefile
    ├── modules
    ├── README.md
    ├── requirements.txt
    ├── run-bisque.sh
    ├── source
    ├── sources.list
    ├── start-bisque.sh
    └── virtualenv.sh
    
    4 directories, 13 files
    

    Step 2. Verify Everything Works


    GOAL

    • [ ] Establish a baseline that BisQue works on your local system before changing anything.

    You have two choices to verify that the repo is working.

    Option 1. Pull the Latest Docker Build (Recommended)

    The repo is rebuilt and pushed automatically after a successful push/merge on GitHub. Download the latest image by running the following command:

    docker pull amilworks/bisque-tg2-upgrade:git
    

    You can run this image to verify BisQue is working and able to run locally on your system by running:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    You should see BisQue on http://localhost:8080/ in your browser. If not, paste the logs below and we will take a look.

    Option 2. Build the Image

    Building the image from scratch is what you will end up doing throughout the upgrade process. Luckily, we automated it to where you run a Makefile.

    make bisque05-caffe-xenial
    

    If you vim Makefile, you will see it's a series of basic commands. I suggest you Edit this file and --tag the image something different and update the version you are upgrading instead of amilworks/bisque05-caffe-xenial:flour-tg2.2. You can leave it but it's kind of long. Once the build is done, verify that BisQue comes up on your local system just as above:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    You should see BisQue on http://localhost:8080/ in your browser. If not, paste both the Build and Run Logs below and we will take a look.

    Step 3. Make Changes/Break Stuff


    GOAL

    • [ ] Upgrade TurboGears to TurboGears2==2.2.1, fix problems that arise, document changes.

    Create a new branch Creating a new branch will enable you to make changes, nuke your own branch over and over again, and maintain a clean copy of the original branch when you need to start fresh for the millionth time.

    git checkout -b [name_of_your_new_branch]
    

    Open source/requirements.txt with your favorite editor (hopefully Vim). Change the version to the one you are assigned, and save the file.

    Here is the link to the line you will update.

    TurboGears2==2.2   # <--- Update Version
    TurboMail==3.0.3
    WebError==0.10.3
    WebFlash==0.1a9
    WebHelpers==1.3
    WebOb==1.1.1       # <--- Potential Update Needed, Check Build Logs
    

    Push to GitHub You made changes and you want to have version control. Push your new branch and changes to GitHub by running:

    git push -u origin  [name_of_your_new_branch]
    

    Step 4. Build and Run!


    GOAL

    • [ ] Build and run your changes, fix any dependency issues, document changes, rebuild if necessary (most likely unless you are super lucky), trust the process, and always ask for help if you get stuck!

    Once you made your changes, make sure you cd .. out of source/ and are back to the tree view displayed above. You should see a file called Makefile. You can Edit this file as mentioned in Option 2. or simply run the following command to build the image with your updated TurboGears2.

    make bisque05-caffe-xenial
    

    While its building, make sure that there are no errors during the pip installs. Typically errors are skipped over in favor of a successful build. I know, right?

    Next, once the build is finished, run the image and verify BisQue comes up on your local system:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    NOTE: There might be other packages that need updating when upgrading to different TurboGears2 versions. Sometimes there will be an error raised with the version required, or it simply will not run and you will have to do a logsdump here and we will have to sift through it together to track the failed step(s).

    If everything is successful, push your branch to GitHub if you have not already, file a pull request, and pat yourself on the back. Job well done. We will review it and test it on our production-like setup and give feedback if any issues arise.

    Post Upgrade

    Use this issue to document any issues you faced during the upgrade process. Log dumps can be thrown here as well. Try to use the code syntax for large blocks of code so we can easily read through it. Otherwise, go crazy.

    • [x] What broke, if anything? Just a simple list will suffice.
    • [ ] Were there any files significantly changed or that requires significant attention?
    • [ ] Can we move forward to the next upgrade?
    • [ ] Any blockers now or that you foresee?
    dependencies no-issue-activity 
    opened by amilworks 13
  • TurboGears 2.2.2

    TurboGears 2.2.2

    TurboGears 2.2.2

    This is the second upgrade in the process. If you have any questions, tag @amilworks on here. Current Version: TurboGears2==2.2.0 Upgrade Version: TurboGears2==2.2.2

    As you are going through, check off what Step you completed to make it easier for us to help, and for you to feel accomplished.

    Getting Started

    Step 1. Clone the Repo


    GOAL

    • [x] Start by cloning the branch from this current repo

    git clone -b tg-upgrade --single-branch https://github.com/UCSB-VRL/bisqueUCSB.git
    

    cd tg-upgrade and you should see a folder structure like this

    .
    ├── boot
    ├── builder
    ├── COPYRIGHT
    ├── DOCKER-BUILD_LOG.md
    ├── Dockerfile.caffe.xenial
    ├── DOCKER-RUN_LOG.md
    ├── entry.sh
    ├── LICENSE
    ├── Makefile
    ├── modules
    ├── README.md
    ├── requirements.txt
    ├── run-bisque.sh
    ├── source
    ├── sources.list
    ├── start-bisque.sh
    └── virtualenv.sh
    
    4 directories, 13 files
    

    Step 2. Verify Everything Works


    GOAL

    • [ ] Establish a baseline that BisQue works on your local system before changing anything.

    You have two choices to verify that the repo is working.

    Option 1. Pull the Latest Docker Build (Recommended)

    The repo is rebuilt and pushed automatically after a successful push/merge on GitHub. Download the latest image by running the following command:

    docker pull amilworks/bisque-tg2-upgrade:git
    

    You can run this image to verify BisQue is working and able to run locally on your system by running:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    You should see BisQue on http://localhost:8080/ in your browser. If not, paste the logs below and we will take a look.

    Option 2. Build the Image

    Building the image from scratch is what you will end up doing throughout the upgrade process. Luckily, we automated it to where you run a Makefile.

    make bisque05-caffe-xenial
    

    If you vim Makefile, you will see it's a series of basic commands. I suggest you Edit this file and --tag the image something different and update the version you are upgrading instead of amilworks/bisque05-caffe-xenial:flour-tg2.2. You can leave it but it's kind of long. Once the build is done, verify that BisQue comes up on your local system just as above:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    You should see BisQue on http://localhost:8080/ in your browser. If not, paste both the Build and Run Logs below and we will take a look.

    Step 3. Make Changes/Break Stuff


    GOAL

    • [ ] Upgrade TurboGears to TurboGears2==2.2.2, fix problems that arise, document changes.

    Create a new branch Creating a new branch will enable you to make changes, nuke your own branch over and over again, and maintain a clean copy of the original branch when you need to start fresh for the millionth time.

    git checkout -b [name_of_your_new_branch]
    

    Open source/requirements.txt with your favorite editor (hopefully Vim). Change the version to the one you are assigned, and save the file.

    Here is the link to the line you will update.

    TurboGears2==2.2   # <--- Update Version
    TurboMail==3.0.3
    WebError==0.10.3
    WebFlash==0.1a9
    WebHelpers==1.3
    WebOb==1.1.1       # <--- Potential Update Needed, Check Build Logs
    

    Push to GitHub You made changes and you want to have version control. Push your new branch and changes to GitHub by running:

    git push -u origin  [name_of_your_new_branch]
    

    Step 4. Build and Run!


    GOAL

    • [ ] Build and run your changes, fix any dependency issues, document changes, rebuild if necessary (most likely unless you are super lucky), trust the process, and always ask for help if you get stuck!

    Once you made your changes, make sure you cd .. out of source/ and are back to the tree view displayed above. You should see a file called Makefile. You can Edit this file as mentioned in Option 2. or simply run the following command to build the image with your updated TurboGears2.

    make bisque05-caffe-xenial
    

    While its building, make sure that there are no errors during the pip installs. Typically errors are skipped over in favor of a successful build. I know, right?

    Next, once the build is finished, run the image and verify BisQue comes up on your local system:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    NOTE: There might be other packages that need updating when upgrading to different TurboGears2 versions. Sometimes there will be an error raised with the version required, or it simply will not run and you will have to do a logsdump here and we will have to sift through it together to track the failed step(s).

    If everything is successful, push your branch to GitHub if you have not already, file a pull request, and pat yourself on the back. Job well done. We will review it and test it on our production-like setup and give feedback if any issues arise.

    Post Upgrade

    Use this issue to document any issues you faced during the upgrade process. Log dumps can be thrown here as well. Try to use the code syntax for large blocks of code so we can easily read through it. Otherwise, go crazy.

    • [x] What broke, if anything? Just a simple list will suffice.
    • [ ] Were there any files significantly changed or that requires significant attention?
    • [ ] Can we move forward to the next upgrade?
    • [ ] Any blockers now or that you foresee?
    dependencies no-issue-activity 
    opened by amilworks 4
  • Bump waitress from 0.8.8 to 2.1.1 in /source

    Bump waitress from 0.8.8 to 2.1.1 in /source

    Bumps waitress from 0.8.8 to 2.1.1.

    Release notes

    Sourced from waitress's releases.

    v2.1.1

    No release notes provided.

    v2.1.0

    No release notes provided.

    v2.1.0b0

    No release notes provided.

    v2.0.0

    No release notes provided.

    v2.0.0b1

    No release notes provided.

    v2.0.0b0

    No release notes provided.

    v1.4.4

    No release notes provided.

    v1.4.3

    No release notes provided.

    v1.4.2

    No release notes provided.

    v1.4.1

    No release notes provided.

    v1.4.0

    No release notes provided.

    v1.3.1

    No release notes provided.

    v1.3.0

    No release notes provided.

    v1.3.0b0

    No release notes provided.

    v1.2.1

    No release notes provided.

    v1.2.0

    No release notes provided.

    v1.1.0

    https://pypi.org/project/waitress/1.1.0/

    ... (truncated)

    Changelog

    Sourced from waitress's changelog.

    2.1.1

    Security Bugfix

    
    - Waitress now validates that chunked encoding extensions are valid, and don't
      contain invalid characters that are not allowed. They are still skipped/not
      processed, but if they contain invalid data we no longer continue in and
      return a 400 Bad Request. This stops potential HTTP desync/HTTP request
      smuggling. Thanks to Zhang Zeyu for reporting this issue. See
      https://github.com/Pylons/waitress/security/advisories/GHSA-4f7p-27jc-3c36
    
    • Waitress now validates that the chunk length is only valid hex digits when parsing chunked encoding, and values such as 0x01 and +01 are no longer supported. This stops potential HTTP desync/HTTP request smuggling. Thanks to Zhang Zeyu for reporting this issue. See https://github.com/Pylons/waitress/security/advisories/GHSA-4f7p-27jc-3c36

    • Waitress now validates that the Content-Length sent by a remote contains only digits in accordance with RFC7230 and will return a 400 Bad Request when the Content-Length header contains invalid data, such as +10 which would previously get parsed as 10 and accepted. This stops potential HTTP desync/HTTP request smuggling Thanks to Zhang Zeyu for reporting this issue. See https://github.com/Pylons/waitress/security/advisories/GHSA-4f7p-27jc-3c36

    2.1.0

    Python Version Support

    • Python 3.6 is no longer supported by Waitress

    • Python 3.10 is fully supported by Waitress

    Bugfix

    
    - ``wsgi.file_wrapper`` now sets the ``seekable``, ``seek``, and ``tell``
      attributes from the underlying file if the underlying file is seekable. This
      allows WSGI middleware to implement things like range requests for example
    

    See Pylons/waitress#359 and Pylons/waitress#363

    • In Python 3 OSError is no longer subscriptable, this caused failures on Windows attempting to loop to find an socket that would work for use in the trigger.

    </tr></table>

    ... (truncated)

    Commits
    • 9e0b8c8 Merge pull request from GHSA-4f7p-27jc-3c36
    • b28c9e8 Prep for 2.1.1
    • bd22869 Remove extraneous calls to .strip() in Chunked Encoding
    • d9bdfa0 Validate chunk size in Chunked Encoding are HEXDIG
    • d032a66 Error when receiving back Chunk Extension
    • 884bed1 Update tests to remove invalid chunked encoding chunk-size
    • 1f6059f Be more strict in parsing Content-Length
    • e75b0d9 Add new regular expressions for Chunked Encoding
    • 22c0394 Merge pull request #367 from Pylons/fixup/collect-wasyncore-tests
    • dc15d9f Make sure to collect all wasyncore tests
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies no-pr-activity 
    opened by dependabot[bot] 2
  • Services Error Fix

    Services Error Fix

    Finally the /services Error is Fixed

    Huge thanks to @michael-goebel for finding and fixing the /services issue that came up while upgrading from turbogears2==2.1.5 --> turbogears2==2.2. The current way to test is simply by rebuilding the BisQue image and deploying it locally to verify that the issue is resolved. A few questions are:

    • @michael-goebel How did you build and test the image? Can we just build the image as usual or did you make changes to the Dockerfile and/or in other build scripts that we need to account for?
    • Do we have any existing unit tests that we can use to verify the changes? Basically, if we push this to production, we don't want other things breaking that could have been caught earlier on by writing a 5-liner unit test.
    • There's 55 files that are changed. Are we merging all of these files or are there specific ones we should merge?

    I will review the changes and make comments if necessary. Having a second pair of eyes and another person that can test the changes on their local setup would be useful. Maybe @satish1901 or @ASMIftekhar <3

    Python 3 Branch

    Also, @satish1901 which branch is the one you cleaned up with the Python 3 source code? This merge needs to be changed to the branch with the Python 3 source code. We can test Mike's changes on Python 2.7 but soon thereafter this needs to be tested on Python 3.

    bug dependencies 
    opened by amilworks 2
  • TurboGears 2.3.0b1

    TurboGears 2.3.0b1

    TurboGears 2.3.0b1

    This is the second upgrade in the process. If you have any questions, tag @amilworks on here. Current Version: TurboGears2==2.2.0 Upgrade Version: TurboGears2==2.3.0b1

    As you are going through, check off what Step you completed to make it easier for us to help, and for you to feel accomplished.

    Getting Started

    Step 1. Clone the Repo


    GOAL

    • [x] Start by cloning the branch from this current repo

    git clone -b tg-upgrade --single-branch https://github.com/UCSB-VRL/bisqueUCSB.git
    

    cd tg-upgrade and you should see a folder structure like this

    .
    ├── boot
    ├── builder
    ├── COPYRIGHT
    ├── DOCKER-BUILD_LOG.md
    ├── Dockerfile.caffe.xenial
    ├── DOCKER-RUN_LOG.md
    ├── entry.sh
    ├── LICENSE
    ├── Makefile
    ├── modules
    ├── README.md
    ├── requirements.txt
    ├── run-bisque.sh
    ├── source
    ├── sources.list
    ├── start-bisque.sh
    └── virtualenv.sh
    
    4 directories, 13 files
    

    Step 2. Verify Everything Works


    GOAL

    • [x] Establish a baseline that BisQue works on your local system before changing anything.

    You have two choices to verify that the repo is working.

    Option 1. Pull the Latest Docker Build (Recommended)

    The repo is rebuilt and pushed automatically after a successful push/merge on GitHub. Download the latest image by running the following command:

    docker pull amilworks/bisque-tg2-upgrade:git
    

    You can run this image to verify BisQue is working and able to run locally on your system by running:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    You should see BisQue on http://localhost:8080/ in your browser. If not, paste the logs below and we will take a look.

    Option 2. Build the Image

    Building the image from scratch is what you will end up doing throughout the upgrade process. Luckily, we automated it to where you run a Makefile.

    make bisque05-caffe-xenial
    

    If you vim Makefile, you will see it's a series of basic commands. I suggest you Edit this file and --tag the image something different and update the version you are upgrading instead of amilworks/bisque05-caffe-xenial:flour-tg2.2. You can leave it but it's kind of long. Once the build is done, verify that BisQue comes up on your local system just as above:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    You should see BisQue on http://localhost:8080/ in your browser. If not, paste both the Build and Run Logs below and we will take a look.

    Step 3. Make Changes/Break Stuff


    GOAL

    • [ ] Upgrade TurboGears to `TurboGears2==2.3.0b1', fix problems that arise, document changes.

    Create a new branch Creating a new branch will enable you to make changes, nuke your own branch over and over again, and maintain a clean copy of the original branch when you need to start fresh for the millionth time.

    git checkout -b [name_of_your_new_branch]
    

    Open source/requirements.txt with your favorite editor (hopefully Vim). Change the version to the one you are assigned, and save the file.

    Here is the link to the line you will update.

    TurboGears2==2.2   # <--- Update Version
    TurboMail==3.0.3
    WebError==0.10.3
    WebFlash==0.1a9
    WebHelpers==1.3
    WebOb==1.1.1       # <--- Potential Update Needed, Check Build Logs
    

    Push to GitHub You made changes and you want to have version control. Push your new branch and changes to GitHub by running:

    git push -u origin  [name_of_your_new_branch]
    

    Step 4. Build and Run!


    GOAL

    • [ ] Build and run your changes, fix any dependency issues, document changes, rebuild if necessary (most likely unless you are super lucky), trust the process, and always ask for help if you get stuck!

    Once you made your changes, make sure you cd .. out of source/ and are back to the tree view displayed above. You should see a file called Makefile. You can Edit this file as mentioned in Option 2. or simply run the following command to build the image with your updated TurboGears2.

    make bisque05-caffe-xenial
    

    While its building, make sure that there are no errors during the pip installs. Typically errors are skipped over in favor of a successful build. I know, right?

    Next, once the build is finished, run the image and verify BisQue comes up on your local system:

    docker run -itp 8080:8080  --name bqdev-tg2 amilworks/bisque-tg2-upgrade:git
    

    NOTE: There might be other packages that need updating when upgrading to different TurboGears2 versions. Sometimes there will be an error raised with the version required, or it simply will not run and you will have to do a logsdump here and we will have to sift through it together to track the failed step(s).

    If everything is successful, push your branch to GitHub if you have not already, file a pull request, and pat yourself on the back. Job well done. We will review it and test it on our production-like setup and give feedback if any issues arise.

    Post Upgrade

    Use this issue to document any issues you faced during the upgrade process. Log dumps can be thrown here as well. Try to use the code syntax for large blocks of code so we can easily read through it. Otherwise, go crazy.

    • [x] What broke, if anything? Just a simple list will suffice.
    • [ ] Were there any files significantly changed or that requires significant attention?
    • [ ] Can we move forward to the next upgrade?
    • [ ] Any blockers now or that you foresee?
    dependencies no-issue-activity 
    opened by amilworks 2
  • TG Upgrade---TurboGears2==2.2.0

    TG Upgrade---TurboGears2==2.2.0

    TurboGears 2.2.0

    As a first step in the upgrade process, we will shoot for incremental upgrades of TG2 and document any issues faced.

    Current Version: TurboGears2==2.1.5 Upgrade Version: TurboGears2==2.2.0

    Post Upgrade

    Use this issue to document any issues you faced during the upgrade process. Log dumps can be thrown here as well. Try to use the code syntax for large blocks of code so we can easily read through it. Otherwise, go crazy.

    • What broke, if anything? Just a simple list will suffice.
    • Were there any files significantly changed or that requires significant attention?
    • Can we move forward to the next upgrade?
    • Any blockers now or that you foresee?
    dependencies 
    opened by amilworks 2
  • Image file renaming not working

    Image file renaming not working

    • I have uploaded a file,
    • made it publicly accessible
    • Opened the image and tried to rename it using the button on the top right corner
    • Changes are not being reflected

    We need to find the root cause of this issue. Not sure what's happening in the backend.

    Thanks, Chandrakanth.

    no-issue-activity 
    opened by chandrakanth-gudavalli 1
  • Delete operation not working (in some scenarios)

    Delete operation not working (in some scenarios)

    Description: Unable to delete the files that belong to a datasets

    Steps to Recreate:

    • Upload two images and add to a dataset.

    image

    • Navigate to that dataset

    image

    • Click on an image and click delete button (on top left corner)

    image

    • You should see a pop up saying Resource deleted successfully! You will be redirected to your BISQUE homepage.

    image

    • But the file is not getting deleted. It is still sitting inside the dataset

    image

    Note: There is no issue in deleting the files that do NOT belong to a dataset.

    Thanks.

    bug good first issue no-issue-activity 
    opened by chandrakanth-gudavalli 1
  • bqapi tutorial - file upload and file download

    bqapi tutorial - file upload and file download

    Jupyter notebooks to guide users on using bqapi for file upload and file download.

    Potential TODOs:

    1. Functionality to upload folder/dataset
    2. Functionality to download folder/dataset
    3. Clear documentation on several response codes
    opened by chandrakanth-gudavalli 1
  • Provide default inputs to modules

    Provide default inputs to modules

    It would be really helpful for the first time users of Bisque to have a default inputs show up automatically, when the user clicks on buttons like Select an Image or Select file (while working on Bisque modules).

    Current state: User have to manually investigate About/Help tab to figure out the appropriate input format (.png or .tif or .xyz). It would be great to have appropriate inputs, to be selected, show up automatically. So users cannot get an actual sense of each module as they do not have access to first-good sample input.

    Posting this here. But this could be a change to module generator repository.

    enhancement no-issue-activity 
    opened by chandrakanth-gudavalli 1
Releases(v1.0.1)
  • v1.0.1(Apr 17, 2022)

    Minor Release

    This release is mostly comprised of bug fixes and uploading missing files. For further information on the changes we made for the Dockerfile, please check out the merged request below.

    What's Changed

    • Added BASE Dockerfile by @amilworks in https://github.com/UCSB-VRL/bisqueUCSB/pull/43

    Run BisQue using Docker

    Download

    Ensure you have the latest release by first running the following pull command:

    docker pull amilworks/bisque-module-dev:git
    

    Run the BisQue Docker Container

    To run the docker version of BisQue locally, start a bisque server on the host port 8080:

    docker run --name bisque --rm -p 8080:8080 amilworks/bisque-module-dev:git
    

    and point your browser at http://localhost:8080. You should see a BisQue homepage similar to the one on bisque.ece.ucsb.edu. If you do not see the homepage, check to make sure that port 8080 is not being used by another container or application and that you have correctly mapped the ports using -p 8080:8080, where -p is short for port.

    Full Changelog: https://github.com/UCSB-VRL/bisqueUCSB/compare/v1.0.0...v1.0.1

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Mar 24, 2022)

    BisQue2

    We have moved to v1.0.0! This new release brings a new module backend that is powered by the powerful Argo Workflow Engine and a new storage backend that creates an iRODS user and a Minio S3 bucket for that user. We have also cleaned up our Dockerfile to make it easier to build and develop for BisQue.

    Features

    • Argo Workflows for running modules in BisQue
    • iRODS as main storage backend
    • Automatic iRODS user creation
    • Minio S3 bucket for each user to facilitate hyperscale deep learning training
    • Enabled OpenID
    • Easier builds for BisQue developers with new Multi-stage Dockerfile

    Run BisQue using Docker

    Download

    Ensure you have the latest release by first running the following pull command:

      docker pull amilworks/bisque-module-dev:git
    

    Intro: BisQue Docker Container

    Run the BisQue Docker Container

    To run the docker version of BisQue locally, start a bisque server on the host port 8080:

    docker run --name bisque --rm -p 8080:8080 amilworks/bisque-module-dev:git
    

    and point your browser at http://localhost:8080. You should see a BisQue homepage similar to the one on bisque.ece.ucsb.edu. If you do not see the homepage, check to make sure that port 8080 is not being used by another container or application and that you have correctly mapped the ports using -p 8080:8080, where -p is short for port.

    Full Changelog: https://github.com/UCSB-VRL/bisqueUCSB/compare/v0.7...v1.0.0

    Source code(tar.gz)
    Source code(zip)
  • v0.7(Mar 24, 2021)

    This release focused on deploying Two New Modules to the BisQue platform. The work was in conjunction with UC Riverside's Electrical and Computer Engineering Department. We also have updated the NPH prediction module.

    We have also updated our documentation which is always an ever growing compilation of BisQue goodness. Fell free to file an issue if there are missing details, extra clarification needed, or an example you feel would be useful to the BisQue community. Documentation Link: https://ucsb-vrl.github.io/bisqueUCSB/

    New Modules

    Cell Segmentation 2D

    • This module implements watershed segmentation in 2D for cell segmentation of Arabidopsis thaliana. The module takes as input a TIFF image with a z-stack and outputs the segmented image in a TIFF z-stack, respectively.

    Enhanced Reconstruction

    • This module implements a latent space quantization model that generates an enhanced z-stack given a noisy input of Arabidopsis thaliana. For more details, take a look at the paper Deep Quantized Representation for Enhanced Reconstruction. Paper Link: https://vcg.ece.ucr.edu/sites/g/files/rcwecm2661/files/2020-05/ISBI2020_CellEnhancement.pdf

    Updated Modules

    NPH Prediction

    • We have updated this module to output 7 classes and the trained model has been retrained with new data. This work is in conjunction with UC Irvine. There will be more updates to this module in the coming months so stay tuned!
    Source code(tar.gz)
    Source code(zip)
  • v0.6.2(Aug 28, 2020)

    This release updates the codebase to reflect a better overall structure for build, test, and deployment pipelines.

    Main Changes:

    • Updated code structure
    • Fixed broken dependencies
    • Added Dockerfile for build state
    Source code(tar.gz)
    Source code(zip)
  • v0.6(Jun 29, 2020)

    June 2020: BisQue v0.6

    We are bringing a small list of updates for this version that include TWO new modules, an updated image converter to better handle TIFF files and various bug fixes. A full detailed list can be found below!

    This release includes

    • NPH Prediction Module
    • CellECT 2.0 Module
    • Updated Image Converter
    • Minor bug fixes
    • Code clean-up
    • Removal of deprecated files
    • UI Improvements
    Source code(tar.gz)
    Source code(zip)
Owner
Vision Research Lab @ UCSB
Vision Research Lab at UCSB
Vision Research Lab @ UCSB
Unified Interface for Constructing and Managing Workflows on different workflow engines, such as Argo Workflows, Tekton Pipelines, and Apache Airflow.

Couler What is Couler? Couler aims to provide a unified interface for constructing and managing workflows on different workflow engines, such as Argo

Couler Project 781 Jan 3, 2023
MRQy is a quality assurance and checking tool for quantitative assessment of magnetic resonance imaging (MRI) data.

Front-end View Backend View Table of Contents Description Prerequisites Running Basic Information Measurements User Interface Feedback and usage Descr

Center for Computational Imaging and Personalized Diagnostics 58 Dec 2, 2022
A PyTorch-based open-source framework that provides methods for improving the weakly annotated data and allows researchers to efficiently develop and compare their own methods.

Knodle (Knowledge-supervised Deep Learning Framework) - a new framework for weak supervision with neural networks. It provides a modularization for se

null 93 Nov 6, 2022
A containerized REST API around OpenAI's CLIP model.

OpenAI's CLIP — REST API This is a container wrapping OpenAI's CLIP model in a RESTful interface. Running the container locally First, build the conta

Santiago Valdarrama 48 Nov 6, 2022
Run containerized, rootless applications with podman

Why? restrict scope of file system access run any application without root privileges creates usable "Desktop applications" to integrate into your nor

null 119 Dec 27, 2022
Nb workflows - A workflow platform which allows you to run parameterized notebooks programmatically

NB Workflows Description If SQL is a lingua franca for querying data, Jupyter sh

Xavier Petit 6 Aug 18, 2022
Portfolio Optimization and Quantitative Strategic Asset Allocation in Python

Riskfolio-Lib Quantitative Strategic Asset Allocation, Easy for Everyone. Description Riskfolio-Lib is a library for making quantitative strategic ass

Riskfolio 1.7k Jan 7, 2023
FAIR's research platform for object detection research, implementing popular algorithms like Mask R-CNN and RetinaNet.

Detectron is deprecated. Please see detectron2, a ground-up rewrite of Detectron in PyTorch. Detectron Detectron is Facebook AI Research's software sy

Facebook Research 25.5k Jan 7, 2023
In this repo we reproduce and extend results of Learning in High Dimension Always Amounts to Extrapolation by Balestriero et al. 2021

In this repo we reproduce and extend results of Learning in High Dimension Always Amounts to Extrapolation by Balestriero et al. 2021. Balestriero et

Sean M. Hendryx 1 Jan 27, 2022
A Lighting Pytorch Framework for Recommendation System, Easy-to-use and Easy-to-extend.

Torch-RecHub A Lighting Pytorch Framework for Recommendation Models, Easy-to-use and Easy-to-extend. 安装 pip install torch-rechub 主要特性 scikit-learn风格易用

Mincai Lai 67 Jan 4, 2023
Pacman-AI - AI project designed by UC Berkeley. Designed reflex and minimax agents for the game Pacman.

Pacman AI Jussi Doherty CAP 4601 - Introduction to Artificial Intelligence - Fall 2020 Python version 3.0+ Source of this project This repo contains a

Jussi Doherty 1 Jan 3, 2022
ElegantRL is featured with lightweight, efficient and stable, for researchers and practitioners.

Lightweight, efficient and stable implementations of deep reinforcement learning algorithms using PyTorch. ??

AI4Finance 2.5k Jan 8, 2023
Image transformations designed for Scene Text Recognition (STR) data augmentation. Published at ICCV 2021 Workshop on Interactive Labeling and Data Augmentation for Vision.

Data Augmentation for Scene Text Recognition (ICCV 2021 Workshop) (Pronounced as "strog") Paper Arxiv Why it matters? Scene Text Recognition (STR) req

Rowel Atienza 152 Dec 28, 2022
Toolbox of models, callbacks, and datasets for AI/ML researchers.

Pretrained SOTA Deep Learning models, callbacks and more for research and production with PyTorch Lightning and PyTorch Website • Installation • Main

Pytorch Lightning 1.4k Dec 30, 2022
Pose Detection and Machine Learning for real-time body posture analysis during exercise to provide audiovisual feedback on improvement of form.

Posture: Pose Tracking and Machine Learning for prescribing corrective suggestions to improve posture and form while exercising. This repository conta

Pratham Mehta 10 Nov 11, 2022
Fedlearn支持前沿算法研发的Python工具库 | Fedlearn algorithm toolkit for researchers

FedLearn-algo Installation Development Environment Checklist python3 (3.6 or 3.7) is required. To configure and check the development environment is c

null 89 Nov 14, 2022
A GPU-optional modular synthesizer in pytorch, 16200x faster than realtime, for audio ML researchers.

torchsynth The fastest synth in the universe. Introduction torchsynth is based upon traditional modular synthesis written in pytorch. It is GPU-option

torchsynth 229 Jan 2, 2023
Rasterize with the least efforts for researchers.

utils3d Rasterize and do image-based 3D transforms with the least efforts for researchers. Based on numpy and OpenGL. It could be helpful when you wan

Ruicheng Wang 8 Dec 15, 2022