Comments (4)
We've renamed the file each time we upload it and this seems to have solved the issue. Will close. Thanks for your detailed suggestions!
from opentrons.
We're tracking this as #14598, moving forward.
from opentrons.
👋 Hey, thanks for the detailed report.
The run steps, labware visualisation and position check refer to an old version of the protocol.
Does it seem like it could be referring to the latest .py file, but an old config file?
We have a couple things that might be interacting here in a confusing way.
First: The robot analyzes a protocol only when you first upload it via POST /protocols
. If, after that, you scp
over some stuff that affects the protocol's behavior, those changes in behavior won't be reflected in the protocol's analysis. The analysis will be stale.
Second: When you upload a protocol via POST /protocols
, the robot no-ops if it's a protocol it's already storing, as an optimization. The comparison is made by comparing the files in the POST
requests. This means if you repeatedly upload the exact same Python file, the robot will only analyze it the first time. It mistakenly skips re-analysis because it doesn't know about any externally-scp
'd files that have changed its behavior since it was first uploaded.
So my theory at the moment is that you're running into some combination of those.
You want to guarantee that you're looking at a fresh analysis, representing, as closely as possible, what a new run would actually do. I think these are your options today:
- The easiest is probably to make the file different every time you upload it, so it always looks like a new protocol that needs to be analyzed. Appending a timestamp to the filename should be sufficient for this, like
my_protocol_1698624000.py
. - Alternatively, you could fully delete and recreate the protocol every time you upload it. Delete the protocol with an HTTP
DELETE /protocols/{id}
. You may need to also delete the runs that were created from that protocol, with HTTPDELETE /runs/{id}
.
Also, if your protocol has dependencies that it's expecting to be externally scp
'd, make sure you scp
them before doing POST /protocols
. Otherwise, the protocol analysis will start without waiting for those dependencies to be present on the system.
Let me know if that helps!
from opentrons.
from opentrons.
Related Issues (20)
- bug: package opentrons-hardware is not published to pypi HOT 1
- bug: Lagging behind the current working step in robotic OPAL protocol HOT 2
- feat: Adjust labware offset during a protocol run
- feat: method for setting labware offset in API v2.14+ HOT 1
- bug: Failure to Dispense to Trashbin
- bug: Different heights when calling the same height of a labware with different pipettes (v7.0.1) HOT 3
- feat: Proper bundling of npm packages for vite. HOT 2
- bug: package opentrons 7.1.1 is not published to pypi HOT 1
- bug: Flex OS protocol engine not re-analyzing protocols with variable input in JN HOT 2
- bug: App version 7.1 deck mapping incorrect HOT 4
- bug: Coroutines decorator removed in python 3.11 HOT 1
- bug: Impossible to use 'dropTip' command with fixedTrash on OT-2 and robot server version 7.1.0 HOT 6
- bug: Robot analysis shows outdated results when the protocol has an external dependency HOT 2
- bug: Tip doesn't go to bottom of well in PCR cycler HOT 1
- bug: Aspirating with "/runs/{run_id}/commands" does not lower the tip to proper location HOT 1
- bug: cancel a protocole during its run lead an infinite "cancelling" message HOT 7
- bug: No module named 'requests' HOT 3
- bug: Example JSON config for hardware simulator doesn't work
- bug: OT2 camera not responding HOT 3
- bug: ImportError: cannot import name 'ParamSpec' from 'typing' for 7.2.x on Python 3.9 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opentrons.