冷击DNA匹配:何时足以定罪的证据标准

需积分: 9 0 下载量 146 浏览量 更新于2024-07-09 收藏 574KB PDF 举报
"文章探讨了在司法系统中使用DNA证据作为唯一定罪依据的合理性,特别是在‘冷击’(cold hit)匹配的情况下。冷击是指在没有先验嫌疑人的情况下,通过数据库比对找到的DNA匹配。文章指出,这种类型的证据依赖于高度量化的统计概率,而法院往往对这些概率的理解存在误区。" 文章深入分析了"合理怀疑"(reasonable doubt)这一法律标准与统计确定性之间的关系。在传统的刑事审判中,检方必须排除所有合理怀疑以证明被告的有罪。然而,当案件主要基于DNA匹配时,这种证据的数学精确性提出了新的挑战。作者Andrea Roth提出,尽管具有极高的来源概率,如同天文数字般的DNA匹配可能性,可能足以满足定罪的“实际信念”(actual belief)和“道德确定性”(moral certainty)要求,但“纯粹的冷击”证据的特性需要法院设定量化阈值以确保证据的充分性。 Roth建议,法院在考虑DNA证据的充分性时,应至少要求被告的DNA与犯罪现场样本匹配的概率达到99.9%的源概率。这个提议基于对陪审员研究的理解,以及对证据一致性和司法系统合法性的需求。通过设定这样一个门槛,法院可以更准确地评估统计证据的可靠性,并避免误判。 此外,文章还讨论了DNA证据在法庭上呈现的方式,以及如何教育法官和陪审团正确理解概率和统计证据的重要性。它强调,随着DNA技术的进步和数据库的扩大,法院必须发展出一套适用于这类证据的证据标准,以确保公正审判并维护司法系统的公信力。 这篇研究论文揭示了在DNA证据成为关键证据时,法律界面临的挑战,以及如何在科学与法律之间寻找平衡,以确保在保护无辜和惩罚罪犯之间找到正确的司法路径。通过对"合理怀疑"的重新审视,文章为司法实践提供了宝贵的理论指导,旨在促进更加严谨和公正的DNA证据使用。

def repair_dna(self, dna_sequence, accessor, start_index, vt_check=None, max_consec = 4, max_error = 6): """ Repair the DNA sequence containing one (or more) errors. 默认有indel :return: repaired DNA sequence set and additional information. :rtype: list, at least have one item """ def recursive_repair(dna_sequence, location, start_index, consec, error): # recursion stop if consec > max_consec or error > max_error: return [] elif location == len(dna_sequence): return [(dna_sequence, consec, error)] # get variables results = [] nucleotides = "ACGT" used_indices, current_nucleotide = np.where(accessor[start_index] >= 0)[0], dna_sequence[location] used_nucleotides = [nucleotides[used_index] for used_index in used_indices] # match if current_nucleotide in used_nucleotides: results.extend(recursive_repair(dna_sequence, location + 1, accessor[start_index][nucleotides.index(current_nucleotide)]), 0, error) # substitution for nucleotide in used_nucleotides: if nucleotide != current_nucleotide: results.extend(recursive_repair(dna_sequence, location + 1, accessor[start_index][nucleotides.index(nucleotide)]), consec + 1, error + 1) # insertion results.extend(recursive_repair(dna_sequence[:location] + dna_sequence[location + 1:], location, accessor[start_index][nucleotides.index(nucleotide)]), consec + 1, error + 1) # deletion for nucleotide in used_nucleotides: results.extend(recursive_repair(dna_sequence[:location] + nucleotide + dna_sequence[location + 1:], location + 1, accessor[start_index][nucleotides.index(nucleotide)]), consec + 1, error + 1) return results

2023-07-17 上传