cutfree: Design degenerate oligos free of restriction sites

Description Usage Arguments Value Examples

View source: R/cutfree.R

Description

Design pools of DNA oligos that are guaranteed to not contain specified restriction enzyme cut sites. All cut sites are blocked while ensuring the optimal number of oligos remain in the pool.

Usage

1
2
3
4
cutfree(len = 20, sites = c(), codes = IUB_CODES,
  starting_oligo = strrep("N", len), min_blocks = 1,
  obj_weights = log(1:4), re_randomize = TRUE, seed = NULL,
  obj_frac = 1, quiet = FALSE, maxtime = 30)

Arguments

len

Length of the random oligo. Must be provided if starting_oligo is not given.

sites

Character vector of restriction sites to block.

starting_oligo

Starting oligo from which sites will be removed. If not given, defaults to a string of N's.

min_blocks

Minimum number of blocks at each site, i.e. the minimum number of changes that need to be made for a cut site to appear anywhere in the oligo.

obj_weights

Objective function weights for each code's degeneracy.

re_randomize

If TRUE (default), re-run the optimization to randomize the codes while maintaining the same number of oligos.

seed

Seed for the random number generator.

obj_frac

Fraction of the objective function that must be maintained during re-randomization.

quiet

Run silently with no output from Gurobi.

maxtime

Maximum time (in seconds) allowed for the solver.

Value

A list containing code – the randomize oligo, and a fields describing the MILP and the solution statistics.

Examples

1
2
result <- cutfree(m=20, sites=c("GGTCTC", "GATATC"), min_blocks=2)
print_degenerate_oligo(result$code)

pauljensen/cutfree documentation built on March 26, 2020, 12:45 p.m.