Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unexpected products from assemblies? #166

Open
manulera opened this issue Dec 5, 2023 · 4 comments
Open

Unexpected products from assemblies? #166

manulera opened this issue Dec 5, 2023 · 4 comments
Labels

Comments

@manulera
Copy link
Collaborator

manulera commented Dec 5, 2023

Here I have included two python scripts that produce what i think are unexpected results of the Assembly (see the comments). You can execute them without installing anything in the repo, just copy the files in pydna_examples and run them in a virtual env where pydna is installed.

@BjornFJohansson
Copy link
Owner

Hi sorry for the delay. My email notification was off for github for some reason.

@BjornFJohansson
Copy link
Owner

See my fork: https://github.com/BjornFJohansson/ShareYourCloning_backend/tree/dummycheck/pydna_examples

I branched off master to branch "dummycheck" and made some cosmetic changes to dummy2.py
Made some comments on the linear example (so far) to "comments_dummy2.md"

@BjornFJohansson
Copy link
Owner

Now complete, I think the dummy3 example reflects a problem in the algorithm.

Nice video about the process we try to model:
Single-Strand Annealing - Jim Haber (Brandeis)
https://youtu.be/B7Vp5pYOIGc

@manulera
Copy link
Collaborator Author

Hi @BjornFJohansson thanks for having a look. I read through your response and if I understand correctly:

  • dummy3: the problem arises because the edge or node key is the shared substring, since there are two shared sequences that are the same the problem happens.
  • dummy2: I can see why QnsJ7ATZXSy2QuN4hy51SZw_aU0 comes up in different ways, but I am not sure if it makes sense to allow outputs that include the same fragment more than once. I guess this comes from the algorithm using each edge only once, instead of each fragment only once. If this is allowed, it leads to the outputting of LEcspKmN0ehyaVOsfO39v_dDSmI which could happen experimentally. But we could also have other assemblies that include both fragments more than once that are not returned because they would use the same edge more than once.

The way I am doing it now with the alternative assembly implementation is by restricting to each fragment only once. This does not represent the full experimental possibilities, but I think that constrain satisfies better my use-case. I think what could be done is return a warning if infinite assemblies or assemblies with repeated fragments can be formed? This probably can be obtained from the graph topology.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants