有没有办法从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>
答案 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控制台中使用(参见图片)。