問題タブ [biopython]
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.
python - BioPython: Entrez.esummary/Entrez.read で不正な GID をスキップする
変なタイトルでごめんなさい。
eSearch と eSummary を使用して移動しています
アクセッション番号 --> gID --> TaxID
「accessions」が 20 の登録番号のリストであると仮定します (NCBI が許可する最大値であるため、一度に 20 とします)。
そうです:
これにより、これらの 20 のアクセッション番号から 20 の対応する GID が得られます。
に続く:
gids の GID の 1 つが NCBI から削除されているため、このエラーが発生します。
私は試すことができます:, except: それ以外は、問題のない他の 19 個の GID をスキップします。
私の質問は:
Entrez.read を使用して一度に 20 レコードを読み取り、他の 20 レコードを犠牲にすることなく、欠落しているレコードをスキップするにはどうすればよいですか? 一度に 1 つずつ実行できますが、それは信じられないほど遅くなります (私は 300,000 のアクセッション番号を持っており、NCBI では 1 秒あたり 3 つのクエリしか実行できませんが、実際には 1 秒あたり 1 つのクエリのようです)。
bioinformatics - BioPython で BLAST クエリを実行する
私はしたいと思います
- BLAST いくつかのシーケンス
- 各クエリから上位 100 件程度のヒットを取得する
- ダウンロードした配列をプールする
- 重複を削除
BioPython でこれを行うにはどうすればよいですか?
bioinformatics - multiFASTAファイル処理
multiFASTAファイルを処理して、配列の数、長さ、ヌクレオチド/アミノ酸の含有量などの情報を取得し、説明的なプロットを自動的に描画できるバイオインフォマティクスツールがあるかどうか知りたいと思いました。R BIoconductorソリューションまたはBioPerlモジュールでもかまいませんが、何も見つかりませんでした。
手伝って頂けますか?どうもありがとう :-)
python - サブプロセスは標準出力をキャッチできません
fastaファイル入力とMuscleCommandlineとのアライメントでツリーを生成しようとしています
私はいつもこれらの問題に遭遇します
parsing - Clustal を使用して各行から 50 シーケンスを出力します
複数配列アラインメント (Clustal) ファイルがあり、このファイルを読み込んで、順序がより明確で正確に見えるように配列を配置したいと考えています。
オブジェクトを使用してBiopythonからこれを行っていAlignIO
ます:
私の出力は、乱雑で長いスクロールに見えます。私がやりたいことは、各行に 50 シーケンスのみを出力し、アライメント ファイルの最後まで続けることです。
http://www.ebi.ac.uk/Tools/clustalw2/から、このような出力が必要です。
python - Pythonでゲノム配列を効率的に取得しますか?
Pythonを使用してゲノム配列を効率的にフェッチするにはどうすればよいですか?たとえば、.faファイルやその他の簡単に入手できる形式からですか?基本的に、指定されたストランドの指定された染色体上のシーケンス[start、end]を返すインターフェイスfetch_seq(chrom、strand、start、end)が必要です。
同様に、phastConsスコアを取得するためのプログラムによるPythonインターフェースはありますか?
ありがとう。
python - Web から CGI スクリプトを実行しているときに、Python がいくつかのモジュールを見つけられないのはなぜですか?
ここで何が問題なのかわかりません:
対話型プロンプトを使用するとき、またはコマンドラインから Python スクリプトを実行するときに、簡単にインポートできる Biopython のモジュールがいくつかあります。
問題は、同じ biopython モジュールを Web 実行可能な CGI スクリプトにインポートしようとすると、「インポート エラー」が発生することです。
: Bio という名前のモジュールはありません
ここに何かアイデアはありますか?
python - Biopython へのラプラシアン平滑化
Bioinformatics プロジェクトの Biopython のナイーブ ベイズ コード1にラプラシアン スムージング サポートを追加しようとしています。
ナイーブ ベイズ アルゴリズムとラプラシアン スムージングに関する多くのドキュメントを読みましたが、基本的な考え方は理解できたと思いますが、これをそのコードと統合することはできません (実際、どの部分に 1 -ラプラシアン数を追加するかわかりません)。
私は Python に詳しくなく、初心者のコーダーです。Biopython に詳しい方からアドバイスをいただければ幸いです。
python - PhyloBioPython構築ツリー
BioPython、Phyloモジュールでツリーを構築しようとしています。
私がこれまでに行ったことは、この画像です。
各名前には、4桁の数字の後に-と数字が続きます。この数字は、そのシーケンスが表される回数を示します。つまり、1578-22、そのノードは22シーケンスを表す必要があります。
シーケンスが整列され
たファイル:ツリーを構築する距離のファイルをファイルします:file
これで、ノードの各サイズを変更する方法がわかりました。各ノードのサイズは異なります。これにより、さまざまな値の配列を簡単に作成できます。
しかし、配列は任意です。正しいノードサイズを正しいノードに配置したいので、これを試しました。
しかし、ifステートメントを使用しても何も表示されません。
とにかくこれを行う?
本当にありがたいです!
みんなありがとう
python - それぞれ独自のサブプロセスを持つPythonマルチプロセッシング(Kubuntu、Mac)
デフォルトで1つのマルチプロセッシングプロセスを作成するスクリプトを作成しました。その後、正常に動作します。複数のプロセスを開始すると、ハングし始めますが、常に同じ場所にあるとは限りません。プログラムのコードは約700行なので、何が起こっているのかを要約してみます。DNA配列を整列させるという最も遅いタスクを並列化することにより、マルチコアを最大限に活用したいと思います。そのために、サブプロセスモジュールを使用してコマンドラインプログラム'hmmsearch'を呼び出します。これは、/ dev / stdinを介してシーケンスをフィードし、次に/ dev/stdoutを介して整列されたシーケンスを読み取ります。stdout / stdinから読み取り/書き込みを行うこれらの複数のサブプロセスインスタンスが原因でハングが発生することを想像しますが、これを実行する最善の方法が本当にわかりません... os.fdopen(...)&osを調べていました.tmpfile()、データをフラッシュできる一時的なファイルハンドルまたはパイプを作成します。ただし、これまで使用したことがなく、サブプロセスモジュールでそれを行う方法を想像することはできません。パイプは高スループットのデータ処理ではるかに優れているため、理想的にはハードドライブの使用を完全にバイパスしたいと思います。これでどんな助けでもとても素晴らしいでしょう!
これをデバッグするのにしばらく時間を費やした後、私は常にそこにあり、まだ完全には解決されていない問題を見つけましたが、(デバッグの)プロセスにおける他のいくつかの非効率性を修正しました。2つの初期フィーダー関数があります。このalign_seqクラスと、位置固有のスコア行列(PSM)をディクショナリにロードするファイルパーサーparseHMM()です。次に、メインの親プロセスは、各残基に関連するスコアへのポインターとして(辞書の)辞書を使用して、アラインメントをPSMと比較します。必要なスコアを計算するために、2つの別々のmultiprocessing.Processクラスがあります。1つのクラスlogScore()は、対数オッズ比を計算します(math.exp()を使用)。これを並列化します。計算されたスコアを最後のプロセスsumScore()にキューイングしますこれは、これらのスコアを(math.fsumで)合計し、合計とすべての位置固有のスコアを辞書として親プロセスに返します。ie Queue.put([sum、{残基位置:位置固有のスコア、...}])これは頭を動かすのに非常に混乱しているので(キューが多すぎます!)、読者がなんとかフォローしていることを願っています。 。上記のすべての計算が完了したら、累積スコアをタブ区切りの出力として保存するオプションを提供します。これは、スコアがあるはずのすべての位置のスコアを確実に出力するため、現在(昨夜から)時々壊れている場所です。レイテンシー(コンピューターのタイミングが同期していない)のために、logScoreの最初にキューに入れられたものがsumScoreに到達しないことがあると思います最初。sumScoreがいつタリーを返し、再開するかを知るために、計算を実行した最後のlogScoreプロセスのキューに「endSEQ」を入れました。それなら最後にsumScoreに到達するはずだと思いましたが、常にそうであるとは限りません。たまにしか壊れません。そのため、デッドロックは発生しなくなりましたが、結果を印刷または保存するときにKeyErrorが発生します。KeyErrorが発生することがある理由は、logScoreプロセスごとにキューを作成するためだと思いますが、代わりに、すべて同じキューを使用する必要があります。今、私は次のようなものを持っています:-
一方、すべてのlogScoreインスタンス間で共有するキューを1つだけ作成する必要があります。すなわち