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
This is the code related to "Sparse-to-dense Feature Matching: Intra and Inter domain Cross-modal Learning in Domain Adaptation for 3D Semantic Segmentation" (ICCV 2021).

Sparse-to-dense Feature Matching: Intra and Inter domain Cross-modal Learning in Domain Adaptation for 3D Semantic Segmentation This is the code relat

39 Sep 23, 2022
Code for the paper "M2m: Imbalanced Classification via Major-to-minor Translation" (CVPR 2020)

M2m: Imbalanced Classification via Major-to-minor Translation This repository contains code for the paper "M2m: Imbalanced Classification via Major-to

79 Oct 13, 2022
Mixed Transformer UNet for Medical Image Segmentation

MT-UNet Update 2022/01/05 By another round of training based on previous weights, our model also achieved a better performance on ACDC (91.61% DSC). W

dotman 92 Dec 25, 2022
Speech Recognition is an important feature in several applications used such as home automation, artificial intelligence

Speech Recognition is an important feature in several applications used such as home automation, artificial intelligence, etc. This article aims to provide an introduction on how to make use of the S

RISHABH MISHRA 1 Feb 13, 2022
Improving Transferability of Representations via Augmentation-Aware Self-Supervision

Improving Transferability of Representations via Augmentation-Aware Self-Supervision Accepted to NeurIPS 2021 TL;DR: Learning augmentation-aware infor

hankook 38 Sep 16, 2022
The code is an implementation of Feedback Convolutional Neural Network for Visual Localization and Segmentation.

Feedback Convolutional Neural Network for Visual Localization and Segmentation The code is an implementation of Feedback Convolutional Neural Network

19 Dec 04, 2022
Catch-all collection of generative art made using processing

Generative art with Processing.py Some art I have created for fun. Dependencies Processing for Python, see how to download/use here Packages contained

2 Mar 12, 2022
The PyTorch re-implement of a 3D CNN Tracker to extract coronary artery centerlines with state-of-the-art (SOTA) performance. (paper: 'Coronary artery centerline extraction in cardiac CT angiography using a CNN-based orientation classifier')

The PyTorch re-implement of a 3D CNN Tracker to extract coronary artery centerlines with state-of-the-art (SOTA) performance. (paper: 'Coronary artery centerline extraction in cardiac CT angiography

James 135 Dec 23, 2022
Research shows Google collects 20x more data from Android than Apple collects from iOS. Block this non-consensual telemetry using pihole blocklists.

pihole-antitelemetry Research shows Google collects 20x more data from Android than Apple collects from iOS. Block both using these pihole lists. Proj

Adrian Edwards 290 Jan 09, 2023
Keras Image Embeddings using Contrastive Loss

Keras-Image-Embeddings-using-Contrastive-Loss Image to Embedding projection in vector space. Implementation in keras and tensorflow for custom data. B

Shravan Anand K 5 Mar 21, 2022
MLSpace: Hassle-free machine learning & deep learning development

MLSpace: Hassle-free machine learning & deep learning development

abhishek thakur 293 Jan 03, 2023
Python scripts form performing stereo depth estimation using the HITNET model in ONNX.

ONNX-HITNET-Stereo-Depth-estimation Python scripts form performing stereo depth estimation using the HITNET model in ONNX. Stereo depth estimation on

Ibai Gorordo 30 Nov 08, 2022
Repository for training material for the 2022 SDSC HPC/CI User Training Course

hpc-training-2022 Repository for training material for the 2022 SDSC HPC/CI Training Series HPC/CI Training Series home https://www.sdsc.edu/event_ite

sdsc-hpc-training-org 21 Jul 27, 2022
This is a Deep Leaning API for classifying emotions from human face and human audios.

Emotion AI This is a Deep Leaning API for classifying emotions from human face and human audios. Starting the server To start the server first you nee

crispengari 5 Oct 02, 2022
Detectron2-FC a fast construction platform of neural network algorithm based on detectron2

What is Detectron2-FC Detectron2-FC a fast construction platform of neural network algorithm based on detectron2. We have been working hard in two dir

董晋宗 9 Jun 06, 2022
A PaddlePaddle implementation of STGCN with a few modifications in the model architecture in order to forecast traffic jam.

About This repository contains the code of a PaddlePaddle implementation of STGCN based on the paper Spatio-Temporal Graph Convolutional Networks: A D

Tianjian Li 1 Jan 11, 2022
The lightweight PyTorch wrapper for high-performance AI research. Scale your models, not the boilerplate.

The lightweight PyTorch wrapper for high-performance AI research. Scale your models, not the boilerplate. Website • Key Features • How To Use • Docs •

Pytorch Lightning 21.1k Jan 01, 2023
Code for `BCD Nets: Scalable Variational Approaches for Bayesian Causal Discovery`, Neurips 2021

This folder contains the code for 'Scalable Variational Approaches for Bayesian Causal Discovery'. Installation To install, use conda with conda env c

14 Sep 21, 2022
Segmentation models with pretrained backbones. PyTorch.

Python library with Neural Networks for Image Segmentation based on PyTorch. The main features of this library are: High level API (just two lines to

Pavel Yakubovskiy 6.6k Jan 06, 2023
Free course that takes you from zero to Reinforcement Learning PRO 🦸🏻‍🦸🏽

The Hands-on Reinforcement Learning course 🚀 From zero to HERO 🦸🏻‍🦸🏽 Out of intense complexities, intense simplicities emerge. -- Winston Churchi

Pau Labarta Bajo 260 Dec 28, 2022