class MultipleGFFs
Attributes
lines_gffs[R]
Public Class Methods
new(folder: "../mapping/", lines:[], suffix:".SM1.cds.sorted.gff", is_gz:false )
click to toggle source
# File lib/bio-pangenome/MultipleGFF3.rb, line 4 def initialize(folder: "../mapping/", lines:[], suffix:".SM1.cds.sorted.gff", is_gz:false ) @folder = folder @lines = lines @suffix = suffix @lines_gffs = Hash.new @lines.each do |l| path ="#{folder}/#{l}#{suffix}" @lines_gffs[l] = GFF3.new(file: path, is_gz: is_gz) end end
Public Instance Methods
bedAround(distance: 1000, prefix: "../flanking/releasePGSBV1/", suffix: ".RefSeqv1.1.bed" )
click to toggle source
# File lib/bio-pangenome/MultipleGFF3.rb, line 19 def bedAround(distance: 1000, prefix: "../flanking/releasePGSBV1/", suffix: ".RefSeqv1.1.bed" ) each_gff do |k, v| path="#{prefix}#{k}_#{distance}bp_#{suffix}" puts path out=File.open(path, "w") v.bedAroundGene(distance:distance, out:out) out.close end end
each_gff() { |k, v| ... }
click to toggle source
# File lib/bio-pangenome/MultipleGFF3.rb, line 15 def each_gff @lines_gffs.each_pair{|k,v| yield k, v } end
summary()
click to toggle source
# File lib/bio-pangenome/MultipleGFF3.rb, line 29 def summary ret = [] each_gff do |k,v| v.each_mrna do |record| tmp = {} tmp[:line] = k tmp[:id] = record.get_attribute "Name" tmp[:chr] = record.seqid tmp[:start] = record.start tmp[:end] = record.end tmp[:strand] = record.strand tmp[:genomic_length] = record.end - record.start tmp[:coverage] = record.get_attribute "coverage" tmp[:identity] = record.get_attribute "identity" tmp[:matches] = record.get_attribute "matches" tmp[:mismatches] = record.get_attribute "mismatches" tmp[:indels] = record.get_attribute "indels" tmp[:unknowns] = record.get_attribute "unknowns" mrna_stats = @lines_gffs[k].mrna_info(record.id) tmp[:cds_count] = mrna_stats.cds_count tmp[:cds_max_gap] = mrna_stats.cds_max_gap ret << tmp end end ret end
to_svg(mrna: "Sm1_CDS.mrna1", positions: false, out: nil)
click to toggle source
# File lib/bio-pangenome/MultipleGFF3.rb, line 56 def to_svg(mrna: "Sm1_CDS.mrna1", positions: false, out: nil) p = Bio::Graphics::Page.new(width: 800, height: 1000, number_of_intervals:10, background_color: "white" ) each_gff do |k,v| generic_track = p.add_track(:glyph => :generic, :name => k, :label => true ) v.cds_to_print(mrna).each do |cds| f_id = positions ? cds.offset_start : nil feature = Bio::Graphics::MiniFeature.new(start: cds.start, end: cds.end, fill_color: cds.color, id: f_id) generic_track.add(feature) end end end