nipype / pydra

Pydra Dataflow Engine
https://nipype.github.io/pydra/
Other
119 stars 57 forks source link

Task Ontology-WIP #570

Open rcali21 opened 1 year ago

rcali21 commented 1 year ago

Hi, I'm looking to gather suggestions/advice as to how to pull info about a specific task (line 5). For instance, if I wanted to grab info about a specific task (like bet used here), would this live in another file such as JSON? Say I was running 'flirt', how should I map the input to the fact that that is a linear registration tool? (e.g., executable = "FLIRT - Linear Registration Tool") Of course this can't be exhaustive, as more and more tools are published each day, but support for some popular tools is what I'm trying to start with.

  1. `` if self.audit_check(AuditFlag.PROV):
  2. self.aid = f"uid:{gen_uuid()}"
  3. user_id = f"uid:{gen_uuid()}"
  4. BIDS_version = "0.0.0"
  5. if (inputs.executable == 'bet'):
  6. executable = 'BET - Brain Extraction Tool'
  7. start_message = {"@id": self.aid, "@type": "task", "executable": executable, "startedAtTime": now(), "executedBy": user_id, "BIDSProvVersion": BIDS_version}``
djarecka commented 1 year ago

I think we were discussing this a bit during one of our meeting, but I'm not sure if you will find any general rule...

And just a comment to the code you posted, executable is a very specific attribute used in the tasks, so you can't overwrite it by a description of the tool