Version 2.20 (10/16/2010)
This is a feature upgrade release. Major new features added in this version are listed below:
1. 64-bit Picky. We thoroughly re-examined each line of Picky programming code and modify it, when necessary, to support 64-bit computing architecture. Our focus was on the economical use of computer memory; thus, only data objects that truly needs to be stored in 64-bit format will be stored that way. At last, we now offer both 32-bit and 64-bit Picky versions compiled from the same source code. The 64-bit versions of Picky are available for 64-bit Linux and 64-bit Windows. However, 64-bit MacOS version is not yet available (Leopard or later) because a key GUI library required to build Picky (Carbon) is not available on 64-bit MacOS due to Apple's decision to obsolete that library in favor of Cocoa GUI library. For more information about the Picky 64-bit versions, see the FAQ page.
2. With the advent of the new 64-bit Picky versions, we also modified Picky licensing agreement. We now allow everyone to license the 32-bit Picky full version for free as long as an online 32-bit Picky licensing agreement is clicked through and proper user contact information is provided. The 64-bit Picky version is freely available to nonprofit users using it for non-commercial purposes, but commerical users will need to pay a licensing fee to license it for commercial use.
3. Multi-threaded suffix array construction algorithm. We switched from the Burkhardt-Kärkkäinen algorithm for suffix array construction to the Larsson-Sadakane algorithm because the latter allows us to create a multi-threaded version for suffix array construction. On a one CPU/core computer, the multi-threaded Larsson-Sadakane algorithm may be slightly slower but on two or more CPU/core computers, the new multi-threaded algorithm runs much faster. With the addition of this new algorithm, now all operations in Picky that may take longer than a few seconds to process are programmed to automatically take advantage of multiple CPU/cores in modern computers.
4. New Picky output file format containing more nontarget information. In some recent applications of Picky, the closest nontarget information it reports for each probe is becoming more useful. This is especially true when examining third party designed probes, when designing short interference RNAs (siRNAs), or when trying to predict the elusive targets of naturally occurring short RNAs. The closest nontargets are transcripts that are the most likely to bind to the probes given suitable hybridization or physiological conditions, but they do not form perfect Watson-Crick base-pairing with the probes. We now allows users to specify, for each probe, how many closest nontargets to report and/or how far away the estimated nontarget melting temperature is to the target melting temperature for it to be reported. The precise location of nontarget binding site is also now reported. This new information makes new applications such as siRNA design easier. These new applications necessitate the change of Picky full name from "Picky: An Optimal Oligo Microarray Design & Analysis Tool" to "Picky: An Optimal Oligonucleotide Design & Analysis Tool" since its applications is no longer limited to just microarray design.
5. This new Picky 2 output file format is not compatible with the previous Picky 1 output file format produced by Picky versions up to 2.14. Therefore, a Perl script is included in the new Picky 2.20 distribution to convert its new output file format to the older format if users have existing bioinformatic software that depends on the older format.
6. Additional user preference options. Users can now specify a fixed directory for Picky to start looking for input files each time it runs. This can be handy if you store your data files in a fixed location on your computer. In addition, users can now specify the number of CPU/cores to be used by Picky. This prevents Picky from grabbing all computing resources on a high-end server with many CPU/cores.
7. A shared probe can now be shared by more than 65536 targets. This may not be useful feature for Picky oligo design, but it's useful when examining third party designed oligos that target repeat regions in a large genome (yes, it happened.).
8. Numerous user interface improvements. Picky now remembers the last
directory it has loaded input files across execution sessions, and
defaults to this directory unless the fixed startup directory is
specified by the users. On a Mac, Picky will not pop up new overlap
windows exactly at the same spot on the upper-left corner of the
display, which sometimes obscure many underlying windows. During
Picky computation, it now reports a bit more information especially
during the oligo examination computation. These are added to its
processing information window and later saved as .report files.
Picky now saves the parameters used in each computation with the
probe set the computation created, thus Picky can switch
automatically among the different sets of parameters when users
click on each of the probe set instead of staying only at the last
set of parameters used for the last computation. Some parameter
names have also been changed to better explain what they control,
and the parameter dialog help messages have been improved to better
tell users what each parameter controls. Picky now allows users to
skip very short sequences or to break up very long sequences during
its data loading so users no longer have to resort to external Perl
programs to preprocess the input files. Finally, Picky is more
careful in checking filenames user provided for saving data to
avoid funny filenames like .picky without the main name part.
Version 2.14 (10/08/2009)
This is a maintenance release.
A deficiency was found in the Picky code for examining shared oligo
candidates. This deficiency prevents some valid candidates from being
considered, i.e., it has a false-negative impact on oligo selections,
estimated to be less than 1% of all shared oligos considered. Note
that it does not produce any false-positives; all the oligos selected
by previous versions of Picky were still valid under the given design
parameters. This deficiency also does not influence unique oligo
selections. When examining third party oligos, because these oligos
were fixed, Picky might identify some as bad oligos even though they
were indeed valid oligos due to this deficiency. In this regard, it is
considered a bug! This deficiency has now been fixed.
A minor problem was found in identifying oligo target genes as either"unique" or "shared" (see Picky FAQ #6). Their identification might be
influenced by the order of name appearance in the oligo set, which in
turn might be influenced by the "minimal temperature difference"
parameter. This problem has been fixed and all gene target types will
be correctly identified disregard the order of their appearance.
We revert back to use G++ 3.4.6 on Linux to compile this version of
Picky; it seems to produce code slightly faster than G++ 4.1.2 we used
for the previous version.
Version 2.13 (2/06/2008):
This is a bug fix release.
A boundary condition bug was found in Picky during a recent internal
Picky data structure dump for sample data gathering. This bug can be
triggered ONLY when designing fixed length oligos, i.e., when the
maximum and minimum oligo length input parameters are the same. This
bug causes suboptimal fixed length oligos to be chosen by Picky.
Since the Picky author and his collaborators never designed fixed
length oligos, this bug was not uncovered earlier and may have been in
Picky since its first public release. We apologize for this
inadvertently overlooked bug and the inconvenience it may have caused.
If you have never designed fixed length oligos, i.e., if your maximum
and minimum oligo length parameters are not the same as we have always
recommended for general Picky usage, then you are not influenced by
this bug and your previous oligos are all OK.
If you have however designed fixed length oligos using Picky, your
oligos might not be of high quality and you should redesign them. If
you have already synthesized these oligos, we suggest you to use the
new Oligo Examination feature in Picky to check how many of your
previous oligos are still usable. You can replace the unsuitable ones
with newer oligos designed with Picky 2.13 or later.
In all cases, we recommend upgrading to this new version 2.13.
Version 2.12 (11/08/2007):
Updates in this release are all related to third party oligo check.
1. Fixed the problem that duplicative oligos can be displayed when
unknown oligos in a third party oligo set exceeds 65536, causing
the oligo index to wrap back to the first oligo, thus the
duplicates. This limitation has been removed now.
2. Generalized oligo probe display so each oligo base can now assume
different color. This is to cope with the fact that third party
oligos may overlap each other, and may also be nonspecific (black),
unique (blue) or shared (green). Picky can now display multiple
colors on the same oligo to indicate that it is overlapped by other
oligos in the same oligo set and on the same target gene region.
3. Picky now also reports unique third party oligos that happen to
target uncertain (e.g., N base) regions in their target gene
sequences. These bases were converted to A in Picky but were marked
to be uncertain by a red color.
Version 2.11 (10/30/2007):
Minor usability and bug-fix improvements.
1. Fixed a bug related to unknown probe information display in the
status bar, which may lead to a crash. This is a GUI bug so it does
not change the computed outcomes in Picky 2.10.
2. Moved the new version check code to run inside a secondary thread
so it does not block the GUI response, especially when your
networking is slow or unreachable.
3. Added the new features summary to version check result window.
4. Displayed "Picky spinning" icon also during 3rd party oligo examination.
5. Used g++4 to recompile the Linux Picky and gained moderate speedup.
Version 2.1 (10/13/2007):
1. Examination of oligo sets. In addition to designing its own oligos,
Picky 2.1 now allows you to load existing oligos and examine their
thermodynamic properties against the input gene sets. There are
many important use of this new feature: to check 3rd party oligo
designs, to map your existing oligos against newly annotated gene
sets, to determine PCR primer specificity, etc. Loaded oligo sets
will be checked using the same rigorous thermodynamic computations
offered in Picky, and will be identified by the magnifying glass
icon to separate them from Picky's own oligo designs. The input
oligo file can be in almost any plain text format as long as Picky
can identify DNA sequences in the file. Picky uses its maximum and
minimum oligo size parameters to determine if a DNA fragment found
in the input should be considered a valid oligo, therefore you
should set these two parameters to reflect your oligo size range.
2. Multiple oligo sets. You can now design or examine multiple oligo
sets against the same input gene sets at the same time, without
having to discard the previous oligo set. Picky now holds multiple
oligo sets, both designed and examined by it. You can continue to
double-click each oligo to see its probe target region overlaps
view, but note that the temperature estimations reported in the
overlaps view (see 8 below) will always be based on the current set
of oligo parameters because they are dynamically recalculated, and
thus may not match the temperatures reported in the oligo panels if
they were designed or examined using a different set of parameters.
3. Oligo selection range. By popular demand, a new pair of range limit
parameters now allow you to specify a range, say, the last 500 bp
on the 3'-end of each input gene sequence, to select its oligos.
Read the automatic help text in the Oligo Design Parameters dialog
to learn more about how to use these two parameters.
4. Nonlinear salt effect equation. Picky 2.1 now offers two different
salt effect equations, the original linear salt effect equation
which is not sequence content dependent (SantaLucia et al.,
Biochemistry 35:3555-3562, 1996; also see Chou et al.,
Bioinformatics 20:2893-2902, 2004), and a nonlinear salt effect
equation which is sequence content dependent (Owczarzy et al,
Biochemistry 43:3537-3554, 2004). At lower salt concentration
(e.g., less than 500mM NaCl), the nonlinear equation gives better
prediction of the oligo melting temperatures, though at higher salt
concentrations both equations converge to the same predictions at
1M NaCl. The nonlinear salt effect equation takes longer time to
compute thus it may not be necessary if your hybridization buffer
salt concentration will be higher than 500mM.
5. Shared oligo preference. You can now specify that you prefer shared
oligos during the redundant oligo removal in Step 6 of Picky's
processing. Redundant oligos are extra oligos for the same gene
sequence. For example, if you have both a shared oligo and a unique
oligo targeting the same gene, and you only asked for one oligo per
gene, the shared oligo will be chosen and the unique oligo will be
discarded if you choose this preference option. The default is to
keep the unique oligo; the shared oligo may or may not be retained
depending on whether its other target(s) have their unique oligos.
6. Oligo candidate reevaluation. During oligo candidate selections
(Steps 3 and 5 in Picky processing), an extra new step has been
added to recalculate their melting temperature properties from the
perspective of the oligo candidates themselves. Previously, the
temperature calculations were whole sequence based and may not
provide the most precise local oligo property estimations. This
extra step adds about 5% processing time to Picky but removes the
chance of selecting non-optimal oligos under rare conditions.
7. Mac native Picky! Thanks to upgrades made by the authors of the
wxWidgets cross-platform GUI toolkit based on which Picky's user
interface was built, we can now offer a Mac native Picky solution,
which is a universal binary program for both Intel and PowerPC Macs
running Mac OS X 10.3.9 or later. Mac users, forget about X11!
8. Temperature sorted overlaps view. When double-clicking a probe
either in the probe panels or on a sequence where it is identified
by a blue or green color, a probe target region overlaps view will
be shown. Previously, this view is sorted based on sequence overlap
weights just like the other two overlaps views: the whole sequence
longest overlaps and the whole sequence all overlaps views. Now in
Picky 2.1, it is sorted based on the estimated melting temperature
of each nontarget with the double-clicked probe, thus it is much
easier to identify potential troublesome nontargets. However, note
that the temperatures in this view were dynamically recalculated
based on the current set of parameters, and they may not match the
temperatures reported in the probe panels if they were calculated
using a different set of parameters earlier. See 2 above.
9. Computing the suffix, invert and lcp arrays only once. If you did
not change the input gene sets, or flip the single or double strand
screening parameter, Step 1 and 2 of Picky computation will not be
repeated anymore to speed up Picky processing significantly. This
is especially beneficial now that multiple oligo sets can be easily
designed, each with maybe just a slight change of parameters.
10. Relaxation of many parameter limits. In order to give users a
greater application of Picky beyond oligo microarray designs, we
now expanded several allowable parameter limits in Picky 2.1. For
example, oligo size can now range from 20 to 100 bp long, and the
minimum temperature difference can even be set to zero. The latter
case is useful for oligo examination. Basically the temperatures
will be ignored by Picky and it will behave simply as a sequence
matching tool aligning your input oligos against the gene sets.
11. Automatic break up of long input sequences. This version of Picky
has a sequence length limit of 16384 bp. This is more than enough
for typical gene sequences, but may be too short for genome tiling
applications. Previously users need to break up their long input
sequences before loading them into Picky. Picky 2.1 can now
automatically break up long input sequences into multiple parts and
assign coordinates as part of the gene names. The breakup by Picky
2.1 is nonoverlapping; for more sophisticated overlapping breakups,
use the enclosed break_up.pl Perl program.
12. Lots of display, user interface and auxiliary features updates:
You can now check the availability of new Picky versions within
Picky itself, under the Help menu; The sequence and coordinate
indicators were changed to a small green dot to avoid obscuring
reading sequence names on certain platforms; Designed oligo sets
will carry a time stamp title, but will be automatically updated to
the file names they are saved into; To accommodate multiple loaded
oligo sets in Picky 2.1, the input sequence sets Will be repainted
dynamically using the last "clicked" oligo set and the Picky
processing window will reload its saved processing message;
Finally, the overall stability and user experience has been greatly
improved with Picky 2.1. Enjoy and good luck with your research!
Version 2.0 (6/07/2005):
1. Shared oligo design. Picky 2.0 can now design oligos for very
similar genes, e.g., gene family members that cannot have unique
oligos designed for them using the previous Picky 1.1. This new
feature helps to identify gene family activities even when some
gene family members cannot be individually recognized. For large
genomes, this often make many more genes possible for microarray
detection, even not individually. The shared oligos designed by
Picky 2.0 carry a green color in the Oligo Probes panel while the
individually designed oligos are still in the blue color.
2. New output file format. To accommodate the new shared oligo design
feature, the .picky output file has a slightly different new format
as indicated by the column headings in its first header line. The
.report file also now contains information on how the shared oligos
3. New overlap views. You can now double-click any sequence anywhere
you see in Picky's various interfaces to launch an overlap view
window. There are three types of overlap windows. If you
double-click within a green or blue oligo target region of a
sequence, a detailed all overlaps view only on the oligo target
region window will pop up. If you double-click on the other regions
of a sequence not chosen as probe targets, you will get a general
longest overlap view window for the whole sequence you just
double-clicked. Finally, if you wish, you can double-click the
upper-left hand corner in an already opened overlap window of any
flavor to get an all overlaps over the whole sequence overlap view
window, which can be quite heavy if you have a large input gene
set, but it does show you everything Picky has seen when it
selected its oligos for that particular sequence you are viewing.
4. Click-to-view feature. Also now when you double-click a sequence as
described above to get its overlap views, the place where you just
double-clicked will be pulled into view when the new overlap window
pop up. This works both for the detail probe region all overlaps
view or the whole sequence longest overlap view, but not the all
overlaps for the whole sequence view. This helps you quickly
compare sequence regions to other sequence regions by "jumping"
among their overlap view windows.
5. Lockable dynamic alignment. Previously in Picky 1.1 you can move
your mouse around Picky overlap windows to see some dynamically
generated alignments of a target sequence with its various
nontargets. If you move the mouse away from any detected exact
match fragment, the alignment will quickly disappear. People are
often interested in seeing the alignment beyond the window size,
especially when two sequences are very similar or have long
stretches of very similar regions. You can now click on a nontarget
fragment to lock its alignment view. This way, you can scroll back
and forth without losing your alignment. This new feature
essentially makes Picky a very handy dynamic multiple sequence
alignment tool. To unlock the alignment, simply click on any white
area of your screen or on another nontarget fragment to lock
6. Scrolling with ease. You can now use your keyboard navigation keys
to scroll Picky window views. You can use the up, down, left, and
right arrow keys to scroll a few lines or base positions gradually,
or you can use the Home, End, Page Up and Page Down keys to scroll
much faster vertically. Finally, if you have a mouse with a
rotation wheel, you can also use that to scroll Picky's window
content. Note that on Windows you need to click on an window to get
the keyboard focus to it before you can scroll its content with
keys or the wheel on your mouse.
7. More precise nontarget melting temperature estimation. Picky 2.0
has a newly improved nontarget melting temperature calculation
module which takes boundary conditions into consideration when
checking for possible cross-hybridizations, e.g., those sequence
region matches that occurred at the very end of one another. This
new module is also slightly more efficient than the previous one.
8. Improved color schemes. Subsequent experience on various computer
screens and LCD panels allows us to fine-tuned Picky's display
colors to better illuminate its computed findings to users. The new
color scheme used in this new version should make it much easier to
identify the two types of probe target regions and the extent of
similarity match of any sequence region to the other sequences.
9. Expanded maximum total sequence limit. Previously in Picky 1.1 a
maximum total of 65,532 input sequences can be loaded into Picky at
once. This limit has now been lifted. However, the physical memory
size limit, the two gene set limit, the maximum 16,384 bp sequence
length limit, and the 65,532 per gene set sequence limit still
hold. Normally, it is your physical memory size that is the real
limiting factor on the maximum gene set size you can process on
10. A utility to chop long input sequences is included in this
release. When loading input sequences, if you see Picky complains
that some input sequences are longer than its 16,384 bp limit so it
cannot load them, you can use the include Perl script "chop.pl" to
break long input sequences into multiple fragments with the same
sequence name to allow Picky to process them. Note that the side
effect of this script is that you may have multiple oligos designed
for some long sequences even if you just ask for one oligo design
per sequence. You can modify the script so it may name each
sequence fragment differently so you can then filter out those
extra oligos. PC users can download ActivePerl to enable the
execution of this Perl script <httpd://www.activeperl.com>.
11. Various user interface improvements and minor bug-fixes.
Version 1.1 (04/26/2004):
1. Picky now takes sense strand input sequences. We changed it because it is more common to maintain gene sequences in the sense strand direction.
2. Dynamic overlap displays, both the general view and the detail view, now displays a local alignment up to the similarity level set by the users during the oligo computation. Additionally, in the detail oligo target region view a projected hybridization temperature of each nontarget with the probe are shown.
Version 1.0 (03/12/2004):
First public demo released.