首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中处理"bed“文件

在python中处理"bed“文件
EN

Stack Overflow用户
提问于 2014-08-08 23:27:55
回答 4查看 11.5K关注 0票数 2

我有一个.bed文件,其中包含1000行,每行中的单词用制表符(\t)分隔。如果我们把每个单词看作一列,那么每一行都有12列。我需要一种将这个.bed文件转换成矩阵的方法,这样我就可以轻松地访问它的列。例如,我需要访问第12列。有什么方法可以做到吗?

我已经试过了:

代码语言:javascript
复制
    import numpy as np
    data = np.genfromtxt("myFile.bed")

但它不能正常工作。有人能帮我吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-08-09 03:39:05

床文件是标准的标签分隔文本文件。将其内容存储在内存中的常用方法是:

代码语言:javascript
复制
content = []
with open("myFile.bed")as f:
    for line in f:
        content.append(line.strip().split())

您可以在这里使用numpy数组而不是列表,或者如果需要,可以用np.asarray转换结果。

实际上,你很少需要它的矩阵,因为它们代表(基因组?)间隔期往往很大。大多数情况下,您在循环中的每一行修改/读取/执行某些函数:

代码语言:javascript
复制
with open("myFile.bed")as f:
    for line in f:
        L = line.strip().split()
        # ... do something with L

否则,熊猫库将实现“数据帧”,如R(但我从未使用过)。

票数 5
EN

Stack Overflow用户

发布于 2020-04-22 08:17:47

使用吡喃,这是非常简单的

代码语言:javascript
复制
import pyranges as pr

path = pr.get_example_path("aorta.bed")

gr = pr.read_bed(path)
# +--------------+-----------+-----------+------------+-----------+--------------+
# | Chromosome   | Start     | End       | Name       | Score     | Strand       |
# | (category)   | (int32)   | (int32)   | (object)   | (int64)   | (category)   |
# |--------------+-----------+-----------+------------+-----------+--------------|
# | chr1         | 9939      | 10138     | H3K27me3   | 7         | +            |
# | chr1         | 9953      | 10152     | H3K27me3   | 5         | +            |
# | chr1         | 10024     | 10223     | H3K27me3   | 1         | +            |
# | chr1         | 10246     | 10445     | H3K27me3   | 4         | +            |
# | ...          | ...       | ...       | ...        | ...       | ...          |
# | chr1         | 9978      | 10177     | H3K27me3   | 7         | -            |
# | chr1         | 10001     | 10200     | H3K27me3   | 5         | -            |
# | chr1         | 10127     | 10326     | H3K27me3   | 1         | -            |
# | chr1         | 10241     | 10440     | H3K27me3   | 6         | -            |
# +--------------+-----------+-----------+------------+-----------+--------------+
# Stranded PyRanges object has 11 rows and 6 columns from 1 chromosomes.
# For printing, the PyRanges was sorted on Chromosome and Strand.

df = gr.df
#    Chromosome   Start     End      Name  Score Strand
# 0        chr1    9939   10138  H3K27me3      7      +
# 1        chr1    9953   10152  H3K27me3      5      +
# 2        chr1   10024   10223  H3K27me3      1      +
# 3        chr1   10246   10445  H3K27me3      4      +
# 4        chr1  110246  110445  H3K27me3      1      +
# 5        chr1    9916   10115  H3K27me3      5      -
# 6        chr1    9951   10150  H3K27me3      8      -
# 7        chr1    9978   10177  H3K27me3      7      -
# 8        chr1   10001   10200  H3K27me3      5      -
# 9        chr1   10127   10326  H3K27me3      1      -
# 10       chr1   10241   10440  H3K27me3      6      -
票数 2
EN

Stack Overflow用户

发布于 2021-08-10 18:50:12

个人在安装吡喃时遇到了麻烦。

我从他们的例子中使用了床读器

代码语言:javascript
复制
from bed_reader import open_bed, sample_file

bed = open_bed("myFile.bed")
val = bed.read()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25213673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档