問題タブ [dna-sequence]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - 置換率のある合成DNA配列の生成
これらの入力が与えられた場合:
生成したい:
1000の長さ-10タグ
タグ内の各位置の置換率は0.003です
次のような出力を生成します。
Perlでそれを行うコンパクトな方法はありますか?
私はこのスクリプトのロジックをコアとして使用しています。
python - エレガントなグロブのような DNA ストリング拡張を探しています
複数の可能な塩基を持つ一連の DNA 文字列のグロブのような拡張を作成しようとしています。
私の DNA 文字列のベースには、A、C、G、および T の文字が含まれています。ただし、A または C の M のような特殊文字を使用することはできます。
たとえば、次の文字列があるとします。
ATMM
この文字列を入力として取り、一致する可能性のある 4 つの文字列を出力したいと思います。
ATAA
ATAC
ATCA
ATCC
力ずくで解決するのではなく、これを行うにはエレガントな Python/Perl/Regular Expression のトリックが必要だと思います。
アドバイスありがとうございます。
編集、製品オペレーターのcortexに感謝します。これが私の解決策です:
まだ Python の初心者なので、別の for ループよりも各辞書キーを処理するためのより良い方法があるに違いありません。どんな提案も素晴らしいでしょう。
perl - Perl再帰テクニック?
このコードについて少し助けが必要です。私は再帰的であるべきセクションを知っています、または少なくとも私はそう思うと思いますが、それを実装する方法がわかりません。ゼロ値に戻る複数のルートを見つけるアライメントマトリックスからパスファインディングプログラムを実装しようとしています。たとえば、私のコードを実行し、最初のシーケンスとしてCGCAを挿入し、2番目のシーケンスとしてCACGTATを挿入し、一致、不一致、およびギャップのスコアとして1、0、および-1を挿入したとします。プログラムは、HDHHDDとしてのパスと、
CACGTAT
CGC--A-。
しかし、私がいくつあるかわからないことを除いて、これよりも多くの可能なパスとアラインメントがあります。私がやりたいのは、コードの一部をループバックさせて、他のパスとアラインメントを見つけ、最初と同じコードを使用して、可能なアラインメントがなくなるまでです。これを行うためにネット上で見つけた最善の方法は、再帰です。ただし、誰もそれを行う方法を説明できません。この場合、さらに2つのパスとアラインメントHDDDHHDとCACGTAT、およびC--GCA-とが必要です。HDDDDHH、CACGTATおよび--CGCA-。このタスクを実行するためのコーディング方法がわかりません。
誰かが疑問に思っているなら、これはニードルマン-ブンシュアルゴリズムです。ここでのどんな助けも大いに認められるでしょう。
string - 一般的なサブパターンに従って短く均質な文字列(DNA)をクラスター化し、クラスのコンセンサスを抽出します
タスク:
共通のサブシーケンスパターンを共有するクラスで短いDNAフラグメントの大きなプールをクラスター化し、各クラスのコンセンサスシーケンスを見つけます。
- プール:およそ 300シーケンスフラグメント
- フラグメントあたり8〜20文字
- 4つの可能な文字:a、g、t、c
- 各フラグメントは、次の3つの領域で構成されています。
- 5つの一般的な文字
- gとcの8つ以上の位置
- 5つの一般的な文字
(正規表現として[gcta]{5}[gc]{8,}[gcta]{5}
)
計画:
マルチプルアラインメント(つまり、withClustalW2)を実行して、領域2の共通シーケンスとそのコンセンサスシーケンスを共有するクラスを見つけます。
質問:
- 私のフラグメントは短すぎますか?サイズを大きくするのに役立ちますか?
- 領域2は、そのシーケンスでパターンを表示するには、許可されている文字タイプが2つしかないため、均質すぎますか?
- このタスクのためにどの代替方法またはツールを提案できますか?
よろしくお願いします、
サイモン
perl - Perl でタンパク質を整列させるために置換行列を使用して Smith-Waterman アルゴリズムを変更するにはどうすればよいですか?
Perl でタンパク質を整列させるために置換行列を使用してSmith-Waterman アルゴリズムを変更するにはどうすればよいですか?
[引用が必要]
ruby - いくつかの与えられたセットから可能なすべての DNA シーケンスを生成します
私はしばらくの間、これに頭を悩ませようとしてきましたが、良い解決策を思いつくことができませんでした. ここに行きます:
セット数が与えられた場合:
セットのリストから可能なすべてのシーケンスを生成したいと考えています。この例では、シーケンスの長さは 5 ですが、約 20 までの長さにすることができます。位置 1 の場合、考えられる候補はそれぞれ「A」と「T」であり、位置 2 の場合、唯一のオプションは「C」です。の上。
上記の例の答えは次のようになります。
ACATG, ACCTG, ACGTG, TCATG, TCCTG, TCGTG
私はこれをルビーで行っており、マスター配列内の配列としてさまざまなセットを持っています:
最初は再帰的な解決策が最善だと思っていましたが、適切に設定する方法がわかりませんでした。
私の 2 番目のアイデアは、各セットのインデックスを持つ同じサイズの別の配列を作成することでした。したがって、00000 は「ACATG」の上の最初のシーケンスに対応し、10200 は「TCGTG」に対応します。00000 から始めて、最後のインデックスを 1 増やし、問題のセットの長さ (上記の set1 の場合は 2、set2 の場合は 1) でそれをモジュロします。
しかし、このソリューションについて考えれば考えるほど、この非常に小さな問題には複雑すぎるように思えました。私が見逃しているもっと簡単な解決策があるはずです。誰か助けてくれませんか?
/ニック
database - 生物学的配列の保存に長けた商用データベース
タンパク質/DNA配列のような生物学的配列の保存に長けている商用データベースはどれですか?そのようなシーケンスを保存するために特別に設計されたものはありますか?
乾杯
python - マイクロアレイデータの堅牢なマルチアレイ平均のためのPythonスクリプト
私は運が悪かったグーグルを試しました。Pythonで実行されたが、コードではない堅牢なマルチ配列平均化への弱参照をいくつか見ました。私は車輪の再発明にはあまり興味がありません。Pythonモジュール、スクリプトに関する提案...。
アルゴリズムの良い説明や例を見つけることができれば、共有するPython実装を作成します。
私が何について話しているのかわからない場合は、これは定義ではありませんが、これを見ることができます。 http://www.mathworks.com/access/helpdesk/help/toolbox/bioinfo/ref/gcrma.html
python - ネイティブ Python での DNA 配列アラインメント (biopython なし)
ネイティブ Python (標準ライブラリ以外のもの) で解決したい興味深い遺伝学の問題があります。これは、ユーザーが追加のモジュールをインストールする必要なく、どのコンピューターでもソリューションを非常に簡単に使用できるようにするためです。
ここにあります。454 回の新世代シーケンシング ランから、100,000 の DNA シーケンス (最大 20 億) を受け取りました。両端に存在する可能性のあるプライマーを削除するために、両端をトリミングしたいと考えています。通常のシーケンスとセンス シーケンスの両方です。例:
プライマーは、1 回または複数回 (次々と) 存在できます。通常の感覚は常に左側にあり、逆は右側にあります。したがって、私の目標は、プライマーを見つけて、プライマーのない部分だけが残るように配列を切断することです。このために、ネイティブ Python で実装されている (つまり、biopython ではなく) 古典的なアライメント アルゴリズム (つまり、Smith-Waterman) を使用したいと考えています。これにはかなりの時間がかかる場合があることを認識しています (最大数時間)。
注: これは直接的な「単語」検索ではありません。配列とプライマーの両方の DNA がさまざまな技術的理由で「変異」する可能性があるためです。
何を使いますか?