Open jonrkarr opened 3 years ago
I agree. This is important. I currently just write these ranges out and loose the underlying factorial design in the process.
Related to this issue, I think it should also be possible to iterate over targets. For example, you might want to iterate over a list of genes and for each gene change a parameter corresponding to knocking out that gene. This is not possible with the current SED-ML design. Tomas highlighted an example like this during our discussion this week. This can kind of iteration is common in larger network models such as flux balance and logical models.
This should be possible by just using xpath to all genes. I.e. via an xpath expression you can easily select all individual genes as a target. We just would need to document this clearly. But as I understand xpath and SED-ML this is currently supported. The problem is that this results in an addional implicit layer of iteration on the level of the subtask. It would be much cleaner/more intuitive to have this iteration on the range.
I don't see how this is currently possible. Currently a target could be used to change many genes at once. There is no way to iterate over targets one at a time.
On Mon, Mar 29, 2021, 7:03 AM Matthias König @.***> wrote:
This should be possible by just using xpath to all genes. I.e. via an xpath expression you can easily select all individual genes as a target. We just would need to document this clearly. But as I understand xpath and SED-ML this is currently supported. The problem is that this results in an addional implicit layer of iteration on the level of the subtask. It would be much cleaner/more intuitive to have this iteration on the range.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SED-ML/sed-ml/issues/100#issuecomment-809289121, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMKNFIHLH6DGV43NMKODTGBUBNANCNFSM4W6FBPCA .
RepeatedTask allows iteration over a single range (or more specifically simultaneous iteration over multiple ranges).
For example, with three ranges, the equivalent Python code looks roughly like this:
Some workflow systems such as GitHub actions support "matrices" (outer cross product) of ranges. The equivalent Python for this is
Essentially, this could be used to described factorial designs of simulation experiments.
Example:
Such factorial designs could encoded into the existing Range classes, but this would lose the semantic meaning of the factorial design. For the same reason its useful to have RepeatedTask, its useful to have yet more abstraction over designs of simulation experiments.
Unfortunately, I can't think of a way to achieve this with just a minor tweak to the existing schema. This requires a distinct mechanism to define products of ranges from the existing
listOfRanges
which captures co-iteration (zipping) of ranges.