0

我有以下格式的基因组测序文件:

染色体名称(字符串) | 位置 (int) | 读数(整数)

所有染色体的数据都存储在一个文件中,我希望

  1. 将文件拆分为单独的染色体数据文件;
  2. 将染色体名称(例如“chr1”、“x”)转换为整数。

我怎么能用熊猫做到这一点?

import pandas as pd
df = pd.read_csv('sample.txt', delimiter='\t', header=None)

数据看起来像这样

0   chr1    3000573     0   
1   chr1    3000574     3   
2   chr2    3000725     1   
3   chr2    3000726     4   
4   chr3    3000900     1   
5   chr3    3000901     0   

我还可以通过染色体标签 chr1、chr2、...重新索引数据框

4

1 回答 1

2

一旦数据帧被拼接成片段,就可以轻松地将每个染色体的数据写入单个文件。不太确定“将染色体名称转换为整数”是什么意思,但如果您的意思是给定“chrx”,您希望 x 作为 int,这很容易。假设您有染色体“chr1”到“chrn”,其中 n 是一个整数:

import pandas
df = pandas.read_csv("sample.txt", delimiter="\t", header=None)
df.columns = ["index", "chrid", "location", "readings"]
chrs = []
for chrid in range(1,n):
    chr = df.loc[df["chrid"] == "chr"+str(chrid)]
    chr["chrid"] = map(lambda x: return int(x[3]), chr["chrid"])
    chrs.append(chr)
# chrs is now a list of dataframes, each for individual chromosome data
于 2015-08-28T23:26:17.240 回答