lazear / sage

Proteomics search & quantification so fast that it feels like magic
https://sage-docs.vercel.app
MIT License
201 stars 38 forks source link

Closes #92 Adds semi-enzymatic cleavage #93

Closed FriedLabJHU closed 8 months ago

FriedLabJHU commented 8 months ago

Adds semi-enzymatic cleavage with new notation. Accommodates missed cleavages.

lazear commented 8 months ago

Thank you for the contribution! I am out for vacation/conference for several more days, and will review when I am back and have some time.

FriedLabJHU commented 8 months ago

No need to respond if you're on vacation! Just putting this comment out here as documentation.

I am unsure if the best way to implement semi-enzymatic digestion is by way of Enzyme or EnzymeParameters. In the way I have implemented it here by Enzyme, I am relying on the seen hashes to remove the excess duplicates that are formed from missed cleavages. This adds more overhead but less code. Changing the semi-enzymatic logic into EnzymeParameters could reduce overhead but could lead to seemingly duplicate code. The intended effect is achieved with the current PR, but it could always be better.

Edit: Alternatively, moving the missed cleavages logic out of EnzymeParameters into Enzyme would account for all cases.

FriedLabJHU commented 8 months ago

I found an error in my code that produces only the N-terminal half of the semi-enzymatic digestest peptides. Will correct this later with a more careful review of my implementation.