主要内容

从Web数据库获取信息

get函数是什么?

生物信息学工具箱™包括几个获取功能,从各种Web数据库检索信息。另外,用MATLAB做了一些基础®编程技能,您可以创建自己的get函数来从特定的Web数据库检索信息。

下面的过程说明如何创建一个函数来从NCBI PubMed数据库检索信息,并将信息读入MATLAB结构。NCBI PubMed数据库包含生物医学文献引用和摘要。

创建getpubmed函数

下面的过程向您展示如何创建一个名为getpubmed使用MATLAB编辑器。该函数将从PubMed文献搜索中检索引文和摘要信息,并将数据写入MATLAB结构。

具体来说,这个函数将获取一个或多个搜索词,将它们提交给PubMed数据库进行搜索,然后返回一个MATLAB结构或结构数组,每个结构包含搜索发现的文章的信息。返回的信息将包括PubMed标识符、出版日期、标题、摘要、作者和引用。

该函数还将包括属性名称-值对,允许函数的用户根据发布日期限制搜索,并限制返回的记录数量。下面是从头开始创建函数的分步指南。要查看完整的m-file,键入编辑getpubmed.m

  1. 在MATLAB中,通过选择打开MATLAB编辑器File >新建>功能

  2. 定义getpubmed函数,它的输入参数和返回值:

    函数Pmstruct = getpubmed(搜索词,varargin)搜索PubMed数据库,并将结果写入MATLAB结构
  3. 添加代码对所需的输入进行一些基本的错误检查SEARCHTERM

    %错误检查所需的输入SEARCHTERM如果(输入参数个数< 1)错误(消息(“bioinfo: getpubmed: NotEnoughInputArguments”));结束
  4. 为两个属性名称-值对创建变量,并设置它们的默认值。

    设置属性名/值对的默认设置,%“记录数目”及“出版日期”Maxnum = 50;% NUMBEROFRECORDS默认值为50作用是=% DATEOFPUBLICATION默认为空字符串
  5. 如果作为输入提供,则添加代码来解析两个属性名称-值对。

    解析属性名/值对Num_argin = numel(varargin);N = 1:2:num_argin arg = varargin{N};开关低(arg)如果NUMBEROFRECORDS通过,则设置MAXNUM情况下“numberofrecords”Maxnum = varargin{n+1};%如果DATEOFPUBLICATION通过,则设置PUBDATE情况下“dateofpublication”Pubdate = varargin{n+1};结束结束
  6. 您可以通过搜索URL访问PubMed数据库,该URL提交一个搜索词和选项,然后以指定的格式返回搜索结果。这个搜索URL由一个基本URL和已定义的参数组成。在NCBI网站上创建一个包含PubMed数据库基本URL的变量。

    创建PubMed数据库站点baseSearchURL = 'https://www.ncbi.nlm.nih.gov/sites/entrez?cmd=search';
  7. 创建包含五个已定义参数的变量getpubmed函数将使用,即db(数据库),term(搜索词),report(报表类型,如MEDLINE®)、format(格式类型,如文本)和distmax(要显示的最大记录数)。

    %设置db参数为pubmeddbOpt =“db = pubmed”设置术语参数为SEARCHTERM和PUBDATE%(默认PUBDATE为")termOpt = [“项=”searchterm,+和+的,发布日期);%设置报告参数为medlinereportOpt =“内= medline”设置格式参数为文本formatOpt =“格式= pubmed”将“dismax”设置为“MAXNUM”%(默认MAXNUM为50)maxOpt = [“&dispmax = 'num2str (maxnum)];
  8. 从前面步骤中创建的变量中创建一个包含搜索URL的变量。

    创建搜索URLsearchURL = [baseSearchURL,dbOpt,termOpt,reportOpt,formatOpt,maxOpt];
  9. 使用urlread函数中提交搜索URL、检索搜索结果并返回结果(作为MEDLINE报告类型中的文本)medlineText,一个字符数组。

    medlineText = urlread(searchURL);
  10. 使用MATLAB正则表达式函数和正则表达式来解析和提取中的信息medlineText支安打,一个单元格数组,其中每个单元格包含一篇文章的medline格式的文本。第一个输入是要搜索的字符数组,第二个输入是一个搜索表达式,它告诉正则表达式函数查找以。开头的所有记录PMID -,而第三个输入,“匹配”,告诉正则表达式函数返回实际记录,而不是记录的位置。

    hits = regexp(medlineText,PMID -。* ? (? = PMID | < / pre > $)”“匹配”);
  11. 实例化pmstruct返回的结构getpubmed包含六个字段。

    pmstruct =结构(“PubMedID”,“‘PublicationDate’,”,“标题”,“……“抽象”,”,“作者”,“‘引用’,”);
  12. 使用MATLAB正则表达式函数和正则表达式循环遍历每篇文章支安打并提取PubMed ID、出版日期、标题、摘要、作者和引用。将此信息放在pmstruct结构数组。

    对于n = 1:numel(hits) pmstruct(n)。PubMedID = regexp(hits{n},'(?<=PMID-).*?(?=\n)','match', 'once');pmstruct (n)。publationdate = regexp(hits{n},'(?<=DP -).*?(?=\n)','match', 'once');pmstruct (n)。Title = regexp(hits{n},'(?<= ti -).*?=PG -|AB -)','match', 'once');pmstruct (n)。Abstract = regexp(hits{n},'(?<= ab -).*?(?=AD -)','match', 'once'); pmstruct(n).Authors = regexp(hits{n},'(?<=AU - ).*?(?=\n)','match'); pmstruct(n).Citation = regexp(hits{n},'(?<=SO - ).*?(?=\n)','match', 'once'); end
  13. 选择文件>另存为

    完成后,您的文件应该类似于getpubmed.m文件包含在生物信息学工具箱软件中。该文件位于:

    matlabroot\工具箱\ bioinfo \ biodemos \ getpubmed.m

    请注意

    的符号matlabroot是MATLAB根目录,这是MATLAB软件安装在系统上的目录。