Renamed directory illumina2ftsv to illumina to gather all Illumina-relevant
scripts there. Added laydi-annot-illumina script that generates Laydi annotation files from Illumina text annotation files.
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import getopt
|
||||
import numpy
|
||||
import sys
|
||||
|
||||
from laydi import dataset
|
||||
|
||||
VERSION = "0.1.0"
|
||||
|
||||
dataset_fn = "-"
|
||||
|
||||
def print_help():
|
||||
print "illumina2ftsv %s" % VERSION
|
||||
print
|
||||
print "Usage: illumina2ftsv [options] <illumina_genome_studio_file>"
|
||||
print
|
||||
|
||||
|
||||
def parse_options():
|
||||
s_opts = "d:h"
|
||||
l_opts = ["dataset", "help"]
|
||||
|
||||
options, params = getopt.getopt(sys.argv[1:], s_opts, l_opts)
|
||||
|
||||
for opt, val in options:
|
||||
if opt in ["-d", "--dataset"]:
|
||||
global dataset_fn
|
||||
dataset_fn = val
|
||||
elif opt in ["-h", "--help"]:
|
||||
print_help()
|
||||
sys.exit(0)
|
||||
|
||||
if len(params) != 1:
|
||||
print_help()
|
||||
sys.exit(1)
|
||||
|
||||
return params
|
||||
|
||||
def read_illumina_file(fn):
|
||||
fd = open(fn)
|
||||
line = fd.readline()
|
||||
if line.strip() != "Illumina Inc. GenomeStudio version 1.7.0":
|
||||
raise Exception("File cannot be recognized as Illumina textual data")
|
||||
|
||||
headers = {}
|
||||
line= fd.readline()
|
||||
while line.strip() != "":
|
||||
key, val = line.split("=", 1)
|
||||
headers[key.strip()] = val.strip()
|
||||
line = fd.readline()
|
||||
|
||||
col_headers = fd.readline().split('\t')
|
||||
|
||||
values = []
|
||||
line = fd.readline()
|
||||
while line != "":
|
||||
values.append([x.strip() for x in line.split('\t')])
|
||||
line = fd.readline()
|
||||
|
||||
probe_col = col_headers.index("ProbeID")
|
||||
print "probe id column:"
|
||||
|
||||
header_cols = []
|
||||
samples = []
|
||||
for i, colname in enumerate(col_headers):
|
||||
if colname.startswith("AVG_Signal-"):
|
||||
header_cols.append(i)
|
||||
samples.append(colname.split("-", 1)[1])
|
||||
|
||||
print header_cols
|
||||
print samples
|
||||
|
||||
a = numpy.array(values)
|
||||
m = numpy.array(a[:,header_cols], dtype='d')
|
||||
print m
|
||||
|
||||
probe_ids = list(a[:, probe_col])
|
||||
|
||||
print "samples: ", len(samples)
|
||||
print "probe_ids: ", len(probe_ids)
|
||||
print "shape: ", m.shape
|
||||
|
||||
ds = dataset.Dataset(m.transpose(), [('samples', samples), ('probe-ids', probe_ids)], name="Average Expr.")
|
||||
dataset.write_ftsv("test.ftsv", ds)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
fn = parse_options()[0]
|
||||
read_illumina_file(fn)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user