如何将 FASTA 读入数据框并在 d3.js 中提取 FASTA 文件的子序列

how to read FASTA into dataframe and extract subsequences of FASTA file in d3.js

我有一个 DNA 序列的小 fasta 文件,如下所示:

sequence 1 >
ACATATTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC

sequence 2 >
CTAACCTCTCCCAGTGTGGAACCTCTATCTCATGAGAAAGCTGGGATGAG


问题

  1. 如何在d3.js中解析它?
    • 比如从 100 个以 fasta 格式存储的序列计算平均序列,以及如何像 d3 中的 2D 对象一样捕获它。

2.How 要在(开始、结束)位置提取子序列?

1.How to parse it in d3.js?

D3.js 是一个 JavaScript(查看 "js")库,用于根据数据操作文档。所以,归根结底,D3javascript,没有"parsing"核酸序列的功能

关于D3(其实是关于JavaScript),你可以把DNA序列当做字符串来处理:

"ACATATTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC..."

或作为数组:

["A", "C", "A", "T", "A"...]

或者,以一种繁琐的方式,作为 objects:

的数组
[{position:1, base:"A"}, {position:2, base:"B"}...]

这取决于你。 FASTA是text-based,这意味着我们会将数据视为字符串(第一个选项)。

2.How to extract subsequence at (start, end) location?

由于 D3 是一个 javascript 库,您必须使用 JavaScript 方法处理您的字符串。

例如,要找到起始(TAC,对应于 UAG 密码子)三联体在您的序列中的位置,您可以使用 indexOf:

var sequence = "ACATACTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC";

var start = "TAC";

console.log(sequence.indexOf(start))

(请记住,正如我所知道的大多数计算机语言一样,JavaScript 是从零开始的,这意味着前面代码段中的结果 2 表明开始序列开始在你序列的 third 碱基)

或者,要提取从给定起点到给定终点的序列,您可以使用 substringindexOf:

var sequence = "ACATACTGGAGGCCGAAACAATGAGGCGTGATCAACTCAGTATATCAC";

var start = "TAC";

var stop = "GGC"

console.log(sequence.substring(sequence.indexOf(start), sequence.indexOf(stop)+3))

PS:FASTA 文件有一个 header 和一堆除了实际核苷酸序列之外的其他内容。如果 "parse" 你说的只是从 FASTA 文件中提取序列,我建议你 post another问题,没有标签 D3,有标签 Javascript 并解释什么是 FASTA 文件。