gnu_parallel
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
gnu_parallel [2017/04/11 08:56] – [GNU Parallel 활용 가이드] hyjeong | gnu_parallel [2021/03/17 13:09] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 10: | Line 10: | ||
$ parallel -j 8 gzip ::: *.fastq | $ parallel -j 8 gzip ::: *.fastq | ||
- | 물론 이것은 극단적으로 단순한 활용 사례에 불과하다. 결과 파일을 구조적으로 잘 저장한다든가, | + | 물론 이것은 극단적으로 단순한 활용 사례에 불과하다. |
+ | |||
+ | $ find . -name " | ||
+ | $ parallel -a fasta_files_fof gzip (압축할 파일 목록이 있는 경우) | ||
+ | $ parallel -a gzipped_fasta_files_fof gzip -d (압축을 해제할 파일 목록이 있는 경우) | ||
+ | |||
+ | 결과 파일을 구조적으로 잘 저장한다든가, | ||
+ | |||
+ | 아주 초급 수준을 벗어난 활용 사례를 설명해 보겠다. 수십개의 염기서열 파일에 대해서 [[http:// | ||
+ | |||
+ | $ parallel -a sourcelist -a destlist -j8 restrict -sitelen 4 -enzymes EcoRI, | ||
+ | |||
+ | **만약 어떤 파일에 완벽한 상태의 command가 여러 줄 들어있고, | ||
+ | |||
+ | $ parallel -a sourcefile {} | ||
+ | |||
+ | {.}, {/} 등은 sourcefile에서 넘어오는 라인에 대하여 다양한 조작을 할 수 있게 만들어 준다. SRR_Acc_List.txt에 SRA Run accession이 한 줄에 하나씩 들어있다고 가정하자. 이를 일괄적으로 다운로드하여 fastq로 전환하는 방법을 알아보자. | ||
+ | |||
+ | $ parallel -j 1 prefetch {} ::: $(cat SRR_Acc_List.txt) | ||
+ | $ parallel -j 1 fastq-dump --skip-technical -F --split-files -O fastq {} ::: $(cat SRR_Acc_List.txt) | ||
+ | |||
+ | 상세한 설명은 man parallel을 해 보라. | ||
===== 외부 자료 ===== | ===== 외부 자료 ===== | ||
Line 27: | Line 48: | ||
$ parallel --number-of-cores | $ parallel --number-of-cores | ||
32 | 32 | ||
+ | 이런 바보! 그냥 명령행에서 nproc라고만 치면 된다! | ||
==== BLAST 실행하기 ==== | ==== BLAST 실행하기 ==== | ||
Line 34: | Line 55: | ||
$ cat amino_acids.faa | parallel --block 10k --recstart '>' | $ cat amino_acids.faa | parallel --block 10k --recstart '>' | ||
+ | ==== 인수 목록이 파일로 존재할 때 ==== | ||
+ | 수백개의 fastq file을 interleaved form으로 바꾸는 경우를 생각해 보자. fwd와 rev file, 그리고 최종 파일(interleaved)의 이름이 tsv 파일 하나에 들어있다고 가정한다. | ||
+ | |||
+ | $ cat list.tsv | ||
+ | file00_1.fastq | ||
+ | file01_1.fastq | ||
+ | ... | ||
+ | |||
+ | 이번에는 콜론을 4개 연이어 붙어야 한다. 동시 작업 수는 24개로 제한하였다(-j24). list.tsv의 첫 줄이 헤더라면 --header 옵션을 주어서 건너뛰게 할 수 있다. | ||
+ | $ parallel --colsep " | ||
+ | | ||
+ | ==== 출력을 파일로 저장하기 ==== | ||
+ | parallel로 실행하는 명령어가 표준 출력으로 무엇인가를 내놓는다면, | ||
+ | |||
+ | $ parallel --files __do_something__ ::: * | ||
+ | | ||
+ | 출력물은 /tmp 아래에 다음과 같은 형식으로 저장된다. | ||
+ | |||
+ | / | ||
+ | / | ||
+ | |||
+ | 저장되는 위치를 바꾸려면 다음과 같이 환경변수를 설정한다. | ||
+ | |||
+ | $ TMPDIR=/ | ||
===== Remote server 활용하기 ===== | ===== Remote server 활용하기 ===== |
gnu_parallel.1491868584.txt.gz · Last modified: (external edit)