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
PyTorch implementation of "PatchGame: Learning to Signal Mid-level Patches in Referential Games" to appear in NeurIPS 2021

PatchGame: Learning to Signal Mid-level Patches in Referential Games This repository is the official implementation of the paper - "PatchGame: Learnin

Kamal Gupta 22 Mar 16, 2022
Code for "Long Range Probabilistic Forecasting in Time-Series using High Order Statistics"

Long Range Probabilistic Forecasting in Time-Series using High Order Statistics This is the code produced as part of the paper Long Range Probabilisti

16 Dec 06, 2022
Complementary Patch for Weakly Supervised Semantic Segmentation, ICCV21 (poster)

CPN (ICCV2021) This is an implementation of Complementary Patch for Weakly Supervised Semantic Segmentation, which is accepted by ICCV2021 poster. Thi

Ferenas 20 Dec 12, 2022
Gesture Volume Control v.2

Gesture volume control v.2 In this project I am going to learn how to use Gesture Control to change the volume of a computer. I first look into hand t

Pavel Dat 23 Dec 26, 2022
Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition in CVPR19

2s-AGCN Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition in CVPR19 Note PyTorch version should be 0.3! For PyTor

LShi 547 Dec 26, 2022
Python implementation of a live deep learning based age/gender/expression recognizer

TUT live age estimator Python implementation of a live deep learning based age/gender/smile/celebrity twin recognizer. All components use convolutiona

Heikki Huttunen 80 Nov 21, 2022
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
Official codebase for Decision Transformer: Reinforcement Learning via Sequence Modeling.

Decision Transformer Lili Chen*, Kevin Lu*, Aravind Rajeswaran, Kimin Lee, Aditya Grover, Michael Laskin, Pieter Abbeel, Aravind Srinivas†, and Igor M

Kevin Lu 1.4k Jan 07, 2023
Model Agnostic Interpretability for Multiple Instance Learning

MIL Model Agnostic Interpretability This repo contains the code for "Model Agnostic Interpretability for Multiple Instance Learning". Overview Executa

Joe Early 10 Dec 17, 2022
Second-Order Neural ODE Optimizer, NeurIPS 2021 spotlight

Second-order Neural ODE Optimizer (NeurIPS 2021 Spotlight) [arXiv] ✔️ faster convergence in wall-clock time | ✔️ O(1) memory cost | ✔️ better test-tim

Guan-Horng Liu 39 Oct 22, 2022
Code repository for EMNLP 2021 paper 'Adversarial Attacks on Knowledge Graph Embeddings via Instance Attribution Methods'

Adversarial Attacks on Knowledge Graph Embeddings via Instance Attribution Methods This is the code repository to accompany the EMNLP 2021 paper on ad

Peru Bhardwaj 7 Sep 25, 2022
Implementation of the federated dual coordinate descent (FedDCD) method.

FedDCD.jl Implementation of the federated dual coordinate descent (FedDCD) method. Installation To install, just call Pkg.add("https://github.com/Zhen

Zhenan Fan 6 Sep 21, 2022
Interpretation of T cell states using reference single-cell atlases

Interpretation of T cell states using reference single-cell atlases ProjecTILs is a computational method to project scRNA-seq data into reference sing

Cancer Systems Immunology Lab 139 Jan 03, 2023
Discord Multi Tool that focuses on design and easy usage

Multi-Tool-v1.0 Discord Multi Tool that focuses on design and easy usage Delete webhook Block all friends Spam webhook Modify webhook Webhook info Tok

Lodi#0001 24 May 23, 2022
TCTrack: Temporal Contexts for Aerial Tracking (CVPR2022)

TCTrack: Temporal Contexts for Aerial Tracking (CVPR2022) Ziang Cao and Ziyuan Huang and Liang Pan and Shiwei Zhang and Ziwei Liu and Changhong Fu In

Intelligent Vision for Robotics in Complex Environment 100 Dec 19, 2022
This repository gives an example on how to preprocess the data of the HECKTOR challenge

HECKTOR 2021 challenge This repository gives an example on how to preprocess the data of the HECKTOR challenge. Any other preprocessing is welcomed an

56 Dec 01, 2022
Workshop Materials Delivered on 28/02/2022

intro-to-cnn-p1 Repo for hosting workshop materials delivered on 28/02/2022 Questions you will answer in this workshop Learning Objectives What are co

Beginners Machine Learning 5 Feb 28, 2022
Auto-Encoding Score Distribution Regression for Action Quality Assessment

DAE-AQA It is an open source program reference to paper Auto-Encoding Score Distribution Regression for Action Quality Assessment. 1.Introduction DAE

13 Nov 16, 2022
PyTorch implementation of PNASNet-5 on ImageNet

PNASNet.pytorch PyTorch implementation of PNASNet-5. Specifically, PyTorch code from this repository is adapted to completely match both my implemetat

Chenxi Liu 314 Nov 25, 2022
EncT5: Fine-tuning T5 Encoder for Non-autoregressive Tasks

EncT5 (Unofficial) Pytorch Implementation of EncT5: Fine-tuning T5 Encoder for Non-autoregressive Tasks About Finetune T5 model for classification & r

Jangwon Park 34 Jan 01, 2023