在数据表中搜索实际值的反向补码字符串

问题描述 投票:0回答:1

我的问题很复杂,我将其分为两部分。首先,让我定义问题。第一步,将字母reverse complementA互换,将TC互换(反之亦然),形成DNA序列的G,并随后颠倒拼写字母的序列。例如,ACCTGAG的反向序列为GAGTCCA(只需从末尾开始读取序列),而反向补码为CTCAGGT(通过首先交换字母然后反转结果序列) 。已经给出了针对SQL Server中确切问题的解决方案here,但是我需要Javascript中的此功能。

我的问题的第二部分涉及将反向补码逻辑合并到DataTables中。更精确地说,我想动态检索Da​​taTable的column [0]中所有值,这些数据的反向互补字符串等于其值本身(例如TGCGCA是具有反向ACGCGT和反向互补TGCGCA的序列)再次)。因此,我不想在column [0]中搜索特定值,而是要获取满足上述条件的所有条目。我希望在单击复选框时发生这种情况;用户将不会输入任何内容。

下面的代码是我到目前为止尝试过的(但我认为它不在正确的轨道上:]

var table = $('#datatable').DataTable({

this.api().columns([0]).every(function () {
    var column0 = this;
    //this calculates just the reverse not the reverse complement
    column0.data().each(function (d, j) {
        rev = d.split("").reverse().join("") 
        column0
            .search(rev)
            .draw();
     });
});
javascript jquery datatables reverse
1个回答
0
投票

我相信最好的选择是custom filter

function search(sequence) {
  let revSeq = ''
  for (let char of sequence) revSeq = char + revSeq 
  $.fn.dataTable.ext.search.push(function(settings, data) {
    return revSeq === data[0]
  })
  table.draw()
  $.fn.dataTable.ext.search.pop()
}

现在search('ACCTGAG')将过滤掉所有具有序列GAGTCCA的行。


<label><input type="checkbox" class="sequence" value="TGCGCA">TGCGCA</label>
<label><input type="checkbox" class="sequence" value="TTCGCA">TTCGCA</label>

依此类推。选中复选框时触发搜索:

$('.sequence').on('change', function() {
  if (this.checked) search(this.value)
})
© www.soinside.com 2019 - 2024. All rights reserved.