이름이 한 글자만 다른 파일 쌍이 384개 있습니다. 이는 시퀀서 레인 1과 레인 2의 fastq 파일을 나타냅니다. 이를 분석하기 전에 각 쌍을 연결해야 합니다.
AA01_S1_L001_R1_001.fastq.gz
그리고 AA01_S1_L002_R1_001.fastq.gz
끝까지 DH12_S384_L002_R1_001.fastq.gz
. L002를 L001에 추가하고 분석을 위해 동일한 디렉터리에 384개의 새 파일을 만들고 싶습니다.
R에서 이 작업을 수행하려고 하는데 사용 중인 패키지가 오래되었습니다. 나는 이것이 Unix에서는 사소한 일이라고 생각했지만 Unix에 대해서는 전혀 모르는 사람입니다.
문제 수정을 위해 편집: 색인이 생성되지 않은 gzip 파일인 것 같습니다. 아래 출력을 참조하세요. 어떤 종류의 색인도 필요하지 않다고 생각합니다. 마지막으로 그렇습니다. 쌍 간의 유일한 차이점은 L001과 L002이며, 출력 이름은 실제로 L001(형제 디렉터리로 파이프됨)의 이름을 가져야 합니다.
gzip -cd AA01_S1_L001_R1_001.fastq.gz | head
@D00572:249:HT7WJBCXX:1:1106:8558:1978 1:N:0:AAGACTCTT+AAGGTGTTT
CAGCACCCATGACCGTGCCATTGCTCTCCTTGTCAAAGACACGCAGGCCC
+
DDDDDIIIIIIHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII
@D00572:249:HT7WJBCXX:1:1106:12310:1984 1:N:0:AAGACTCTT+AAGGTGTTT
CCAAAGTCTCAGGACCAACAGGAATTTTGATTGGTGCACCAGAATCCAGT
+
DDDDDHIIIIIIIIIIIIIIIIHHIIIIIIIIIIIIIHIIIIIIIIIIIH
@D00572:249:HT7WJBCXX:1:1106:12936:1969 1:N:0:AAGACTCTT+AAGGTGTTT
NAAAGGACCTTGATCTCTTCCTCATATCTGTCTTCCTTCTGCGAGTACTT
답변1
압축된 파일은 gzip
(압축된 동안) 간단하게 서로 연결할 수 있으므로 먼저 파일의 압축을 풀 필요가 없습니다. 압축된 연결된 파일의 압축을 풀면 연결된 압축되지 않은 데이터를 얻습니다. 적어도 그것은 사실입니다 xz
.
연결을 위해 모든 파일을 반복하고 L001
해당 파일 이름 쌍을 만든 다음 두 파일을 새 디렉터리의 하나의 파일로 연결할 수 있습니다.
mkdir output_dir
for name in *_L001_R1_001.fastq.gz; do
other="${name/_L001/_L002}"
cat "$name" "$other" >output_dir/"$name"
done
여기서 ${name/_L001/_L002}
문자열의 첫 번째 항목은 값으로 대체되어 해당 파일 쌍이 생성됩니다. 이 다른 파일 이름은 변수에 저장됩니다._L001
_L002
$name
$other
두 파일을 연결하고 cat
결과를 output_dir
디렉터리의 새 파일에 씁니다. 원본 파일은 그대로 유지됩니다.
bash
ksh93
이는 or 와 같은 쉘이 있다고 가정합니다 ${parameter/pattern/string}
.