Это команда gmod_bulk_load_gff3.plp, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
$ 0 - Массовая загрузка файлов gff3 в базу данных chado.
СИНТАКСИС
% $ 0 [параметры]
% Кот | $ 0 [варианты]
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
--gfffile Файл, содержащий GFF3 (необязательно, может читать
из стандартного ввода)
--fastafile Файл Fasta для загрузки последовательности из
--организм Организм данных
(используйте значение fromdata для чтения из GFF. организм = xxx)
--dbprofile Имя профиля конфигурации базы данных
--dbname Имя базы данных
--dbuser Имя пользователя базы данных
--dbpass Пароль базы данных
--dbhost Хост базы данных
--dbport Порт базы данных
--analysis Данные GFF взяты из вычислительного анализа.
--noload Создавать файлы массовой загрузки, но не загружать их.
--nosequence Не загружать последовательность, даже если она находится в файле
--notransact Не использовать одну транзакцию для загрузки базы данных
--drop_indexes Удалить индексы затронутых таблиц перед началом загрузки
и воссоздать после завершения загрузки; в целом
не помогает производительности.
--validate Проверить условия SOFA перед попыткой вставить (может
замедлить запуск скрипта, по умолчанию выключено)
--ontology Дать указания по работе с разным Ontology_terms
--skip_vacuum Пропустить очистку таблиц после вставок (по умолчанию)
--no_skip_vaccum Не пропускать очистку столов
--inserts Печать операторов INSERT вместо COPY FROM STDIN
--noexon Не преобразовывать функции CDS в экзоны (но все же создавать
полипептидные особенности)
--recreate_cache Заставляет воссоздать кеш уникальных имен
--remove_lock Снять блокировку, чтобы разрешить запуск нового процесса
--save_tmpfiles Сохранить временные файлы, используемые для загрузки базы данных
--random_tmp_dir Использовать случайно сгенерированный каталог tmp (по умолчанию
использовать текущий каталог)
--no_target_syn По умолчанию загрузчик добавляет targetId в
список синонимов функции. Этот флаг
отключите это.
--unique_target Доверять уникальности целевых идентификаторов. ID регистр
чувствительный. По умолчанию уникальность новой цели
будет TargetId_PrimaryKey. С этим флагом
это будет TargetId. Кроме того, название
созданной целью будет ее TargetId, а не
Название функции.
--dbxref Использовать первую аннотацию Dbxref в качестве
основной dbxref (который входит в feature.dbxref_id),
или если указан необязательный аргумент, первый
dbxref, у которого есть часть базы данных (то есть перед ':')
который соответствует предоставленному шаблону.
--delete Вместо того, чтобы вставлять объекты в базу данных,
используйте строки GFF для удаления объектов, как если бы
опция CRUD = delete-all была установлена на всех строках
(см. «Удаление и обновление через GFF ниже»). В
загрузчик запросит подтверждение перед продолжением.
--delete_i_really_mean_it
Работает как --delete, за исключением того, что не спрашивает
для подтверждения.
--fp_cv Имя словаря с управляемым свойством функции
(по умолчанию "feature_property").
--noaddfpcv По умолчанию загрузчик добавляет типы атрибутов GFF как
новые термины feature_property cv при отсутствии. Этот флаг
деактивирует его.
** dgg note: следует переименовать этот флаг: - [no] autoupdate
для таблиц Чадо cvterm, cv, db, organ, analysis ...
--manual Подробные страницы руководства
--custom_adapter Использовать настраиваемый адаптер подкласса для Bio :: GMOD :: DB :: Adapter
В качестве аргумента укажите путь к адаптеру
--private_schema Загрузить данные в непубличную схему.
--use_public_cv При загрузке в частную схему загрузить любое резюме и
данные cvterm в публичную схему
--end_sql Код SQL для выполнения после завершения загрузки данных
--allow_external_parent
Разрешить родительским тегам ссылаться на идентификаторы за пределами текущего
GFF файл
Обратите внимание, что все аргументы, начинающиеся с 'db', а также организм могут быть предоставлены
по умолчанию Bio :: GMOD :: Config, который был установлен при запуске make install. Также обратите внимание
параметр dbprofile и все другие параметры db * являются взаимоисключающими - если вы укажете
dbprofile, не указывайте никаких других параметров db *, так как они не будут использоваться.
ОПИСАНИЕ
GFF в файле данных должен быть версии 3 из-за более жесткого контроля спецификации.
и использование контролируемой лексики. Соответственно, названия типов объектов должны быть точно
в аннотации функций онтологии последовательности (SOFA), а не в синонимах и
инвентарные номера (инвентарные номера SO могут поддерживаться в будущих версиях этого
сценарий).
Обратите внимание, что директива ## sequence-region не поддерживается как способ объявления
эталонная последовательность для файла GFF3. Директива ## sequence-region невыразительна
достаточно, чтобы определить, к какому типу относится последовательность (т. е. хромосома, контиг,
рука и т. д.?). Если ваш файл GFF использует директиву ## sequence-region таким образом, вы должны
преобразовать его в полную строку GFF3. Например, если у вас есть такая строка:
## последовательность-область chrI 1 9999999
Затем его нужно преобразовать в строку GFF3 следующим образом:
chrI. хромосома 1 9999999. . . ID = chrI
Как ГФФ3 is хранить in Чадо
Вот краткое описание того, как данные GFF3 хранятся в chado:
Столбец 1 (контрольная последовательность)
Ссылочная последовательность для функции становится srcfeature_id функции в
таблица featureloc для этой функции. Этому объекту featureloc обычно присваивается нулевой ранг.
если есть другие местоположения, связанные с этой функцией (например, для совпадения
feature), другим местоположениям будут присвоены значения featureloc.rank больше, чем
нулю.
Колонка 2 (источник)
Источник хранится как dbxref. Экземпляр chado должен иметь запись в таблице db
с именем GFF_source. Затем сценарий создаст запись dbxref для функции
source и свяжите его с функцией через таблицу feature_dbxref.
Столбец 3 (тип)
Cvterm.cvterm_id типа SOFA хранится в feature.type_id.
Колонка 4 (начало)
Значение start минус 1 сохраняется в featureloc.fmin (вычитается единица, потому что
chado использует межбазовые координаты, тогда как GFF использует базовые координаты).
Колонка 5 (конец)
Значение end хранится в featureloc.fmax.
Столбец 6 (оценка)
Оценка сохраняется в одном из столбцов оценок в таблице функций анализа. В
по умолчанию - analysisfeature.significance. См. Раздел ниже о результатах анализа.
чтобы получить больше информации.
Колонка 7 (нить)
Нить сохраняется в featureloc.strand.
Колонка 8 (фаза)
Фаза сохраняется в featureloc.phase. Обратите внимание, что в настоящее время существует проблема с
схема чадо для случая отдельных экзонов, имеющих разные фазы в разных
стенограммы. Если у ваших данных есть именно такой случай, пожаловаться на
[электронная почта защищена] найти способы решения этой проблемы.
Колонка 9 (группа)
Здесь происходит волшебство.
Назначение feature.name, feature.uniquename
Значения feature.name и feature.uniquename назначаются в соответствии с этими
простые правила:
Если есть тег ID, он используется как feature.uniquename
в противном случае ему присваивается уникальное имя, равное 'auto' конкатенированному
с feature_id.
Если есть тег имени, его значение устанавливается на feature.name;
в противном случае он равен нулю.
Обратите внимание, что эти правила намного проще, чем те, которые используются в Bio :: DB :: GFF.
использует и, возможно, потребуется пересмотреть.
Назначение записей feature_relationship
Всем родительским объектам с тегами присваиваются записи feature_relationship из 'part_of'
к их родительским функциям. Тегам Derived_from назначается производное_from.
отношения. Обратите внимание, что родительские элементы должны появиться в файле перед любыми
функции используют теги Parent или Derived_from, относящиеся к этой функции.
Теги псевдонимов
Значения псевдонимов хранятся в таблице синонимов под как synonym.name, так и
synonym.synonym_sgml и связаны с функцией через таблицу feature_synonym.
Теги dbxref
Значения dbxref должны иметь форму 'db_name: accession', где db_name должно иметь
запись в таблице db со значением db.name, равным 'DB: db_name'; несколько
имена баз данных были предустановлены вместе с базой данных при запуске make Prepdb.
Выполните «SELECT name FROM db», чтобы узнать, какие базы данных уже доступны.
Новые записи dbxref создаются в таблице dbxref, а dbxrefs связаны с
features через таблицу feature_dbxref.
Теги разрывов
В настоящее время в основном игнорируется - значение сохраняется как свойство, но в противном случае
еще не используется.
Теги заметок
Значения сохраняются как записи featureprop для функции.
Любые пользовательские теги (т. Е. Сначала строчные)
Поддерживаются пользовательские теги. Если тег еще не существует в таблице cvterm,
он будет создан. Значение будет сохранено вместе со связанным cvterm в
таблица функций.
Онтология_терм
Когда используются теги Ontology_term, элементы из генной онтологии и последовательности
Онтология будет обрабатываться автоматически, если стандартный формат DB: accession
используется (например, GO: 0001234). Чтобы использовать другие термины онтологии, вы должны указать, что
отображение идентификаторов БД в файле GFF и имени онтологий в
таблицу cv как пары тег = значение, разделенные запятыми. Например, использовать растение и
термины онтологии ячейки, вы должны указать в командной строке:
--ontology 'PO = онтология растений, CL = онтология ячеек'
где «онтология растений» и «онтология ячеек» - это имена в таблице cv точно
как они появляются.
Целевые теги
Для правильной обработки целевых тегов необходимо наличие двух исходных функций.
уже имеется в базе данных, «первичный» источник (хромосома или
contig) и «субъект» из анализа сходства, например EST, кДНК или
синтеническая хромосома. Если предметная функция отсутствует, загрузчик
попытаться создать вместо него объект-заполнитель. Если у вас есть фаста
файл, содержащий тему, вы можете использовать сценарий perl, gmod_fasta2gff3.pl,
который поставляется с этим дистрибутивом, чтобы сделать файл GFF3 подходящим для загрузки в
chado перед загрузкой результатов анализа.
Функции CDS и UTR
Возможности CDS представлены в Chado как пересечение
экзоны транскриптов и особенности полипептидов транскриптов. Чтобы позволить надлежащему
перевод функций CDS файла GFF3, этот загрузчик преобразует CDS и UTR
характерные линии к соответствующим функциям экзона (и добавьте заметку о том, что
экзон был выведен из линии CDS и / или UTR GFF3), и создать полипептид
функция, которая охватывает геномную область от начала трансляции до конца.
Если ваш файл GFF3 содержит функции экзона и CDS / UTR, вам нужно:
подавлять создание экзонных функций и вместо этого будет нужен только
полипептидный признак, который необходимо создать. Для этого используйте параметр --noexon. В этом
В этом случае функции CDS и UTR будут по-прежнему преобразованы в функции экзонов как
описано выше.
Обратите внимание, что в случае, если ваш файл GFF содержит функции CDS и / или UTR, которые
не принадлежат к генам "центральной догмы" (то есть имеют ген, транскрипт и
CDS / exon features), ничего из вышеперечисленного не произойдет, и функции будут сохранены
как есть.
ПРИМЕЧАНИЯ
Загрузка файла fasta
Когда --fastafile предоставляется с аргументом, который является путем к файлу
содержащий последовательность fasta, загрузчик попытается обновить таблицу функций с помощью
предоставленная последовательность. Обратите внимание, что идентификатор, указанный в строке описания fasta, должен
точно соответствует тому, что находится в поле уникального имени таблицы функций. Будьте осторожны, если это
возможно, что уникальное имя функции было изменено, чтобы гарантировать уникальность, когда она
был загружен из оригинального GFF. Также обратите внимание, что при загрузке последовательности из фаста
файла, загрузка GFF из стандартного в формат отключена. Приносим извинения за неудобства.
## последовательность-область
Этот сценарий ни для чего не использует директивы области последовательности. Если он представляет собой
функция, которую нужно вставить в базу данных, должна быть представлена
полная линия GFF. Это включает в себя ссылочную последовательность для функций, если это не так.
уже в базе, как хромосома. Например, это:
## последовательность-область chr1 1 213456789
должен измениться на это:
chr1 UCSC хромосома 1 213456789. . . ID = chr1
Сделки
По умолчанию это приложение будет пытаться загрузить все данные сразу как один
трансляция. Это безопаснее с точки зрения базы данных, так как если что-то плохое
происходит во время загрузки, транзакция будет отменена, и база данных будет
нетронутый. Проблема возникает, если имеется много (скажем, более 2 300,000 XNUMX) строк.
в файле GFF. В этом случае выполнение загрузки в виде одной транскакции может
привести к тому, что машине не хватит памяти и завершатся процессы. Если --notranscat
В командной строке каждая таблица будет загружена как отдельная транзакция.
SQL INSERT и COPY FROM
Этот массовый загрузчик изначально был разработан для использования синтаксиса PostgreSQL COPY FROM для
массовая загрузка данных. Однако, как упоминалось в разделе «Транзакции», память
проблемы могут иногда мешать такой массовой загрузке. В другой попытке обойти
эта проблема, массовый загрузчик был изменен для необязательного создания операторов INSERT
вместо операторов COPY FROM. Операторы INSERT будут загружаться намного медленнее
чем операторы COPY FROM, но поскольку они загружаются и фиксируются по отдельности, они больше
с большей вероятностью завершится успешно. Как индикатор разницы в скорости
задействованы, загрузка аннотаций дрожжевых GFF3 (около 16К строк), занимает примерно 5 раз
дольше использовать INSERT по сравнению с COPY на моем ноутбуке.
Удаляет и обновляет через GFF
Существует элементарная поддержка для изменения функций в существующей базе данных через
GFF. В настоящее время поддерживается только удаление. Для удаления строка GFF
должен иметь настраиваемый тег в девятом столбце "CRUD" (для создания, замены, обновления и
Удалить) и иметь признанную ценность. В настоящее время двумя признанными ценностями являются
CRUD = удалить и CRUD = удалить все.
ВАЖНОЕ ПРИМЕЧАНИЕ. Использование операций удаления может привести к появлению сиротских
особенности (например, экзоны, ген которых был удален). Вы должны быть осторожны, чтобы убедиться, что
этого не происходит. В этот дистрибутив включен триггер PostgreSQL (написанный на
plpgsql), который рекурсивно удалит всех детей-сирот, поэтому при удалении гена
все транскрипты, экзоны и полипептиды, принадлежащие этому гену, также будут удалены.
Дополнительную информацию см. В файле modules / sequence / functions / delete-trigger.plpgsql.
удалять
Опция удаления удалит одну и только одну функцию, для которой имя, тип
и организм соответствует тому, что находится в строке GFF, с тем, что находится в базе данных. Примечание
это feature.uniquename не рассматривается, и координаты не представлены в
файл GFF. Это сделано для того, чтобы обновления через GFF можно было выполнять на координаторах. Если
существует более одного признака, для которого совпадают имя, тип и организм,
загрузчик выведет сообщение об ошибке и остановится. Если нет подходящих функций
имя, тип и организм, загрузчик напечатает предупреждающее сообщение и продолжит.
удалить все
Параметр «Удалить все» работает аналогично параметру «Удалить», за исключением того, что он
удалите все функции, которые соответствуют имени, типу и организму в строке GFF (как
вместо того, чтобы разрешить удаление только одной функции). Если нет функций
при совпадении загрузчик напечатает предупреждающее сообщение и продолжит работу.
Блокировка запуска
Массовая загрузка не является многопользовательским приложением. Если два отдельных процесса массовой загрузки
попробуйте загрузить данные в базу данных одновременно, по крайней мере, один, а возможно и все
грузы выйдут из строя. Чтобы этого не происходило, погрузчик закрывает блокировку
база данных, чтобы другие процессы gmod_bulk_load_gff3.pl не запускались одновременно
время. Когда приложение завершает работу в обычном режиме, эта блокировка снимается, но если она
вылетает по какой-то причине, блокировку снимать не удастся. Чтобы снять блокировку с
в командной строке укажите флаг --remove_lock. Учтите, что если загрузчик разбился
требуя снятия блокировки, вам также может потребоваться восстановить уникальное имя
кеш (см. следующий раздел).
Кеш уникального имени
Загрузчик использует базу данных chado для создания таблицы, которая кэширует feature_ids,
уникальные имена, идентификаторы_типа и идентификаторы организмов функций, которые существуют в базе данных по адресу
время начала загрузки и функции, которые будут добавлены при загрузке
полный. Если возможно, что новые функции были добавлены каким-либо методом,
не этот загрузчик (например, Apollo редактирует или загружает с помощью XORT), или если предыдущая загрузка с использованием этого
загрузчик был прерван, тогда вы должны указать параметр --recreate_cache, чтобы убедиться, что
кеш свежий.
Последовательность
По умолчанию, если в файле GFF есть последовательность, она будет загружена в остатки.
столбец в строке таблицы функций, соответствующей этой функции. Поставляя
--nosequence, последовательность будет пропущена. Вы можете захотеть сделать это, если вы
имеют очень большие последовательности, которые может быть трудно загрузить. В этом контексте "очень
большой "означает более 200 МБ.
Также обратите внимание, что для правильной загрузки последовательностей файл GFF должен иметь ## FASTA
директива (требуется для правильного анализа Bio :: FeatureIO) и идентификатор
функция должна быть точно такой же, как имя последовательности, следующей за> в
раздел фаста.
Таблица ORGANISM
Этот сценарий предполагает, что таблица организмов заполнена информацией о вашем
организм. Если вы не уверены, так ли это, вы можете выполнить эту команду из
командная строка psql:
выбрать * из организма;
Если вы не видите свой организм в списке, выполните эту команду, чтобы вставить его:
вставить в организм (аббревиатура, род, вид, общее_имя)
ценности (H.sapiens, Homo, sapiens, Human);
подставляя соответствующие значения для вашего организма.
Родители / дети заказ
В файле GFF родители должны быть раньше детей.
Анализ
Если вы загружаете результаты анализа (например, результаты блатов, прогнозы генов), вам следует
укажите флаг -a. Если с параметром -a не указаны аргументы, загрузчик будет
предположим, что результаты принадлежат аналитическому набору с именем, которое
объединение источника (столбец 2) и метода (столбец 3) с подчеркиванием в
между. В противном случае аргумент, предоставленный с помощью -a, будет принят как имя
набор для анализа. В любом случае набор для анализа уже должен быть в таблице анализа.
Самый простой способ сделать это - вставить его прямо в оболочку psql:
INSERT INTO анализ (название, программа, версия программы)
ЗНАЧЕНИЯ ('genscan 2005-2-28', 'genscan', '5.4');
В таблице анализа есть другие столбцы, которые не являются обязательными; увидеть схему
документацию и '\ d analysis' в psql для получения дополнительной информации.
У Chado есть четыре возможных столбца для хранения результатов в столбце GFF score; пожалуйста
используйте наиболее подходящий вариант и обозначьте его флагом --score_col (значение
по умолчанию). Обратите внимание, что название столбца можно сократить до одной буквы. Если
у вас есть более одной оценки, связанной с каждой функцией, вы можете поставить другую
оценивается в девятом столбце как пара тег = значение, например 'identity = 99', а основная часть
загрузчик поместит его в таблицу featureprop (при условии, что для идентификатора есть cvterm;
см. раздел выше, касающийся пользовательских тегов). Доступные варианты:
значимость (по умолчанию)
личность
норма
Предварительный Счет
Планируемое дополнение к функционалу обработки результатов анализа - позволить
"смешанные" файлы GFF, в которых некоторые строки являются результатами анализа, а некоторые - нет.
Кроме того, можно будет предоставить списки типов (опционально с источниками) и
связанная с ними запись в таблице анализа. Формат, вероятно, будет значением тега
пары:
--analysis match: Rice_est = ris_est_blast, \
совпадение: Maize_cDNA = maize_cdna_blast, \
мРНК = genscan_prediction, exon = genscan_prediction
Группировка объектов по ID
Спецификация GFF3 позволяет группировать такие функции, как CDS и match_parts.
вместе, имея один и тот же идентификатор. Этот загрузчик не поддерживает этот метод
группировка. Вместо этого родительский элемент должен быть явно создан перед частями и
части должны относиться к родительскому элементу с тегом Parent.
Внешние родительские идентификаторы
В спецификации GFF3 указано, что идентификаторы действительны только в одном файле GFF, поэтому вы
не может иметь родительских тегов, которые ссылаются на идентификаторы в другом файле. Уточняя
"allow_external_parent", вы можете ослабить это ограничение. Слово предупреждения
однако: если уникальное имя / идентификатор родительской функции было изменено во время загрузки (чтобы
уникальный), этот функционал не будет работать, так как не удастся найти оригинал
функция правильно. Собственно, может быть хуже, чем не работает, может прикрепить ребенка
функции не тому родителю. Вот почему использовать эту функцию - плохая идея!
Пожалуйста, используйте с осторожностью.
АВТОРЫ
Аллен Дэй[электронная почта защищена]>, Скотт Кейн[электронная почта защищена]>
Авторское право (c) 2011
Эта библиотека является бесплатным программным обеспечением; вы можете распространять его и / или изменять под тем же
термины как сам Perl.
Используйте gmod_bulk_load_gff3.plp в Интернете с помощью сервисов onworks.net