通过香草从 ncbi 获取 fasta javascript

fetch fasta from ncbi via vanilla javascript

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

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>

您问题中的 link 没有 return FASTA 格式为纯文本。它 returns HTML 使用 pre 标签使其看起来像纯文本。

您应该使用 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 控制台中工作(见图)。