現在、情報を含むテキスト ファイルを生成できますが、何らかの理由でデータを送信してリストに入れることができません。私はそれを2つの方法で試しました:
cnx = mysql.connector.connect(user='root', database='smor')
cursor = cnx.cursor()
sqlQuery = ("SELECT id,name,CAST(aa_seq as CHAR(65535)) aa_seq FROM smor.domain_tbl WHERE domain_type_id=5 AND domain_special IS NULL LIMIT 100000")
cursor.execute(sqlQuery)
print "Generating FASTA file: ", FASTA_File1
with open(FASTA_File1, "w") as FASTA1:
for (aa_id, name, aa_seq) in cursor:
FASTA1.write(">" + name + '\n' + aa_seq + '\n')
print ">" + name + '\n' + aa_seq
ListOfNames =[]
for (aa_id, name, aa_seq) in cursor:
ListOfNames.append(name)
cursor.close()
print "ListOfNames", ListOfNames
これにより、名前とアミノ酸配列がテキスト ファイルに正常に出力されますが、文字列は空です。コンソールの出力の最後の行は次のとおりです。
>NC_018581.1_05_011_001_020 P
RVPGEMYERAEDGALIPTGVRARWVDAPGSRREIVGPIARHPRIDGRRVDLDVVEEALAAVTGVTAAAVVGLPTDDGVEVGACVVLDRDDLDVPGLRRELSQTLAAHCVPTMISIVESIPLGTDGRPDHGEV
ListOfNames []
ご覧のとおり、リストは空のままです。おそらくカーソルが一番上に戻ることができないと思ったので、カーソルを閉じて上記とまったく同じように再度開きましたが、2番目のインスタンスでリストを生成しました。これによりスクリプトでエラーが発生しましたが、その理由はわかりません。
データを直接リストに読み込めないということですか?
理論的には、シーケンスの名前をテキスト ファイルから分割することはできますが、この方法が機能しない理由に興味があります。