SD2E / SYNBICT

Synthetic Biology Curation Tools
6 stars 2 forks source link

VPR differences #40

Open Fontanapink opened 4 years ago

Fontanapink commented 4 years ago

So I created a test circuit (zipped) and tested SYNBICT's features_to_circuits.py on it, and looked at the differences with what VPR returns (also zipped). For it, I used Cello's most updated repository (also zipped) and the following command:

python features_to_circuits.py -n http://www.async.utah.edu -i test_gate -t C:\Users\elros\Desktop\VPR-Synbict/testCircuit.sbol -c C:\Users\elros\Desktop\VPR-Synbict\Eco1C1G1T1_collection.xml

Using the SBOL Validator I compared both files to see differences. The differences found are also zipped into this issue.

resultsSYNBICT.zip

jakebeal commented 4 years ago

Are the differences a significant problem, or just a difference?

nroehner commented 4 years ago

They are not a significant problem, though some of the differences are due to not running features_to_circuits with the -m argument (length threshold) set to a value lower than the default (e.g. 800 instead of 2000). This meant that, while the appropriate Interactions were added to the new circuit ModuleDefinition, the device/construct ComponentDefinitions that had part ComponentDefinitions matched to the Interactions were not also added as FunctionalComponents. This partly on me for not adding a warning message or making it so that Interactions won't be added unless a device/construct with a matching part passes the length threshold. This will be fixed soon.

The other less problematic differences are as follows:

  1. SYNBICT adds everything (Interactions and ComponentDefinitions for devices/constructs) to a single circuit ModuleDefinition, while VPR adds sub-ModuleDefinitions for each individual device/construct.
  2. VPR adds Interactions for protein degradation (and presumably other Interactions that don't involve at least one DNA ComponentDefinition.
  3. VPR adds MapsTos to link between FunctionalComponents at each level of the ModuleDefinition hierarchy.

I'm planning on updating SYNBICT to address numbers 2 and 3, but I probably won't change number 1 immediately, and it will likely be an option rather than the default behavior.

Fontanapink commented 4 years ago

Oh my bad. I tried the -m flag for sequences_to_features.py but not the features_to_circuits.py.

These are not problems, we are just comparing VPR and SYNBICT output to see if we can replace VPR with SYNBICT in iBioSim.

nroehner commented 4 years ago

Ah, it likely can't be substituted just yet. By the way, if you're going to try re-running features_to_circuits, I would pull my latest commit d809ff0bf07d709a0904e408283e2edbe931c741

I found out that there was a bug when running features_to_circuits with the -m argument (it wasn't being converted to an integer). This is now fixed, and I've also fixed things so that an error is reported when no constructs above the threshold are found in the target file or when no sub-circuits are found in the circuit library file that have parts in common with these constructs.

I've also updated the logging so that output is sent to the console and, when the -l argument is provided, to a log file. Previously, Iwas using a mixture of logging and print statements, and the former would either go the console or the log file but not both.