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

Is a more extensive version checking necessary? #16

Open
JohnMCMa opened this issue Jul 22, 2011 · 11 comments
Open

Is a more extensive version checking necessary? #16

JohnMCMa opened this issue Jul 22, 2011 · 11 comments

Comments

@JohnMCMa
Copy link
Contributor

Looking back at primer3 2.2.3's release notes, I have noticed that even after 2.0.0 there has been quite a bit of changes among input tags:

2.2.0 added all the TH tags, SEQUENCE_PRIMER_OK_REGION_LIST, and "PRIMER_MIN_3_PRIME_OVERLAP_OF_JUNCTION, PRIMER_MIN_5_PRIME_OVERLAP_OF_JUNCTION have replaced
SEQUENCE_PRIMER_OVERLAP_POS and PRIMER_POS_OVERLAP_TO_END_DIST" (note the tag type change from PRIMER to SEQUENCE).

2.2.2 added PRIMER_MIN_LEFT_THREE_PRIME_DISTANCE and PRIMER_MIN_RIGHT_THREE_PRIME_DISTANCE.

Looking even back, 1.1.X added PRIMER_TM_SANTALUCIA, PRIMER_SALT_CORRECTIONS, PRIMER_LOWERCASE_MASKING, PRIMER_DIVALENT_CONC, and PRIMER_DNTP_CONC over <1.0.X.

While I sincerely don't believe anyone would still be using version v<1.1.0, would it be necessary to allow a finer version check on the run script so that all input tags would be legal for the version of primer3 they're using? It is a straightforward change that I as an novice can do, but I wonder its necessity.

@JohnMCMa
Copy link
Contributor Author

Anyway, I have forked from Frank's head and committed my edits.

@cjfields
Copy link
Owner

Hi @JohnMCMa not sure if you are still working on this, but if there is an update let me know.

Thanks!

@JohnMCMa
Copy link
Contributor Author

I'll try completing it, but I'd only have the time to start from late next week.

John

@cjfields
Copy link
Owner

cjfields commented Oct 1, 2016

@JohnMCMa not any hurry, but glad to see you are still around

@JohnMCMa
Copy link
Contributor Author

Hey @cjfields,
The current Primer3Redux code still sets the default version as 1.1.4, and is obviously outdated. But what should be the appropriate default version? The last few times when Primer3 has tag changes were versions 2.3.6 (20131022), 2.3.5 (20130103), or 2.2.2 (20100304). The version 2 branch has been declared stable after 2.2.3 (20100708).

@cjfields
Copy link
Owner

Hi @JohnMCMa I think we should set it to 2.2.3 if that's considered the base stable version (we can still support v1 but we should probably dissuade use of it since it's not actively developed). We'll of course need to actually evaluate v2.2.3 in tests; maybe something we should set up w/ Travis-CI at some future point.

@JohnMCMa
Copy link
Contributor Author

@cjfields
Noted. Well, I'll try to make an exhaustive list of tags to Bio::Tools::Run::Primer3Redux for every 2.x version, which means that file will contain a large amount of bloat.

@cjfields
Copy link
Owner

@JohnMCMa to be honest, I would just stick with supporting a minimal version of v2.2.3, and stating that we no longer support older releases of v2 due to the unstable API (which would accomplish two things: reduce maintenance headache for us and push users to using more stable releases of primer3 v2).

If it means we remove tags or replace older tags with newer ones I'm okay with that; we will just need to gauge how much fallout there would be in tests and update the tags as needed.

@JohnMCMa
Copy link
Contributor Author

It's less of an hassle than you'd expect. There're 174 tags that has been used at least once since v2.0.0, of which 133 are used in all versions. If we ignore 2.0.0, then between 2.2.0 and 2.3.7 there're 158 commonly used tags.
This mean I can first write a "base" v2 tag array, and append any version-specific tags afterwards.

Another option is just ignore all unstable versions, which means I'd only need to deal with 1.1.4, and 2.2.3 onwards. For the v2 part, this would leave 172 tags, of which 160 are common between 2.2.3 (strictly speaking 2.2.2) and 2.3.7.

My quick skim of the release notes, however, shows there are more run-time arguments being deployed:

  • Many defaults were changed in 2.3.0. This is controlled by the argument --default_version, where the default value (2) directs primer3_core to apply 2.3.0+ defaults while a value of 1 applies previous defaults (incl. 2.2.3).
  • Also in 2.3.0, there're some changes in several PRIMER_TASK, although the only one that may potentially affects this module--for now--is that the default task pick_detection_primers is nor renamed generic, although the former is kept for backward compatibility
  • --io_version=3 support is ended in 2.3.5. I hope that doesn't break the result parsers.

I sincerely hope nobody is seriously using anything older than 1.1.4/2.3.0, though.

Attached is a census of the tags used in the 2.x.x branch.
primer3-v2tagsurvey.xlsx

@JohnMCMa
Copy link
Contributor Author

JohnMCMa commented Nov 4, 2016

Hi @cjfields , I have actually coded what's on my mind right now; just I haven't synced it yet.

@cjfields
Copy link
Owner

cjfields commented Nov 4, 2016

@JohnMCMa not a problem. You may have guessed by my radio silence I've been a bit busy myself

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

No branches or pull requests

2 participants