stackoverflow コミュニティへのご挨拶
私は現在、生物医学の学位の一部として生物情報学モジュールをフォローしています (私は基本的に Python の初心者です)。次のタスクは、Python プログラミングの割り当ての一部として必要です。
モチーフ配列 (アミノ酸配列、基本的にはプログラムで言えば文字列) を抽出します。これは、複数の配列アラインメントを実装するアルゴリズムから切り出され、その後データベースを繰り返しスキャンして、最適な保存配列を生成します。究極のアイデアは、そのようなものから機能的重要性を推測することです。モチーフ」)。
これらのモチーフは、各タンパク質に対応する複数のデータ フィールド (uniprot ID、アクセッション番号、ハイパーリンクの .seq ファイルに格納されているアラインメント自体) を持つファイルの公開データベースに格納されています。データ フィールドは「抽出されたモチーフ セット」と呼ばれます。
私の質問は、基本的に「モチーフ文字列」を解析してファイルに出力するスクリプトを作成する方法です。次のようにスクリプトをコーディングしました (まだ結果をファイルに書き込んでいません)。
import os, re, sys, string
printsdb = open('/users/spyros/folder1/python/PRINTSmotifs/prints41_1.kdat', 'r')
protname = None
final_motifs = []
for line in printsdb.readlines():
if line.startswith('gc;'):
protname = line.lstrip()
#string.lower(name) # convert to lowercase
break
def extract_final_motifs(protname):
"""Extracts the sequences of the 'final motifs sets' for a PRINTS entry.
Sequences are on lines starting 'fd;' A simple regex is used for retrieval"""
for line in printsdb.readlines():
if line.startswith('fd;'):
final_motifs = re.compile('^\s+([A-Z]+)\s+<')
final_motifs = final_motifs.match(line)
#print(final_motifs.groups()[0])
motif_dict = {protname : final_motifs}
break
return
motif_dict = extract_final_motifs('ADENOSINER')
print(motif_dict)
問題は、私のコードが urllib モジュールを使用して公開データベースに接続する代わりに生のデータベース ファイル (prints41_!.kdat) をループしている間、以下の Simon Cockell によって提案されているように、スクリプトの出力が単純に "none" であるということです。 [AAYIGIEVLI、AAYIGIEVLI、AAYIGIEVLIなど..]
論理エラーがどこにあるのか誰にも分かりませんか? どんな入力でも大歓迎です!! 長い文章で申し訳ありませんが、できるだけ明確にしたいと思っています。助けてくれてありがとう!