Bioinformatics Toolbox™ включает, несколько получают функции, которые получают информацию из различных баз данных Web. Кроме того, с некоторыми основными навыками программирования MATLAB®, можно создать собственное, заставляют функцию получать информацию из определенной базы данных Web.
Следующая процедура иллюстрирует, как создать функцию, чтобы получить информацию из базы данных NCBI PubMed и считать информации в структуру MATLAB. База данных NCBI PubMed содержит биомедицинские литературные цитаты и краткие обзоры.
Следующая процедура показывает вам, как создать функцию с именем getpubmed
использование редактора MATLAB. Эта функция получит цитату и абстрактную информацию от литературных поисковых запросов PubMed и запишет данные в структуру MATLAB.
А именно, эта функция возьмет один или несколько критериев поиска, представит их базе данных PubMed для поиска, затем возвратить структуру MATLAB или массив структур, с каждой структурой, содержащей информацию для статьи, найденной поиском. Возвращенная информация будет включать идентификатор PubMed, год издания, заголовок, краткий обзор, авторов и цитату.
Функция будет также включать пары "имя-значение" свойства, которые позволяют пользователю функции ограничить поиск годом издания и ограничить количество возвращенных записей. Ниже пошаговое руководство, чтобы создать функцию с начала. Чтобы видеть завершенный m-файл, введите edit getpubmed.m
.
Из MATLAB, открытого редактор MATLAB путем выбора File > New > Function.
Задайте getpubmed
функция, ее входные параметры и возвращаемые значения путем ввода:
function pmstruct = getpubmed(searchterm,varargin) % GETPUBMED Search PubMed database & write results to MATLAB structure
Добавьте код, чтобы сделать некоторую основную проверку ошибок на необходимый вход SEARCHTERM
.
% Error checking for required input SEARCHTERM if(nargin<1) error(message('bioinfo:getpubmed:NotEnoughInputArguments')); end
Создайте переменные для двух пар "имя-значение" свойства и установите их значения по умолчанию.
% Set default settings for property name/value pairs, % 'NUMBEROFRECORDS' and 'DATEOFPUBLICATION' maxnum = 50; % NUMBEROFRECORDS default is 50 pubdate = ''; % DATEOFPUBLICATION default is an empty string
Добавьте код, чтобы проанализировать две пары "имя-значение" свойства, если обеспечено, как введено.
% Parsing the property name/value pairs num_argin = numel(varargin); for n = 1:2:num_argin arg = varargin{n}; switch lower(arg) % If NUMBEROFRECORDS is passed, set MAXNUM case 'numberofrecords' maxnum = varargin{n+1}; % If DATEOFPUBLICATION is passed, set PUBDATE case 'dateofpublication' pubdate = varargin{n+1}; end end
Вы получаете доступ к базе данных PubMed через поисковый URL, который представляет критерий поиска и опции, и затем возвращает результаты поиска в заданном формате. Этот поисковый URL состоит из базового URL и заданных параметров. Создайте переменную, содержащую базовый URL базы данных PubMed на веб-сайте NCBI.
% Create base URL for PubMed db site baseSearchURL = 'https://www.ncbi.nlm.nih.gov/sites/entrez?cmd=search';
Создайте переменные, чтобы содержать пять заданных параметров что getpubmed
функция будет использовать, а именно, дб (база данных), термин (критерий поиска), отчет (тип отчета, такой как MEDLINE®), формат (тип формата, такой как текст), и dispmax (максимальное количество записей на отображение).
% Set db parameter to pubmed dbOpt = '&db=pubmed'; % Set term parameter to SEARCHTERM and PUBDATE % (Default PUBDATE is '') termOpt = ['&term=',searchterm,'+AND+',pubdate]; % Set report parameter to medline reportOpt = '&report=medline'; % Set format parameter to text formatOpt = '&format=text'; % Set dispmax to MAXNUM % (Default MAXNUM is 50) maxOpt = ['&dispmax=',num2str(maxnum)];
Создайте переменную, содержащую поисковый URL от переменных, созданных на предыдущих шагах.
% Create search URL
searchURL = [baseSearchURL,dbOpt,termOpt,reportOpt,formatOpt,maxOpt];
Используйте urlread
функция, чтобы представить поисковый URL, получите результаты поиска и возвратите результаты (как текст в типе отчета MEDLINE) в medlineText
, символьный массив.
medlineText = urlread(searchURL);
Используйте MATLAB regexp
выражения function и регулярные выражения, чтобы проанализировать и извлечь информацию в medlineText
в hits
, массив ячеек, где каждая ячейка содержит MEDLINE-форматированный-текст для одной статьи. Первый вход является символьным массивом, чтобы искать, второй вход является поисковым выражением, которое говорит regexp
функционируйте, чтобы найти все записи, которые запускаются с PMID-
, в то время как третий вход, 'match'
, говорит regexp
функционируйте, чтобы возвратить фактические записи, а не положения записей.
hits = regexp(medlineText,'PMID-.*?(?=PMID|</pre>$)','match');
Инстанцируйте pmstruct
структура, возвращенная getpubmed
содержать шесть полей.
pmstruct = struct('PubMedID','','PublicationDate','','Title','',... 'Abstract','','Authors','','Citation','');
Используйте MATLAB regexp
выражения function и регулярные выражения, чтобы циклично выполниться через каждую статью в hits
и извлеките PubMed ID, год издания, заголовок, краткий обзор, авторов и цитату. Поместите эту информацию в pmstruct
массив структур.
for n = 1:numel(hits) pmstruct(n).PubMedID = regexp(hits{n},'(?<=PMID- ).*?(?=\n)','match', 'once'); pmstruct(n).PublicationDate = 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
Выберите File > Save As.
Когда вы закончите ваш файл должен выглядеть похожим на getpubmed.m
файл включен с программным обеспечением Bioinformatics Toolbox. Файл расположен в:
matlabroot\toolbox\bioinfo\biodemos\getpubmed.m
Примечание
Обозначение matlabroot
корневой каталог MATLAB, который является директорией, где программное обеспечение MATLAB установлено в вашей системе.