关于发现 error.What 的问题是此 python3 脚本中的以下错误吗?
A question on spotting the error.What are the following errors in this python3 script?
#!/usr/bin/env python3
# trimAll.py
#Initialize variable to contain the directory of un-trimmed fastq files
fastqPath="/scratch/AiptasiaMiSeq/fastq/"
#Initialize variable to contain the suffix for the left reads
leftSuffix=".R1.fastq"
rightSuffix=".R2.fastq"
pairedOutPath="Paired/"
unpairedOutPath="Unpaired/"
#Loop through all the left-read fastq files in $fastqPath
for leftInFile in $fastqPath*$leftSuffix
do
#Remove the path from the filename and assign to pathRemoved
pathRemoved="${leftInFile/$fastqPath/}"
#Remove the left-read suffix from $pathRemoved and assign to suffixRemoved
sampleName="${pathRemoved/$leftSuffix/}"
nice -n19 java -jar /usr/local/programs/Trimmomatic-0.36/trimmomatic-0.36.jar PE \
-threads 1 -phred33 \
$fastqPath$sampleName$leftSuffix \
$fastqPath$sampleName$rightSuffix \
$pairedOutPath$sampleName$leftSuffix \
$unpairedOutPath$sampleName$leftsuffix \
$pairedOutPath$sampleName$rightSuffix \
$unpairedOutPath$sampleName$rightSuffix
HEADCROP:0 \
ILLUMINACLIP:/usr/local/programs/Trimmomatic-0.36/adapters/TruSeq3-PE.fa:2:30:10
LEADING:20 TRAILING:20 SLIDINGWINDOW:4:30 MINLEN:36
done
基本上,代码是一个 Python 脚本,我试图找到一个 error.What 是这段代码中的错误吗?
'PE' 模式下的 Trimmomatic 需要正向 ("left") 和反向 ("right") 读取;此 for 循环仅查看左侧读取 ('$fastqPath*$leftSuffix'),因此它会失败。如果将 for leftInFile in $fastqPath*$leftSuffix
替换为 for leftInFile in $fastqPath*.fastq
,它应该会按预期工作。此外,这看起来是 shell 脚本,而不是 python 脚本,因此请将您的 shebang 更改为 #!/bin/bash
。此外,您的修剪参数相当严格(例如,参见 https://www.frontiersin.org/articles/10.3389/fgene.2014.00013/full)- 您可能需要考虑将它们放宽一点,具体取决于您的应用程序。
#!/usr/bin/env python3
# trimAll.py
#Initialize variable to contain the directory of un-trimmed fastq files
fastqPath="/scratch/AiptasiaMiSeq/fastq/"
#Initialize variable to contain the suffix for the left reads
leftSuffix=".R1.fastq"
rightSuffix=".R2.fastq"
pairedOutPath="Paired/"
unpairedOutPath="Unpaired/"
#Loop through all the left-read fastq files in $fastqPath
for leftInFile in $fastqPath*$leftSuffix
do
#Remove the path from the filename and assign to pathRemoved
pathRemoved="${leftInFile/$fastqPath/}"
#Remove the left-read suffix from $pathRemoved and assign to suffixRemoved
sampleName="${pathRemoved/$leftSuffix/}"
nice -n19 java -jar /usr/local/programs/Trimmomatic-0.36/trimmomatic-0.36.jar PE \
-threads 1 -phred33 \
$fastqPath$sampleName$leftSuffix \
$fastqPath$sampleName$rightSuffix \
$pairedOutPath$sampleName$leftSuffix \
$unpairedOutPath$sampleName$leftsuffix \
$pairedOutPath$sampleName$rightSuffix \
$unpairedOutPath$sampleName$rightSuffix
HEADCROP:0 \
ILLUMINACLIP:/usr/local/programs/Trimmomatic-0.36/adapters/TruSeq3-PE.fa:2:30:10
LEADING:20 TRAILING:20 SLIDINGWINDOW:4:30 MINLEN:36
done
基本上,代码是一个 Python 脚本,我试图找到一个 error.What 是这段代码中的错误吗?
'PE' 模式下的 Trimmomatic 需要正向 ("left") 和反向 ("right") 读取;此 for 循环仅查看左侧读取 ('$fastqPath*$leftSuffix'),因此它会失败。如果将 for leftInFile in $fastqPath*$leftSuffix
替换为 for leftInFile in $fastqPath*.fastq
,它应该会按预期工作。此外,这看起来是 shell 脚本,而不是 python 脚本,因此请将您的 shebang 更改为 #!/bin/bash
。此外,您的修剪参数相当严格(例如,参见 https://www.frontiersin.org/articles/10.3389/fgene.2014.00013/full)- 您可能需要考虑将它们放宽一点,具体取决于您的应用程序。