removed eland_config
[htsworkflow.git] / gaworkflow / frontend / eland_config / views.py
diff --git a/gaworkflow/frontend/eland_config/views.py b/gaworkflow/frontend/eland_config/views.py
deleted file mode 100644 (file)
index f23f7ae..0000000
+++ /dev/null
@@ -1,413 +0,0 @@
-from django.http import HttpResponse
-from django.shortcuts import render_to_response
-from django.core.exceptions import ObjectDoesNotExist
-
-from gaworkflow.frontend.eland_config import forms
-from gaworkflow.frontend import settings
-from gaworkflow.frontend.fctracker import models
-
-import os
-import glob
-# Create your views here.
-
-
-def _validate_input(data):
-  #if data.find('..') == -1 or data.find('/') == -1 or data.find('\\') == -1:
-  return data.replace('..', '').replace('/', '_').replace('\\', '_')
-
-#def contact(request):
-#    if request.method == 'POST':
-#        form = ContactForm(request.POST)
-#        if form.is_valid():
-#            # Do form processing here...
-#            return HttpResponseRedirect('/url/on_success/')
-#    else:
-#        form = ContactForm()
-#    return
-
-
-
-#def _saveConfigFile(form):
-#  """
-#  Given a valid form, save eland config to file based on flowcell number.
-#  """
-#  assert form.is_valid()
-#  
-#  clean_data = form.cleaned_data
-#  flowcell = clean_data['flow_cell_number'].replace('/','_').replace('..', '__')
-#  
-#  file_path = os.path.join(settings.UPLOADTO_CONFIG_FILE, flowcell)
-#  
-#  f = open(file_path, 'w')
-#  cfg = generateElandConfig(form)
-#  f.write(cfg)
-#  f.close()
-#  
-#
-#def _saveToDb(form):
-#  """
-#  Save info to the database.
-#  """
-#  clean_data = form.cleaned_data
-#  
-#  fc_id = clean_data['flow_cell_number']
-#  
-#  try:
-#    fc = models.FlowCell.objects.get(flowcell_id=fc_id)
-#  except models.FlowCell.DoesNotExist:
-#    fc = models.FlowCell()
-#    
-#  fc.flowcell_id = fc_id
-#  fc.run_date = clean_data['run_date']
-#  
-#  #LANE 1
-#  fc.lane1_sample = clean_data['lane1_description']
-#  species_name = clean_data['lane1_species']
-#  try:
-#    specie = models.Specie.objects.get(scientific_name=species_name)
-#  except models.Specie.DoesNotExist:
-#    specie = models.Specie(scientific_name=species_name)
-#    specie.save()
-#  fc.lane1_species = specie
-#  
-#  #LANE 2
-#  fc.lane2_sample = clean_data['lane2_description']
-#  species_name = clean_data['lane2_species']
-#  try:
-#    specie = models.Specie.objects.get(scientific_name=species_name)
-#  except models.Specie.DoesNotExist:
-#    specie = models.Specie(scientific_name=species_name)
-#    specie.save()
-#  fc.lane2_species = specie
-#  
-#  #LANE 3
-#  fc.lane3_sample = clean_data['lane3_description']
-#  species_name = clean_data['lane3_species']
-#  try:
-#    specie = models.Specie.objects.get(scientific_name=species_name)
-#  except models.Specie.DoesNotExist:
-#    specie = models.Specie(scientific_name=species_name)
-#    specie.save()
-#  fc.lane3_species = specie
-#  
-#  #LANE 4
-#  fc.lane4_sample = clean_data['lane4_description']
-#  species_name = clean_data['lane4_species']
-#  try:
-#    specie = models.Specie.objects.get(scientific_name=species_name)
-#  except models.Specie.DoesNotExist:
-#    specie = models.Specie(scientific_name=species_name)
-#    specie.save()
-#  fc.lane4_species = specie
-#  
-#  #LANE 5
-#  fc.lane5_sample = clean_data['lane5_description']
-#  species_name = clean_data['lane5_species']
-#  try:
-#    specie = models.Specie.objects.get(scientific_name=species_name)
-#  except models.Specie.DoesNotExist:
-#    specie = models.Specie(scientific_name=species_name)
-#    specie.save()
-#  fc.lane5_species = specie
-#  
-#  #LANE 6
-#  fc.lane6_sample = clean_data['lane6_description']
-#  species_name = clean_data['lane6_species']
-#  try:
-#    specie = models.Specie.objects.get(scientific_name=species_name)
-#  except models.Specie.DoesNotExist:
-#    specie = models.Specie(scientific_name=species_name)
-#    specie.save()
-#  fc.lane6_species = specie
-#  
-#  #LANE 7
-#  fc.lane7_sample = clean_data['lane7_description']
-#  species_name = clean_data['lane7_species']
-#  try:
-#    specie = models.Specie.objects.get(scientific_name=species_name)
-#  except models.Specie.DoesNotExist:
-#    specie = models.Specie(scientific_name=species_name)
-#    specie.save()
-#  fc.lane7_species = specie
-#  
-#  #LANE 8
-#  fc.lane8_sample = clean_data['lane8_description']
-#  species_name = clean_data['lane8_species']
-#  try:
-#    specie = models.Specie.objects.get(scientific_name=species_name)
-#  except models.Specie.DoesNotExist:
-#    specie = models.Specie(scientific_name=species_name)
-#    specie.save()
-#  fc.lane8_species = specie
-#  
-#  fc.notes = clean_data['notes']
-#  
-#  fc.save()
-#  
-#  return fc
-#  
-#
-#def generateElandConfig(form):
-#  data = []
-#  
-#  form = form.cleaned_data
-#  
-#  BASE_DIR = '/data-store01/compbio/genomes'
-#  
-#  data.append("# FLOWCELL: %s" % (form['flow_cell_number']))
-#  data.append("#")
-#  
-#  notes = form['notes'].replace('\r\n', '\n').replace('\r', '\n')
-#  notes = notes.replace('\n', '\n#  ')
-#  data.append("# NOTES:")
-#  data.append("#  %s\n#" % (notes))
-#  
-#  #Convert all newline conventions to unix style
-#  l1d = form['lane1_description'].replace('\r\n', '\n').replace('\r', '\n')
-#  l2d = form['lane2_description'].replace('\r\n', '\n').replace('\r', '\n')
-#  l3d = form['lane3_description'].replace('\r\n', '\n').replace('\r', '\n')
-#  l4d = form['lane4_description'].replace('\r\n', '\n').replace('\r', '\n')
-#  l5d = form['lane5_description'].replace('\r\n', '\n').replace('\r', '\n')
-#  l6d = form['lane6_description'].replace('\r\n', '\n').replace('\r', '\n')
-#  l7d = form['lane7_description'].replace('\r\n', '\n').replace('\r', '\n')
-#  l8d = form['lane8_description'].replace('\r\n', '\n').replace('\r', '\n')
-#  
-#  # Turn new lines into indented commented newlines
-#  l1d = l1d.replace('\n', '\n#  ')
-#  l2d = l2d.replace('\n', '\n#  ')
-#  l3d = l3d.replace('\n', '\n#  ')
-#  l4d = l4d.replace('\n', '\n#  ')
-#  l5d = l5d.replace('\n', '\n#  ')
-#  l6d = l6d.replace('\n', '\n#  ')
-#  l7d = l7d.replace('\n', '\n#  ')
-#  l8d = l8d.replace('\n', '\n#  ')
-#  
-#  data.append("# Lane1: %s" % (l1d))
-#  data.append("# Lane2: %s" % (l2d))
-#  data.append("# Lane3: %s" % (l3d))
-#  data.append("# Lane4: %s" % (l4d))
-#  data.append("# Lane5: %s" % (l5d))
-#  data.append("# Lane6: %s" % (l6d))
-#  data.append("# Lane7: %s" % (l7d))
-#  data.append("# Lane8: %s" % (l8d))
-#  
-#  #data.append("GENOME_DIR %s" % (BASE_DIR))
-#  #data.append("CONTAM_DIR %s" % (BASE_DIR))
-#  read_length = form['read_length']
-#  data.append("READ_LENGTH %d" % (read_length))
-#  #data.append("ELAND_REPEAT")
-#  data.append("ELAND_MULTIPLE_INSTANCES 8")
-#  
-#  #Construct genome dictionary to figure out what lanes to put
-#  # in the config file.
-#  genome_dict = {}
-#  l1s = form['lane1_species']
-#  genome_dict.setdefault(l1s, []).append('1')
-#  l2s = form['lane2_species']
-#  genome_dict.setdefault(l2s, []).append('2')
-#  l3s = form['lane3_species']
-#  genome_dict.setdefault(l3s, []).append('3')
-#  l4s = form['lane4_species']
-#  genome_dict.setdefault(l4s, []).append('4')
-#  l5s = form['lane5_species']
-#  genome_dict.setdefault(l5s, []).append('5')
-#  l6s = form['lane6_species']
-#  genome_dict.setdefault(l6s, []).append('6')
-#  l7s = form['lane7_species']
-#  genome_dict.setdefault(l7s, []).append('7')
-#  l8s = form['lane8_species']
-#  genome_dict.setdefault(l8s, []).append('8')
-#  
-#  genome_list = genome_dict.keys()
-#  genome_list.sort()
-#  
-#  #Loop through and create entries for each species.
-#  for genome in genome_list:
-#    lanes = ''.join(genome_dict[genome])
-#    data.append('%s:ANALYSIS eland' % (lanes))
-#    data.append('%s:READ_LENGTH %s' % (lanes, read_length))
-#    data.append('%s:ELAND_GENOME %s' % (lanes, os.path.join(BASE_DIR, genome)))
-#    data.append('%s:USE_BASES %s' % (lanes, 'Y'*int(read_length)))
-#    
-#  data.append('SEQUENCE_FORMAT --scarf')
-#  
-#  return '\n'.join(data)
-
-
-def getElandConfig(flowcell, regenerate=False):
-  
-  file_path = os.path.join(settings.UPLOADTO_CONFIG_FILE, flowcell)
-  
-  #If we are regenerating the config file, skip
-  # reading of existing file. If the file doesn't
-  # exist, try to generate it form the DB.
-  if not regenerate and os.path.isfile(file_path):
-    f = open(file_path, 'r')
-    data = f.read()
-    f.close()
-    return data
-  
-  try:
-    fcObj = models.FlowCell.objects.get(flowcell_id__iexact=flowcell)
-  except ObjectDoesNotExist:
-    return None
-  
-  data = []
-  
-  #form = form.cleaned_data
-  
-  BASE_DIR = '/data-store01/compbio/genomes'
-  
-  data.append("# FLOWCELL: %s" % (fcObj.flowcell_id))
-  data.append("#")
-  
-  notes = fcObj.notes.replace('\r\n', '\n').replace('\r', '\n')
-  notes = notes.replace('\n', '\n#  ')
-  data.append("# NOTES:")
-  data.append("#  %s\n#" % (notes))
-  
-  #Convert all newline conventions to unix style
-  l1d = str(fcObj.lane_1_library.library_id) + '|' \
-          + fcObj.lane_1_library.library_name.replace('\r\n', '\n').replace('\r', '\n')
-  l2d = str(fcObj.lane_2_library.library_id) + '|' \
-          + fcObj.lane_2_library.library_name.replace('\r\n', '\n').replace('\r', '\n')
-  l3d = str(fcObj.lane_3_library.library_id) + '|' \
-          + fcObj.lane_3_library.library_name.replace('\r\n', '\n').replace('\r', '\n')
-  l4d = str(fcObj.lane_4_library.library_id) + '|' \
-          + fcObj.lane_4_library.library_name.replace('\r\n', '\n').replace('\r', '\n')
-  
-  l5d = str(fcObj.lane_5_library.library_id) + '|' \
-          + fcObj.lane_5_library.library_name.replace('\r\n', '\n').replace('\r', '\n')
-  l6d = str(fcObj.lane_6_library.library_id) + '|' \
-          + fcObj.lane_6_library.library_name.replace('\r\n', '\n').replace('\r', '\n')
-  l7d = str(fcObj.lane_7_library.library_id) + '|' \
-          + fcObj.lane_7_library.library_name.replace('\r\n', '\n').replace('\r', '\n')
-  l8d = str(fcObj.lane_8_library.library_id) + '|' \
-          + fcObj.lane_8_library.library_name.replace('\r\n', '\n').replace('\r', '\n')
-  
-  # Turn new lines into indented commented newlines
-  l1d = l1d.replace('\n', '\n#  ')
-  l2d = l2d.replace('\n', '\n#  ')
-  l3d = l3d.replace('\n', '\n#  ')
-  l4d = l4d.replace('\n', '\n#  ')
-  l5d = l5d.replace('\n', '\n#  ')
-  l6d = l6d.replace('\n', '\n#  ')
-  l7d = l7d.replace('\n', '\n#  ')
-  l8d = l8d.replace('\n', '\n#  ')
-  
-  data.append("# Lane1: %s" % (l1d))
-  data.append("# Lane2: %s" % (l2d))
-  data.append("# Lane3: %s" % (l3d))
-  data.append("# Lane4: %s" % (l4d))
-  data.append("# Lane5: %s" % (l5d))
-  data.append("# Lane6: %s" % (l6d))
-  data.append("# Lane7: %s" % (l7d))
-  data.append("# Lane8: %s" % (l8d))
-  
-  #data.append("GENOME_DIR %s" % (BASE_DIR))
-  #data.append("CONTAM_DIR %s" % (BASE_DIR))
-  read_length = fcObj.read_length
-  data.append("READ_LENGTH %d" % (read_length))
-  #data.append("ELAND_REPEAT")
-  data.append("ELAND_MULTIPLE_INSTANCES 8")
-  
-  #Construct genome dictionary to figure out what lanes to put
-  # in the config file.
-  genome_dict = {}
-  
-  #l1s = form['lane1_species']
-  l1s = fcObj.lane_1_library.library_species.scientific_name #+ '|' + \
-        #fcObj.lane_1_library.library_species.use_genome_build
-  genome_dict.setdefault(l1s, []).append('1')
-  l2s = fcObj.lane_2_library.library_species.scientific_name #+ '|' + \
-        #fcObj.lane_2_library.library_species.use_genome_build
-  genome_dict.setdefault(l2s, []).append('2')
-  l3s = fcObj.lane_3_library.library_species.scientific_name #+ '|' + \
-        #fcObj.lane_3_library.library_species.use_genome_build
-  genome_dict.setdefault(l3s, []).append('3')
-  l4s = fcObj.lane_4_library.library_species.scientific_name #+ '|' + \
-        #fcObj.lane_4_library.library_species.use_genome_build
-  genome_dict.setdefault(l4s, []).append('4')
-  l5s = fcObj.lane_5_library.library_species.scientific_name #+ '|' + \
-        #fcObj.lane_5_library.library_species.use_genome_build
-  genome_dict.setdefault(l5s, []).append('5')
-  l6s = fcObj.lane_6_library.library_species.scientific_name #+ '|' + \
-        #fcObj.lane_6_library.library_species.use_genome_build
-  genome_dict.setdefault(l6s, []).append('6')
-  l7s = fcObj.lane_7_library.library_species.scientific_name #+ '|' + \
-        #fcObj.lane_7_library.library_species.use_genome_build
-  genome_dict.setdefault(l7s, []).append('7')
-  l8s = fcObj.lane_8_library.library_species.scientific_name #+ '|' + \
-        #fcObj.lane_8_library.library_species.use_genome_build
-  genome_dict.setdefault(l8s, []).append('8')
-  
-  genome_list = genome_dict.keys()
-  genome_list.sort()
-  
-  #Loop through and create entries for each species.
-  for genome in genome_list:
-    lanes = ''.join(genome_dict[genome])
-    data.append('%s:ANALYSIS eland' % (lanes))
-    data.append('%s:READ_LENGTH %s' % (lanes, read_length))
-    data.append('%s:ELAND_GENOME %s' % (lanes, '%%(%s)s' % (genome)))
-    data.append('%s:USE_BASES %s' % (lanes, 'Y'*int(read_length)))
-    
-  data.append('SEQUENCE_FORMAT --scarf')
-  
-  data = '\n'.join(data)
-  
-  f = open(file_path, 'w')
-  f.write(data)
-  f.close()
-  
-  return data
-
-
-
-def config(request, flowcell=None):
-  """
-  Returns eland config file for a given flowcell number,
-  or returns a list of available flowcell numbers.
-  """
-  
-  # Provide INDEX of available Flowcell config files.
-  if flowcell is None:
-    #Find all FC* config files and report an index html file
-    #fc_list = [ os.path.split(file_path)[1] for file_path in glob.glob(os.path.join(settings.UPLOADTO_CONFIG_FILE, 'FC*')) ]
-    fc_list = [ fc.flowcell_id for fc in models.FlowCell.objects.all() ]
-    
-    #Convert FC* list to html links
-    fc_html = [ '<a href="/eland_config/%s/">%s</a>' % (fc_name, fc_name) for fc_name in fc_list ]
-      
-    return HttpResponse('<br />'.join(fc_html))
-  
-  #FIXME: Should validate flowcell input before using.
-  flowcell = _validate_input(flowcell)
-  cfg = getElandConfig(flowcell, regenerate=True)
-  
-  if not cfg:
-    return HttpResponse("Hmm, config file for %s does not seem to exist." % (flowcell))
-  
-  
-  return HttpResponse(cfg, mimetype="text/plain")
-
-
-
-
-#def index(request):
-#  """
-#  Return a form for filling out information about the flowcell
-#  """
-#  if request.method == 'POST':
-#    form = forms.ConfigForm(request.POST, error_class=forms.DivErrorList)
-#    if form.is_valid():
-#      #cfg = generateElandConfig(form)
-#      _saveConfigFile(form)
-#      _saveToDb(form)
-#      return HttpResponse("Eland Config Saved!", mimetype="text/plain")
-#    else:
-#      return render_to_response('config_form.html', {'form': form })
-#  
-#  else:   
-#    fm = forms.ConfigForm(error_class=forms.DivErrorList)
-#    return render_to_response('config_form.html', {'form': fm })