Skip to content

Feat seqflow recipe - #59

Draft
hannalee2 wants to merge 22 commits into
feat-seqflow-pumpfrom
feat-seqflow-recipe
Draft

Feat seqflow recipe#59
hannalee2 wants to merge 22 commits into
feat-seqflow-pumpfrom
feat-seqflow-recipe

Conversation

@hannalee2

Copy link
Copy Markdown
Collaborator

Updates

  • Added predefined protocols: Seqflow now uses predefined protocols by default, as users rarely provide custom jobs.
  • Pump logic update: The pump now starts only when the volume > 0.
  • Optional flow rate: Made flow_rate_mlpm optional in run_step to better support heat device and incubation wait cases.
  • start_job input handling: Updated start_job to accept either a dictionary or a validated Job object. This fixes an issue where internally unpacking the arguments (**job) would fail if a Job object was passed instead of a dictionary.

Fixed Issues

  • Pump: Set self._current_speed_mlpm = 0 when the speed argument is 0.

Merge Checklist

  • update the changelog
  • bump the version

@@ -0,0 +1,66 @@
name: "User Defined 01"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these protocols live somewhere like zookeeper or the local files? Feels weird to have them in the repo

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a great point. These are essentially static baseline protocols that won't change, so having them version-controlled in the repo makes sense for consistency. Xiayin's team receives these protocols from the chemistry team and wants to prevent users from altering them, meaning the files need to stay exactly as they are. I agree that if we need to update them frequently in the future, we can definitely migrate them to Zookeeper or an external store.

If it is only for uder defined01.yml, I will follow up what is this file for.

@hannalee2 hannalee2 Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked with Xiaoyin, and it turns out user_defined01.yml is treated like protocol files, which is rarely edited.
I will keep it in the protocols/ directory with the others, but I will rename it to something more descriptive so it doesn't look like a local user file. Xiaoyin will rename the file in the future and I will update accordingly.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@micahwoodard

After talking with Xiaoyin, he wants to keep a set of template protocols in the repo and store the actual protocols as local files. I think this structure will work well for this case. Let me know what you think. :) Thank you!

seqflow/
├── src/
│ └── seqflow/
│ └── seqflow.py
├── protocols/ <-- Template protocols (User can tests standalone seqflow using this protocols)
└── pyproject.toml

barseq-instrument/
├── src/
│ └── barseq_instrument/
│ └── main.py
├── protocols/ <-- Actual protocols to run
├── configs/ <-- Config file pointing the protocol files
└── pyproject.toml

Comment thread instruments/seqflow/src/seqflow/seqflow.py Outdated
Comment thread instruments/seqflow/src/seqflow/seqflow.py Outdated

def _get_protocol_dir(self) -> Path:
"""Helper to get the base directory for protocols."""
return Path(__file__).parent.parent.parent / "protocols"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this be better abstracted in the config with this as the override?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

030a347
Fixed :)

@hannalee2
hannalee2 marked this pull request as draft August 31, 2026 19:13
@hannalee2
hannalee2 marked this pull request as ready for review August 31, 2026 19:32
@hannalee2
hannalee2 marked this pull request as draft August 31, 2026 20:58
@hannalee2
hannalee2 marked this pull request as ready for review September 1, 2026 18:09
@hannalee2
hannalee2 marked this pull request as draft September 9, 2026 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants