我有一个小的DNA序列fasta文件,如下所示:
序列1>
ACATATTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC序列2>
CTAACCTCTCCCAGTGTGGAACCTCTATCTCATGAGAAAGCTGGGATGAG
问题
2.如何在(开始,结束)位置提取子序列?
答案 0 :(得分:1)
1.如何在d3.js中解析它?
D3.js是一个JavaScript(查看" js")库,用于根据数据操作文档。所以,在一天结束时,D3 是 javascript,并且没有"解析"核酸序列的功能。
关于D3(实际上是关于JavaScript),您可以将DNA序列作为字符串处理:
"ACATATTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC..."
或作为数组:
["A", "C", "A", "T", "A"...]
或者,以一种繁琐的方式,作为一个对象数组:
[{position:1, base:"A"}, {position:2, base:"B"}...]
这取决于你。 FASTA是基于文本的,这意味着我们将数据视为字符串(第一个选项)。
2.如何在(开始,结束)位置提取子序列?
由于D3是一个javascript库,您必须使用JavaScript方法处理您的字符串。
例如,要查找序列中起点(TAC,对应于UAG密码子)三联体的位置,可以使用indexOf
:
var sequence = "ACATACTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC";
var start = "TAC";
console.log(sequence.indexOf(start))

(请注意,我所知道的大多数计算机语言都是基于零的,这意味着前一个代码段中的结果2
显示启动序列始于序列的第三个基础
或者,要将序列从给定的开始提取到给定的句点,您可以使用substring
和indexOf
:
var sequence = "ACATACTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC";
var start = "TAC";
var stop = "GGC"
console.log(sequence.substring(sequence.indexOf(start), sequence.indexOf(stop)+3))

PS :除了实际的核苷酸序列外,FASTA文件还有一个标题和一堆其他东西。如果通过"解析" 您正在谈论从FASTA文件中仅提取序列,我建议您发布另一个问题,而不是标签D3
,标记为Javascript
,并说明了FASTA文件的内容。