Unconfigured Ad

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • shashankgupta
    Member
    • Feb 2015
    • 35

    #1

    Using trimmomatic on multiple paired-end read files

    I need help to write a for loop to run Trimmomatic tool for quality trimming of paired end fastq files.
    I need to write a for loop so that I can run an executable for all multiple files.

    Input PE files looks like - C1_S1_L001_R1_001.fastq.gz
    C1_S1_L001_R2_001.fastq.gz

    C2_S39_L001_R1_001.fastq.gz
    C2_S39_L001_R2_001.fastq.gz

    T2_S41_L001_R1_001.fastq.gz
    T2_S41_L001_R2_001.fastq.gz

    T6_S45_L001_R1_001.fastq.gz
    T6_S45_L001_R2_001.fastq.gz

    To run trimmomatic for the paired reads corresponding to C1_S1_L001_R1_001.fastq.gz and C1_S1_L001_R2_001.fastq.gz, the following command works:

    java -jar ~/Trimmomatic-0.36/trimmomatic-0.36.jar PE -phred33 C1_S1_L001_R1_001.fastq.gz C1_S1_L001_R2_001.fastq.gz C1_R1_paired.fq.gz C1_R1_unpaired.fq.gz C1_R2_paired.fq.gz C1_R2_unpaired.fq.gz LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:35

    The framework provided by trimmomatic

    java -jar <path to trimmomatic.jar> PE [-threads <threads] [-phred33 | -phred64] [-trimlog <logFile>] <input 1> <input 2> <paired output 1> <unpaired output 1> <paired output 2> <unpaired output 2> <step 1> ...

    Any help please!
    Thanks!
    Last edited by shashankgupta; 02-14-2017, 04:49 AM.
  • wdecoster
    Member
    • Oct 2015
    • 97

    #2
    I would assume the following should work:
    (but obviously untested)

    Code:
    for f in $(ls *.fastq.gz | sed 's/?_001.fastq.gz//' | sort -u)
    do
    java -jar ~/Trimmomatic-0.36/trimmomatic-0.36.jar PE -phred33 ${f}1_001.fastq.gz ${f}1_002.fastq.gz  ${f}_R1_paired.fq.gz ${f}1_unpaired.fq.gz ${f}_2_paired.fq.gz ${f}2_unpaired.fq.gz LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:35
    done
    You can easily check if the commands look alright be adding in an echo statement:
    Code:
    for f in $(ls *.fastq.gz | sed 's/?_001.fastq.gz//' | sort -u)
    do
    echo java -jar ~/Trimmomatic-0.36/trimmomatic-0.36.jar PE -phred33 ${f}1_001.fastq.gz ${f}1_002.fastq.gz  ${f}_R1_paired.fq.gz ${f}1_unpaired.fq.gz ${f}_2_paired.fq.gz ${f}2_unpaired.fq.gz LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:35
    done

    Comment

    • shashankgupta
      Member
      • Feb 2015
      • 35

      #3
      Originally posted by wdecoster View Post
      I would assume the following should work:
      (but obviously untested)

      Code:
      for f in $(ls *.fastq.gz | sed 's/?_001.fastq.gz//' | sort -u)
      do
      java -jar ~/Trimmomatic-0.36/trimmomatic-0.36.jar PE -phred33 ${f}1_001.fastq.gz ${f}1_002.fastq.gz  ${f}_R1_paired.fq.gz ${f}1_unpaired.fq.gz ${f}_2_paired.fq.gz ${f}2_unpaired.fq.gz LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:35
      done
      You can easily check if the commands look alright be adding in an echo statement:
      Code:
      for f in $(ls *.fastq.gz | sed 's/?_001.fastq.gz//' | sort -u)
      do
      echo java -jar ~/Trimmomatic-0.36/trimmomatic-0.36.jar PE -phred33 ${f}1_001.fastq.gz ${f}1_002.fastq.gz  ${f}_R1_paired.fq.gz ${f}1_unpaired.fq.gz ${f}_2_paired.fq.gz ${f}2_unpaired.fq.gz LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:35
      done
      Thank you for helping me.
      But, somehow it is showing some error as shown below-

      TrimmomaticPE: Started with arguments:
      0*_R1_001.fastq.gz 0*_R2_001.fastq.gz 0_R1.trimmed_PE.fastq 0_R1.trimmed_SE.fastq 0_R2.trimmed_PE.fastq 0_R2.trimmed_SE.fastq LEADING:3 TRAILING:3 SLIDINGWINDOW:3:20 MINLEN:30
      Exception in thread "main" java.io.FileNotFoundException: 0*_R1_001.fastq.gz (No such file or directory)
      at java.io.FileInputStream.open0(Native Method)
      at java.io.FileInputStream.open(FileInputStream.java:195)
      at java.io.FileInputStream.<init>(FileInputStream.java:138)
      at org.usadellab.trimmomatic.fastq.FastqParser.parse(FastqParser.java:135)
      at org.usadellab.trimmomatic.TrimmomaticPE.process(TrimmomaticPE.java:264)
      at org.usadellab.trimmomatic.TrimmomaticPE.run(TrimmomaticPE.java:539)
      at org.usadellab.trimmomatic.Trimmomatic.main(Trimmomatic.java:80)
      0
      TrimmomaticPE: Started with arguments:
      0*_R1_001.fastq.gz 0*_R2_001.fastq.gz 0_R1.trimmed_PE.fastq 0_R1.trimmed_SE.fastq 0_R2.trimmed_PE.fastq 0_R2.trimmed_SE.fastq LEADING:3 TRAILING:3 SLIDINGWINDOW:3:20 MINLEN:30
      Exception in thread "main" java.io.FileNotFoundException: 0*_R1_001.fastq.gz (No such file or directory)
      at java.io.FileInputStream.open0(Native Method)
      at java.io.FileInputStream.open(FileInputStream.java:195)
      at java.io.FileInputStream.<init>(FileInputStream.java:138)
      at org.usadellab.trimmomatic.fastq.FastqParser.parse(FastqParser.java:135)
      at org.usadellab.trimmomatic.TrimmomaticPE.process(TrimmomaticPE.java:264)
      at org.usadellab.trimmomatic.TrimmomaticPE.run(TrimmomaticPE.java:539)
      at org.usadellab.trimmomatic.Trimmomatic.main(Trimmomatic.java:80)
      0




      As I understand, above script unable to find the file. So to simplify it, I rename all the file names, and now it looks like-


      C1_R1.fastq
      C1_R2.fastq

      C2_R1.fastq
      C2_R2.fastq

      C3_R1.fastq
      C3_R2.fastq

      T1_R1.fastq
      T1_R2.fastq

      T2_R1.fastq
      T2_R2.fastq

      T3_R1.fastq
      T3_R2.fastq

      Therefore, the working trimmomatic command looks like,

      java -jar ~/Trimmomatic-0.36/trimmomatic-0.36.jar PE -phred33 C1_R1.fastq C1_R2.fastq C1_R1_paired.fastq C1_R1_unpaired.fastq C1_R2_paired.fastq C1_R2_unpaired.fastq LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:35
      Last edited by shashankgupta; 02-15-2017, 01:04 AM.

      Comment

      • carmarbla
        Junior Member
        • Jul 2017
        • 2

        #4
        Thanks, this helped me!

        Comment

        • Louloute
          Junior Member
          • Aug 2017
          • 2

          #5
          Hello all,

          This code work on multiple single-end read files??

          Any help please??

          Many thanks

          Comment

          • carmarbla
            Junior Member
            • Jul 2017
            • 2

            #6
            #!/bin/bash

            for f1 in /path_to_your_raw_data/*.fastq.gz

            do
            java -jar /path_to_trimmomatic_folder/trimmomatic-0.36.jar SE -phred33 $f1 ${f1%%.fastq.gz}"trimmed_minleng50.fq.gz" ILLUMINACLIP:/path_to_trimmomatic_folder/adapters/TruSeq2-SE.fa:2:30:10 LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:50

            done


            This is what I used for the different SE files I have, basically it changes .fastq.gz for "trimmed_minleng50.fq.gz" once it is trimmed. You can edit the order and the value of the parameters. (Minimun_length, minimun quality at the end or start of the reads, different adapter files...).
            Last edited by carmarbla; 08-08-2017, 06:37 AM.

            Comment

            • Louloute
              Junior Member
              • Aug 2017
              • 2

              #7
              Many thanks Carmarbla for your reply!
              Best

              Comment

              • wnegara
                Junior Member
                • Sep 2017
                • 2

                #8
                Hi All,
                just found these threads. Does the code
                or f in $(ls *.fastq.gz | sed 's/?_001.fastq.gz//' | sort -u)
                do
                java -jar ~/Trimmomatic-0.36/trimmomatic-0.36.jar PE -phred33 ${f}1_001.fastq.gz ${f}1_002.fastq.gz ${f}_R1_paired.fq.gz ${f}1_unpaired.fq.gz ${f}_2_paired.fq.gz ${f}2_unpaired.fq.gz LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:35
                done
                is need modification prior to use or it will work for any PE files?
                cheers

                Comment

                Latest Articles

                Collapse

                • SEQadmin2
                  Multiomic Liquid Biopsy: What DNA/RNA Panels Reveal That DNA Alone Can’t
                  by SEQadmin2



                  Tumors contain complex mixtures of cell populations that evolve in response to treatment and host-specific factors. Tissue biopsies provide only static snapshots of a tumor’s state. But what if we could follow that evolution over time using a minimally invasive technique?

                  Liquid biopsies can detect tumor-derived material circulating in the bloodstream, providing a way to study treatment response, detect emerging resistance, and discover new biomarkers. Circulating
                  ...
                  10-14-2026, 09:55 AM
                • SEQadmin2
                  New Genomics Technologies Take Aim at Long-Standing Limits
                  by SEQadmin2


                  Researchers using sequencing and genomics tools often have to make trade-offs. They can choose between speed or scale, short reads or long-range information, or targeted panels or a view of the whole transcriptome. New technologies that have been released this year are built to address those tough choices.

                  We asked six companies the same four questions to learn about their latest products. The new technologies bring a lot to the table, including rethinking sequencing
                  ...
                  09-28-2026, 10:25 AM

                ad_right_rmr

                Collapse

                News

                Collapse

                Topics Statistics Last Post
                Started by SEQadmin2, 10-15-2026, 10:52 AM
                0 responses
                19 views
                0 reactions
                Last Post SEQadmin2  
                Started by SEQadmin2, 10-14-2026, 05:39 AM
                0 responses
                26 views
                0 reactions
                Last Post SEQadmin2  
                Started by SEQadmin2, 10-13-2026, 09:56 AM
                0 responses
                22 views
                0 reactions
                Last Post SEQadmin2  
                Started by SEQadmin2, 10-09-2026, 11:14 AM
                0 responses
                28 views
                0 reactions
                Last Post SEQadmin2  
                Working...