Exemplo n.º 1
0
def oligo_dg_vdisp(dg=None, *tags, **attrs):
	if dg is None:
		klass = UNKNOWN
	elif dg == 0:
		klass = OK
	else:
		klass = WARN
	return recursive_class_tag(tags, sig2(dg) if dg is not None else 'Unknown', **__merge_class_attrs(klass, **attrs))
Exemplo n.º 2
0
def amplicon_dg_vdisp(dg=None, *tags, **attrs):
	if dg is None:
		klass = UNKNOWN
	elif dg >= -2:
		klass = OK
	elif dg >= -4 and dg < -2:
		klass = WARN
	else:
		klass = UHOH
	return recursive_class_tag(tags, sig2(dg) if dg is not None else 'Unknown', **__merge_class_attrs(klass, **attrs))
Exemplo n.º 3
0
def amplicon_length_vdisp(length=None, *tags, **attrs):
	if not length:
		klass = UNKNOWN
	elif length < 120:
		klass = OK
	elif length >= 120 and length < 150:
		klass = WARN
	else:
		klass = UHOH
	return recursive_class_tag(tags, str(length) if length else 'Unknown', **__merge_class_attrs(klass, **attrs))
Exemplo n.º 4
0
def gc_content_vdisp(gc=None, *tags, **attrs):
	if gc is None:
		klass = UNKNOWN
	if gc >= 40 and gc <= 60:
		klass = OK
	elif (gc >= 35 and gc < 40) or (gc > 60 and gc <= 65):
		klass = WARN
	else:
		klass = UHOH
	return recursive_class_tag(tags, "%s%%" % sig0(gc) if gc is not None else 'Unknown', **__merge_class_attrs(klass, **attrs))
Exemplo n.º 5
0
def intra_primer_delta_tm_vdisp(fp_tm=None, rp_tm=None, *tags, **attrs):
	if not fp_tm or not rp_tm:
		klass = UNKNOWN
		diff = None
	else:
		diff = abs(rp_tm-fp_tm)
		if abs(rp_tm-fp_tm) < 2:
			klass = OK
		else:
			klass = WARN
	return recursive_class_tag(tags, sig1(diff) if diff is not None else 'Unknown', **__merge_class_attrs(klass, **attrs))
Exemplo n.º 6
0
def primer_tm_vdisp(tm=None, *tags, **attrs):
	if not tm:
		klass = UNKNOWN
	elif tm >= 58.95 and tm < 63.05:
		klass = OK
	elif (tm > 55 and tm < 58.95) or tm >= 63.05:
		klass = WARN
	else:
		klass = UHOH

	return recursive_class_tag(tags, sig1(tm) if tm else 'Unknown', **__merge_class_attrs(klass, **attrs))
Exemplo n.º 7
0
def probe_tm_vdisp(tm=None, *tags, **attrs):
	if attrs.pop('snp', False):
		max_tm = 68.05
	else:
		max_tm = 70.05
	if not tm:
		klass = UNKNOWN
	elif tm >= 64.95 and tm < max_tm:
		klass = OK
	else:
		klass = WARN
	return recursive_class_tag(tags, sig1(tm) if tm else 'Unknown', **__merge_class_attrs(klass, **attrs))
Exemplo n.º 8
0
def primer_probe_delta_tm_vdisp(primer_tm=None, probe_tm=None, *tags, **attrs):
	if not primer_tm or not probe_tm:
		klass = UNKNOWN
		diff = None
	else:
		diff = probe_tm-primer_tm
		if diff > 1:
			klass = OK
		elif diff > 0:
			klass = WARN
		else:
			klass = UHOH

	return recursive_class_tag(tags, sig1(diff) if diff is not None else 'Unknown', **__merge_class_attrs(klass, **attrs))
Exemplo n.º 9
0
def max_overlap_vdisp(overlap=None, *tags, **attrs):
	"""
	Assumes output comes from max_overlap function (len, (off, off))
	"""
	if overlap is None:
		klass = UNKNOWN
	elif overlap[0] < 6:
		klass = OK
	elif overlap[0] < 8:
		klass = WARN
	else:
		klass = UHOH

	return recursive_class_tag(tags, str(overlap[0]) if overlap is not None else 'Unknown', **__merge_class_attrs(klass, **attrs))