解凍せずに圧縮ファイルの内容を並列に読み込みます。

解凍せずに圧縮ファイルの内容を並列に読み込みます。

次のzipアーカイブ構造があります。

$ unzip -l Undetermined_S0_L004_R1_001_fastqc.zip 
Archive:  Undetermined_S0_L004_R1_001_fastqc.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/
        0  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Icons/
        0  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/
     1197  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Icons/fastqc_icon.png
     1450  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Icons/warning.png
     1561  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Icons/error.png
     1715  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Icons/tick.png
      782  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/summary.txt
     9095  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/per_base_quality.png
    14381  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/per_tile_quality.png
    23205  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/per_sequence_quality.png
    30978  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/per_base_sequence_content.png
    31152  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/per_sequence_gc_content.png
     7861  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/per_base_n_content.png
    18356  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/sequence_length_distribution.png
    23040  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/duplication_levels.png
     9096  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/adapter_content.png
    58683  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/Images/kmer_profiles.png
   355919  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/fastqc_report.html
   301092  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/fastqc_data.txt
    10117  10-10-14 14:44   Undetermined_S0_L004_R1_001_fastqc/fastqc.fo
 --------                   -------
   899680                   21 files

現在、次のエラーが発生するため、どのように並列fastqc_data.txtに使用できますか?crimson

find `pwd`/*_fastqc.zip -type f | parallel -j 3 unzip -c {} {}/fastqc_data.txt | crimson fastqc {} | less

Usage: crimson fastqc [OPTIONS] INPUT [OUTPUT]

Error: Invalid value for "input": Path "{}" does not exist.

答え1

4つのコマンドで構成されたパイプラインがあります。

  • find、zipファイルを一覧表示します。
  • parallelunzip、zipファイルごとに1つのファイルを抽出するために呼び出されます。 zipファイルのパスが変更された場合は、アーカイブからファイルを抽出してみて{}ください(現在のディレクトリがそのディレクトリの場合)。home/user977828/stuff/Undetermined_S0_L004_R1_001_fastqc.zip/fastqc_data.txt/home/user977828/stuff
  • crimson、標準入力として抽出された複数のファイルを受け取り、引数fastqcとともに呼び出されます{}
  • less

parallel{}引数内でのみ置き換えてください。パイプラインの残りの部分では何もしません。crimson各ファイルを個別に呼び出すには、からパイプをパラメータとしてfastqc_data.txt渡す必要があります。unzipcrimsonparallel

find *_fastqc.zip -type f | sed 's/\.zip$//' |
parallel -j 3 'unzip -c {}.zip {}/fastqc_data.txt | crimson fastqc /dev/stdin' |
less

関連情報