2017-05-09 16 views
-3

私はJupyterノートブックを使用しています定義されていません。NameError:名前 '配列' が

のPython 3.6.0 |アナコンダカスタム(64ビット)| (default、Dec 23 2016、12:22:00)
詳細については、 '著作権'、 'クレジット'または 'ライセンス'を入力してください。
IPython 6.0.0 - 強化された対話型Python。タイプ '?'助けを求めて

助けが必要ですか?

NameError  Traceback (most recent call last) 
<ipython-input-15-6934f5f7b183> in <module>() 
33 read_fasta(file_name) 
34 print("Start2") 
---> 35 write_cat_seq(sequences) 
36 print('Saved and Complete') 

NameError:名前 '配列は'

MY_FILE = "chr1_abc_def.fasta"

>lcl|NC_000021 
ATGCGGCT... 
>lcl|NC_000022 
ATGCGGCt... 

に定義されていないこれらの機能は、DNAの各コード領域用alterheaderの行を含むMY_FILEを取るべきです。

ヘッダーを削除して一緒にスプライシングしながら、DNAコード領域の.fastaファイルを読みます。

# read fasta file of DNA coding regions while removing header and splicing them together. 
def read_fasta(file_name): 
    sequences = [] 
    seq = [] 
    with open(file_name) as fh: 
     while True: 
      if fh.readline().startswith(">"): 
       fh.readline() 
      else: 
       seq = fh.readline().rstrip() 
       if len(seq) == 0: 
        break 
     sequences.append(seq) 
    return sequences 

def write_cat_seq(sequences): 
    output_seq = "chr21_coding_region_concat.fasta" 
    print(output_seq) 
    output = open(output_seq, 'w') 
    output.write(sequences) 
    output.close() 
    print("File %s saved" % output_seq) 

実行機能

実際
file_name = "chr21_dna_sequence.fasta" 
read_fasta(file_name) 
write_cat_seq(file_name, sequences) 
print('Saved and Complete') 
+0

私はそれを修正し、それがコードで正しいリターンの上に見えたが、質問にはありませんでした。 – oaxacamatt

+0

'return sequences'は、呼び出し側が' sequences'変数を持つことを意味しません。明示的に戻り値を保存する必要があります。 – user2357112

+0

最後に "機能を実行する"ことは...あなたの問題ではありませんか? 'sequences'を定義するのではなく、それを使用しようとします。 – tdelaney

答えて

0

単一の長さのDNA .fastaとして付加シーケンスを保存し、あなたはそう、sequencesリストにread_fasta(file_name)の結果を格納するのを忘れそれは定義されていません。ここで

はあなたのコードの正しいバージョンである:

file_name = "chr21_dna_sequence.fasta" 
sequences = read_fasta(file_name) 
write_cat_seq(file_name, sequences) 
print('Saved and Complete') 
関連する問題