3

extractGenes.py というプログラムを作成する必要があります

コマンド ライン パラメーターは、2 つまたは 3 つのパラメーターを取る必要があります。

  1. -sオプションのパラメーターまたはスイッチであり、ユーザーがスプライシングされた遺伝子配列 (イントロンが削除されている) を望んでいることを示します。ユーザーはこれを提供する必要はありません (つまり、遺伝子配列全体が必要です)。提供する場合は、最初のパラメーターにする必要があります。

  2. 入力ファイル (遺伝子を含む)

  3. 出力ファイル (プログラムが fasta ファイルを保存するために作成する場所)

ファイルには次のような行が含まれています。

NM_001003443 chr11 + 5925152 592608098 2 5925152,5925652, 5925404,5926898,

ただし、-sオプションのパラメーターを開始関数に含める方法がわかりません。

だから私は始めました:

getGenes(-s, input, output):
fp = open(input, 'r')
wp = open(output, "w")

を含める方法については不明です-s

4

3 に答える 3

3

このケースは、sys.argvを直接使用するのに十分単純です。

import sys

spliced = False
if '-s' in sys.argv:
    spliced = True
    sys.argv.remove('-s')
infile, outfile = sys.argv[1:]

または、 argparseoptparseなどのより強力なツールを使用して、コマンドライン パーサーを生成することもできます。

import argparse

parser = argparse.ArgumentParser(description='Tool for extracting genes')
parser.add_argument('infile', help='source file with the genes')
parser.add_argument('outfile', help='outfile file in a FASTA format')
parser.add_argument('-s', '--spliced', action='store_true', help='remove introns')

if __name__ == '__main__':
    result = parser.parse_args('-s myin myout'.split())
    print vars(result)
于 2012-04-21T16:51:14.867 に答える
2

Argparse は、オプションのパラメータを処理する Python ライブラリです。 http://docs.python.org/library/argparse.html#module-argparse

于 2012-04-21T16:49:47.583 に答える
0

次のようなことを試してください:

def getGenes(input, output, s=False):
    if s:
        ...
    else:
        ...

2 つのパラメーターを入力すると、s は False になります。getGenes(入力、出力)

3 つのパラメーターを指定して getGenes() を呼び出すと、s が 3 番目のパラメーターになるため、この場合、False 以外の値を指定して呼び出すと、else 句が生成されます。

于 2012-04-21T16:50:55.963 に答える