2

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など..]

論理エラーがどこにあるのか誰にも分かりませんか? どんな入力でも大歓迎です!! 長い文章で申し訳ありませんが、できるだけ明確にしたいと思っています。助けてくれてありがとう!

4

2 に答える 2

0

最初にやっていることはほぼ正しいですが、"extracted motif sets"lien 2 を変数 sayに変更する必要がありますline。ループが行うことは、このケースforの後、変数として 1 行ずつファイルからデータを返すことです。そして、ファイルがどのようにフォーマットされているかが問題になります。どのデータフィールドにも間隔がないように聞こえます。それから、それはあなたが何をしたり、タブを測定したりするかもしれないことを意味します. 分割は、 orが表示されるたびに文字列を分割すると言ったことを実行します。forlinelysozyme.seqline.split(" ")line.split("\t") \t" ""\t"

ファイルを見つけるためのディレクトリのサニングは、それほど難しくないはずです。おそらく、それについていくつか質問があります。

ファイルのいずれかの形式でデータまたはその一部を投稿すると、それを確認できるようになり、解析を支援できる場合があります:)。

于 2011-04-10T20:42:25.330 に答える
0

関数が value を返さないことに気付きましたか? それがNoneの理由です。

于 2013-11-06T09:18:42.230 に答える