Guest User

Untitled

a guest
Jun 18th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. # Produce some kind of genbank file output
  2. #!/usr/bin/env ruby
  3.  
  4. require 'bio'
  5. require 'fastercsv'
  6.  
  7. proteins = Bio::FlatFile.auto('annotation/proteins.faa').inject({}) do |h,p|
  8. h[p.definition.split.first] = p.seq
  9. h
  10. end
  11.  
  12.  
  13. fasta = Bio::FlatFile.auto('assembly/build.fna')
  14. record = Bio::Sequence.new(fasta.first.seq)
  15. record.definition = "Pseudomonas fluorescens R124, complete genome"
  16. record.species = "Pseudomonas fluorescens R124"
  17.  
  18. record.features = []
  19.  
  20. FasterCSV.open('annotation/gene_list.csv','r',:headers => true).each do |e|
  21. coordinates = "#{e['Start Coord']}..#{e['End Coord']}"
  22. if e['Strand'] == '-'
  23. coordinates = "complement(#{coordinates})"
  24. end
  25.  
  26. id = e['gene_oid']
  27.  
  28. qualifiers = []
  29. qualifiers << Bio::Feature::Qualifier.new('gene', id)
  30. record.features << Bio::Feature.new('gene',coordinates,qualifiers.clone)
  31.  
  32. if e['Description']
  33. qualifiers << Bio::Feature::Qualifier.new('function', e['Description'])
  34. end
  35.  
  36. qualifiers << Bio::Feature::Qualifier.new('translation', proteins[id])
  37.  
  38. record.features << Bio::Feature.new('CDS',coordinates,qualifiers)
  39.  
  40.  
  41. end
  42. File.open('R124.gb','w') do |out|
  43. out.print record.output(:genbank)
  44. end
Add Comment
Please, Sign In to add comment