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
SciKit-Learn Laboratory (SKLL) makes it easy to run machine learning experiments.

SciKit-Learn Laboratory This Python package provides command-line utilities to make it easier to run machine learning experiments with scikit-learn. O

ETS 528 Nov 25, 2022
Neural Koopman Lyapunov Control

Neural-Koopman-Lyapunov-Control Code for our paper: Neural Koopman Lyapunov Control Requirements dReal4: v4.19.02.1 PyTorch: 1.2.0 The learning framew

Vrushabh Zinage 6 Dec 24, 2022
[CVPR2021] Invertible Image Signal Processing

Invertible Image Signal Processing This repository includes official codes for "Invertible Image Signal Processing (CVPR2021)". Figure: Our framework

Yazhou XING 281 Dec 31, 2022
DeLighT: Very Deep and Light-Weight Transformers

DeLighT: Very Deep and Light-weight Transformers This repository contains the source code of our work on building efficient sequence models: DeFINE (I

Sachin Mehta 440 Dec 18, 2022
Augmentation for Single-Image-Super-Resolution

SRAugmentation Augmentation for Single-Image-Super-Resolution Implimentation CutBlur Cutout CutMix Cutup CutMixup Blend RGBPermutation Identity OneOf

Yubo 6 Jun 27, 2022
TensorFlow code for the neural network presented in the paper: "Structural Language Models of Code" (ICML'2020)

SLM: Structural Language Models of Code This is an official implementation of the model described in: "Structural Language Models of Code" [PDF] To ap

73 Nov 06, 2022
Chunkmogrify: Real image inversion via Segments

Chunkmogrify: Real image inversion via Segments Teaser video with live editing sessions can be found here This code demonstrates the ideas discussed i

David Futschik 112 Jan 04, 2023
TensorFlow implementation of Style Transfer Generative Adversarial Networks: Learning to Play Chess Differently.

Adversarial Chess TensorFlow implementation of Style Transfer Generative Adversarial Networks: Learning to Play Chess Differently. Requirements To run

Muthu Chidambaram 30 Sep 07, 2021
TorchOk - The toolkit for fast Deep Learning experiments in Computer Vision

TorchOk - The toolkit for fast Deep Learning experiments in Computer Vision

52 Dec 23, 2022
OpenMMLab 3D Human Parametric Model Toolbox and Benchmark

Introduction English | 简体中文 MMHuman3D is an open source PyTorch-based codebase for the use of 3D human parametric models in computer vision and comput

OpenMMLab 782 Jan 04, 2023
Learning with Noisy Labels via Sparse Regularization, ICCV2021

Learning with Noisy Labels via Sparse Regularization This repository is the official implementation of [Learning with Noisy Labels via Sparse Regulari

Xiong Zhou 38 Oct 20, 2022
A PoC Corporation Relationship Knowledge Graph System on top of Nebula Graph.

Corp-Rel is a PoC of Corpartion Relationship Knowledge Graph System. It's built on top of the Open Source Graph Database: Nebula Graph with a dataset

Wey Gu 20 Dec 11, 2022
pyspark🍒🥭 is delicious,just eat it!😋😋

如何用10天吃掉pyspark? 🔥 🔥 《10天吃掉那只pyspark》 🚀

lyhue1991 578 Dec 30, 2022
Official Implementation of CoSMo: Content-Style Modulation for Image Retrieval with Text Feedback

CoSMo.pytorch Official Implementation of CoSMo: Content-Style Modulation for Image Retrieval with Text Feedback, Seungmin Lee*, Dongwan Kim*, Bohyung

Seung Min Lee 54 Dec 08, 2022
Machine learning evaluation metrics, implemented in Python, R, Haskell, and MATLAB / Octave

Note: the current releases of this toolbox are a beta release, to test working with Haskell's, Python's, and R's code repositories. Metrics provides i

Ben Hamner 1.6k Dec 26, 2022
Repo for flood prediction using LSTMs and HAND

Abstract Every year, floods cause billions of dollars’ worth of damages to life, crops, and property. With a proper early flood warning system in plac

1 Oct 27, 2021
Pyramid addon for OpenAPI3 validation of requests and responses.

Validate Pyramid views against an OpenAPI 3.0 document Peace of Mind The reason this package exists is to give you peace of mind when providing a REST

Pylons Project 79 Dec 30, 2022
Unofficial pytorch implementation for Self-critical Sequence Training for Image Captioning. and others.

An Image Captioning codebase This is a codebase for image captioning research. It supports: Self critical training from Self-critical Sequence Trainin

Ruotian(RT) Luo 906 Jan 03, 2023
Differentiable Surface Triangulation

Differentiable Surface Triangulation This is our implementation of the paper Differentiable Surface Triangulation that enables optimization for any pe

61 Dec 07, 2022
Title: Heart-Failure-Classification

This Notebook is based off an open source dataset available on where I have created models to classify patients who can potentially witness heart failure on the basis of various parameters. The best

Akarsh Singh 2 Sep 13, 2022