Вопрос об обнаружении ошибки. Каковы следующие ошибки в этом python3 скрипте? - PullRequest
0 голосов
/ 15 апреля 2020
#!/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, и я пытаюсь найти ошибку. Что это за ошибка в этом фрагменте кода?

1 Ответ

0 голосов
/ 15 апреля 2020

Trimmomati c в режиме 'PE' ожидает прямого («левого») и обратного («правого») чтения; это для l oop только просмотр левого чтения ('$ fastqPath * $ leftSuffix'), поэтому он потерпит неудачу. Если вы замените for leftInFile in $fastqPath*$leftSuffix на for leftInFile in $fastqPath*.fastq, все должно работать как положено. Кроме того, это выглядит как сценарий оболочки, а не сценарий python, поэтому измените свой shebang на #!/bin/bash. Кроме того, ваши параметры обрезки являются довольно строгими (например, см. https://www.frontiersin.org/articles/10.3389/fgene.2014.00013/full) - вы можете захотеть немного ослабить их, в зависимости от вашего приложения.

...