通过香草javascript从ncbi获取fasta

时间:2019-07-17 15:37:43

标签: javascript bioinformatics

有没有办法从NCBI数据库链接中获取序列(使用Vanilla JS)?

https://www.ncbi.nlm.nih.gov/protein/KTC77672.1?report=fasta&log$=seqview&format=text

我使用其他数据库(uniprot)做到了这一点,并且有效。但是NCBI可能会有一些差异。

async function getData(url) {
  const data = await fetch(url);
  return data.text();
}

const test = getData('https://www.uniprot.org/uniprot/E5G0U9.fasta').then((r) => console.warn(r));

test.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
    <title>test</title>
</head>
<body>
    test
</body>
<script src="test.js"></script>

1 个答案:

答案 0 :(得分:0)

您问题中的链接没有以纯文本形式返回FASTA格式。它使用pre标签返回HTML,使其看起来像纯文本。

您应该使用NCBI E-utilities API-特别是efetch方法。

示例蛋白质的URI如下:

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=protein&id=KTC77672.1&rettype=fasta

因此,请在您的Javascript函数中尝试一下。似乎可以在我的Chrome控制台中使用(参见图片)。

enter image description here