Выполнение указанной выше команды python приведет к команде bash:
awk '$9 == "$GENE" && $4 >= $MIN_COUNT' $FILENAME > $FILENAME.tmp.$GENE
Предполагается, что '$ XYZ' представляет значение python переменной 'XYZ'
Что подойдет:
- Открыть файл $ filename для ввода
- Открыть файл "$ filename.tmp. $ Gene" для вывода
- Для каждой строки ввода
- Проверить, равен ли 9-й аргумент $ gene
- Проверить, если 4-й аргумент> = $ min_count
- Если оба условия выполнены, вывести строку в выходной файл.
В качестве примечания, это будет более эффективно, чем меньше шифрование для выполнения следующего кода в python.
filename="..."
gene="..."
min_count=...
inp = open(filename, 'r')
out = open(filename + '.tmp.' + gene, 'w') ;
for line in inp.readline():
l = line.split(' ')
if l[8] == gene and int(l[3]) >= min_count:
out.write(line)
inp.close()
out.close()
Код не тестировался, поскольку нет данных для проверки, должно быть достаточно