从.text文件中读取列

时间:2014-06-20 07:55:12

标签: python file-io numpy matplotlib bioinformatics

我有两个包含4个.txt文件的数据集,每个文件有9列。我的任务是创建一个非常简单的条形图,它将显示两个数据集中每个文件的第6列和第7列之间的比较。我当然会接受cols 1,2&默认为3。我在python中编写了一些代码但是我在阅读多个文件然后选择列时遇到了困难。到目前为止,我的代码如下:

    # This script will plot the comparison between the BodyMap Gencode & BodyMap RefSeq paired end data.

import matplotlib.pyplot as plt
import numpy as np


#Reading in the files

with open("Illumina_Heart_Gencode_Aligned_Novel_Junctions.txt") as f:
        data = f.read()

data = data.split('\n')

x = [row.split(' ')[0] for row in data]
y = [row.split(' ')[1] for row in data]

fig = plt.figure()

ax1 = fig.add_subplot(111)

ax1.set_title("BodyMap Gencode Vs. RefSeq")
ax1.set_xlabel("Novel & Splice Junctions")
ax1.set_ylabel("Something")

ax1.plot(x,y, c='r', label='the data')

leg = ax1.legend()

plt.show()

我想就如何前进提出一些建议。

感谢您的时间。

这就是我的数据。

文件1:

    chr1    1718493 1718764 2   2   0   12  0   24
chr1    8928117 8930883 2   2   0   56  0   24
chr1    8930943 8931949 2   2   0   48  0   25
chr1    9616316 9627341 1   1   0   12  0   24
chr1    10166642    10167279    1   1   0   31  1   24
chr1    10338187    10342379    1   1   0   11  0   23
chr1    12040542    12042030    1   1   0   61  0   25
chr1    12395885    12401839    1   1   0   33  0   24
chr1    13814327    13815190    1   1   0   16  0   23
chr1    13815294    13815911    1   1   0   17  0   21
chr1    15978391    15986331    1   1   0   12  0   22
chr1    20386186    20411313    1   1   0   11  0   22
chr1    20412721    20417060    1   1   0   50  0   25
chr1    22159100    22159367    2   2   0   62  0   19
chr1    22159386    22159760    2   2   0   15  0   19
chr1    22192303    22195377    2   2   0   18  0   25
chr1    22196157    22196705    2   2   0   20  0   25
chr1    22197366    22198678    2   2   0   12  0   23
chr1    22217188    22220081    2   2   0   12  0   23
chr1    29064851    29095440    1   1   0   15  0   17
chr1    29391671    29395244    1   1   0   14  0   23
chr1    31833678    31840239    2   2   0   191 1   25
chr1    31840300    31842231    2   2   0   20  0   23
chr1    31840342    31845788    2   2   0   18  0   23
chr1    32051087    32052310    1   1   0   11  0   25
chr1    33800961    33815197    2   2   0   14  0   21
chr1    36766686    36767156    1   1   0   45  0   24
chr1    46379552    46383010    1   1   0   22  0   20

文件2:

    chr1    880181  880421  2   2   0   15  0   21
chr1    1718493 1718764 2   2   0   12  0   24
chr1    8568735 8585817 2   2   0   12  0   21
chr1    8617583 8684368 2   2   0   14  0   23
chr1    8928117 8930883 2   2   0   56  0   24
chr1    8930943 8931949 2   2   0   48  0   25
chr1    9616316 9627341 1   1   0   12  0   24
chr1    9982417 9991948 2   2   0   18  0   23
chr1    10002841    10003306    2   2   0   17  0   20
chr1    10002841    10003406    2   2   0   21  0   25
chr1    10166642    10167279    1   1   0   31  1   24
chr1    10167433    10177516    1   1   0   96  0   24
chr1    10338187    10339154    1   1   0   29  0   23
chr1    10338187    10342379    1   1   0   11  0   23

我想比较两个文件中的第6列和第7列,并且在我的数据集中有多个这样的文件。

1 个答案:

答案 0 :(得分:0)

numpy.loadtxt当然可以提供多行代码,但这只有在没有缺失值的情况下(例如不完整的行)。如果是这种情况,则手动方法(如您所做)最好。