Open dgruano opened 8 months ago
Hi and thanks for your interest in pydna. I have been busy with this years round of grant proposals, nomrally I try to respond quicker.
The crispr module right now is a minimally working example. I think the way to go here is to specify something that intuitively describes a linear ssDNA molecule. In pydna, Dseq and Dseqrecords are used for dsDNA. I think better type hinting at the least and perhaps accepting pydna.seqrecord.SeqRecord would make sense?
Hi @dgruano maybe you want to give a go at this one in the Hackathon?
Related to #257
Yes, I was counting on doing that!
(actually I would swear I had tagged this issue on #257 yesterday...)
A nice followup to this is the documentation: https://github.com/BjornFJohansson/pydna/issues/259
I also have some ideas that would be cool to implement if you wanna team up for the hackathon @dgruano :)
I'm all ears!
Hi @dgruano, so some of the things I was thinking of incorporating are:
These were just some preliminary thoughts. Looking forward to hearing what you think. :)
Those are really good suggestions! Maybe we could compile a list of enzymes and methods with appropriate references and then detail the needed steps (e.g. Cas12 is just creating a new enzyme class, but CRISPR-BEST may need new functions). Something like: | Feature | Type | Reference |
---|---|---|---|
Cas12 / Cpf1 | New enzyme | https://www.cell.com/cell/fulltext/S0092-8674(15)01200-3 | |
Alternative Cas9 | New enzyme | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4393360 | |
Analyze sequence context | New feature | https://www.nature.com/articles/nbt.4199 | |
Genome editing | New feature | https://pubs.acs.org/doi/full/10.1021/acssynbio.3c00188 and here |
I am unsure how you would use nearmiss
to limit off-targets, can you develop what were you thinking? I will certainly give it a look for my other suggestion in #267 !
Other possible features:
The CRISPR module should also support those Cas enzymes that have more than one PAM. Forr this, we have to:
Taking advantage of Dseq.get_cutsites()
we could check all posible PAMs with the currently implemented Cas enzymes (or those enzymes in the collection of the user). We could add a constant crispr.CAS_ENZYMES
in the module.
I'm not very knowledgeable on this respect, but could be a nice addition for the designed guides. Some references are: On-Target
Off-Target
I totally missed this one:
This is related to something we want to do in ShareYourCloning. We could achieve this like:
Cool suggestions @dgruano!
For the nearmiss, I think it is a bit of an overkill since the computational load is pretty heavy.
I was playing around with the
crispr
module and came across a weird error where the cut coordinates of acas9
object were way larger than the target sequence.The problem was that I was passing a
Dseqrecord
object and not astring
. I am not very familiar yet with the rest ofpydna
so do most functions require astring
or aDseq
/Dseqrecord
object? Should we check the input type within the functions or add type hinting?Let me know if I can help.