Class: SampleSheet

Inherits:
Object
  • Object
show all
Defined in:
lib/nugen_barcode_splitter/sample_sheet.rb

Overview

FCID,Lane,SampleID,SampleRef,Index,Description,Control,Recipe,Operator,SampleProject, C0ED3ACXX,4,R-1,hg19,ACCC,RNA Seq,N,,,47644,Nugen barcodes C0ED3ACXX,4,R-2,hg19,GAGT,RNA Seq,N,,,47644,Nugen barcodes

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(samplesheet) ⇒ SampleSheet

Returns a new instance of SampleSheet.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/nugen_barcode_splitter/sample_sheet.rb', line 12

def initialize(samplesheet)
  @lanes = []
  @sample_id = []
  @barcodes = []

  CSV.foreach(samplesheet, {:headers => :first_row}) do |row|
    @lanes << row["Lane"]
    @sample_id << row["SampleID"].gsub(/\W/,"X")
    @barcodes << row["Index"]
  end
end

Instance Attribute Details

#barcode_lengthsObject

Returns the value of attribute barcode_lengths.



24
25
26
# File 'lib/nugen_barcode_splitter/sample_sheet.rb', line 24

def barcode_lengths
  @barcode_lengths
end

#barcodesObject

Returns the value of attribute barcodes.



24
25
26
# File 'lib/nugen_barcode_splitter/sample_sheet.rb', line 24

def barcodes
  @barcodes
end

#lanesObject

Returns the value of attribute lanes.



24
25
26
# File 'lib/nugen_barcode_splitter/sample_sheet.rb', line 24

def lanes
  @lanes
end

#sample_idObject

Returns the value of attribute sample_id.



24
25
26
# File 'lib/nugen_barcode_splitter/sample_sheet.rb', line 24

def sample_id
  @sample_id
end

Instance Method Details

#create_barcode_txt(prefix) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/nugen_barcode_splitter/sample_sheet.rb', line 26

def create_barcode_txt(prefix)
  current_lane = "dummy"
  handler = File.new(prefix,'w')
  @lanes.each_with_index do |lane, i|
    if current_lane != lane
      outfile = "#{prefix}_#{lane}.txt"
      current_lane = lane
      handler.close()
      handler = File.new(outfile,'w')
      handler.write("# SampleName Barcode \n")
    end
    handler.write("#{@sample_id[i]} #{@barcodes[i]} \n")
  end
  handler.close()
  File.delete(prefix)
end