Можно ли запустить MAFFT через модуль python sys - PullRequest
1 голос
/ 07 мая 2020

Можно ли запускать команды MAFFT, такие как mafft_exe, in_file, через модуль Python sys.argv?

1 Ответ

0 голосов
/ 07 мая 2020

Мне не совсем понятно, о чем вы спрашиваете, но, исходя из предоставленного вами ограниченного контекста, я предполагаю, что вы используете что-то вроде bio python в качестве оболочки для MAFFT, и вы пытается изменить определенные аргументы, которые передаются в класс MafftCommandline.

В bio python docs исполняемая оболочка MAFFT вызывается следующим образом:

mafft_cline = MafftCommandline(mafft_exe, input=in_file)
Модуль обработки аргументов

Python - sys.argv. Это список, и вы можете получить доступ к его аргументам по числовому c индексу.

Итак, предположим, что вы хотите передать определенные значения классу-оболочке MAFFT из командной строки, вы можете сделать это следующим образом:

import sys
from Bio.Align.Applications import MafftCommandline

# Replace with actual binary location, or implement it as an arg
MAFFT_EXE_LOCATION = "/opt/local/mafft"

def other_code(mafft):
    # Do other stuff with mafft here, now that it's configured
    pass


def invoke_mafft(input_filename):
    mafft_cline = MafftCommandline(MAFFT_EXE, input=input_file)
    other_code(mafft_cline)

if __name__ == '__main__':
    try:
        input_filename = sys.argv[1]
        invoke_mafft(input_filename)
    except IndexError:
        print("USAGE: {} <in_file>".format(sys.argv[0]))

Это только отправная точка. Что вы на самом деле будете делать с классом, зависит от вас.

...