2017-07-07 10 views
1

私はbiopythonを使用して簡単なタスクを完了しています:特定の遺伝子バンクの充填から、遺伝子IDと関連情報をテーブルに抽出します。biopython FeatureLocation comparison

Seq.SeqFeature.SeqFeature.locationSeqFeatureの場合は、私はいつもFalseを返します。でも、下記のような状況で:問題は、次のように解決したが、私はまだこれが何らかの理由で設計によるものかどうか放浪してい

print(location1.start == location2.start and location1.end == location2.end and location1.strand == location2.strand) # will print True. 

from Bio.SeqFeature import FeatureLocation 
    location1 = FeatureLocation(0,0,strand = 1) 
    location2 = FeatureLocation(0,0,strand = 1) 
    print(location1 == location2) # will print False 

これだけは私に望ましい結果が得られます比較方法はまだ組み込まれていません。以下は

が、私はこの問題に来る理由のプロセスです:

  • まず私は唯一のGenBankファイルからfeat.type == 'CDS'情報を抽出し、 すべての偽遺伝子が失われました。
  • は、その後、私は feat.type == 'gene'に情報を記録することにより、アイデアを思い付いたし、この遺伝子のためのより多くの情報を記録するために'CDS'または 'misc_feature'のいずれかを探してください。

    これは、同じ遺伝子のいくつかのドメインに注釈を付ける複数 'misc_feature'がある場合に'CDS'又は'misc_feature' を確認する必要が同じ位置に注釈を付けで作成します。

答えて

2

私はまだこれはいくつかの理由やまだで構築されていない 比較法のための設計によるものかどうかをさまよっています。

答えは後者のようです。私が言うことができる限り、FeatureLocation__eq__メソッドは2011年に追加される予定でしたが、作成されませんでした。他のBiopythonオブジェクトでも、FeatureLocationオブジェクトをソースコードコメントで比較する機能が不足しています。

しかし、それは今後の実装の唯一の違いは、source code for the in progress, not yet released Biopython 1.70

でだとあなたがNoneにどのデフォルトrefref_dbフィールドの比較であるので、あなたがそれらを使用していない場合は、問題なし。

詳細については、pull request 1309を参照してください。

+0

最近、Biopython 1.70がリリースされ、この拡張機能が含まれています。特別な前/後のポジションが等しいと比較されるという点で少し曖昧さがあります。 – peterjc

関連する問題