In [1]:
require 'nyaplot'
require 'bionya'
Out[1]:
Out[1]:
Out[1]:
In [2]:
path = File.expand_path("../data/operon.csv", __FILE__)
df_operon = Nyaplot::DataFrame.from_csv(path)
Out[2]:
In [3]:
begin_arr = [0]; end_arr=[336]; size_arr=[337]; if_operon_arr=["no"]; name_arr = [SecureRandom.uuid ]; df_arr = []
df_operon.filter! {|row| !(row[:locbegin].is_a?(String) || row[:locend].is_a?(String))}
df_operon.column(:operonname).to_a.uniq.each do |name|
df_part = df_operon.filter{|row| row[:operonname].to_s == name.to_s}
operon_begin = df_part.column(:locbegin).to_a.min
operon_end = df_part.locend.to_a.max
prev_end = end_arr.clone.pop
if operon_begin - prev_end > 1
name_arr.push(SecureRandom.uuid)
begin_arr.push(prev_end+1)
end_arr.push(operon_begin-1)
size_arr.push(operon_begin - prev_end -1)
if_operon_arr.push("no")
end
name_arr.push(name)
begin_arr.push(operon_begin)
end_arr.push(operon_end)
size_arr.push(operon_end - operon_begin + 1)
if_operon_arr.push("yes")
end
df_operon_info = Nyaplot::DataFrame.new({name: name_arr, begin: begin_arr, end: end_arr, size: size_arr, if_operon: if_operon_arr})
df_operon_info
Out[3]:
In [4]:
df_arr = []
df_operon_info.each_row do |row|
axis_arr=[]
row[:begin].step(row[:end], 1000){|val| axis_arr.push(val)}
val_arr=Array.new(axis_arr.length, -0)
name_arr=Array.new(axis_arr.length, '')
df_arr.push(Nyaplot::DataFrame.new({axis: axis_arr, val: val_arr, name: name_arr}))
end
df_operon_info.df = df_arr
df_operon_info
Out[4]:
In [5]:
path = File.expand_path("../data/ttest.csv", __FILE__)
df_ttest = Nyaplot::DataFrame.from_csv(path)
Out[5]:
In [6]:
df_operon
Out[6]:
In [7]:
df_operon.filter{|row| row[:probeset] == "aceA_b4015_st"}.column(:locbegin).to_a[0]
Out[7]:
In [8]:
df_ttest.each_row do |row1|
name = row1[:name]
locbegin = df_operon.filter{|row| row[:probeset] == name}.column(:locbegin).to_a[0]
next if locbegin.nil?
df_operon_info.each_row do |row|
if locbegin > row[:begin] && locbegin < row[:end]
row[:df].each_row do |nest_row|
if locbegin < nest_row[:axis] + 1000 && locbegin > nest_row[:axis]
nest_row[:val] = row1[:dm]
nest_row[:name] = row1[:name]
end
end
end
end
end
df_operon_info
Out[8]:
In [9]:
df_operon_info.each_row do |row|
unless row[:df].val.to_a.all?{|val| !val.nil?}
print "hoge"
end
end
""
Out[9]:
In [10]:
plot = Nyaplot::CircularPlot.new(df_operon_info, :name, :df)
plot.color(['#999999','#ef8a62'])
plot.fill_by(:if_operon)
arc = plot.add(1, :arc, :axis, :val)
arc.color(["#a50026"])
labels = plot.add(2, :labels, :axis, :name)
labels.text_size(0.5)
plot.text_size("0")
plot.padding(0.2)
plot.show
Out[10]:
In [11]:
plot.group_by
Out[11]:
In [ ]: