私は自分の機関のデータベースで遺伝的変異データを表現しようとしています。参照対立遺伝子、変異対立遺伝子、染色体、位置、名前、考えられる効果、遺伝子、遺伝子内の位置などに関連する遺伝的変異を発見しました。
質問のコンテキストが役立つ場合もありますが、これはdjangoで構築し、dbバックエンドはPostgreSQLまたはMySQLのいずれかになります(質問の主な焦点ではありませんが、ここでの選択に関する提案も歓迎します)
この情報を適切に表現するために、私はリレーショナルデータベースの設計に着手しました。しかし、最も効率的な構造を定義する際に問題が発生しています。私はそれを次のように表すことができます:
バリアントは、多対1の関係で遺伝子に属します。つまり、1つの遺伝子に多くのバリアントを含めることができますが、通常、1つのバリアントが複数の遺伝子にまたがることはできません。(ただし、これは大きなCNVで発生する場合や、2つの遺伝子が重複する場合に発生する可能性があるため、多対多の関係になる可能性があります???)
変異体は個人でも発見されています。個体には遺伝子型があり、これは変異体の対立遺伝子のさまざまな組み合わせの2つのコピーにすぎません。これに最適かどうかはまったくわかりません。おそらく、バリアントと個体の共同主キーであり、遺伝子型を変異対立遺伝子の数として記録します(たとえば、0、1、2)???
だから私の質問は(すべての前文とバイオトークで申し訳ありませんが)私たちがどのように最善であるか、またはこれらの3つのもののためのより良いデザインです:バリアント-私が情報を保存したい主なもの、そして遺伝子、そして個人-どちらもダウンストリーム分析に不可欠です。
どんなアドバイスも大歓迎です。質問のやや短命な性質についても申し訳ありません。