![FASTQ 헤더를 시퀀스 읽기에 다시 추가](https://linux55.com/image/15293/FASTQ%20%ED%97%A4%EB%8D%94%EB%A5%BC%20%EC%8B%9C%ED%80%80%EC%8A%A4%20%EC%9D%BD%EA%B8%B0%EC%97%90%20%EB%8B%A4%EC%8B%9C%20%EC%B6%94%EA%B0%80.png)
헤더 줄에 마지막 : 다음에 @로 시작하는 바코드 시퀀스가 추가된 fastq 파일이 있습니다. 이 패턴은 4줄마다 반복됩니다. 아래는 예입니다:
@FCID:1:1101:15473:1334 1:N:0:TATTTGCGACAA
AGTGGACTAGGGGATGCCAGCCGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGATTTATTGGGCGTAAAGGGAACGCAGGCGGTCTTTTAAGTCTGATGTGAAAGCCTTCGGCTTAACCGGAGTAGTGCTTTGGAAACTGTGCAGCTCGAGTGCAGGAGAGGTAAGCGGAATTCCTAGTGTAGCGGTGAAATGCGTAGATATTAGGAGGAACACCAGTGGCGAAGGCGGCTTACTGGACTGTAACT
+
AAAABFFFFFFCGGGGGGGGGGGGGGGGGGGGGHHHHHHGHHGGGHGHGGGGHHHGGGGGHHHHHHHHGGGGHHHGHHGGGGGGGGGGGGHHHHHHHGHGHHHHHHHHFHHHHHHGGGGHHHHGGGGGHHHHHHHHHHGHHHHHHFHHFHGGGGDFHHHHH.EGGGBFFGGGGGGEFFFGGGGFFGGGF-DFEFFFFFFA.-./FFFFBFFFBFFFFFFA?;/B?F@DCFEAAF-@FFBBBBFFEFFFB;
@FCID:1:1101:15528:1336 1:N:0:GCGGGAAAAAAA
GAATTGGACGAGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGAGGGAGCAGGCGGCAGCAAAGGTCTGTGGTGAAAGACTGAAGCTTAACTTCAGTAAGCCATAGAAACCGGGCAGCTAGAGTGCAGGAGAGGATCGTGGAATTCCATGTGTAGCGGTGAAATGCGTAGATATATGGAGGAACACCAGTGGCGAAGGCGACGATCTGGCCTGCAACTGAC
+
DDDDDFFFFCDCGGGGGGGGGGHGGGGGGGHHHHHHHGHHGHHHGHGGGGHHHGGGGGHHHHHHHHGGGGHHGHHGGGGHHHGGGGGGGHHHHGGHHHHHHHGHHHHHHHHHHHHGHHHGHGHHHHHHHHHHHHHHHHHHGGGGGGGHHHHHGHGHHHGGHGDHHGDFFGGGGGGGGGGFGGGFGGG9?EGFGGFFAD;EFFFFFFFFFFFFFFFDEEFFFFFFF-DE->CFFEEAFFFFFFFBFFFFF0
내 목표는 시퀀스 읽기의 모든 두 번째 행에 바코드를 추가하고 나머지는 변경하지 않는 것입니다. 다음은 예상되는 출력입니다(바코드는 각 시퀀스 라인의 마지막 12자입니다).
@FCID:1:1101:15473:1334 1:N:0:TATTTGCGACAA
AGTGGACTAGGGGATGCCAGCCGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGATTTATTGGGCGTAAAGGGAACGCAGGCGGTCTTTTAAGTCTGATGTGAAAGCCTTCGGCTTAACCGGAGTAGTGCTTTGGAAACTGTGCAGCTCGAGTGCAGGAGAGGTAAGCGGAATTCCTAGTGTAGCGGTGAAATGCGTAGATATTAGGAGGAACACCAGTGGCGAAGGCGGCTTACTGGACTGTAACTTATTTGCGACAA
+
AAAABFFFFFFCGGGGGGGGGGGGGGGGGGGGGHHHHHHGHHGGGHGHGGGGHHHGGGGGHHHHHHHHGGGGHHHGHHGGGGGGGGGGGGHHHHHHHGHGHHHHHHHHFHHHHHHGGGGHHHHGGGGGHHHHHHHHHHGHHHHHHFHHFHGGGGDFHHHHH.EGGGBFFGGGGGGEFFFGGGGFFGGGF-DFEFFFFFFA.-./FFFFBFFFBFFFFFFA?;/B?F@DCFEAAF-@FFBBBBFFEFFFB;
@FCID:1:1101:15528:1336 1:N:0:GCGGGAAAAAAA
GAATTGGACGAGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGAGGGAGCAGGCGGCAGCAAAGGTCTGTGGTGAAAGACTGAAGCTTAACTTCAGTAAGCCATAGAAACCGGGCAGCTAGAGTGCAGGAGAGGATCGTGGAATTCCATGTGTAGCGGTGAAATGCGTAGATATATGGAGGAACACCAGTGGCGAAGGCGACGATCTGGCCTGCAACTGACGCGGGAAAAAAA
+
DDDDDFFFFCDCGGGGGGGGGGHGGGGGGGHHHHHHHGHHGHHHGHGGGGHHHGGGGGHHHHHHHHGGGGHHGHHGGGGHHHGGGGGGGHHHHGGHHHHHHHGHHHHHHHHHHHHGHHHGHGHHHHHHHHHHHHHHHHHHGGGGGGGHHHHHGHGHHHGGHGDHHGDFFGGGGGGGGGGFGGGFGGG9?EGFGGFFAD;EFFFFFFFFFFFFFFFDEEFFFFFFF-DE->CFFEEAFFFFFFFBFFFFF0
awk를 사용해 보았지만 작동하지 않습니다.
awk '(FNR) % 4 == 1 { -F; seq=$8; next }
(FNR) % 4 == 2 { line[FNR]=$0; print $0 seq}' R1test.fq > R1test_new.fq
누구든지 도와줄 수 있나요?
답변1
나는 다음과 같은 가정을 하겠다.
모든 레코드에는 정확히 4개의 행이 있습니다. 이것은아니요fastq 형식에 필요하지만 짧은 읽기 데이터의 경우인 경우가 많습니다.
:
바코드는 항상 첫 번째 줄부터 시작하여 4줄마다 마지막 문자 다음의 마지막 문자입니다.
이러한 가정이 성립하는 경우 다음을 수행할 수 있습니다.
awk -F':' 'NR % 4 == 1 {seq=$NF}
NR % 4 == 2 { $0=$0 seq}1' R1test.fq > R1test_new.fq
이것은 귀하의 코드와 비슷한 아이디어입니다. 불필요한 단계를 제거하고 일부 문제를 해결했습니다. 마지막은 1
awk의 "이 줄 인쇄"에 대한 약어입니다.
-F
필드 구분 기호를 설정하기 위해 코드에서 사용을 설정할 수 없기 때문에 코드가 작동하지 않습니다. awk
이는 awk 언어의 기능이 아니라 -F
바이너리에 대한 옵션입니다 . awk
awk 스크립트에서 필드 구분 기호를 변경하려면 FS
변수(예 BEGIN{FS=":"}
: )를 사용할 수 있습니다. 다음으로, 필드 구분 기호를 변경하더라도 코드가 실행되기 전에 줄이 이미 분할되어 있으므로 문제가 되지 않습니다. 블록 내에서만 구분 기호를 설정할 수 있습니다 BEGIN{}
. 다른 곳에 설정한 경우 awk에게 해당 행을 다시 분석하도록 지시해야 합니다. 어쨌든, 당신은 :
필드 구분자로 가 아닌 것을 원합니다 ;
.
경고하다:
시퀀스의 길이가 프레드 품질 점수의 길이와 일치하지 않기 때문에 수행하려는 다운스트림 처리가 중단될 수 있습니다. 이것이 정말 좋은 생각이라고 확신하시나요?
답변2
fasta 파일 요구 사항을 처리하는 한 가지 방법은 GNU sed 스트림 편집기를 사용하는 것입니다.
여기서 sed는 @로 시작하는 줄을 보고 해당 줄에 다음 줄을 추가합니다. 그런 다음 @ 줄의 마지막 12자가 추가 줄에 추가됩니다.
sed -Ee '
/^@/N
s/(.{12})\n.*/&\1/
' R1test.fq > R1test_new.fq