2016-12-20 9 views
0

Я установил a Snakemake pipeline для выполнения простых процедур контроля качества и анализа на образцах метагеномики мелкой дробовины, проходящих через нашу лабораторию.Элегантно обрабатывать образцы с недостаточными данными в рабочем процессе?

Некоторые из инструментов в трубопроводе сбой или ошибка, когда образцы с небольшим количеством данных поставляются в качестве входов - но это иногда не известно из исходных исходных данных в качестве промежуточных этапов фильтрации (таких как обрезка адаптера и удаление геном хозяина) может удалить различное количество чтений.

В идеале я хотел бы иметь возможность обрабатывать эти случаи с некоторой проверкой определенных правил ввода, которые могли бы оценивать количество чтений во входном файле и выбирать, продолжать или нет эту часть рабочего процесса граф. Кто-нибудь реализовал что-то подобное?

Большое спасибо, -jon

+0

Добро пожаловать в SO, вы должны взглянуть на [тур] и, возможно, просмотреть [ask], чтобы лучше понять, как мы можем вам помочь – happymacarts

ответ

0

Я не знаю о возможности не завершить рабочий процесс, основанный на некоторых вычислений происходит внутри процесса. Правила, которые должны быть выполнены, определяются на основе окончательного требуемого вывода, и сбой произойдет, если этот окончательный вывод не может быть сгенерирован.

Одним из подходов могут быть поймать конкретный сбой инструмента (try ... except конструкции в run секции или код возврат обработки в shell разделе) и создать фиктивный выходной файл для соответствующего правила, и имеют нижележащие правила " распространять "создание фиктивного файла на основе теста, определяющего вход правила как такого фиктивного файла.

Другим подходом может быть предварительная обработка данных за пределами рабочего процесса snakemake, чтобы определить, какой вход для пропуска, а затем использовать некоторую фильтрацию комбинаций подстановочных знаков, как описано здесь: https://stackoverflow.com/a/41185568/1878788.