clean up for pep8 compliance.
authorDiane Trout <diane@ghic.org>
Mon, 23 Jun 2014 22:50:22 +0000 (15:50 -0700)
committerDiane Trout <diane@ghic.org>
Mon, 23 Jun 2014 22:50:22 +0000 (15:50 -0700)
htsworkflow/frontend/eland_config/views.py

index 7d577164facc8530759556d5eaba8ce81cd5ffa2..7c3178bda7f1ccf13988e3ddd1d73da49cd22044 100644 (file)
+from __future__ import absolute_import, print_function
+
 from django.conf import settings
 from django.http import HttpResponse
-from django.shortcuts import render_to_response
 from django.core.exceptions import ObjectDoesNotExist
 
-from htsworkflow.frontend.eland_config import forms
 from htsworkflow.frontend.experiments import models
 
 import os
-import glob
 
 
 def _validate_input(data):
-  return data.replace('..', '').replace('/', '_').replace('\\', '_')
+    return data.replace('..', '').replace('/', '_').replace('\\', '_')
 
 
 def getElandConfig(flowcell, regenerate=False):
 
-  if hasattr(settings, 'UPLOADTO_CONFIG_FILE'):
-    dest = settings.UPLOADTO_CONFIG_FILE
-  else:
-    dest = '/tmp'
-  file_path = os.path.join(dest, 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
-  for lane in fcObj.lane_set.all():
-    data.append("# Lane%d: %s | %s" % \
-      (lane.lane_number, unicode(lane.library.id),  lane.library.library_name.replace('%', '%%')))
-
-  #data.append("GENOME_DIR %s" % (BASE_DIR))
-  #data.append("CONTAM_DIR %s" % (BASE_DIR))
-  read_length = fcObj.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']
-  for lane in fcObj.lane_set.all():
-    species = lane.library.library_species.scientific_name
-    genome_dict.setdefault(species, []).append(unicode(lane.lane_number))
-
-  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])
-    if fcObj.paired_end:
-        data.append('%s:ANALYSIS eland_pair' % (lanes))
+    if hasattr(settings, 'UPLOADTO_CONFIG_FILE'):
+        dest = settings.UPLOADTO_CONFIG_FILE
     else:
-        data.append('%s:ANALYSIS eland_extended' % (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 --fastq')
-  data.append('') # want a trailing newline
-
-  data = '\n'.join(data)
-
-  f = open(file_path, 'w')
-  f.write(data)
-  f.close()
+        dest = '/tmp'
+    file_path = os.path.join(dest, 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
+
+    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
+    for lane in fcObj.lane_set.all():
+        data.append("# Lane%d: %s | %s" %
+                    (lane.lane_number, unicode(lane.library.id),
+                     lane.library.library_name.replace('%', '%%')))
+
+    read_length = fcObj.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']
+    for lane in fcObj.lane_set.all():
+        species = lane.library.library_species.scientific_name
+        genome_dict.setdefault(species, []).append(unicode(lane.lane_number))
+
+    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])
+        if fcObj.paired_end:
+            data.append('%s:ANALYSIS eland_pair' % (lanes))
+        else:
+            data.append('%s:ANALYSIS eland_extended' % (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 --fastq')
+    data.append('')  # want a trailing newline
+
+    data = '\n'.join(data)
+
+    f = open(file_path, 'w')
+    f.write(data)
+    f.close()
 
-  return data
+    return data
 
 
 def config(request, flowcell=None):
-  """
-  Returns eland config file for a given flowcell number,
-  or returns a list of available flowcell numbers.
-  """
+    """
+    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() ]
+    # Provide INDEX of available Flowcell config files.
+    if flowcell is None:
+        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 ]
+        #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))
+        return HttpResponse('<br />'.join(fc_html))
 
-  #FIXME: Should validate flowcell input before using.
-  flowcell = _validate_input(flowcell)
-  cfg = getElandConfig(flowcell, regenerate=True)
+    #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))
+    if not cfg:
+        return HttpResponse(
+            "Hmm, config file for %s does not seem to exist." % (flowcell))
 
-  return HttpResponse(cfg, mimetype="text/plain")
+    return HttpResponse(cfg, mimetype="text/plain")