0

これはおそらく非常に単純な質問ですが、誰かが迅速かつ効率的な回答を提供してくれることを願っています...形式を多少変更しながら、染色体データをデータベースに入力しようとしています。データは現在次のようになっています。

chrom   = chr1
txStart = 134212702 
exonCount = 8
exonStarts = 134212702,134221529,134222782,134224273,134224707,134226534,134227135,134227897,
exonEnds=   134213049,134221650,134222806,134224425,134224773,134226654,134227268,134229870,

プロモーター、エクソン、イントロンの位置に関する情報を含む上記のすべてのデータを含むデータベースを作成しています。データの各セット (上記のサンプルのように 1 つの行から取得) は、1 つのトランスクリプトに対応します。プロモーターを txStart (例: 134212702) - 2000 と定義します。各転写産物には、エクソン カウント (例: 8) で指定された一定量のエクソンがあります。大きなトランスクリプト内の各エクソンの開始と終了は、exonStarts と exonEnds リストの値を一致させることによって指定されます。たとえば、この場合の最初のエクソンは 134212702 から 134213049 の範囲になります。最初のエクソンが 134213050 から 134221528 になるように、イントロンはエクソンの間に配置されます。

PromoterStart = int(TxStart) - 2000
PromoterEnd = int(TxStart) -1
ExonStart = map(int, ExonStart[:-1].split(","))
ExonEnd = map(int, ExonEnd[:-1].split(","))
i = 0
while i < int(ExonCount):
    ExonCount = i +1
    if i != int(ExonCount) -1:
        IntronStart[i] = ExonEnd[i] +1
        IntronEnd[i] = ExonStart[i+1] -1
    i += 1

この方法を使用して、後で比較するためにすべてのデータをデータベースに挿入しました。TxStart -2000 から TxStart + 2000 までのプロモーター定義を使用して、この分析をやり直したいと思います。ただし、このコードを使用してエクソンとプロモーターの間に大量のオーバーラップがあり、プロモーターの末尾を = int に変更するだけのようです。 (TxStart) +2000、ダウンストリーム分析の速度が大幅に低下します。領域が txStart -2000 から txStart +2000 までのプロモーターと見なされる場合、この領域がエクソン領域と見なされないようにする方法を見つけたいと思います。

4

1 に答える 1