問題タブ [iranges]
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.
r - 関数を適用して data.table を返すか、リストを直接 data.table に変換します
大きな data.table オブジェクト (元のファイルは約 30 GB、私は 80 GB の RAM を持っています) の各行に行列を返す関数を適用し、data.table オブジェクトを取得したいと考えています。効率よくやりたい。私の現在のアプローチは次のとおりです。
注 1: my.function を指定して、それが行列を返すことを示すためだけに、適用行が行列のリストであることを示します。
注 2: 実行している操作がどれほど遅いかはわかりませんが、行数を減らすことができるようです。たとえば、データ フレームを大きなオブジェクトのデータ テーブルに変換するのに時間がかかりますか?
再現可能な例:
Arun と Roland のおかげで私はこの問題についてより深く考えるようになったので、私はまだそれに取り組んでいることに注意してください...これらの行は必要ないのかもしれません...
私は sam ファイルを取得し、CIGAR フィールドに従って各読み取りが分割される新しい座標ファイルを作成したいと考えています。
r - 定義された一連の範囲外のすべての範囲を検索
特定の範囲のセットでカバーされていないすべての範囲を定義する最良の方法は何だろうと思っています。たとえば、既知の座標を持つ一連の遺伝子がある場合:
染色体の全長が 10000 であることがわかっているとしましょう (簡単にするために、それらはすべて同じ染色体上にあると仮定します)。したがって、最終的に次の遺伝子間領域のリストがあると予想されます。
バイオコンダクターはIRange
ここで役に立ちますか? またはこれを解決する他の良い方法はありますか?
r - 一致した範囲に基づいてリストを印刷する
いくつかの値が満たされた場合、文字列出力をリストに生成したいと思います。次のようなテーブルがあります。
この関数を使用して、目的の出力を生成しています。
また、rangeFinder からの開始出力と終了出力の間の文字 (列 V9-V11 から) を含むリストを生成したいと思います。
たとえば、出力は次のようになります。
rangeFinder は、V2 列と V3 列の値を見て、最も長く一致する数値を出力します。rangeFinder が 313-324 から (142-324 からではなく) 出力を生成したにもかかわらず、"FDT" がリスト出力に含まれていないことに注意してください。どうすれば目的の出力を得ることができますか?
r - デュアル レンジのサンプルと比較したデュアル レンジ間のオーバーラップ
R iRanges で重複する範囲を一般的に見つけることに関する他の投稿を見つけましたが、この余分なちょっとしたひねりを手伝ってもらえますか: リンクされている 2 つの範囲 (開始範囲と終了範囲を持つゲノム再編成の可能性) があり、マザーゲノムの同じ範囲を除外する
以下のように停止と開始の範囲を見つけました (chr 番号、間隔の開始、間隔の終了)。左側の 3 列は再配置の開始を示し、右側の 3 列は再配置の終了を示します (それらはSVDetect と呼ばれるプログラムの出力であり、NGS データを使用して参照ゲノムとの異常なアラインメントを持つメイト ペアを検出します)。母クローンと娘の 2 つのゲノムがあり、娘に固有の再編成を見つけたいと考えています = 両方の範囲が別の範囲の 2 つの範囲の同じ行と重複する行を除外したいと考えています。範囲は少し異なるかもしれませんが、両方の範囲が重なっている場合は、再編成が母親にすでに存在していたことを強く示しています.
娘:
母親:
r - 数値がどの範囲にあるかを確認し、対応するシフトを含む新しい列を返します
ch と shift の 2 つのデータ フレームがあります。データ フレーム chi には、以下に示すように数字を含む pos という名前の列があります。データ フレーム シフトには、名前が shft、start、および end の 3 つの列があります。
ヘッド(シフト)
シフトデータフレームの開始列と終了列にリストされている範囲でchデータフレームのpos列の各番号を確認したいのですが、A、B、C、Dなどのそれぞれのシフトはシフトという名前の列に割り当てる必要があります.
比較は次のようにする必要があり>= start and < end
ます。
スタックオーバーフローで質問を見て解決策を見つけましたが、値がどの範囲に収まるかのように機能しています
上記のコマンド ラインを使用すると、結果は for 0.25 i のようになり、シフト B で 1 行、シフト c で 1 行が取得されます。私のデータフレームには31行あり、上記のスクリプトを実行した結果、62行あります。
範囲を下回るだけでなく、比較を実行する方法を教えてください(>= start and < end)
。実際のデータ フレーム ch は、0.25、3.25、7.25 のように示したものだけでなく、3.14、0.89、7.25、6.93、5、46 のような数字も持ちます。
r - r を使用して、タイムスタンプに基づいて製造工場のシフトを確認する
生産単位のタイムスタンプを使用して、どのシフトで生産されたかを確認したい。生産は基本的に1日2交代で行われます。シフトのタイミングは、06:00 ~ 18:00 および 18:00 ~ 06:00 です。以下の shifts データ フレームは、12 月のシフトの計画を示しています。
もっとはっきりさせて
チェックデータフレームには、生成された各ユニットのタイムスタンプがあります。これらのタイムスタンプを使用して、ユニットがどのシフトで生産されているかを確認したいと思います。
望ましい結果:
簡単にするために、12月のシフト計画のみを示しました。実際には、完全な年を確認する必要があります。
r - 範囲を両方向に拡張
私は GRanges オブジェクトを持っており、すべての範囲を拡張したいと考えています。inter-range-methods
奇妙ですが、GenomicRanges または IRangesを使用してこれを行うことができませんでした。目的の結果を生成する 1 つの方法は、サイズ変更を 2 回使用して、最初に 5' を拡張し、次に 3' を拡張することです。しかし、これはもちろん非常に厄介です。これを行うより直接的な方法はありませんか?ご意見をお聞かせください
r - RはfindOverlapsとcountOverlapsの出力を結合します
比較する IRanges のセットが 2 つあります。私の目標は、オーバーラップが存在する場合はオーバーラップの位置を持ち、オーバーラップしない場合は負の開始としてリストされている範囲のオフセットを持つ出力を取得することです。少なくとも、オフセットを取得できない場合は、オーバーラップがないことを示すために「0」を取得する必要があります。例えば:
と
findOverlaps + 範囲を使用すると、次のようになります。
最終出力をデータフレームまたは次のようなものにしたいと思います。
countOverlaps を使用して重複する範囲のインデックスを取得し、findOverlaps + 範囲を使用して比較するためのヒット オブジェクトを取得できますが、結果を組み合わせて目的の出力を取得する方法について途方に暮れています。
r - `R` のパッケージ `IRanges` での整数オーバーフロー
問題
私はこのパッケージを使用しており、[IRanges][1]
2^31 を約 10 倍超える非常に長いシーケンスを正確にコーディングする必要があります。
IRanges
以下から、使用しているようですint32
このパッケージは DNA シーケンスによく使用されるため、2^32 (≈ 10^9) よりも長いゲノム サイズを持つ生物が多いため、2^32 (≈ 10^9) より大きい値を処理できると非常に便利です。
質問
- これは整数オーバーフローの問題だと考えるのは正しいですか?
- 同じ問題が発生しますか?
- この問題を回避する方法はありますか?
- ソースコードを見つけてオブジェクトタイプを変更することは可能ですか(そして簡単ですか)
- このパッケージの別のバージョンが存在すると思いますか?
私が見つけた唯一の解決策は、精度のレベルを下げて各幅を 100 で割ることを受け入れることですが、精度を下げることにあまり満足していません。
R版