gzip으로 압축된 fastq 파일을 병합하는 방법은 무엇입니까? 1권도 읽고 2권도 읽어봤는데
zcat file_1.fastq.gz file_2.fastq.gz | gzip > combined.fastq.gz
그러나 그것은 나에게 동일하지 않은 읽기 수를 제공합니다. 왜?
다른 방법이 있나요?
답변1
두 파일을 결합(연결)하려면 다음을 사용하십시오 cat
.
$ cat file1 file2 >file3
이러한 압축 형식의 구조로 인해 이는 gzip
, 및 (다른 항목도 가능)을 사용하여 bzip2
압축된 파일 에도 적용됩니다.xz
예를 들어, 두 개의 압축된 Fasta 파일(또는 연결하려는 두 개의 압축 파일)이 있다고 가정해 보겠습니다.
$ gzcat file1.fa.gz
>seq1
ACTACTACTACTACTACTACTACTACT
$ gzcat file2.fa.gz
>seq1
GATAGATAGATAGATAGATAGATAGATAAAAAAAA
압축을 풀거나 재압축하지 않고 결합했습니다.
$ cat file1.fa.gz file2.fa.gz >file3.fa.gz
결과는 결합된 압축 파일입니다.
$ gzcat file3.fa.gz
>seq1
ACTACTACTACTACTACTACTACTACT
>seq1
GATAGATAGATAGATAGATAGATAGATAAAAAAAA
어떤 방식으로든 잘못된 데이터가 제공되는 경우 원본 파일 중 하나(또는 둘 다)에 오류가 있을 수도 있습니다.
답변2
노력하다:
tar -cvzf fastq.tar.gz /path/to/all/fastqs/*.gz
아니면 tar를 건너뛰시겠습니까?
답변3
대신 이렇게 하세요:
#!/bin/bash
gzip -d $1 && gzip -d $2
1A=`sed 's/.gz//g`
2A=`sed 's/.gz//g`
cat $2A >> $1A
gzip -c $1A > $1A.gz
옮기다:
$> bash yourNewScriptIMadeForYou file1.gz file2.gz
설명하다
- 1행에서는 환경을 Bash로 선언합니다.
- 2행에서는 GZIP [-d]를 호출하여 아카이브를 추출합니다. "&&" 연산자는 "이것이 유효하면 다음을 수행하십시오"를 의미합니다.
- 3-4행: 입력 $1 및 $2에서 ".gz" 접미사를 제거하기 위한 스트리밍 텍스트 처리입니다.
- 5행: $2A의 내용을 $1A의 본문 끝에 연결합니다.
6행: 첫 번째 파일 입력과 동일한 이름으로 새 GZIP 파일을 생성하거나 두 파일을 모두 포함하려는 경우...
gzip -c $1A > $1A$2A.gz
귀하의 디렉토리 구조를 보여주시고 fastq 파일을 결합하는 방법을 설명해 주시면 귀하의 요구 사항에 완벽하게 맞는 더 나은 스크립트를 만들 수 있습니다.