Что мне следует сделать, чтобы получить максимальную отдачу от создания системы LFS?

Использованиеawk:

awk '(FNR-1) % 2 == 0 { name=$1; chr=$2; len=$3; next }
     (FNR-2) % 4 == 0 { seq=substr($0,1,6) }
                      { print name "." seq, chr, len
                        print substr($0,7) }' file.fastq >newfile.fastq

Эта awkпрограмма состоит из трех блоков.

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

  2. Второй блок извлекает 6 первых символов из строки последовательности в seq, но только для каждой четвертой строки, начиная со строки 2 (только строки последовательности ).

  3. Последний блок работает только со строками, не обработанными первым блоком (для каждой последовательности или строки данных качества )и формирует выходные данные.

Чтобы использовать это наgzip-сжатых файлах (илиbgzip-сжатых файлах, обычно используемых в проектах биоинформатики ),использовать

zcat file.fastq.gz | awk '...' | bgzip -c >newfile.gz

Чтобы использовать переменную в качестве значения, используемого для резки, рассмотрим

awk -v n=6 '(FNR-1) % 2 == 0 { name=$1; chr=$2; len=$3; next }
            (FNR-2) % 4 == 0 { seq=substr($0,1,n) }
                             { print name "." seq, chr, len
                               print substr($0,n+1) }'

Где -v n=6управляет длиной разреза.

Вы также можете поместить фактический awkкод (в одинарные кавычки )в отдельный файл сценария и использовать его как

awk -v n=6 -f script.awk file.fastq

1
14.06.2020, 21:44
0 ответов

Теги

Похожие вопросы