libnano / primer3-py

Simple oligo analysis and primer design
https://libnano.github.io/primer3-py
GNU General Public License v2.0
168 stars 44 forks source link

Update to 2.5.0 #48

Closed jsnedeco closed 1 year ago

jsnedeco commented 3 years ago

I think this loses some of the efficiency vs. the old one because of the way the thermodynamic parameters are loaded, but it works, passes all tests and seems to behave more or less. I mostly wanted to be able to use the masking capabilities.

grinner commented 1 year ago

Hi @jsnedeco. Great PR Thanks for the kick in the pants to get @benpruitt and I back on this.

We think this PR is a great start to push us to a 1.0.0 release.

We've gone ahead and created 1.0.0-staging branch which we would like you to re-point your PR to.

Things we plan on adding:

Prior to a full review of this PR we have a few notes / comments:

  1. git rm src/thermoanalysis.c Since it is our pattern to no commit cython compilation assets to the repo

  2. We'll squash your 16 commits down to 1 for the merge. Feel free to interactive rebase down to one commit i.e. git rebase -i HEAD~16. If you aren't comfortable doing this, either @benpruitt or I can advise on this process.

  3. Remove trailing white space. This is a tricky one that your IDE/text editor can support. (note: We are going to add support to manage this automatically downstream). Looks like primer3 source code does this but it causes a big diff. It's debatable if we should leave it as is and just import primer3 as is.

  4. Add an exception type to this block in thermoanalysis.pyx

try:
    tr_obj.ascii_structure = tr_obj.thalres.sec_struct.decode('UTF-8')
except:
    return tr_obj

to

try:
    tr_obj.ascii_structure = tr_obj.thalres.sec_struct.decode('UTF-8')
except <Whatever exception you expect here>:
    return tr_obj
  1. In primerdesign_py.c, destroy_secundary_structures(pa, retval); where does this function live? ?

  2. Looks like primer3 changed indents from tab/space hybrid to spaces

  3. Is this 2.5.0 or 2.6.1? Can we update the PR title and description to reflect this?

Thanks again for getting this started!

benpruitt commented 1 year ago

primer3-py now includes primer3 v2.6.1 as of the v1.0.0 release