Сплит парные файлы fasta с помощью nextflow
У меня есть пара быстрых файлов, которые я хочу разбить на более мелкие куски, чтобы распараллелить обработку.
Первый фаст reads.fasta
содержит последовательности ДНК
>/kingdoms/rce/workspace1/Nanopore/20180223-run9/RawData/BC-BD-chr10/i0013771_20180416_FAH66366_MN19358_sequencing_run_1042_63976_read_126980_ch_412_strand.fast5_template_deepnano {'mapped_end': 24599, 'num_matches': 22704, 'mapped_strand': '+', 'clipped_bases_end': 18, 'num_insertions': 715, 'mapped_start': 226, 'mapped_chrom': 'chr10', 'num_mismatches': 795, 'clipped_bases_start': 154, 'num_deletions': 874}
CXXACCCGGAGXXXCAGCXAAAAGCXAXACXXACXACCXXTAXXXTATGXXXACXXXXXAXAGACXGTCXXXXCAXCCXACXCCTXCGCACTTGXCXCXCGCXACXGCCGXGCAACAAACACXAAAXCAAAACAGXAAAAXACXACAXCAAAACGCATAXXCCCXAGAAAAAAAXXXTCXXACAATAXACXAXACXACACAAXACABAAXCAGXGACXXXCGXAACAACAAXXXCCTXCACXCXCCAACTXCXCXGCXCGAAXCCCXACATAAXAATATAXCAAAXCXACCGXCXGGAACAXCAXCGCXAXCCAGCXCXTTGXGAACCGCXACCAXCAGCABGXACAGXGGXACCCXCGTGXCAXCXGCAGCGAGAACTXCAACGXXXGCCAAAXCAAGCCAATGXGGXAACAACCACACC
>/kingdoms/rce/workspace1/Nanopore/20180223-run9/RawData/BC-BD-chr10/i0013771_20180416_FAH66366_MN19358_sequencing_run_1042_63976_read_55042_ch_362_strand.fast5_template_deepnano {'mapped_end': 202484, 'num_matches': 12382, 'mapped_strand': '-', 'clipped_bases_end': 33, 'num_insertions': 442, 'mapped_start': 189194, 'mapped_chrom': 'chr10', 'num_mismatches': 461, 'clipped_bases_start': 20, 'num_deletions': 447}
XGAXXXTAATGXTAAAXCGAXAGXACCAAGXCXXTTGTTGTAXACXAGAXCCAXXCCXAATATAXCTGTAXCGAGXACAXCGXCTAXXAATGXXCCTGXAAXXXXCAGXXCAAAAXXACXXXXCAAXTBGXXTAXGAAXXCAXCCAAXCXCTGXXCAXXGCXXGCCGCAAXXACGCAGXCAXCAACAXAGACXGCAAXCAXXAGAXXXXBAXCCXCGGXXXGGTAXAAXCCCGGAGTAXAAGAGXXATCXXXCAGXCCAAXXCCAXXCAAGTATTGTCXXAGAXGAXCAXXCCAXTCXXXAGGACXCTGXXXXAGACCATAXAACGCCXTAXXXAGCXXGACXACACAXCXCCXAXCAXGCGGATGXGGGATGTATAXXBCTTCTXCCAAXXXAGCATAXAGGAAXGCAXGAXXGA
...
Второй фаст reads.fasta_values
содержит последовательность значений, разделенных пробелом, которые соответствуют последовательности ДНК reads.fasta
(в том же порядке)
>/kingdoms/rce/workspace1/Nanopore/20180223-run9/RawData/BC-BD-chr10/i0013771_20180416_FAH66366_MN19358_sequencing_run_1042_63976_read_126980_ch_412_strand.fast5_template_deepnano
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.03 0.03 0.03 0.03 0.03 0.03
>/kingdoms/rce/workspace1/Nanopore/20180223-run9/RawData/BC-BD-chr10/i0013771_20180416_FAH66366_MN19358_sequencing_run_1042_63976_read_55042_ch_362_strand.fast5_template_deepnano
0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.10 0.10 0.10 0.10 0.10 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09 0.09
...
Я хочу получить несколько пар небольших файлов.
В настоящее время я попытался соединить их, а затем разделить, но это разбивает только первый файл пары.
Channel
.fromFilePairs("reads{.fasta,.fasta_values}", flat:true)
.splitFasta(by: 1, file:true)
.println()
Выход:
[reads, reads.1.fasta, reads.fasta_values]
[reads, reads.2.fasta, reads.fasta_values]
[reads, reads.3.fasta, reads.fasta_values]
Пока хочу что то подобное
[reads, reads.1.fasta, reads.1.fasta_values]
[reads, reads.2.fasta, reads.2.fasta_values]
[reads, reads.3.fasta, reads.3.fasta_values]
Я думаю, что нечто подобное можно сделать с fastq
файлы для чтения парным концом, но я не мог узнать, как это сделать с fasta
файлы.
Любая помощь приветствуется,
Благодарю.
1 ответ
Решение
Хорошо, я нашел это, просто нужен аргумент elem
в splitFasta
Channel
.fromFilePairs("reads{.fasta,.fasta_values}", flat:true)
.splitFasta(by: 1, file:true, elem:[1,2])
.println()