384개 쌍을 반복하고 384개의 새로운 연결된 파일 생성

384개 쌍을 반복하고 384개의 새로운 연결된 파일 생성

이름이 한 글자만 다른 파일 쌍이 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디렉터리의 새 파일에 씁니다. 원본 파일은 그대로 유지됩니다.

bashksh93이는 or 와 같은 쉘이 있다고 가정합니다 ${parameter/pattern/string}.

관련 정보