A computer-implemented method as follows. Providing a
list of target sequences associated with one or more organisms in a
list of organisms. Providing a
list of candidate prototype sequences suspected of hybridizing to one or more of the target sequences. Generating a collection of probes corresponding to each candidate prototype sequence, each collection of probes having a set of probes for every subsequence having a predetermined, fixed subsequence length of the corresponding candidate prototype sequence. The sets consist of the corresponding subsequence and every variation of the corresponding subsequence formed by varying a center
nucleotide of the corresponding subsequence. Generating a set of fragments corresponding to each target sequence, each set of fragments having every fragment having a predetermined, fixed fragment length of the corresponding target sequence. Calculating the
binding free energy of each fragment with a perfect complimentary sequence of the fragment. If any
binding free energy is above a predetermined, fixed threshold, the fragment is extended one
nucleotide at a time until the
binding free energy is below the threshold or the fragment is the same length as the probe, generating a set of extended fragments. Determining which extended fragments are perfect matches to any of the probes. Assembling a base call sequence corresponding to each candidate prototype sequence. The base call sequence has a base call corresponding to the center
nucleotide of each probe of the corresponding prototype sequence that is a perfect match to any extended fragment, but for which the other members of the set of probes containing the perfect match probe are not perfect matches to any extended fragment and a non-base call in all other circumstances.