def get_html_correct_by_block(self, trialarray): if not trialarray: return div(italic("No trials")) html = """ <table class="extradetail"> <tr> <th>Block</th> <th>P(detected|present)</th> <th>P(detected|absent)</th> <th>c</th> <th>d'</th> </tr> """ for b in range(self.num_blocks): (p_detected_given_present, p_detected_given_absent, c, dprime, n_trials) = self.get_p_detected(trialarray, [b], None) html += tr( b, a(p_detected_given_present), a(p_detected_given_absent), a(c), a(dprime), ) html += """ </table> """ return html
def get_html_correct_by_group(self, trialarray): if not trialarray: return div(italic("No trials")) html = """ <table class="extradetail"> <tr> <th>Group</th> <th>P(detected|present)</th> <th>P(detected|absent)</th> <th>c</th> <th>d'</th> </tr> """ for g in range(N_CUES): (p_detected_given_present, p_detected_given_absent, c, dprime, n_trials) = self.get_p_detected(trialarray, None, [g]) html += tr( g, a(p_detected_given_present), a(p_detected_given_absent), a(c), a(dprime), ) html += """ </table> """ return html
def get_task_html(self): h = ( self.get_standard_clinician_block() + u""" <table class="taskdetail"> <tr> <td width="33%">Location:</td> <td width="67%"><b>{}</b></td> </tr> """.format( ws.webify(self.location) ) ) h += tr_qa("Start:", format_datetime_string(self.start, DATEFORMAT.SHORT_DATETIME, None)) h += tr_qa("End:", format_datetime_string(self.end, DATEFORMAT.SHORT_DATETIME, None)) h += tr(italic("Calculated duration (hours:minutes)"), italic(get_duration_h_m(self.start, self.end))) h += tr_qa("Patient contact?", get_yes_no_none(self.patient_contact)) h += tr_qa("Staff liaison?", get_yes_no_none(self.staff_liaison)) h += tr_qa("Other liaison?", get_yes_no_none(self.other_liaison)) h += tr_qa("Comment:", ws.webify(self.comment)) return h
def get_html_correct_by_half_and_probability(self, trialarray, grouparray): if (not trialarray) or (not grouparray): return div(italic("No trials or no groups")) n_target_highprob = max([x.n_target for x in grouparray]) n_target_lowprob = min([x.n_target for x in grouparray]) groups_highprob = [x.group_num for x in grouparray if x.n_target == n_target_highprob] groups_lowprob = [x.group_num for x in grouparray if x.n_target == n_target_lowprob] html = """ <div><i> High probability groups (cues): {}.\n Low probability groups (cues): {}.\n </i></div> <table class="extradetail"> <tr> <th>Half (0 first, 1 second)</th> <th>Target probability given stimulus (0 low, 1 high)</th> <th>P(detected|present)</th> <th>P(detected|absent)</th> <th>c</th> <th>d'</th> </tr> """.format( ", ".join([str(x) for x in groups_highprob]), ", ".join([str(x) for x in groups_lowprob]) ) for half in [0, 1]: for prob in [0, 1]: blocks = range(half * self.num_blocks/2, self.num_blocks/(2 - half)) groups = groups_lowprob if prob == 0 else groups_highprob (p_detected_given_present, p_detected_given_absent, c, dprime, n_trials) = self.get_p_detected(trialarray, blocks, groups) html += tr( half, a(prob), a(p_detected_given_present), a(p_detected_given_absent), a(c), a(dprime), ) html += """ </table> """ return html
def get_html_correct_by_group_and_block(self, trialarray): if not trialarray: return div(italic("No trials")) html = """ <table class="extradetail"> <tr> <th>Block</th> """ for g in range(N_CUES): html += """ <th>Group {0} P(detected|present)</th> <th>Group {0} P(detected|absent)</th> <th>Group {0} c</th> <th>Group {0} d'</th> """.format(g) html += """ </th> </tr> """ for b in range(self.num_blocks): html += "<tr>" + td(b) for g in range(N_CUES): (p_detected_given_present, p_detected_given_absent, c, dprime, n_trials) = self.get_p_detected(trialarray, [b], [g]) html += td(a(p_detected_given_present)) html += td(a(p_detected_given_absent)) html += td(a(c)) html += td(a(dprime)) html += "</tr>\n" html += """ </table> """ return html