Это пример того, как выглядит мой каталог:
> SSSRRR2.bam SSSRRR24.bam
>
> SSSRRR2.bam.bai SSSRRR24.bam.bai
>
> SSSRRR2.split.bam SSSRRR24.split.bam
>
> SSSRRR2.ump.fastq SSSRRR24.ump.fastq
Единственные файлы, которые мне нужны, это .split.bam
и .bam
файлы для каждого идентификатора, чтобы применить subprocess.check_output. Это сценарий python, который я сделал:
#!/usr/bin/env python
import os
import subprocess
if __name__=='__main__':
path = os.getcwd()
dir_files = os.listdir(path)
pair_reads = {}
for file in sorted(dir_files):
if file.endswith(".split.bam"):
ID_1 = file.split(".")[0]
file1 = file
if file.endswith(".bam") and not file.endswith(".split.bam") and not file.endswith(".bam.bai"):
ID_2 = file.split(".")[0]
file2 = file
if ID_1 == ID_2:
pair_reads[file1] = file2
for key, value in pair_reads.items():
# print(key)
name = key.split(".")[0]
subprocess.check_output("tepid-discover -k -d -i --strict -D -p 36 -n " + name + " -c " + key + " s " + value, shell = True)
Однако моя проблема заключается в отступе, когда я применяю циклы. Если каждый блок if
не зависит друг от друга, как я могу установить соединение с обоими, например, в этом блоке:
if ID_1 == ID_2:
pair_reads[file1] = file2
Это ошибка, которую я получил:
if ID_1 == ID_2:
NameError: name 'ID_1' is not defined
Дополнительно, я использую python2, потому что программа работает с python2.
Заранее благодарю за помощь. Надеюсь, я ясно дал понять.