Задние по Linux. Дата выполнения до 1.05.2021 вечер. Цена договорная. Предположительно, оплата после выполнения. В прекрепленных файлах вы найдете файл /srv/dir/arabidopsis.fasta (Example.pdf). Этот файл содержит последовательность нуклеиновой кислоты Резуховидки Таля (Arabidopsis thaliana). За исключением первой строки, он просто содержит последовательность, заключенную в столбцы шириной 70 символов. Ваша задача - написать скрипт, который находит дополнения для данной подпоследовательности, включая номера совпадающих строк. Сценарий примет в качестве аргумента регулярное выражение. Это будет последовательность, которую нужно найти в файле arabidopsis.fasta. Найденные последовательности должны быть преобразованы в их комплемент, используя простое правило, согласно которому нуклеотид A преобразуется в T (и наоборот), а C преобразуется в G (и наоборот). Остальные остались нетронутыми. В качестве последнего действия, представляющего желаемый результат, сценарий находит дополнения в исходном файле arabidopsis.fasta и распечатывает их вместе с номерами строк. Обратите внимание, что сценарий должен упорядочить совпадения по исходной (т. Е. Не преобразованной) последовательности в алфавитном порядке и отфильтровать дубликаты (в исходном совпадении, а не в дополнениях!). В качестве примера следующие прогоны производят этот вывод. Input: ./find_complementary.sh A[TCA]GC Output: AAGC 3:TTCG 6:TTCG 6:TTCG 8:TTCG 13:TTCG 19:TTCG ATGC 3:TACG 19:TACG Обратите внимание, что последовательности, соответствующие регулярному выражению (A [TCA] GC), печатаются в алфавитном порядке (AAGC и ATGC), а дополнения (TTCG и TACG) сортируются по строкам. Для строки, не имеющей дополнений в файле, будет отображаться только исходная строка. Используйте uniq, чтобы избавиться от множественности. Обратите внимание, что uniq работает только с отсортированными данными. Ваш скрипт должен использовать /srv/dir/arabidopsis.fasta напрямую. Если файл не существует, сценарий должен прерваться с сообщением об отсутствии файла arabidopsis.fasta (очевидно, напечатанным на stderr) и кодом выхода 7. Последовательность может быть разбита на несколько строк. В этом случае выведите строку, в которой начинается последовательность.