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
Code of paper: "DropAttack: A Masked Weight Adversarial Training Method to Improve Generalization of Neural Networks"

DropAttack: A Masked Weight Adversarial Training Method to Improve Generalization of Neural Networks Abstract: Adversarial training has been proven to

倪仕文 (Shiwen Ni) 58 Nov 10, 2022
Code for paper "Learning to Reweight Examples for Robust Deep Learning"

learning-to-reweight-examples Code for paper Learning to Reweight Examples for Robust Deep Learning. [arxiv] Environment We tested the code on tensorf

Uber Research 261 Jan 01, 2023
DeepLab2: A TensorFlow Library for Deep Labeling

DeepLab2 is a TensorFlow library for deep labeling, aiming to provide a unified and state-of-the-art TensorFlow codebase for dense pixel labeling tasks.

Google Research 845 Jan 04, 2023
pytorch implementation of fast-neural-style

fast-neural-style 🌇 🚀 NOTICE: This codebase is no longer maintained, please use the codebase from pytorch examples repository available at pytorch/e

Abhishek Kadian 405 Dec 15, 2022
RIM: Reliable Influence-based Active Learning on Graphs.

RIM: Reliable Influence-based Active Learning on Graphs. This repository is the official implementation of RIM. Requirements To install requirements:

Wentao Zhang 4 Aug 29, 2022
This is an easy python software which allows to sort images with faces by gender and after by age.

Gender-age Classifier This is an easy python software which allows to sort images with faces by gender and after by age. Usage First install Deepface

Claudio Ciccarone 6 Sep 17, 2022
Use AI to generate a optimized stock portfolio

Use AI, Modern Portfolio Theory, and Monte Carlo simulation's to generate a optimized stock portfolio that minimizes risk while maximizing returns. Ho

Greg James 30 Dec 22, 2022
Implementation of temporal pooling methods studied in [ICIP'20] A Comparative Evaluation Of Temporal Pooling Methods For Blind Video Quality Assessment

Implementation of temporal pooling methods studied in [ICIP'20] A Comparative Evaluation Of Temporal Pooling Methods For Blind Video Quality Assessment

Zhengzhong Tu 5 Sep 16, 2022
this is a lite easy to use virtual keyboard project for anyone to use

virtual_Keyboard this is a lite easy to use virtual keyboard project for anyone to use motivation I made this for this year's recruitment for RobEn AA

Mohamed Emad 3 Oct 23, 2021
Simple Python project using Opencv and datetime package to recognise faces and log attendance data in a csv file.

Attendance-System-based-on-Facial-recognition-Attendance-data-stored-in-csv-file- Simple Python project using Opencv and datetime package to recognise

3 Aug 09, 2022
TACTO: A Fast, Flexible and Open-source Simulator for High-Resolution Vision-based Tactile Sensors

TACTO: A Fast, Flexible and Open-source Simulator for High-Resolution Vision-based Tactile Sensors This package provides a simulator for vision-based

Facebook Research 255 Dec 27, 2022
SPTAG: A library for fast approximate nearest neighbor search

SPTAG: A library for fast approximate nearest neighbor search SPTAG SPTAG (Space Partition Tree And Graph) is a library for large scale vector approxi

Microsoft 4.3k Jan 01, 2023
Vehicle direction identification consists of three module detection , tracking and direction recognization.

Vehicle-direction-identification Vehicle direction identification consists of three module detection , tracking and direction recognization. Algorithm

5 Nov 15, 2022
Code for the preprint "Well-classified Examples are Underestimated in Classification with Deep Neural Networks"

This is a repository for the paper of "Well-classified Examples are Underestimated in Classification with Deep Neural Networks" The implementation and

LancoPKU 25 Dec 11, 2022
Ppq - A powerful offline neural network quantization tool with custimized IR

PPL Quantization Tool(PPL 量化工具) PPL Quantization Tool (PPQ) is a powerful offlin

605 Jan 03, 2023
FairMOT - A simple baseline for one-shot multi-object tracking

FairMOT - A simple baseline for one-shot multi-object tracking

Yifu Zhang 3.6k Jan 08, 2023
Putting NeRF on a Diet: Semantically Consistent Few-Shot View Synthesis Implementation

Putting NeRF on a Diet: Semantically Consistent Few-Shot View Synthesis Implementation This project attempted to implement the paper Putting NeRF on a

254 Dec 27, 2022
Train an imgs.ai model on your own dataset

imgs.ai is a fast, dataset-agnostic, deep visual search engine for digital art history based on neural network embeddings.

Fabian Offert 5 Dec 21, 2021
PyTorch implementation of DARDet: A Dense Anchor-free Rotated Object Detector in Aerial Images

DARDet PyTorch implementation of "DARDet: A Dense Anchor-free Rotated Object Detector in Aerial Images", [pdf]. Highlights: 1. We develop a new dense

41 Oct 23, 2022
The official implementation of the Hybrid Self-Attention NEAT algorithm

PUREPLES - Pure Python Library for ES-HyperNEAT About This is a library of evolutionary algorithms with a focus on neuroevolution, implemented in pure

Adrian Westh 91 Dec 12, 2022