ネイティブ Python (標準ライブラリ以外のもの) で解決したい興味深い遺伝学の問題があります。これは、ユーザーが追加のモジュールをインストールする必要なく、どのコンピューターでもソリューションを非常に簡単に使用できるようにするためです。
ここにあります。454 回の新世代シーケンシング ランから、100,000 の DNA シーケンス (最大 20 億) を受け取りました。両端に存在する可能性のあるプライマーを削除するために、両端をトリミングしたいと考えています。通常のシーケンスとセンス シーケンスの両方です。例:
seq001: ACTGACGGATAGCTGACCTGATGATGGGTTGACCAGTGATC
--primer-1--- --primer-2-
プライマーは、1 回または複数回 (次々と) 存在できます。通常の感覚は常に左側にあり、逆は右側にあります。したがって、私の目標は、プライマーを見つけて、プライマーのない部分だけが残るように配列を切断することです。このために、ネイティブ Python で実装されている (つまり、biopython ではなく) 古典的なアライメント アルゴリズム (つまり、Smith-Waterman) を使用したいと考えています。これにはかなりの時間がかかる場合があることを認識しています (最大数時間)。
注: これは直接的な「単語」検索ではありません。配列とプライマーの両方の DNA がさまざまな技術的理由で「変異」する可能性があるためです。
何を使いますか?