Merge in new modules from htsworkflow branch.
authorDiane Trout <diane@caltech.edu>
Tue, 21 Oct 2008 19:44:25 +0000 (19:44 +0000)
committerDiane Trout <diane@caltech.edu>
Tue, 21 Oct 2008 19:44:25 +0000 (19:44 +0000)
However I renamed things to simpler names.

analys_track -> analysis
exp_track -> experiments
fctracker -> samples
htsw_reports -> reports

As a result this check in probably wont work as I haven't finished
updating all the imports

23 files changed:
htsworkflow/frontend/analysis/__init__.py [new file with mode: 0644]
htsworkflow/frontend/analysis/an_urls.py [new file with mode: 0644]
htsworkflow/frontend/analysis/main.py [new file with mode: 0644]
htsworkflow/frontend/analysis/models.py [new file with mode: 0644]
htsworkflow/frontend/experiments/__init__.py [new file with mode: 0755]
htsworkflow/frontend/experiments/et_urls.py [new file with mode: 0755]
htsworkflow/frontend/experiments/exptrack.py [new file with mode: 0755]
htsworkflow/frontend/experiments/models.py [new file with mode: 0755]
htsworkflow/frontend/experiments/views.py [new file with mode: 0755]
htsworkflow/frontend/fctracker/__init__.py [deleted file]
htsworkflow/frontend/fctracker/models.py [deleted file]
htsworkflow/frontend/fctracker/views.py [deleted file]
htsworkflow/frontend/reports/LibraryInfo.xml [new file with mode: 0644]
htsworkflow/frontend/reports/__init__.py [new file with mode: 0644]
htsworkflow/frontend/reports/ht_urls.py [new file with mode: 0644]
htsworkflow/frontend/reports/libinfopar.py [new file with mode: 0644]
htsworkflow/frontend/reports/models.py [new file with mode: 0644]
htsworkflow/frontend/reports/utils.py [new file with mode: 0644]
htsworkflow/frontend/samples/__init__.py [new file with mode: 0644]
htsworkflow/frontend/samples/models.py [new file with mode: 0644]
htsworkflow/frontend/samples/views.py [new file with mode: 0644]
htsworkflow/frontend/settings.py
htsworkflow/frontend/urls.py

diff --git a/htsworkflow/frontend/analysis/__init__.py b/htsworkflow/frontend/analysis/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/htsworkflow/frontend/analysis/an_urls.py b/htsworkflow/frontend/analysis/an_urls.py
new file mode 100644 (file)
index 0000000..57fa33e
--- /dev/null
@@ -0,0 +1,6 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('',                                               
+    (r'^updStatus$', 'htswfrontend.analys_track.main.updStatus'),
+    (r'^getProjects/$', 'htswfrontend.analys_track.main.getProjects'),
+)
diff --git a/htsworkflow/frontend/analysis/main.py b/htsworkflow/frontend/analysis/main.py
new file mode 100644 (file)
index 0000000..015a69c
--- /dev/null
@@ -0,0 +1,91 @@
+# some core functions of analysis manager module
+from django.http import HttpResponse
+from datetime import datetime
+from string import *
+import re
+from htswfrontend import settings
+from htswfrontend.analys_track.models import Task, Project
+from django.core.exceptions import ObjectDoesNotExist
+
+def updStatus(request):
+    ClIP = request.META['REMOTE_ADDR']
+    #Check client access permission                                                                                                                                       
+    granted = False
+    if (settings.ALLOWED_ANALYS_IPS.has_key(ClIP)):  granted = True
+    if not granted: return HttpResponse("access denied.")
+
+    output=''
+    taskid=-1;
+    # Check required param
+    if request.has_key('taskid'): taskid = request['taskid']
+    else:  return HttpResponse('missing param task id')
+
+    try:
+      rec = Task.objects.get(id=taskid)
+      mytimestamp = datetime.now().__str__()
+      mytimestamp = re.sub(pattern=":[^:]*$",repl="",string=mytimestamp)
+      if request.has_key('msg'):
+        rec.task_status += ", "+request['msg']+" ("+mytimestamp+")"
+      else :
+        rec.task_status = "Registered ("+mytimestamp+")"
+      rec.save()
+      output = "Hello "+settings.ALLOWED_ANALYS_IPS[ClIP]+". Updated status for task "+taskid
+    except ObjectDoesNotExist:
+      output = "entry not found: taskid="+taskid
+
+    return HttpResponse(output)
+    
+      
+def getProjects(request):
+    ClIP = request.META['REMOTE_ADDR']
+    #Check client access permission 
+    granted = False
+    if (settings.ALLOWED_ANALYS_IPS.has_key(ClIP)):  granted = True
+    if not granted: return HttpResponse("access denied.")
+
+    outputfile = ''
+    
+    All=False
+    if (request.has_key('mode')):
+      if request['mode']=='all':
+        All=True
+
+    try:                                                                                   
+      if(All):
+        rec = Project.objects.all().distinct()
+      else:
+        rec = Project.objects.filter(tasks__task_status__exact='defined').distinct()
+      
+      outputfile = '<?xml version="1.0" ?>'
+      outputfile += '\n<Projects Client="'+settings.ALLOWED_ANALYS_IPS[ClIP]+'">'
+      for p in rec:
+        outputfile += '\n'
+        outputfile += '\n<Project ProjectId="'+p.id.__str__()+'" Name="'+p.project_name+'">'
+        prj_tasks = p.tasks.all()
+        for t in prj_tasks:
+          outputfile += '\n'
+          if (t.apply_calc == 'QuEST' or t.apply_calc == 'WingPeaks' or t.apply_calc == 'MACS'):
+            outputfile += '\n<PeakCalling TaskId="'+t.id.__str__()+'" Name="'+t.task_name+'" Caller="'+t.apply_calc+'" Genome="'+t.subject1.library_species.use_genome_build+'">'
+            outputfile += '\n<Signal Library="'+t.subject1.library_id+'"/>'
+            outputfile += '\n<Background Library="'+t.subject2.library_id+'"/>'
+            outputfile += '\n</PeakCalling>'
+
+          if (t.apply_calc == 'ProfileReads' or t.apply_calc == 'qPCR'):
+            outputfile += '\n<'+t.apply_calc+' TaskId="'+t.id.__str__()+'" Name="'+t.task_name+'" Genome="'+t.subject1.library_species.use_genome_build+'" Library="'+t.subject1.library_id+'"/>'
+
+          if (t.apply_calc == 'CompareLibs'):
+            outputfile += '\n<CompareLibraries TaskId="'+t.id.__str__()+'" TF="'+t.task_name+'" Genome="'+t.subject1.library_species.use_genome_build+'">'
+            outputfile += '\n<Library Library="'+t.subject1.library_id+'"/>'
+            outputfile += '\n<Library Library="'+t.subject2.library_id+'"/>'
+            outputfile += '\n</CompareLibraries>'
+
+          #if (t.apply_calc == 'ComparePeakCalls'):                                                                                                                            
+          # <ComparePeakCalls Genome="hg18" Caller1="QuEST" Set1="A549 GR Dex ChIP" Caller2="QuEST" Set2="A549 GR EtOH ChIP" />                                                
+          # outputfile += '\n<ComparePeakCalls TaskId='+t.id.__str__()+' Genome="'+t.subject1.library_species.use_genome_build+'" Caller1="'+t.pcaller1+'" Caller1="'+t.pcaller1+'" Caller2="'+t.pcaller2+'" Set1="'+t.set1+'" Set1="'+t.set2+'"/>' 
+          # TO DO: Define these new fields in Task: PCaller1 (QuEST,WingPeaks), PCaller2, Set1(FK to self), Set2 (FK..) ALL NULL=TRUE                                  
+        outputfile += '\n</Project>'
+      outputfile += '\n</Projects>'
+    except ObjectDoesNotExist:
+      outputfile = "<?xml version='1.0' ?><Projects></Projects>"
+
+    return HttpResponse(outputfile, mimetype='text/plain')
diff --git a/htsworkflow/frontend/analysis/models.py b/htsworkflow/frontend/analysis/models.py
new file mode 100644 (file)
index 0000000..301be27
--- /dev/null
@@ -0,0 +1,117 @@
+from django.db import models
+from datetime import datetime
+from htswfrontend.fctracker.models import Library 
+from string import *
+
+class Task(models.Model):
+  task_name = models.CharField(max_length=50,unique=True, db_index=True)
+  subject1 = models.ForeignKey(Library,related_name='sbj1_library',verbose_name="Subject")
+  subject2 = models.ForeignKey(Library,related_name='sbj2_library',verbose_name="Subject 2 / Control",blank=True,null=True)
+  CALCS = (
+      ('QuEST', 'QuEST Peak Calling'),
+      ('WingPeaks', 'Wing Peak Calling'),
+      ('MACS', 'MACS Peak Calling'),
+      ('qPCR', 'In Silico qPCR'),
+      ('CompareLibs', 'Compare Libaraies'),
+      ('ComparePeakCalls','Compare Peak Calls'),
+      ('ProfileReads','Profile Reads')
+    )
+  apply_calc = models.CharField(max_length=50,choices=CALCS,verbose_name='Applied Calculation')
+  ## userid = # logged in user
+  task_status = models.CharField(max_length=500,blank=True,null=True,default='defined')
+  results_location = models.CharField(max_length=2000,blank=True,null=True) 
+  submitted_on = models.DateTimeField(core=True,default=datetime.now())
+  run_note = models.CharField(max_length=500,blank=True,null=True)
+  
+  def __str__(self):
+      return '"%s" - %s on [%s]/[%s]' % (self.task_name,self.apply_calc,self.subject1,self.subject2)
+
+  def InProjects(self):
+      return '...'
+      ps = self.project_set.all()
+      pstr = 'In '
+      return pstr
+      for p in ps:
+        pstr += '%s, ' % (p.project_name) 
+      return pstr
+
+  class Admin:
+    list_display = ('task_name','apply_calc','subject1','subject2','InProjects','submitted_on','task_status')
+    list_filter = ('apply_calc',)
+    search_fields = ['task_name','id','=subject1__library_id','=subject2__library_id']
+    fields = (
+        (None, {
+          'fields': (('task_name'),('apply_calc'),('subject1'),('subject2'))
+           }),
+          ('system fields', {
+             'classes': 'collapse',
+           'fields': (('submitted_on'),('task_status','run_note'))
+          }),
+        )
+    
+    
+class Project(models.Model):
+    project_name = models.CharField(max_length=50,unique=True, db_index=True)
+    tasks = models.ManyToManyField(Task,related_name='project_tasks',null=True,filter_interface=models.HORIZONTAL)
+    project_notes = models.CharField(max_length=500,blank=True,null=True)
+    
+    def __str__(self):
+      return '%s' % (self.project_name)
+
+    def ProjectTasks(self):
+      ptasks = self.tasks.all().order_by('id')
+      surl = 'http://m304-apple-server.stanford.edu/projects/' 
+      tstr = '<script>'
+      tstr += 'function togView(eid){'
+      tstr += 'f=document.getElementById(eid);'
+      tstr += 'if(f.height==0){'
+      tstr += 'f.height=600;'
+      tstr += 'f.style.border=\'solid #cccccc 3px\';'
+      tstr += '}else{'
+      tstr += 'f.height=0;'
+      tstr += 'f.style.border=\'none\';'
+      tstr += '}'
+      tstr += '}'
+      tstr += '</script>'
+      Style = ''
+      if len(ptasks) > 8:  Style = ' style="height:200px;overflow:auto" '
+      tstr += '<div '+Style+'>'
+      tstr += '<table><tr><th>Tasks</th><th>Job Status</th>'
+      isregistered = False
+      for t in ptasks:
+        tstr += '<tr><td width=250>%s</td><td>%s</td></tr>'  % (t.task_name,replace(t.task_status,'Complete','<span style="color:green;font-weight:bolder">Complete</span>'))
+        if t.task_status != 'defined': isregistered = True
+
+      tstr += '</table>'
+      tstr += '</div>' 
+      tstr += '<div>'
+      tstr += '<div align=center>'
+      if isregistered:
+        tstr += '<a onClick="togView(\'RFrame'+self.id.__str__()+'\');" href="'+surl+self.id.__str__()+'/" title="View Results Page" target="RFrame'+self.id.__str__()+'">VIEW PROJECT RESULTS</a>'
+        tstr += '<a href="'+surl+self.id.__str__()+'/" title="View Results Page" target="_blank" style="margin-left:10px">(view in new window)</a>'
+      else:
+        tstr += 'REGISTERING ...'    
+      tstr += '</div>'    
+      tstr += '<iframe width="100%" height="0" frameborder="0" style="background-color:#ffffff" name="RFrame'+self.id.__str__()+'" id="RFrame'+self.id.__str__()+'"/></iframe>'
+      tstr += '</div>'
+      return tstr
+
+    ProjectTasks.allow_tags = True
+
+    def ProjTitle(self):
+      ptasks = self.tasks.all().order_by('id')
+      tasks_counter = '<span style="color:#666666;font-size:85%">('+len(ptasks).__str__() + ' tasks)</span>'
+      htmlstr = '%s<br/>%s'  % (self.project_name,tasks_counter)
+      return htmlstr
+
+    ProjTitle.allow_tags = True
+
+    class Admin:
+      list_display = ('ProjTitle','ProjectTasks')
+      list_filter = ()
+      search_fields = ['project_name','=tasks__subject1__library_id','=tasks__subject2__library_id','tasks__subject1__library_name','tasks__subject2__library_name','project_notes']
+      fields = (
+        (None, {
+          'fields': (('project_name'),('tasks'),('project_notes'))}),
+        )
diff --git a/htsworkflow/frontend/experiments/__init__.py b/htsworkflow/frontend/experiments/__init__.py
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/htsworkflow/frontend/experiments/et_urls.py b/htsworkflow/frontend/experiments/et_urls.py
new file mode 100755 (executable)
index 0000000..7ad709d
--- /dev/null
@@ -0,0 +1,12 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('',
+                                                                                                      
+    (r'^$', 'htswfrontend.exp_track.views.index'),
+    (r'^liblist$', 'htswfrontend.exp_track.views.test_Libs'),
+    #(r'^(?P<run_folder>.+)/$', 'gaworkflow.frontend.exp_track.views.detail'),
+    (r'^(?P<fcid>.+)/$', 'htswfrontend.exp_track.views.makeFCSheet'),
+    (r'^updStatus$', 'htswfrontend.exp_track.exptrack.updStatus'),
+    (r'^getConfile$', 'htswfrontend.exp_track.exptrack.getConfile'),
+    (r'^getLanesNames$', 'htswfrontend.exp_track.exptrack.getLaneLibs')   
+)
diff --git a/htsworkflow/frontend/experiments/exptrack.py b/htsworkflow/frontend/experiments/exptrack.py
new file mode 100755 (executable)
index 0000000..6486b5c
--- /dev/null
@@ -0,0 +1,194 @@
+# some core functions of the exp tracker module
+from django.http import HttpResponse
+from datetime import datetime
+from string import *
+import re
+from htswfrontend import settings
+from htswfrontend.exp_track.models import FlowCell, DataRun
+from htswfrontend.fctracker.models import Library
+from django.core.exceptions import ObjectDoesNotExist
+from django.core.mail import send_mail, mail_admins
+
+def updStatus(request):
+    output=''
+    user = 'none'
+    pswd = ''
+    UpdatedStatus = 'unknown'
+    fcid = 'none'
+    runfolder = 'unknown'
+    ClIP = request.META['REMOTE_ADDR']
+    granted = False    
+
+    if request.has_key('user'):
+      user = request['user']
+
+    #Check access permission 
+    if (user == 'rami' and settings.ALLOWED_IPS.has_key(ClIP)):  granted = True
+    if not granted: return HttpResponse("access denied.")
+
+
+    # ~~~~~~Parameters for the job ~~~~
+    if request.has_key('fcid'):
+      fcid = request['fcid']
+    else:
+      return HttpResponse('missing fcid')
+    
+    if request.has_key('runf'):
+      runfolder = request['runf']
+    else:
+      return HttpResponse('missing runf')
+
+    
+    if request.has_key('updst'):
+      UpdatedStatus = request['updst']
+    else:
+      return HttpResponse('missing status')
+    
+    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+
+    # Update Data Run status in DB
+    # Try get rec. If not found return 'entry not found + <fcid><runfolder>', if found try update and return updated 
+    try:
+      rec = DataRun.objects.get(run_folder=runfolder)
+      rec.run_status = UpdatedStatus
+
+      #if there's a message update that too
+      mytimestamp = datetime.now().__str__()
+      mytimestamp = re.sub(pattern=":[^:]*$",repl="",string=mytimestamp)
+      if request.has_key('msg'):
+        rec.run_note += ", "+request['msg']+" ("+mytimestamp+")"
+      else :
+        if UpdatedStatus == '1':
+          rec.run_note = "Started ("+mytimestamp+")"
+
+      rec.save()
+      output = "Hello "+settings.ALLOWED_IPS[ClIP]+". Updated to:'"+DataRun.RUN_STATUS_CHOICES[int(UpdatedStatus)][1].__str__()+"'"
+    except ObjectDoesNotExist:
+      output = "entry not found: "+fcid+", "+runfolder
+
+
+    #Notify researcher by email
+    # Doesn't work
+    #send_mail('Exp Tracker', 'Data Run Status '+output, 'rrauch@stanford.edu', ['rrrami@gmail.com'], fail_silently=False)
+    #mail_admins("test subject", "testing , testing", fail_silently=False)
+    # gives error: (49, "Can't assign requested address")
+    return HttpResponse(output)
+
+def generateConfile(request,fcid):
+    #granted = False
+    #ClIP = request.META['REMOTE_ADDR']
+    #if (settings.ALLOWED_IPS.has_key(ClIP)):  granted = True
+
+    #if not granted: return HttpResponse("access denied.")
+
+    cnfgfile = 'READ_LENGTH 25\n'
+    cnfgfile += 'ANALYSIS eland\n'
+    cnfgfile += 'GENOME_FILE all_chr.fa\n'
+    cnfgfile += 'ELAND_MULTIPLE_INSTANCES 8\n'
+    genome_dir = 'GENOME_DIR /Volumes/Genomes/'
+    eland_genome = 'ELAND_GENOME /Volumes/Genomes/'
+    
+    try:                                                                                                                                              
+      rec = FlowCell.objects.get(flowcell_id=fcid)
+      
+      cnfgfile += '1:'+genome_dir+rec.lane_1_library.library_species.use_genome_build+'\n'
+      cnfgfile += '1:'+eland_genome+rec.lane_1_library.library_species.use_genome_build+'\n'
+
+      cnfgfile += '2:'+genome_dir+rec.lane_2_library.library_species.use_genome_build+'\n'
+      cnfgfile += '2:'+eland_genome+rec.lane_2_library.library_species.use_genome_build+'\n'
+      cnfgfile += '3:'+genome_dir+rec.lane_3_library.library_species.use_genome_build+'\n'
+      cnfgfile += '3:'+eland_genome+rec.lane_3_library.library_species.use_genome_build+'\n'
+
+      cnfgfile += '4:'+genome_dir+rec.lane_4_library.library_species.use_genome_build+'\n'
+      cnfgfile += '4:'+eland_genome+rec.lane_4_library.library_species.use_genome_build+'\n'
+      
+      cnfgfile += '5:'+genome_dir+rec.lane_5_library.library_species.use_genome_build+'\n'
+      cnfgfile += '5:'+eland_genome+rec.lane_5_library.library_species.use_genome_build+'\n'
+
+      cnfgfile += '6:'+genome_dir+rec.lane_6_library.library_species.use_genome_build+'\n'
+      cnfgfile += '6:'+eland_genome+rec.lane_6_library.library_species.use_genome_build+'\n'
+
+      cnfgfile += '7:'+genome_dir+rec.lane_7_library.library_species.use_genome_build+'\n'
+      cnfgfile += '7:'+eland_genome+rec.lane_7_library.library_species.use_genome_build+'\n'
+
+      cnfgfile += '8:'+genome_dir+rec.lane_8_library.library_species.use_genome_build+'\n'
+      cnfgfile += '8:'+eland_genome+rec.lane_8_library.library_species.use_genome_build
+
+    except ObjectDoesNotExist:
+      cnfgfile = 'Entry not found for fcid  = '+fcid
+
+    return cnfgfile
+
+def getConfile(request):
+    granted = False
+    ClIP = request.META['REMOTE_ADDR']
+    if (settings.ALLOWED_IPS.has_key(ClIP)):  granted = True
+
+    if not granted: return HttpResponse("access denied. IP: "+ClIP)
+
+    fcid = 'none'
+    cnfgfile = ''
+    runfolder = 'unknown'
+    if request.has_key('fcid'):
+      fcid = request['fcid']
+      if request.has_key('runf'):
+        runfolder = request['runf']
+        try:
+          rec = DataRun.objects.get(run_folder=runfolder) #,flowcell_id=fcid)
+          cnfgfile = rec.config_params
+          #match_str = re.compile(r"READ_LENGTH.+$")
+          match_str = re.compile('^READ_LENGTH.+')
+          if not match_str.search(cnfgfile):
+            cnfgfile = generateConfile(request,fcid)
+            if match_str.search(cnfgfile):
+              rec = DataRun.objects.get(run_folder=runfolder) #,flowcell_id=fcid)
+              rec.config_params = cnfgfile
+              rec.save()
+            else:
+              cnfgfile = 'Failed generating config params for RunFolder = '+runfolder +', Flowcell id = '+ fcid+ ' Config Text:\n'+cnfgfile  
+            
+        except ObjectDoesNotExist:
+          cnfgfile = 'Entry not found for RunFolder = '+runfolder
+
+    return HttpResponse(cnfgfile)
+
+def getLaneLibs(request):
+    granted = False
+    ClIP = request.META['REMOTE_ADDR']
+    if (settings.ALLOWED_IPS.has_key(ClIP)):  granted = True
+
+    if not granted: return HttpResponse("access denied.")
+
+    fcid = 'none'
+    outputfile = ''
+    if request.has_key('fcid'):
+      fcid = request['fcid']                                                                                                      
+      try:                                
+        rec = FlowCell.objects.get(flowcell_id=fcid)
+        #Ex: 071211
+        year = datetime.today().year.__str__()
+        year = replace(year,'20','')
+        month = datetime.today().month
+        if month < 10: month = "0"+month.__str__()
+        else: month = month.__str__() 
+        day = datetime.today().day
+        if day < 10: day = "0"+day.__str__()
+        else: day = day.__str__()
+        mydate = year+month+day
+        outputfile = '<?xml version="1.0" ?>'
+        outputfile += '\n<SolexaResult Date="'+mydate+'" Flowcell="'+fcid+'" Client="'+settings.ALLOWED_IPS[ClIP]+'">'
+        outputfile += '\n<Lane Index="1" Name="'+rec.lane_1_library.library_name+'" Library="'+rec.lane_1_library.library_id+'" Genome="'+rec.lane_1_library.library_species.use_genome_build+'" PrimerName="" PrimerSeq=""/>'
+        outputfile += '\n<Lane Index="2" Name="'+rec.lane_2_library.library_name+'" Library="'+rec.lane_2_library.library_id+'" Genome="'+rec.lane_2_library.library_species.use_genome_build+'" PrimerName="" PrimerSeq=""/>'
+        outputfile += '\n<Lane Index="3" Name="'+rec.lane_3_library.library_name+'" Library="'+rec.lane_3_library.library_id+'" Genome="'+rec.lane_3_library.library_species.use_genome_build+'" PrimerName="" PrimerSeq=""/>'
+        outputfile += '\n<Lane Index="4" Name="'+rec.lane_4_library.library_name+'" Library="'+rec.lane_4_library.library_id+'" Genome="'+rec.lane_4_library.library_species.use_genome_build+'" PrimerName="" PrimerSeq=""/>'
+        outputfile += '\n<Lane Index="5" Name="'+rec.lane_5_library.library_name+'" Library="'+rec.lane_5_library.library_id+'" Genome="'+rec.lane_5_library.library_species.use_genome_build+'" PrimerName="" PrimerSeq=""/>'
+        outputfile += '\n<Lane Index="6" Name="'+rec.lane_6_library.library_name+'" Library="'+rec.lane_6_library.library_id+'" Genome="'+rec.lane_6_library.library_species.use_genome_build+'" PrimerName="" PrimerSeq=""/>'
+        outputfile += '\n<Lane Index="7" Name="'+rec.lane_7_library.library_name+'" Library="'+rec.lane_7_library.library_id+'" Genome="'+rec.lane_7_library.library_species.use_genome_build+'" PrimerName="" PrimerSeq=""/>'
+        outputfile += '\n<Lane Index="8" Name="'+rec.lane_8_library.library_name+'" Library="'+rec.lane_8_library.library_id+'" Genome="'+rec.lane_8_library.library_species.use_genome_build+'" PrimerName="" PrimerSeq=""/>'
+        outputfile += '\n</SolexaResult>'
+      except ObjectDoesNotExist:
+        outputfile = 'Flowcell entry not found for: '+fcid
+    else: outputfile = 'Missing input: flowcell id'
+
+    return HttpResponse(outputfile)
diff --git a/htsworkflow/frontend/experiments/models.py b/htsworkflow/frontend/experiments/models.py
new file mode 100755 (executable)
index 0000000..08397e6
--- /dev/null
@@ -0,0 +1,163 @@
+from django.db import models
+from htswfrontend.fctracker.models import *
+
+class FlowCell(models.Model):
+  
+  flowcell_id = models.CharField(max_length=20, unique=True, db_index=True, core=True)
+  run_date = models.DateTimeField(core=True)
+  advanced_run = models.BooleanField(default=False)
+  read_length = models.IntegerField(default=32) #Stanford is currenlty 25
+  
+  lane_1_library = models.ForeignKey(Library, related_name="lane_1_library")
+  lane_2_library = models.ForeignKey(Library, related_name="lane_2_library")
+  lane_3_library = models.ForeignKey(Library, related_name="lane_3_library")
+  lane_4_library = models.ForeignKey(Library, related_name="lane_4_library")
+  lane_5_library = models.ForeignKey(Library, related_name="lane_5_library")
+  lane_6_library = models.ForeignKey(Library, related_name="lane_6_library")
+  lane_7_library = models.ForeignKey(Library, related_name="lane_7_library")
+  lane_8_library = models.ForeignKey(Library, related_name="lane_8_library")
+
+  lane_1_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=2.5)
+  lane_2_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=2.5)
+  lane_3_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=2.5)
+  lane_4_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=2.5)
+  lane_5_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=2.5)
+  lane_6_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=2.5)
+  lane_7_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=2.5)
+  lane_8_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=2.5)
+  
+  lane_1_cluster_estimate = models.IntegerField(blank=True, null=True)
+  lane_2_cluster_estimate = models.IntegerField(blank=True, null=True)
+  lane_3_cluster_estimate = models.IntegerField(blank=True, null=True)
+  lane_4_cluster_estimate = models.IntegerField(blank=True, null=True)
+  lane_5_cluster_estimate = models.IntegerField(blank=True, null=True)
+  lane_6_cluster_estimate = models.IntegerField(blank=True, null=True)
+  lane_7_cluster_estimate = models.IntegerField(blank=True, null=True)
+  lane_8_cluster_estimate = models.IntegerField(blank=True, null=True)
+  # lane_1_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_1_primer")
+  # lane_2_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_2_primer")
+  # lane_3_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_3_primer")
+  # lane_4_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_4_primer")
+  # lane_5_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_5_primer")
+  # lane_6_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_6_primer")
+  # lane_7_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_7_primer")
+  # lane_8_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_8_primer")
+
+  #Machine Names
+  CLUSTER_MAC = (
+      ('M304','Cardinal'),
+      ('R349','R349'),
+      ('Tinkerbell','Tinkerbell'),
+      ('BitBit','BitBit'),
+    )
+  
+  SEQ_MAC = (
+      ('EAS149','Stanford'),
+      ('EAS46','EAS46'),
+      ('EAS45','Paris'),
+      ('Britney','Britney'),
+    )
+  
+  cluster_mac_id = models.CharField(max_length=50, choices=CLUSTER_MAC, default='BitBit')
+  seq_mac_id = models.CharField(max_length=50, choices=SEQ_MAC, verbose_name = 'Sequencer', default='Britney')
+  
+  notes = models.TextField(blank=True)
+
+  def __str__(self):
+    #return '%s (%s)' % (self.flowcell_id, self.run_date) 
+    return '%s' % (self.flowcell_id) 
+
+  def Create_LOG(self):
+    str = '' #<span style="color:red;font-size:80%;margin-right:3px">New!</span>'
+    str +='<a target=_balnk href="/exp_track/'+self.flowcell_id+'" title="Create XLS like sheet for this Flowcell ..." ">Create LOG</a>'
+    return str
+  Create_LOG.allow_tags = True 
+
+  def Lanes(self):
+    return '<div><span style="margin-right:10px">1)%s</span><span style="margin-right:10px">2)%s</span><span style="margin-right:10px">3)%s</span><span style="margin-right:10px">4)%s</span><span style="margin-right:10px">5)%s</span><span style="margin-right:10px">6)%s</span><span style="margin-right:10px">7)%s</span><span style="margin-right:10px">8)%s</span></div>' % (self.lane_1_library,self.lane_2_library,self.lane_3_library,self.lane_4_library,self.lane_5_library,self.lane_6_library,self.lane_7_library,self.lane_8_library)
+  Lanes.allow_tags = True
+  class Meta:
+    ordering = ["-run_date"]
+  
+  class Admin:
+    save_on_top = True
+    date_hierarchy = "run_date"
+    save_on_top = True
+    search_fields = ['flowcell_id','seq_mac_id','cluster_mac_id','=lane_1_library__library_id','=lane_2_library__library_id','=lane_3_library__library_id','=lane_4_library__library_id','=lane_5_library__library_id','=lane_6_library__library_id','=lane_7_library__library_id','=lane_8_library__library_id']
+    list_display = ('flowcell_id','seq_mac_id','run_date', 'Create_LOG','Lanes')
+    list_filter = ('seq_mac_id','cluster_mac_id')
+    fields = (
+        (None, {
+            'fields': ('run_date', ('flowcell_id','cluster_mac_id','seq_mac_id'), ('read_length'),)
+        }),
+        ('Lanes:', {
+            ##'fields' : (('lane_1_library', 'lane_1_pM', 'lane_1_cluster_estimate', 'lane_1_primer'), ('lane_2_library', 'lane_2_pM', 'lane_2_cluster_estimate', 'lane_2_primer'), ('lane_3_library', 'lane_3_pM', 'lane_3_cluster_estimate', 'lane_3_primer'), ('lane_4_library', 'lane_4_pM', 'lane_4_cluster_estimate', 'lane_4_primer'), ('lane_5_library', 'lane_5_pM', 'lane_5_cluster_estimate', 'lane_5_primer'), ('lane_6_library', 'lane_6_pM', 'lane_6_cluster_estimate', 'lane_6_primer'), ('lane_7_library', 'lane_7_pM', 'lane_7_cluster_estimate', 'lane_7_primer'), ('lane_8_library', 'lane_8_pM', 'lane_8_cluster_estimate', 'lane_8_primer'),)
+           'fields' : (('lane_1_library', 'lane_1_pM', 'lane_1_cluster_estimate'), ('lane_2_library', 'lane_2_pM', 'lane_2_cluster_estimate'), ('lane_3_library', 'lane_3_pM', 'lane_3_cluster_estimate'), ('lane_4_library', 'lane_4_pM', 'lane_4_cluster_estimate'), ('lane_5_library', 'lane_5_pM', 'lane_5_cluster_estimate'), ('lane_6_library', 'lane_6_pM', 'lane_6_cluster_estimate'), ('lane_7_library', 'lane_7_pM', 'lane_7_cluster_estimate'), ('lane_8_library', 'lane_8_pM', 'lane_8_cluster_estimate'),)
+        }),
+       (None, {
+           'fields' : ('notes',)
+       }),
+    )
+
+
+### -----------------------
+class DataRun(models.Model):
+  ConfTemplate = "CONFIG PARAMS WILL BE GENERATED BY THE PIPELINE SCRIPT.\nYOU'LL BE ABLE TO EDIT AFTER IF NEEDED."
+  run_folder = models.CharField(max_length=50,unique=True, db_index=True)
+  fcid = models.ForeignKey(FlowCell,verbose_name="Flowcell Id")
+  config_params = models.TextField(default=ConfTemplate)
+  run_start_time = models.DateTimeField(core=True)
+  RUN_STATUS_CHOICES = (
+      (0, 'Sequencer running'), ##Solexa Data Pipeline Not Yet Started'),
+      (1, 'Data Pipeline Started'),
+      (2, 'Data Pipeline Interrupted'),
+      (3, 'Data Pipeline Finished'),
+      (4, 'CollectReads Started'),
+      (5, 'CollectReads Finished'),
+      (6, 'QC Finished'),
+      (7, 'DONE'),
+    )
+  run_status = models.IntegerField(choices=RUN_STATUS_CHOICES, default=0)
+  run_note = models.TextField(blank=True)
+
+
+  def main_status(self):
+    str = '<div'
+    if self.run_status >= 5:
+      str += ' style="color:green">'
+      str += '<b>'+self.RUN_STATUS_CHOICES[self.run_status][1]+'</b>'
+      str += '<br/><br/>' #<span style="color:red;font-size:80%;">New!</span>'
+      str +='<br/><a target=_balnk href="http://m304-apple-server.stanford.edu/'+self.fcid.flowcell_id+'_QC/'+self.fcid.flowcell_id+'_'+self.run_folder+'_QC_Summary.html" title="View QC Summaries of this run ..." ">View QC Page</a>'
+    else:
+      str += '>'+self.RUN_STATUS_CHOICES[self.run_status][1]
+
+    str += '</div>'
+    return str
+  main_status.allow_tags = True
+
+  main_status.allow_tags = True
+  
+  def Flowcell_Info(self):
+    str = '<b>'+self.fcid.__str__()+'</b>'
+    str += '  (c: '+self.fcid.cluster_mac_id+',  s: '+self.fcid.seq_mac_id+')'
+    str += '<div style="margin-top:5px;">'    
+    str +='<a title="View Lane List here ..."  onClick="el = document.getElementById(\'LanesOf'+self.fcid.__str__()+'\');if(el) (el.style.display==\'none\'?el.style.display=\'block\':el.style.display=\'none\')" style="cursor:pointer;color: #5b80b2;">View/hide lanes</a>'
+    str += '<div id="LanesOf'+self.fcid.__str__()+'" style="display:block;border:solid #cccccc 1px;width:350px">'
+    LanesList = '1: '+self.fcid.lane_1_library.__str__()+' ('+self.fcid.lane_1_library.library_species.use_genome_build+')<br/>2: '+self.fcid.lane_2_library.__str__()+' ('+self.fcid.lane_2_library.library_species.use_genome_build+')<br/>3: '+self.fcid.lane_3_library.__str__()+' ('+self.fcid.lane_3_library.library_species.use_genome_build+')<br/>4: '+self.fcid.lane_4_library.__str__()+' ('+self.fcid.lane_4_library.library_species.use_genome_build+')<br/>5: '+self.fcid.lane_5_library.__str__()+' ('+self.fcid.lane_5_library.library_species.use_genome_build+')<br/>6: '+self.fcid.lane_6_library.__str__()+' ('+self.fcid.lane_6_library.library_species.use_genome_build+')<br/>7: '+self.fcid.lane_7_library.__str__()+' ('+self.fcid.lane_7_library.library_species.use_genome_build+')<br/>8: '+self.fcid.lane_8_library.__str__()+' ('+self.fcid.lane_8_library.library_species.use_genome_build+')'
+    str += LanesList ## self.fcid.Lanes()
+    str += '</div>'
+    str += '<div><a title="open Flowcell record" href="/admin/exp_track/flowcell/'+self.fcid.id.__str__()+'/" target=_self>Edit Flowcell record</a>'
+    #str += '<span style="color:red;font-size:80%;margin-left:15px;margin-right:3px">New!</span>'
+    str +='<a style="margin-left:15px;" target=_balnk href="/exp_track/'+self.fcid.flowcell_id+'" title="View XLS like sheet for this Flowcell LOG ..." ">GA LOG Page</a>'
+    str += '</div>'
+    str += '</div>'    
+    return str
+  Flowcell_Info.allow_tags = True
+
+  class Admin:
+    search_fields = ['run_folder','run_note','config_params','=fcid__lane_1_library__library_id','=fcid__lane_2_library__library_id','=fcid__lane_3_library__library_id','=fcid__lane_4_library__library_id','=fcid__lane_5_library__library_id','=fcid__lane_6_library__library_id','=fcid__lane_7_library__library_id','=fcid__lane_8_library__library_id']
+
+    list_display = ('run_folder','Flowcell_Info','run_start_time','main_status','run_note')
+    list_filter = ('run_status','run_start_time')
diff --git a/htsworkflow/frontend/experiments/views.py b/htsworkflow/frontend/experiments/views.py
new file mode 100755 (executable)
index 0000000..3888016
--- /dev/null
@@ -0,0 +1,60 @@
+# Create your views here.
+#from django.template import Context, loader
+#shortcut to the above modules
+from django.shortcuts import render_to_response, get_object_or_404
+#from htswfrontend.fctracker.models import *
+from htswfrontend.exp_track.models import *
+from django.http import HttpResponse
+from django.core.exceptions import ObjectDoesNotExist
+
+def index(request):
+    all_runs = DataRun.objects.all().order_by('-run_start_time')
+    #t = loader.get_template('exptrack/index.html')
+    #c = Context({
+    #    'data_run_list': all_runs,
+    #})
+    #return HttpResponse(t.render(c)) 
+    # shortcut to the above module usage
+    return render_to_response('exptrack/index.html',{'data_run_list': all_runs}) 
+    
+def detail(request, run_folder):
+    html_str = '<h2>Exp Track Details Page</h2>'
+    html_str += 'Run Folder: '+run_folder
+    r = get_object_or_404(DataRun,run_folder=run_folder)
+    return render_to_response('exptrack/detail.html',{'run_f': r})
+
+def makeFCSheet(request,fcid):
+  # get Flowcell by input fcid
+  # ...
+  rec = None
+  try:
+    rec = FlowCell.objects.get(flowcell_id=fcid)
+  except ObjectDoesNotExist:
+    pass
+  lanes = ['1','2','3','4','5','6','7','8']
+  return render_to_response('exptrack/flowcellSheet.html',{'fc': rec})
+
+def test_Libs(request):
+  str = ''
+  str += '<table border=1><tr><th>Lib ID</th><th>Current Libaray Name (Free Text)</th><th>Auto-composed Libaray Name (antibody + celline + libid + species + [replicate])</th></tr>'
+  allLibs = Library.objects.all()
+  #allLibs = Library.objects.filter(antibody__isnull=False)
+  for L in allLibs:
+    str += '<tr>'
+    str += '<td>'+L.library_id+'</td><td>'+L.library_name+'</td>'   
+    str += '<td>'
+    str += L.experiment_type+'_'
+    if L.cell_line.cellline_name != 'Unknown':
+      str += L.cell_line.cellline_name+'_'
+
+    try:
+      if L.antibody is not None:
+        str += L.antibody.nickname + '_'
+    except Antibody.DoesNotExist:
+      pass
+  
+    str += 'Rep'+L.replicate.__str__()
+    str += '</td></tr>' 
+
+  str += '</table>'
+  return HttpResponse(str)  
diff --git a/htsworkflow/frontend/fctracker/__init__.py b/htsworkflow/frontend/fctracker/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/htsworkflow/frontend/fctracker/models.py b/htsworkflow/frontend/fctracker/models.py
deleted file mode 100644 (file)
index c4e1e3c..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-from django.db import models
-from django.contrib.auth.models import User
-from htsworkflow.frontend import settings
-from htsworkflow.reports.libinfopar import *
-
-# Create your models here.
-
-class Antibody(models.Model):
-  antigene = models.CharField(max_length=500, db_index=True)
-  # New field Aug/20/08                                                                                                                                                            
-  # SQL to add column: alter table fctracker_antibody add column "nickname" varchar(20) NULL;
-  nickname = models.CharField(max_length=20,blank=True,null=True, db_index=True,verbose_name = 'Short Name')
-  catalog = models.CharField(max_length=50, unique=True, db_index=True)
-  antibodies = models.CharField(max_length=500, db_index=True)
-  source = models.CharField(max_length=500, blank=True, db_index=True)
-  biology = models.TextField(blank=True)
-  notes = models.TextField(blank=True)
-  def __str__(self):
-    return '%s - %s (%s)' % (self.antigene, self.antibodies, self.catalog)
-  class Meta:
-    verbose_name_plural = "antibodies"
-    ordering = ["antigene"]
-  class Admin:
-      list_display = ('antigene','nickname','antibodies','catalog','source','biology','notes')
-      list_filter = ('antibodies','source')
-      fields = (
-        (None, {
-            'fields': (('antigene','nickname','antibodies'),('catalog','source'),('biology'),('notes'))
-        }),
-       )
-
-class Cellline(models.Model):
-  cellline_name = models.CharField(max_length=100, unique=True, db_index=True)
-  notes = models.TextField(blank=True)
-  def __str__(self):
-    return '%s' % (self.cellline_name)
-
-  class Meta:
-    ordering = ["cellline_name"]
-
-  class Admin:
-      fields = (
-        (None, {
-            'fields': (('cellline_name'),('notes'),)
-        }),
-       )
-
-class Condition(models.Model):
-  condition_name = models.CharField(max_length=2000, unique=True, db_index=True)
-  notes = models.TextField(blank=True)
-  def __str__(self):
-    return '%s' % (self.condition_name)
-
-  class Meta:
-    ordering = ["condition_name"]
-
-  class Admin:
-      fields = (
-        (None, {
-            'fields': (('condition_name'),('notes'),)
-        }),
-       )
-
-class Species(models.Model):
-  
-  scientific_name = models.CharField(max_length=256, unique=False, db_index=True, core=True)
-  common_name = models.CharField(max_length=256, blank=True)
-  use_genome_build = models.CharField(max_length=100, blank=False, null=False)
-
-  def __str__(self):
-    return '%s (%s)|%s' % (self.scientific_name, self.common_name, self.use_genome_build)
-  
-  class Meta:
-    verbose_name_plural = "species"
-    ordering = ["scientific_name"]
-  
-  class Admin:
-      fields = (
-        (None, {
-            'fields': (('scientific_name', 'common_name'), ('use_genome_build'))
-        }),
-      )
-
-class Affiliation(models.Model):
-  name = models.CharField(max_length=256, db_index=True, core=True,verbose_name='Group Name')
-  contact = models.CharField(max_length=256, null=True, blank=True,verbose_name='Contact Name')  
-  email = models.EmailField(null=True,blank=True)
-  
-  def __str__(self):
-    str = self.name
-    if self.contact != '':
-      str += ' ('+self.contact+')' 
-    return str
-
-  class Meta:
-    ordering = ["name","contact"]
-    unique_together = (("name", "contact"),)
-
-  class Admin:
-      list_display = ('name','contact','email')
-      fields = (
-        (None, {
-            'fields': (('name','contact','email'))
-        }),
-      )
-
-class Library(models.Model):
-  
-  library_id = models.CharField(max_length=30, primary_key=True, db_index=True, core=True)
-  library_name = models.CharField(max_length=100, unique=True, core=True)
-  library_species = models.ForeignKey(Species, core=True)
-  cell_line = models.ForeignKey(Cellline,core=True)
-  condition = models.ForeignKey(Condition,core=True)
-  antibody = models.ForeignKey(Antibody,blank=True,null=True,core=True)
-  # New field Aug/25/08. SQL: alter table fctracker_library add column "lib_affiliation" varchar(256)  NULL;
-  affiliations = models.ManyToManyField(Affiliation,related_name='library_affiliations',null=True,filter_interface=models.HORIZONTAL)
-  # New field Aug/19/08
-  # SQL to add column: alter table fctracker_library add column "replicate" smallint unsigned NULL;
-  REPLICATE_NUM = ((1,1),(2,2),(3,3),(4,4))
-  replicate =  models.PositiveSmallIntegerField(choices=REPLICATE_NUM,default=1) 
-
-  EXPERIMENT_TYPES = (
-      ('INPUT_RXLCh','INPUT_RXLCh'),
-      ('ChIP-seq', 'ChIP-seq'),
-      ('Sheared', 'Sheared'),
-      ('RNA-seq', 'RNA-seq'),
-      ('Methyl-seq', 'Methyl-seq'),
-      ('DIP-seq', 'DIP-seq'),
-    ) 
-  experiment_type = models.CharField(max_length=50, choices=EXPERIMENT_TYPES,
-                                     default='RNA-seq')
-  
-  creation_date = models.DateField(blank=True, null=True)
-  made_for = models.ForeignKey(User)
-  made_by = models.CharField(max_length=50, blank=True, default="Lorian")
-  
-  PROTOCOL_END_POINTS = (
-      ('?', 'Unknown'),
-      ('Sample', 'Raw sample'),
-      ('Progress', 'In progress'),
-      ('1A', 'Ligation, then gel'),
-      ('PCR', 'Ligation, then PCR'),
-      ('1Ab', 'Ligation, PCR, then gel'),
-      ('1Aa', 'Ligation, gel, then PCR'),
-      ('2A', 'Ligation, PCR, gel, PCR'),
-      ('Done', 'Completed'),
-    )
-  stopping_point = models.CharField(max_length=25, choices=PROTOCOL_END_POINTS, default='Done')
-  amplified_from_sample = models.ForeignKey('self', blank=True, null=True)  
-  
-  undiluted_concentration = models.DecimalField("Undiluted concentration (ng/ul)", max_digits=5, decimal_places=2, default=0, blank=True, null=True)
-  successful_pM = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
-  ten_nM_dilution = models.BooleanField()
-  avg_lib_size = models.IntegerField(default=225, blank=True, null=True)
-  notes = models.TextField(blank=True)
-  
-  def __str__(self):
-    return '#%s: %s' % (self.library_id, self.library_name)
-  
-  class Meta:
-    verbose_name_plural = "libraries"
-    ordering = ["-creation_date"] #["-library_id"]
-  
-  def antibody_name(self):
-    return self.antibody.nickname
-
-  def org(self):
-    return self.library_species.common_name
-
-  def affiliation(self):
-    affs = self.affiliations.all().order_by('name')
-    tstr = ''
-    ar = []
-    for t in affs:
-        ar.append(t.__str__())
-    return '%s' % (", ".join(ar))
-
-
-  def aligned_reads(self):
-    res = getLibReads(self.library_id)
-    rc = "%1.2f" % (res[1]/1000000.0)
-    # Color Scheme: green is more than 10M, blue is more than 5M, orange is more than 3M and red is less. For RNAseq, all those thresholds should be doubled
-    if res[0] > 0:
-      bgcolor = '#ff3300'  # Red
-      rc_thr = [10000000,5000000,3000000]
-      if self.experiment_type == 'RNA-seq':
-        rc_thr = [20000000,10000000,6000000]
-
-      if res[1] > rc_thr[0]:
-        bgcolor = '#66ff66'  # Green
-      else:
-        if res[1] > rc_thr[1]:
-          bgcolor ='#00ccff'  # Blue
-        else:
-           if res[1] > rc_thr[2]: 
-             bgcolor ='#ffcc33'  # Orange
-      tstr = '<div style="background-color:'+bgcolor+';color:black">'
-      tstr += res[0].__str__()+' Lanes, '+rc+' M Reads'
-      tstr += '</div>'
-    else: tstr = 'not processed yet' 
-    return tstr
-  aligned_reads.allow_tags = True
-
-  class Admin:
-    date_hierarchy = "creation_date"
-    save_as = True
-    save_on_top = True
-    ##search_fields = ['library_id','library_name','affiliations__name','affiliations__contact','made_by','made_for','antibody__antigene','antibody__catalog','antibody__antibodies','antibody__source','cell_line__cellline_name','library_species__scientific_name','library_species__common_name','library_species__use_genome_build']
-    search_fields = ['library_id','library_name','cell_line__cellline_name','library_species__scientific_name','library_species__common_name','library_species__use_genome_build']
-    list_display = ('affiliation','library_id','aligned_reads','library_name','experiment_type','org','replicate','antibody_name','cell_line','made_by','creation_date')
-    list_display_links = ('library_id', 'library_name')
-
-    list_filter = ('experiment_type','affiliations','library_species','made_for', 'made_by','replicate')
-    fields = (
-        (None, {
-            'fields': (('replicate','library_id','library_name'),('library_species'),('experiment_type'),('cell_line','condition','antibody'),)
-        }),
-        ('Creation Information:', {
-            'fields' : (('made_for', 'made_by', 'creation_date'), ('stopping_point', 'amplified_from_sample'), ('undiluted_concentration', 'library_size'), 'notes',)
-        }),
-        ('Library/Project Affiliation:', {
-            'fields' : (('affiliations'),)
-        }),
-        )
-
diff --git a/htsworkflow/frontend/fctracker/views.py b/htsworkflow/frontend/fctracker/views.py
deleted file mode 100644 (file)
index 2299e4f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-# Create your views here.
\ No newline at end of file
diff --git a/htsworkflow/frontend/reports/LibraryInfo.xml b/htsworkflow/frontend/reports/LibraryInfo.xml
new file mode 100644 (file)
index 0000000..4e7992a
--- /dev/null
@@ -0,0 +1,1024 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Libraries>
+<Library Name="SL3">
+<Track Flowcell="FC11862" Lane="2" Filename="Flowcells/FC11862/070919_FC11862_s2_NRSF_monoclonal_Jurkat_rep2_SL3.align_25.hg18.txt" Count=" 1423565" Date="070919"/>
+</Library>
+<Library Name="SL4">
+<Track Flowcell="FC10073" Lane="3" Filename="Flowcells/FC10073/070821_FC10073_s3_mock_IP_Jurkat_rep1_SL4.align_25.hg18.txt" Count=" 2132972" Date="070821"/>
+<Track Flowcell="FC10182" Lane="18" Filename="Flowcells/FC10182/070925_FC10182_s18_mock_IP_Jurkat_rep1_SL4.align_25.hg18.txt" Count=" 4061515" Date="070925"/>
+<Track Flowcell="FC11862" Lane="6" Filename="Flowcells/FC11862/070919_FC11862_s6_Mock_IP_Jurkat_rep1_SL4.align_25.hg18.txt" Count=" 2397558" Date="070919"/>
+<Track Flowcell="FC11977" Lane="8" Filename="Flowcells/FC11977/070928_FC11977_s8_mock_IP_Jurkat_rep1_SL4.align_25.hg18.txt" Count=" 1088135" Date="070928"/>
+<Track Flowcell="FC8053" Lane="78" Filename="Flowcells/FC8053/070724_FC8053_s78_mock_IP_Jurkat_rep1_SL4.align_25.hg18.txt" Count=" 3583766" Date="070724"/>
+<Track Flowcell="FC8883" Lane="78" Filename="Flowcells/FC8883/070720_FC8883_s78_mock_IP_Jurkat_rep1_SL4.align_25.hg18.txt" Count=" 5491316" Date="070720"/>
+<Track Flowcell="FC8886" Lane="7" Filename="Flowcells/FC8886/070802_FC8886_s7_mock_IP_Jurkat_rep1_SL4.align_25.hg18.txt" Count=" 2417786" Date="070802"/>
+</Library>
+<Library Name="SL10">
+<Track Flowcell="FC11977" Lane="7" Filename="Flowcells/FC11977/070928_FC11977_s7_hct_1_msp_SL10.align_25.hg18.txt" Count=" 1801596" Date="070928"/>
+<Track Flowcell="FC13593" Lane="678" Filename="Flowcells/FC13593/071002_FC13593_s678_hct_1_msp_SL10.align_25.hg18.txt" Count=" 7978981" Date="071002"/>
+</Library>
+<Library Name="SL11">
+<Track Flowcell="FCOLD1" Lane="1" Filename="Flowcells/FCOLD1/070000_FCOLD1_s1_SRF_ChIP_Jurkat_Rep1_SL11.align_25.hg18.txt" Count=" 8721730" Date="070000"/>
+</Library>
+<Library Name="SL14">
+<Track Flowcell="FC10135" Lane="4" Filename="Flowcells/FC10135/071005_FC10135_s4_FoxP2_polyclonal_pfsk1_SL14.align_25.hg18.txt" Count=" 2438679" Date="071005"/>
+<Track Flowcell="FC11977" Lane="6" Filename="Flowcells/FC11977/070928_FC11977_s6_FoxP2_polyclonal_pfsk1_SL14.align_25.hg18.txt" Count=" 2007880" Date="070928"/>
+<Track Flowcell="FC13593" Lane="5" Filename="Flowcells/FC13593/071002_FC13593_s5_FoxP2_polyclonal_pfsk1_SL14.align_25.hg18.txt" Count=" 2533720" Date="071002"/>
+</Library>
+<Library Name="SL16">
+<Track Flowcell="FC201U7" Lane="12345678" Filename="Flowcells/FC201U7/071205_FC201U7_s12345678_mock_IP_PFSK1_SL16.align_25.hg.txt" Count=" 23476737" Date="071205"/>
+</Library>
+<Library Name="SL24">
+<Track Flowcell="FC5512" Lane="123" Filename="Flowcells/FC5512/070609_FC5512_s123_d5_C_hpa_SL24.align_25.hg18.txt" Count=" 1534145" Date="070609"/>
+<Track Flowcell="FC5738" Lane="12" Filename="Flowcells/FC5738/070605_FC5738_s12_d5_C_hpa_SL24.align_25.hg18.txt" Count="  267543" Date="070605"/>
+<Track Flowcell="FC6058" Lane="6" Filename="Flowcells/FC6058/070608_FC6058_s6_d5_C_hpa_SL24.align_25.hg18.txt" Count=" 2174107" Date="070608"/>
+</Library>
+<Library Name="SL26">
+<Track Flowcell="FC5512" Lane="45" Filename="Flowcells/FC5512/070609_FC5512_s45_ES_E_hpa_SL26.align_25.hg18.txt" Count="  833887" Date="070609"/>
+<Track Flowcell="FC5738" Lane="4" Filename="Flowcells/FC5738/070605_FC5738_s4_d0_ES_E_hpa_SL26.align_25.hg18.txt" Count="  324128" Date="070605"/>
+<Track Flowcell="FC6058" Lane="3" Filename="Flowcells/FC6058/070608_FC6058_s3_ES_E_hpa_SL26.align_25.hg18.txt" Count=" 2385605" Date="070608"/>
+<Track Flowcell="FC8880" Lane="78" Filename="Flowcells/FC8880/070810_FC8880_s78_d0_ES_E_hpa_SL26.align_25.hg18.txt" Count="   29965" Date="070810"/>
+</Library>
+<Library Name="SL28">
+<Track Flowcell="FC6058" Lane="78" Filename="Flowcells/FC6058/070608_FC6058_s78_d5_D_hpa_SL28.align_25.hg18.txt" Count=" 4785632" Date="070608"/>
+</Library>
+<Library Name="SL30">
+<Track Flowcell="FC6058" Lane="4" Filename="Flowcells/FC6058/070608_FC6058_s4_ES_F_hpa_SL30.align_25.hg18.txt" Count=" 2383276" Date="070608"/>
+</Library>
+<Library Name="SL33">
+<Track Flowcell="FC10182" Lane="3" Filename="Flowcells/FC10182/070925_FC10182_s3_hct_2_hpa_SL33.align_25.hg18.txt" Count="  740316" Date="070925"/>
+<Track Flowcell="FC5399" Lane="3" Filename="Flowcells/FC5399/070713_FC5399_s3_hct_2_hpa_SL33.align_25.hg18.txt" Count="  554691" Date="070713"/>
+<Track Flowcell="FC7853" Lane="3" Filename="Flowcells/FC7853/070709_FC7853_s3_hct_2_hpa_SL33.align_25.hg18.txt" Count="  734854" Date="070709"/>
+<Track Flowcell="FC8880" Lane="34" Filename="Flowcells/FC8880/070810_FC8880_s34_hct_2_hpa_SL33.align_25.hg18.txt" Count=" 1360438" Date="070810"/>
+</Library>
+<Library Name="SL37">
+<Track Flowcell="FC5399" Lane="2" Filename="Flowcells/FC5399/070713_FC5399_s2_liver_2_hpa_SL37.align_25.hg18.txt" Count="  374553" Date="070713"/>
+<Track Flowcell="FC7853" Lane="2" Filename="Flowcells/FC7853/070709_FC7853_s2_liver_2_hpa_SL37.align_25.hg18.txt" Count=" 1100144" Date="070709"/>
+<Track Flowcell="FC8883" Lane="3" Filename="Flowcells/FC8883/070720_FC8883_s3_liver_2_hpa_SL37.align_25.hg18.txt" Count=" 1276813" Date="070720"/>
+</Library>
+<Library Name="SL38">
+<Track Flowcell="FC10182" Lane="7" Filename="Flowcells/FC10182/070925_FC10182_s7_liver_1_msp_SL38.align_25.hg18.txt" Count=" 1039338" Date="070925"/>
+<Track Flowcell="FC11977" Lane="34" Filename="Flowcells/FC11977/070928_FC11977_s34_liver_1_msp_SL38.align_25.hg18.txt" Count=" 2094254" Date="070928"/>
+<Track Flowcell="FC7857" Lane="5" Filename="Flowcells/FC7857/070807_FC7857_s5_liver_1_msp_SL38.align_25.hg18.txt" Count=" 1075706" Date="070807"/>
+</Library>
+<Library Name="SL39">
+<Track Flowcell="FC5399" Lane="1" Filename="Flowcells/FC5399/070713_FC5399_s1_liver_1_hpa_SL39.align_25.hg18.txt" Count="  336859" Date="070713"/>
+<Track Flowcell="FC7853" Lane="1" Filename="Flowcells/FC7853/070709_FC7853_s1_liver_1_hpa_SL39.align_25.hg18.txt" Count="  973571" Date="070709"/>
+<Track Flowcell="FC8880" Lane="56" Filename="Flowcells/FC8880/070810_FC8880_s56_liver_1_hpa_SL39.align_25.hg18.txt" Count="  876351" Date="070810"/>
+<Track Flowcell="FC8883" Lane="4" Filename="Flowcells/FC8883/070720_FC8883_s4_liver_1_hpa_SL39.align_25.hg18.txt" Count=" 1316822" Date="070720"/>
+</Library>
+<Library Name="SL40">
+<Track Flowcell="FC11862" Lane="7" Filename="Flowcells/FC11862/070919_FC11862_s7_RNAseq_skeletal_muscle_human_rep1_SL40.align_25.hg18.txt" Count=" 1613090" Date="070919"/>
+</Library>
+<Library Name="SL41">
+<Track Flowcell="FC11862" Lane="8" Filename="Flowcells/FC11862/070919_FC11862_s8_RNAseq_skeletal_muscle_human_rep2_SL41.align_25.hg18.txt" Count=" 1036954" Date="070919"/>
+</Library>
+<Library Name="SL42">
+<Track Flowcell="FC5507" Lane="12" Filename="Flowcells/FC5507/070703_FC5507_s12_AFP+_1_hpa_SL42.align_25.hg18.txt" Count=" 2297609" Date="070703"/>
+<Track Flowcell="FC7225" Lane="1" Filename="Flowcells/FC7225/070629_FC7225_s1_AFP+_1_hpa_SL42.align_25.hg18.txt" Count="  921537" Date="070629"/>
+<Track Flowcell="FC7225" Lane="2" Filename="Flowcells/FC7225/070629_FC7225_s2_AFP+_1_hpa_SL42.align_25.hg18.txt" Count=" 1042305" Date="070629"/>
+</Library>
+<Library Name="SL43">
+<Track Flowcell="FC5507" Lane="3" Filename="Flowcells/FC5507/070703_FC5507_s3_AFP-_1_hpa_SL43.align_25.hg18.txt" Count=" 1351625" Date="070703"/>
+</Library>
+<Library Name="SL44">
+<Track Flowcell="FC5507" Lane="4" Filename="Flowcells/FC5507/070703_FC5507_s4_EB_1_hpa_SL44.align_25.hg18.txt" Count=" 1269627" Date="070703"/>
+<Track Flowcell="FC7225" Lane="4" Filename="Flowcells/FC7225/070629_FC7225_s4_EB_1_hpa_SL44.align_25.hg18.txt" Count=" 1681253" Date="070629"/>
+</Library>
+<Library Name="SL46">
+<Track Flowcell="FC5507" Lane="5" Filename="Flowcells/FC5507/070703_FC5507_s5_CM_1_hpa_SL46.align_25.hg18.txt" Count=" 1473405" Date="070703"/>
+<Track Flowcell="FC7225" Lane="5" Filename="Flowcells/FC7225/070629_FC7225_s5_CM_1_hpa_SL46.align_25.hg18.txt" Count=" 1875969" Date="070629"/>
+</Library>
+<Library Name="SL48">
+<Track Flowcell="FC8053" Lane="3" Filename="Flowcells/FC8053/070724_FC8053_s3_sperm_A_hpa_SL48.align_25.hg18.txt" Count="  364972" Date="070724"/>
+<Track Flowcell="FC8883" Lane="1" Filename="Flowcells/FC8883/070720_FC8883_s1_sperm_A_hpa_SL48.align_25.hg18.txt" Count="  642474" Date="070720"/>
+<Track Flowcell="FC8886" Lane="12" Filename="Flowcells/FC8886/070802_FC8886_s12_sperm_A_hpa_SL48.align_25.hg18.txt" Count=" 1589274" Date="070802"/>
+</Library>
+<Library Name="SL49">
+<Track Flowcell="FC8053" Lane="4" Filename="Flowcells/FC8053/070724_FC8053_s4_sperm_B_hpa_SL49.align_25.hg18.txt" Count="  426192" Date="070724"/>
+<Track Flowcell="FC8883" Lane="2" Filename="Flowcells/FC8883/070720_FC8883_s2_sperm_B_hpa_SL49.align_25.hg18.txt" Count="  956543" Date="070720"/>
+<Track Flowcell="FC8886" Lane="34" Filename="Flowcells/FC8886/070802_FC8886_s34_sperm_B_hpa_SL49.align_25.hg18.txt" Count=" 1697031" Date="070802"/>
+</Library>
+<Library Name="SL50">
+<Track Flowcell="FC8879" Lane="3" Filename="Flowcells/FC8879/070717_FC8879_s3_sperm_A_msp_SL50.align_25.hg18.txt" Count="  249065" Date="070717"/>
+</Library>
+<Library Name="SL53">
+<Track Flowcell="FC10073" Lane="2" Filename="Flowcells/FC10073/070821_FC10073_s2_d0_ES_C_msp_SL53.align_25.hg18.txt" Count="  459147" Date="070821"/>
+<Track Flowcell="FC10182" Lane="2" Filename="Flowcells/FC10182/070925_FC10182_s2_d0_ES_C_msp_SL53.align_25.hg18.txt" Count="  513510" Date="070925"/>
+<Track Flowcell="FC11862" Lane="345" Filename="Flowcells/FC11862/070919_FC11862_s345_d0_ES_C_msp_SL53.align_25.hg18.txt" Count=" 1650605" Date="070919"/>
+</Library>
+<Library Name="SL54">
+<Track Flowcell="FC10073" Lane="456" Filename="Flowcells/FC10073/070821_FC10073_s456_pancreas_1_hpa_SL54.align_25.hg18.txt" Count=" 4352582" Date="070821"/>
+<Track Flowcell="FC10182" Lane="4" Filename="Flowcells/FC10182/070925_FC10182_s4_pancreas_1_hpa_SL54.align_25.hg18.txt" Count=" 1136630" Date="070925"/>
+</Library>
+<Library Name="SL56">
+<Track Flowcell="FC11862" Lane="1" Filename="Flowcells/FC11862/070919_FC11862_s1_pancreas_2_hpa_SL56.align_25.hg18.txt" Count=" 1359802" Date="070919"/>
+<Track Flowcell="FC11977" Lane="2" Filename="Flowcells/FC11977/070928_FC11977_s2_pancreas_2_hpa_SL56.align_25.hg18.txt" Count=" 1120271" Date="070928"/>
+</Library>
+<Library Name="SL58">
+<Track Flowcell="FC10073" Lane="78" Filename="Flowcells/FC10073/070821_FC10073_s78_jurkat_1_hpa_SL58.align_25.hg18.txt" Count="  276664" Date="070821"/>
+<Track Flowcell="FC10132" Lane="4" Filename="Flowcells/FC10132/070817_FC10132_s4_jurkat_1_hpa_SL58.align_25.hg18.txt" Count=" 1326942" Date="070817"/>
+<Track Flowcell="FC10182" Lane="6" Filename="Flowcells/FC10182/070925_FC10182_s6_jurkat_1_hpa_SL58.align_25.hg18.txt" Count=" 1162424" Date="070925"/>
+<Track Flowcell="FC11977" Lane="5" Filename="Flowcells/FC11977/070928_FC11977_s5_jurkat_1_hpa_SL58.align_25.hg18.txt" Count="  904205" Date="070928"/>
+</Library>
+<Library Name="SL80">
+<Track Flowcell="FC10170" Lane="3" Filename="Flowcells/FC10170/071010_FC10170_s3_WOL3_cervical_RNA_human_SL80.align_25.hg18.txt" Count="  189349" Date="071010"/>
+</Library>
+<Library Name="SL81">
+<Track Flowcell="FC10170" Lane="4" Filename="Flowcells/FC10170/071010_FC10170_s4_WOL4_cervical_RNA_human_SL81.align_25.hg18.txt" Count="  208690" Date="071010"/>
+</Library>
+<Library Name="SL82">
+<Track Flowcell="FC12673" Lane="4" Filename="Flowcells/FC12673/071023_FC12673_s4_WOL6_cervical_RNA_human_SL82.align_25.hg18.txt" Count="    8190" Date="071023"/>
+</Library>
+<Library Name="SL83">
+<Track Flowcell="FC10182" Lane="5" Filename="Flowcells/FC10182/070925_FC10182_s5_NRSF_monoclonal_HTB11_SL83.align_25.hg18.txt" Count="  918491" Date="070925"/>
+<Track Flowcell="FC11977" Lane="1" Filename="Flowcells/FC11977/070928_FC11977_s1_NRSF_monoclonal_HTB11_SL83.align_25.hg18.txt" Count="  932151" Date="070928"/>
+<Track Flowcell="FC14428" Lane="3" Filename="Flowcells/FC14428/071102_FC14428_s3_NRSF_monoclonal_HTB11_SL83.align_25.hgt18.txt" Count="  987885" Date="071102"/>
+<Track Flowcell="FC14432" Lane="2" Filename="Flowcells/FC14432/071026_FC14432_s2_NRSF_monoclonal_HTB11_SL83.align_25.hg18.txt" Count=" 1052331" Date="071026"/>
+<Track Flowcell="FC6420" Lane="678" Filename="Flowcells/FC6420/080212_FC6420_s678_NRSF_ChIP_HTB-11_SL83.align_25.hg18.txt" Count=" 3489053" Date="080212"/>
+</Library>
+<Library Name="SL84">
+<Track Flowcell="FC10135" Lane="1" Filename="Flowcells/FC10135/071005_FC10135_s1_BG02_ES_A_hpa_SL84.align_25.hg18.txt" Count=" 1908138" Date="071005"/>
+<Track Flowcell="FC12563" Lane="1" Filename="Flowcells/FC12563/071016_FC12563_s1_BG02_ES_A_hpa_SL84.align_25.hg18.txt" Count=" 1319454" Date="071016"/>
+</Library>
+<Library Name="SL85">
+<Track Flowcell="FC10135" Lane="2" Filename="Flowcells/FC10135/071005_FC10135_s2_BG02_ES_B_hpa_SL85.align_25.hg18.txt" Count=" 2046898" Date="071005"/>
+<Track Flowcell="FC12563" Lane="2" Filename="Flowcells/FC12563/071016_FC12563_s2_BG02_ES_B_hpa_SL85.align_25.hg18.txt" Count=" 1576213" Date="071016"/>
+</Library>
+<Library Name="SL86">
+<Track Flowcell="FC10135" Lane="7" Filename="Flowcells/FC10135/071005_FC10135_s7_H9_hepato_B_hpa_SL86.align_25.hg18.txt" Count=" 1645814" Date="071005"/>
+<Track Flowcell="FC12673" Lane="6" Filename="Flowcells/FC12673/071023_FC12673_s6_H9_hepato_B_hpa_SL86.align_25.hg18.txt" Count="  581257" Date="071023"/>
+</Library>
+<Library Name="SL87">
+<Track Flowcell="FC10135" Lane="8" Filename="Flowcells/FC10135/071005_FC10135_s8_H9_hepato_D_hpa_SL87.align_25.hg18.txt" Count="  894069" Date="071005"/>
+<Track Flowcell="FC12673" Lane="7" Filename="Flowcells/FC12673/071023_FC12673_s7_H9_hepato_D_hpa_SL87.align_25.hg18.txt" Count="  410824" Date="071023"/>
+</Library>
+<Library Name="SL88">
+<Track Flowcell="FC10135" Lane="3" Filename="Flowcells/FC10135/071005_FC10135_s3_NRSF_monoclonal_U87_SL88.align_25.hg18.txt" Count=" 1240914" Date="071005"/>
+<Track Flowcell="FC12565" Lane="5" Filename="Flowcells/FC12565/071019_FC12565_s5_NRSF_monoclonal_U87_SL88.align_25.hg18.txt" Count="  571952" Date="071019"/>
+<Track Flowcell="FC14428" Lane="4" Filename="Flowcells/FC14428/071102_FC14428_s4_NRSF_monoclonal_U87_SL88.align_25.hg18.txt" Count=" 1114155" Date="071102"/>
+<Track Flowcell="FC14432" Lane="4" Filename="Flowcells/FC14432/071026_FC14432_s4_NRSF_monoclonal_U87_SL88.align_25.hg18.txt" Count="  914576" Date="071026"/>
+<Track Flowcell="FC2057R" Lane="6" Filename="Flowcells/FC2057R/071211_FC2057R_s6_U87_monoclonal_NRSF_ChIP_SL88.align_25.hg18.txt" Count="  172579" Date="071211"/>
+<Track Flowcell="FC6192" Lane="345" Filename="Flowcells/FC6192/080212_FC6192_s345_NRSF_ChIP_UB7_SL88.align_25.hg18.txt" Count=" 3307816" Date="080212"/>
+</Library>
+<Library Name="SL89">
+<Track Flowcell="FC10135" Lane="5" Filename="Flowcells/FC10135/071005_FC10135_s5_FoxP2_polyclonal_pfsk1_SL89.align_25.hg18.txt" Count=" 1992055" Date="071005"/>
+<Track Flowcell="FC10170" Lane="56" Filename="Flowcells/FC10170/071010_FC10170_s56_FoxP2_polyclonal_pfsk1_SL89.align_25.hg18.txt" Count=" 2332472" Date="071010"/>
+<Track Flowcell="FC12673" Lane="5" Filename="Flowcells/FC12673/071023_FC12673_s5_FoxP2_polyclonal_pfsk1_SL89.align_25.hg18.txt" Count="  754441" Date="071023"/>
+<Track Flowcell="FC14432" Lane="5678" Filename="Flowcells/FC14432/071026_FC14432_s5678_FoxP2_polyclonal_pfsk1_SL89.align_25.hg18.txt" Count=" 4136620" Date="071026"/>
+</Library>
+<Library Name="SL90">
+<Track Flowcell="FC10135" Lane="6" Filename="Flowcells/FC10135/071005_FC10135_s6_NlaIII_18_mouse_SL90.align_25.hg18.txt" Count="  925114" Date="071005"/>
+</Library>
+<Library Name="SL91">
+<Track Flowcell="FC10170" Lane="1" Filename="Flowcells/FC10170/071010_FC10170_s1_BG02_hepato_B_hpa_SL91.align_25.hg18.txt" Count="   53593" Date="071010"/>
+<Track Flowcell="FC12673" Lane="3" Filename="Flowcells/FC12673/071023_FC12673_s3_BG02_hepato_B_hpa_SL91.align_25.hg18.txt" Count="   34104" Date="071023"/>
+</Library>
+<Library Name="SL92">
+<Track Flowcell="FC10170" Lane="2" Filename="Flowcells/FC10170/071010_FC10170_s2_BG02_hepato_C_hpa_SL92.align_25.hg18.txt" Count="  101462" Date="071010"/>
+</Library>
+<Library Name="SL93">
+<Track Flowcell="FC10170" Lane="7" Filename="Flowcells/FC10170/071010_FC10170_s7_HCT_mCIP_1_SL93.align_25.hg18.txt" Count=" 1110620" Date="071010"/>
+<Track Flowcell="FC12673" Lane="8" Filename="Flowcells/FC12673/071023_FC12673_s8_HCT_mCIP_1_SL93.align_25.hg18.txt" Count="  348238" Date="071023"/>
+<Track Flowcell="FC14430" Lane="78" Filename="Flowcells/FC14430/071030_FC14430_s78_HCT_mCIP_1_SL93.align_25.hg18.txt" Count=" 1271501" Date="071030"/>
+</Library>
+<Library Name="SL94">
+<Track Flowcell="FC10170" Lane="8" Filename="Flowcells/FC10170/071010_FC10170_s8_HCT_unbound_mCIP_1_SL94.align_25.hg18.txt" Count="  926056" Date="071010"/>
+</Library>
+<Library Name="SL98">
+<Track Flowcell="FC12563" Lane="3" Filename="Flowcells/FC12563/071016_FC12563_s3_fetal_liver_11weeks_1_hpa_SL98.align_25.hg18.txt" Count="  199565" Date="071016"/>
+<Track Flowcell="FC12565" Lane="12" Filename="Flowcells/FC12565/071019_FC12565_s12_fetal_liver_11weeks_1_hpa_SL98.align_25.hg18.txt" Count="  764623" Date="071019"/>
+<Track Flowcell="FC12673" Lane="1" Filename="Flowcells/FC12673/071023_FC12673_s1_fetal_liver_11weeks_1_hpa_SL98.align_25.hg18.txt" Count="   97009" Date="071023"/>
+</Library>
+<Library Name="SL99">
+<Track Flowcell="FC12563" Lane="4" Filename="Flowcells/FC12563/071016_FC12563_s4_fetal_liver_24weeks_1_hpa_SL99.align_25.hg18.txt" Count="  101572" Date="071016"/>
+<Track Flowcell="FC12565" Lane="34" Filename="Flowcells/FC12565/071019_FC12565_s34_fetal_liver_24weeks_1_hpa_SL99.align_25.hg18.txt" Count="  315747" Date="071019"/>
+<Track Flowcell="FC12673" Lane="2" Filename="Flowcells/FC12673/071023_FC12673_s2_fetal_liver_24weeks_1_hpa_SL99.align_25.hg18.txt" Count="   64593" Date="071023"/>
+</Library>
+<Library Name="SL100">
+<Track Flowcell="FC12563" Lane="5" Filename="Flowcells/FC12563/071016_FC12563_s5_Y157SL_genomic_yeast_SL100.align_25.hg18.txt" Count="  316612" Date="071016"/>
+</Library>
+<Library Name="SL101">
+<Track Flowcell="FC12565" Lane="78" Filename="Flowcells/FC12565/071019_FC12565_s78_FoxP2_polyclonal_SK_N_MC_SL101.align_25.hg18.txt" Count=" 2344547" Date="071019"/>
+</Library>
+<Library Name="SL102">
+<Track Flowcell="FC20162" Lane="4" Filename="Flowcells/FC20162/080111_FC20162_s4_SK-N-MC_TotalChromatin_SL102.align_25.hg18.txt" Count=" 3103385" Date="080111"/>
+<Track Flowcell="FC202W1" Lane="1234" Filename="Flowcells/FC202W1/080116_FC202W1_s1234_SK-N-MC_total_chromatin_SL102.align_25.hg18.txt" Count=" 6381095" Date="080116"/>
+<Track Flowcell="FC2057R" Lane="4" Filename="Flowcells/FC2057R/071211_FC2057R_s4_SK_N_MC_control_SL102.align_25.hg18.txt" Count="  247103" Date="071211"/>
+<Track Flowcell="FC2057R" Lane="5" Filename="Flowcells/FC2057R/071211_FC2057R_s5_SK_N_MC_control_SL102.align_25.hg18.txt" Count="  285363" Date="071211"/>
+</Library>
+<Library Name="SL103">
+<Track Flowcell="FC12565" Lane="6" Filename="Flowcells/FC12565/071019_FC12565_s6_mock_IP_U87_SL103.align_25.hg18.txt" Count=" 1642558" Date="071019"/>
+<Track Flowcell="FC14428" Lane="5" Filename="Flowcells/FC14428/071102_FC14428_s5_mock_IP_U87_SL103.align_25.hg18.txt" Count="   44271" Date="071102"/>
+<Track Flowcell="FC14432" Lane="3" Filename="Flowcells/FC14432/071026_FC14432_s3_mock_IP_U87_SL103.align_25.hg18.txt" Count=" 2246689" Date="071026"/>
+<Track Flowcell="FC6420" Lane="45" Filename="Flowcells/FC6420/080212_FC6420_s45_UB7_Control_SL103.align_25.hg18.txt" Count=" 7268724" Date="080212"/>
+</Library>
+<Library Name="SL104">
+<Track Flowcell="FC14426" Lane="3" Filename="Flowcells/FC14426/071106_FC14426_s3_WOL9_small_RNA_human_SL104.align_25.hg18.txt" Count="  104372" Date="071106"/>
+</Library>
+<Library Name="SL105">
+<Track Flowcell="FC14426" Lane="4" Filename="Flowcells/FC14426/071106_FC14426_s4_WOL8_small_RNA_human_SL105.align_25.hg18.txt" Count="  433070" Date="071106"/>
+</Library>
+<Library Name="SL108">
+<Track Flowcell="FC14428" Lane="6" Filename="Flowcells/FC14428/071102_FC14428_s6_mock_IP_HTB11_SL108.align_25.hg18.txt" Count="  201318" Date="071102"/>
+<Track Flowcell="FC14432" Lane="1" Filename="Flowcells/FC14432/071026_FC14432_s1_mock_IP_HTB11_SL108.align_25.hg18.txt" Count=" 2525735" Date="071026"/>
+<Track Flowcell="FC6420" Lane="123" Filename="Flowcells/FC6420/080212_FC6420_s123_HTB-11_Control_SL108.align_25.hg18.txt" Count=" 9532996" Date="080212"/>
+</Library>
+<Library Name="SL109">
+<Track Flowcell="FC14428" Lane="7" Filename="Flowcells/FC14428/071102_FC14428_s7_RNAseq_liver_human_rep1_SL109.align_25.hg18.txt" Count="  755566" Date="071102"/>
+</Library>
+<Library Name="SL110">
+<Track Flowcell="FC14428" Lane="8" Filename="Flowcells/FC14428/071102_FC14428_s8_RNAseq_liver_human_rep2_SL110.align_25.hg18.txt" Count="  515935" Date="071102"/>
+<Track Flowcell="FC14763" Lane="4" Filename="Flowcells/FC14763/071129_FC14763_s4_RNAseq_liver_human_rep2_SL110.align_25.hg18.txt" Count="  501659" Date="071129"/>
+</Library>
+<Library Name="SL111">
+<Track Flowcell="FC14426" Lane="1" Filename="Flowcells/FC14426/071106_FC14426_s1_BG02_hepato_B2_hpa_SL111.align_25.hg18.txt" Count=" 1878793" Date="071106"/>
+<Track Flowcell="FC14430" Lane="1" Filename="Flowcells/FC14430/071030_FC14430_s1_BG02_hepato_B2_hpa_SL111.align_25.hg18.txt" Count=" 1172349" Date="071030"/>
+</Library>
+<Library Name="SL112">
+<Track Flowcell="FC14426" Lane="2" Filename="Flowcells/FC14426/071106_FC14426_s2_BG02_hepato_C2_hpa_SL112.align_25.hg18.txt" Count=" 2107429" Date="071106"/>
+<Track Flowcell="FC14430" Lane="2" Filename="Flowcells/FC14430/071030_FC14430_s2_BG02_hepato_C2_hpa_SL112.align_25.hg18.txt" Count=" 1447587" Date="071030"/>
+</Library>
+<Library Name="SL113">
+<Track Flowcell="FC14420" Lane="1" Filename="Flowcells/FC14420/071113_FC14420_s1_fetal_liver_11weeks2_hpa_SL113.align_25.hg18.txt" Count=" 1250091" Date="071113"/>
+<Track Flowcell="FC14428" Lane="1" Filename="Flowcells/FC14428/071102_FC14428_s1_fetal_liver_11weeks2_hpa_SL113.align_25.hgt18.txt" Count=" 1172349" Date="071102"/>
+<Track Flowcell="FC14430" Lane="3" Filename="Flowcells/FC14430/071030_FC14430_s3_fetal_liver_11weeks2_hpa_SL113.align_25.hg18.txt" Count="  987885" Date="071030"/>
+</Library>
+<Library Name="SL114">
+<Track Flowcell="FC14420" Lane="2" Filename="Flowcells/FC14420/071113_FC14420_s2_fetal_liver_24weeks2_hpa_SL114.align_25.hg18.txt" Count=" 1805836" Date="071113"/>
+<Track Flowcell="FC14428" Lane="2" Filename="Flowcells/FC14428/071102_FC14428_s2_fetal_liver_24weeks2_hpa_SL114.align_25.hgt18.txt" Count=" 1447587" Date="071102"/>
+<Track Flowcell="FC14430" Lane="4" Filename="Flowcells/FC14430/071030_FC14430_s4_fetal_liver_24weeks2_hpa_SL114.align_25.hg18.txt" Count=" 1114155" Date="071030"/>
+</Library>
+<Library Name="SL115">
+<Track Flowcell="FC202VW" Lane="1234" Filename="Flowcells/FC202VW/071218_FC202VW_s1234_cat_x_chromosome_SL115.align_25.catGar12.txt" Count=" 5488573" Date="071218"/>
+</Library>
+<Library Name="SL116">
+<Track Flowcell="FC12472" Lane="12" Filename="Flowcells/FC12472/071116_FC12472_s12_NRSF_monoclonal_PANC1_SL116.align_25.hg18.txt" Count=" 1924940" Date="071116"/>
+<Track Flowcell="FC14420" Lane="5" Filename="Flowcells/FC14420/071113_FC14420_s5_NRSF_monoclonal_PANC1_SL116.align_25.hg18.txt" Count=" 1037723" Date="071113"/>
+<Track Flowcell="FC14426" Lane="5" Filename="Flowcells/FC14426/071106_FC14426_s5_NRSF_monoclonal_PANC1_SL116.align_25.hg18.txt" Count="  961751" Date="071106"/>
+<Track Flowcell="FC6192" Lane="678" Filename="Flowcells/FC6192/080212_FC6192_s678_NRSF_ChIP_PANC1_SL116.align_25.hg18.txt" Count=" 4075003" Date="080212"/>
+</Library>
+<Library Name="SL117">
+<Track Flowcell="FC14420" Lane="6" Filename="Flowcells/FC14420/071113_FC14420_s6_mock_IP_PANC1_SL117.align_25.hg18.txt" Count=" 2462518" Date="071113"/>
+<Track Flowcell="FC14426" Lane="6" Filename="Flowcells/FC14426/071106_FC14426_s6_mock_IP_PANC1_SL117.align_25.hg18.txt" Count=" 2214338" Date="071106"/>
+<Track Flowcell="FC6192" Lane="12" Filename="Flowcells/FC6192/080212_FC6192_s12_PANC1_Control_SL117.align_25.hg18.txt" Count=" 6046619" Date="080212"/>
+</Library>
+<Library Name="SL118">
+<Track Flowcell="FC12472" Lane="34" Filename="Flowcells/FC12472/071116_FC12472_s34_NRSF_monoclonal_HTB187_SL118.align_25.hg18.txt" Count=" 2520211" Date="071116"/>
+<Track Flowcell="FC14420" Lane="7" Filename="Flowcells/FC14420/071113_FC14420_s7_NRSF_monoclonal_HTB187_SL118.align_25.hg18.txt" Count=" 1183349" Date="071113"/>
+<Track Flowcell="FC14426" Lane="7" Filename="Flowcells/FC14426/071106_FC14426_s7_NRSF_monoclonal_HTB187_SL118.align_25.hg18.txt" Count="  998104" Date="071106"/>
+</Library>
+<Library Name="SL119">
+<Track Flowcell="FC14420" Lane="8" Filename="Flowcells/FC14420/071113_FC14420_s8_mock_IP_HTB187_SL119.align_25.hg18.txt" Count=" 2376268" Date="071113"/>
+<Track Flowcell="FC14426" Lane="8" Filename="Flowcells/FC14426/071106_FC14426_s8_mock_IP_HTB187_SL119.align_25.hg18.txt" Count=" 1606271" Date="071106"/>
+</Library>
+<Library Name="SL120">
+<Track Flowcell="FC13512" Lane="1" Filename="Flowcells/FC13512/071109_FC13512_s1_NRSF_monoclonal_Jurkat_SL120.align_25.hg18.txt" Count=" 1285225" Date="071109"/>
+<Track Flowcell="FC14420" Lane="3" Filename="Flowcells/FC14420/071113_FC14420_s3_NRSF_monoclonal_Jurkat_SL120.align_25.hg18.txt" Count=" 2130283" Date="071113"/>
+</Library>
+<Library Name="SL121">
+<Track Flowcell="FC13512" Lane="2" Filename="Flowcells/FC13512/071109_FC13512_s2_GAPB_monoclonal_Jurkat_SL121.align_25.hg18.txt" Count=" 1512986" Date="071109"/>
+<Track Flowcell="FC14420" Lane="4" Filename="Flowcells/FC14420/071113_FC14420_s4_GAPB_monoclonal_Jurkat_SL121.align_25.hg18.txt" Count=" 2069705" Date="071113"/>
+<Track Flowcell="FC207CF" Lane="4" Filename="Flowcells/FC207CF/080207_FC207CF_s4_Jurkat_GABP_ChIP_SL121.align_25.hg18.txt" Count=" 11127549" Date="080207"/>
+<Track Flowcell="FC20AJ4" Lane="2" Filename="Flowcells/FC20AJ4/080312_FC20AJ4_s2_Jurkat_GABP_ChIP_SL121.align_25.hg18.txt" Count=" 3288504" Date="080312"/>
+</Library>
+<Library Name="SL127">
+<Track Flowcell="FC12472" Lane="7" Filename="Flowcells/FC12472/071116_FC12472_s7_RNA_Pol_Jurkat_SL127.align_25.hg18.txt" Count=" 1744821" Date="071116"/>
+<Track Flowcell="FC2057R" Lane="7" Filename="Flowcells/FC2057R/071211_FC2057R_s7_RNA_PoI_II_ChIP_Jurkat_SL127.align_25.hg18.txt" Count="  245677" Date="071211"/>
+<Track Flowcell="FC2057R" Lane="8" Filename="Flowcells/FC2057R/071211_FC2057R_s8_RNA_PoI_II_ChIP_Jurkat_SL127.align_25.hg18.txt" Count="  124585" Date="071211"/>
+<Track Flowcell="FC2057R" Lane="4" Filename="Flowcells/FC2057R/080118_FC2057R_s4_RNApol2_ChIP_Jurkat_SL127.align_25.hg18.txt" Count=" 2876921" Date="080118"/>
+<Track Flowcell="FC20686" Lane="4" Filename="Flowcells/FC20686/080221_FC20686_s4_RNApol2_ChIP_Jurkat_SL127.align_25.hg18.txt" Count="   15232" Date="080221"/>
+<Track Flowcell="FC207CF" Lane="5" Filename="Flowcells/FC207CF/080207_FC207CF_s5_RNApol2_ChIP_Jurkat_SL127.align_25.hg18.txt" Count=" 14282376" Date="080207"/>
+<Track Flowcell="FC20AN8" Lane="4" Filename="Flowcells/FC20AN8/080310_FC20AN8_s4_RNApol2_ChIP_Jurkat_SL127.align_25.hg18.txt" Count="  804871" Date="080310"/>
+</Library>
+<Library Name="SL128">
+<Track Flowcell="FC12472" Lane="8" Filename="Flowcells/FC12472/071116_FC12472_s8_MsMeCP2_Jurkat_SL128.align_25.hg18.txt" Count=" 1441721" Date="071116"/>
+<Track Flowcell="FC204PR" Lane="8" Filename="Flowcells/FC204PR/080520_FC204PR_s8_MeCP2_ChIP_Jurkat_SL128.align_25.hg18.txt" Count=" 3300096" Date="080520"/>
+<Track Flowcell="FC2057R" Lane="5" Filename="Flowcells/FC2057R/080118_FC2057R_s5_MeCP2_ChIP_Jurkat_SL128.align_25.hg18.txt" Count=" 2246279" Date="080118"/>
+</Library>
+<Library Name="SL129">
+<Track Flowcell="FC14763" Lane="1" Filename="Flowcells/FC14763/071129_FC14763_s1_dko_1_hpa_SL129.align_25.hg18.txt" Count=" 1039877" Date="071129"/>
+<Track Flowcell="FC20162" Lane="16" Filename="Flowcells/FC20162/080111_FC20162_s16_dko_1_hpa_SL129.align_25.hg18.txt" Count=" 3270592" Date="080111"/>
+<Track Flowcell="FC2057R" Lane="1" Filename="Flowcells/FC2057R/071211_FC2057R_s1_dko_1_hpa_SL129.align_25.hg18.txt" Count="  246639" Date="071211"/>
+<Track Flowcell="FC2057R" Lane="12" Filename="Flowcells/FC2057R/080118_FC2057R_s12_dko_1_hpa_SL129.align_25.hg18.txt" Count=" 5238922" Date="080118"/>
+</Library>
+<Library Name="SL130">
+<Track Flowcell="FC14763" Lane="2" Filename="Flowcells/FC14763/071129_FC14763_s2_dnmt1_1_hpa_SL130.align_25.hg18.txt" Count=" 1224247" Date="071129"/>
+<Track Flowcell="FC20162" Lane="27" Filename="Flowcells/FC20162/080111_FC20162_s27_dnmt1_1_hpa_SL130.align_25.hg18.txt" Count=" 3592097" Date="080111"/>
+<Track Flowcell="FC2057R" Lane="2" Filename="Flowcells/FC2057R/071211_FC2057R_s2_dnmt1_1_hpa_SL130.align_25.hg18.txt" Count="  417799" Date="071211"/>
+</Library>
+<Library Name="SL131">
+<Track Flowcell="FC14763" Lane="3" Filename="Flowcells/FC14763/071129_FC14763_s3_dnmt3b_1_hpa_SL131.align_25.hg18.txt" Count=" 1328448" Date="071129"/>
+<Track Flowcell="FC20162" Lane="38" Filename="Flowcells/FC20162/080111_FC20162_s38_dmnt3b_1_hpa_SL131.align_25.hg18.txt" Count=" 3486008" Date="080111"/>
+<Track Flowcell="FC2057R" Lane="3" Filename="Flowcells/FC2057R/071211_FC2057R_s3_dnmt3b_1_hpa_SL131.align_25.hg18.txt" Count="  501842" Date="071211"/>
+</Library>
+<Library Name="SL138">
+<Track Flowcell="FC2057U" Lane="1" Filename="Flowcells/FC2057U/080220_FC2057U_s1_e_7_75_Embryo_hpa_1_SL138.align_25.hg18.txt" Count=" 3235636" Date="080220"/>
+<Track Flowcell="FC205DP" Lane="3" Filename="Flowcells/FC205DP/080118_FC205DP_s3_e_7_75_Embryo_hpa_SL138.align_25.mm9.txt" Count=" 3251998" Date="080118"/>
+</Library>
+<Library Name="SL139">
+<Track Flowcell="FC2057U" Lane="2" Filename="Flowcells/FC2057U/080220_FC2057U_s2_e_7_75_Extra_Em_hpa_1_SL139.align_25.hg18.txt" Count=" 3408585" Date="080220"/>
+<Track Flowcell="FC205DP" Lane="6" Filename="Flowcells/FC205DP/080118_FC205DP_s6_e_7_75_Extra_Em_hpa_1_SL139.align_25.mm9.txt" Count=" 3017471" Date="080118"/>
+</Library>
+<Library Name="SL140">
+<Track Flowcell="FC2057U" Lane="7" Filename="Flowcells/FC2057U/080220_FC2057U_s7_e_8_5_Unturned_hpa_1_SL140.align_25.hg18.txt" Count=" 4152706" Date="080220"/>
+<Track Flowcell="FC205DP" Lane="7" Filename="Flowcells/FC205DP/080118_FC205DP_s7_e_8_5_Unturned_hpa_SL140.align_25.mm9.txt" Count=" 2924215" Date="080118"/>
+</Library>
+<Library Name="SL141">
+<Track Flowcell="FC20678" Lane="1" Filename="Flowcells/FC20678/080214_FC20678_s1_e11_5_SL141.align_25.hg18.txt" Count="  288210" Date="080214"/>
+<Track Flowcell="FC20AJ6" Lane="7" Filename="Flowcells/FC20AJ6/080318_FC20AJ6_s7_e11.5_Fet-Plac_hpa_SL141.align_25.mm9.txt" Count=" 3531295" Date="080318"/>
+</Library>
+<Library Name="SL142">
+<Track Flowcell="FC20678" Lane="2" Filename="Flowcells/FC20678/080214_FC20678_s2_e15_5_SL142.align_25.hg18.txt" Count="  610226" Date="080214"/>
+<Track Flowcell="FC20AJ6" Lane="8" Filename="Flowcells/FC20AJ6/080318_FC20AJ6_s8_e1.5_Fet-Plac_hpa_SL142.align_25.mm9.txt" Count=" 3896266" Date="080318"/>
+</Library>
+<Library Name="SL143">
+<Track Flowcell="FC2057U" Lane="8" Filename="Flowcells/FC2057U/080220_FC2057U_s8_e_15_5_Fet_Plac_msp_1_SL143.align_25.hg18.txt" Count=" 2901012" Date="080220"/>
+<Track Flowcell="FC205DP" Lane="8" Filename="Flowcells/FC205DP/080118_FC205DP_s8_e_15_5_Fet_Plac_msp_1_SL143.align_25.mm9.txt" Count=" 2661896" Date="080118"/>
+</Library>
+<Library Name="SL144">
+<Track Flowcell="FC20162" Lane="5" Filename="Flowcells/FC20162/080111_FC20162_s5_SK-N-MC_FOXP2_ChIP_SL144.align_25.hg18.txt" Count=" 2578704" Date="080111"/>
+<Track Flowcell="FC202W1" Lane="5678" Filename="Flowcells/FC202W1/080116_FC202W1_s5678_SK-N-MC_FOXP2_ChIP_SL144.align_25.hg18.txt" Count=" 10867872" Date="080116"/>
+</Library>
+<Library Name="SL147">
+<Track Flowcell="FC2065U" Lane="12" Filename="Flowcells/FC2065U/080226_FC2065U_s12_BE2_C_NRSF_ChIP_SL147.align_25.hg18.txt" Count=" 5768434" Date="080226"/>
+<Track Flowcell="FC20686" Lane="5" Filename="Flowcells/FC20686/080221_FC20686_s5_BE2_C_NRSF_ChIP_SL147.align_25.hg18.txt" Count="     327" Date="080221"/>
+<Track Flowcell="FC20AJ4" Lane="3" Filename="Flowcells/FC20AJ4/080312_FC20AJ4_s3_BE_2_-C_NRSF_ChIP_SL147.align_25.hg18.txt" Count=" 3022727" Date="080312"/>
+</Library>
+<Library Name="SL148">
+<Track Flowcell="FC2065U" Lane="3" Filename="Flowcells/FC2065U/080226_FC2065U_s3_Input_BE2_C_SL148.align_25.hg18.txt" Count=" 4076715" Date="080226"/>
+<Track Flowcell="FC2079B" Lane="5" Filename="Flowcells/FC2079B/080129_FC2079B_s5_Input_BE2-C_SL148.align_25.hg18.txt" Count=" 3917265" Date="080129"/>
+<Track Flowcell="FC20AJ6" Lane="4" Filename="Flowcells/FC20AJ6/080318_FC20AJ6_s4_Input_control_BE2-C_SL148.align_25.hg18.txt" Count=" 4103876" Date="080318"/>
+</Library>
+<Library Name="SL149">
+<Track Flowcell="FC2065U" Lane="45" Filename="Flowcells/FC2065U/080226_FC2065U_s45_PFSK1_NRSF_ChIP_SL149.align_25.hg18.txt" Count=" 5690999" Date="080226"/>
+<Track Flowcell="FC20678" Lane="6" Filename="Flowcells/FC20678/080214_FC20678_s6_NRSF_ChIP_PFSK-1_SL149.align_25.hg18.txt" Count="  976436" Date="080214"/>
+<Track Flowcell="FC20686" Lane="6" Filename="Flowcells/FC20686/080221_FC20686_s6_PFSK1_NRSF_ChIP_SL149.align_25.hg18.txt" Count="   17027" Date="080221"/>
+<Track Flowcell="FC20AJ4" Lane="4" Filename="Flowcells/FC20AJ4/080312_FC20AJ4_s4_PFSK1_NRSF_ChIP_SL149.align_25.hg18.txt" Count=" 2779349" Date="080312"/>
+</Library>
+<Library Name="SL150">
+<Track Flowcell="FC2065U" Lane="6" Filename="Flowcells/FC2065U/080226_FC2065U_s6_Input_PFSK1_SL150.align_25.hg18.txt" Count=" 3558958" Date="080226"/>
+<Track Flowcell="FC2079B" Lane="6" Filename="Flowcells/FC2079B/080129_FC2079B_s6_Input_PFSK-1_SL150.align_25.hg18.txt" Count=" 3864147" Date="080129"/>
+<Track Flowcell="FC20AJ6" Lane="5" Filename="Flowcells/FC20AJ6/080318_FC20AJ6_s5_Input_control_PSF-1_SL150.align_25.hg18.txt" Count=" 4013975" Date="080318"/>
+</Library>
+<Library Name="SL152">
+<Track Flowcell="FC2079B" Lane="4" Filename="Flowcells/FC2079B/080129_FC2079B_s4_scer_rnaseq_SL152.align_25.scer.txt" Count=" 3578645" Date="080129"/>
+</Library>
+<Library Name="SL153">
+<Track Flowcell="FC207CF" Lane="2" Filename="Flowcells/FC207CF/080207_FC207CF_s2_InputControl_SL153.align_25.hg18.txt" Count="       0" Date="080207"/>
+</Library>
+<Library Name="SL154">
+<Track Flowcell="FC207CF" Lane="3" Filename="Flowcells/FC207CF/080207_FC207CF_s3_PSTAT_ChIP_SL154.align_25.hg18.txt" Count="       0" Date="080207"/>
+</Library>
+<Library Name="SL155">
+<Track Flowcell="FC20678" Lane="3" Filename="Flowcells/FC20678/080214_FC20678_s3_WL_GCT3_RNAseq_SL155.align_25.hg18.txt" Count="   90301" Date="080214"/>
+</Library>
+<Library Name="SL156">
+<Track Flowcell="FC20678" Lane="4" Filename="Flowcells/FC20678/080214_FC20678_s4_WL_GCT4_RNAseq_SL156.align_25.hg18.txt" Count="    5791" Date="080214"/>
+</Library>
+<Library Name="SL157">
+<Track Flowcell="FC2057U" Lane="3" Filename="Flowcells/FC2057U/080220_FC2057U_s3_Input_mouse_neurons_SL157.align_25.hg18.txt" Count=" 4030470" Date="080220"/>
+</Library>
+<Library Name="SL158">
+<Track Flowcell="FC2057U" Lane="4" Filename="Flowcells/FC2057U/080220_FC2057U_s4_MeCP2_ChIP_SL158.align_25.hg18.txt" Count=" 2669313" Date="080220"/>
+</Library>
+<Library Name="SL159">
+<Track Flowcell="FC2057U" Lane="5" Filename="Flowcells/FC2057U/080220_FC2057U_s5_Input_mouse_neurons_SL159.align_25.hg18.txt" Count=" 1776966" Date="080220"/>
+</Library>
+<Library Name="SL160">
+<Track Flowcell="FC2057U" Lane="6" Filename="Flowcells/FC2057U/080220_FC2057U_s6_MEF2_ChIP_SL160.align_25.hg18.txt" Count=" 3568746" Date="080220"/>
+</Library>
+<Library Name="SL161">
+<Track Flowcell="FC2064D" Lane="1" Filename="Flowcells/FC2064D/080208_FC2064D_s1_GABP_1x_K562_ChIP_SL161.align_25.hg18.txt" Count=" 1337451" Date="080208"/>
+<Track Flowcell="FC20ANBA" Lane="4" Filename="Flowcells/FC20ANBA/080321_FC20ANBA_s4_GABP_ChIP_1x_K562_SL161.align_25.hg18.txt" Count=" 1933407" Date="080321"/>
+</Library>
+<Library Name="SL162">
+<Track Flowcell="FC2064D" Lane="2" Filename="Flowcells/FC2064D/080208_FC2064D_s2_GABP_4x_K562_ChIP_SL162.align_25.hg18.txt" Count=" 1581402" Date="080208"/>
+<Track Flowcell="FC20ANBA" Lane="5" Filename="Flowcells/FC20ANBA/080321_FC20ANBA_s5_GABP_ChIP_4x_K562_SL162.align_25.hg18.txt" Count=" 1981536" Date="080321"/>
+</Library>
+<Library Name="SL163">
+<Track Flowcell="FC2064D" Lane="3" Filename="Flowcells/FC2064D/080208_FC2064D_s3_Input_K562_1_SL163.align_25.hg18.txt" Count=" 2506864" Date="080208"/>
+</Library>
+<Library Name="SL164">
+<Track Flowcell="FC2064D" Lane="6" Filename="Flowcells/FC2064D/080208_FC2064D_s6_PolII_1x_K562_ChIP_SL164.align_25.hg18.txt" Count=" 2542107" Date="080208"/>
+</Library>
+<Library Name="SL165">
+<Track Flowcell="FC2064D" Lane="7" Filename="Flowcells/FC2064D/080208_FC2064D_s7_PolII_4x_K562_ChIP_SL165.align_25.hg18.filter.txt" Count=" 2887076" Date="080208"/>
+<Track Flowcell="FC2064D" Lane="7" Filename="Flowcells/FC2064D/080208_FC2064D_s7_PolII_4x_K562_ChIP_SL165.align_25.hg18.txt" Count=" 2890553" Date="080208"/>
+<Track Flowcell="FC20ANBA" Lane="6" Filename="Flowcells/FC20ANBA/080321_FC20ANBA_s6_RNApol2_ChIP_4x_K562_SL165.align_25.hg18.txt" Count=" 2938622" Date="080321"/>
+</Library>
+<Library Name="SL166">
+<Track Flowcell="FC2064D" Lane="8" Filename="Flowcells/FC2064D/080208_FC2064D_s8_Input_K562_2_SL166.align_25.hg18.txt" Count=" 2704047" Date="080208"/>
+</Library>
+<Library Name="SL167">
+<Track Flowcell="FC2065U" Lane="78" Filename="Flowcells/FC2065U/080226_FC2065U_s78_FOXP2_ChIP_SKNMC_SL167.align_25.hg18.txt" Count=" 7161740" Date="080226"/>
+<Track Flowcell="FC20678" Lane="78" Filename="Flowcells/FC20678/080214_FC20678_s78_FOXP2_ChIP_SK-N-MC_SL167.align_25.hg18.txt" Count=" 2037766" Date="080214"/>
+<Track Flowcell="FC20686" Lane="78" Filename="Flowcells/FC20686/080221_FC20686_s78_FOXP2_ChIP_SKNMC_SL167.align_25.hg18.txt" Count="   35763" Date="080221"/>
+<Track Flowcell="FC20AJ4" Lane="5" Filename="Flowcells/FC20AJ4/080312_FC20AJ4_s5_FOXP2_ChIP_SK-N-MC_SL167.align_25.hg18.txt" Count=" 3185960" Date="080312"/>
+</Library>
+<Library Name="SL168">
+<Track Flowcell="FC207CF" Lane="6" Filename="Flowcells/FC207CF/080207_FC207CF_s6_RNASeq_muscle_1_SL168.align_25.hg18.txt" Count=" 1531101" Date="080207"/>
+</Library>
+<Library Name="SL169">
+<Track Flowcell="FC207CF" Lane="7" Filename="Flowcells/FC207CF/080207_FC207CF_s7_RNASeq_muscle_2_SL169.align_25.hg18.txt" Count="   89434" Date="080207"/>
+</Library>
+<Library Name="SL170">
+<Track Flowcell="FC20686" Lane="1" Filename="Flowcells/FC20686/080221_FC20686_s1_Methyl_ChIP_K562_SL170.align_25.hg18.txt" Count="    9738" Date="080221"/>
+<Track Flowcell="FC209RM" Lane="12" Filename="Flowcells/FC209RM/080325_FC209RM_s12_Input_Control_K562_SL170.align_25.hg18.txt" Count=" 5950898" Date="080325"/>
+<Track Flowcell="FC20AJB" Lane="7" Filename="Flowcells/FC20AJB/080411_FC20AJB_s7_Input_Control_K562_SL170.align_25.hg18.txt" Count=" 2808114" Date="080411"/>
+<Track Flowcell="FC20AN8" Lane="1" Filename="Flowcells/FC20AN8/080310_FC20AN8_s1_Input_Control_K562_SL170.align_25.hg18.txt" Count=" 2366449" Date="080310"/>
+</Library>
+<Library Name="SL171">
+<Track Flowcell="FC20686" Lane="2" Filename="Flowcells/FC20686/080221_FC20686_s2_Input_K562_SL171.align_25.hg18.txt" Count="    5745" Date="080221"/>
+<Track Flowcell="FC209RM" Lane="34" Filename="Flowcells/FC209RM/080325_FC209RM_s34_MethylC_ChIP_K562_SL171.align_25.hg18.txt" Count=" 2019575" Date="080325"/>
+<Track Flowcell="FC20AJB" Lane="8" Filename="Flowcells/FC20AJB/080411_FC20AJB_s8_MethylC_ChIP_K562_SL171.align_25.hg18.txt" Count=" 1109615" Date="080411"/>
+<Track Flowcell="FC20AN8" Lane="2" Filename="Flowcells/FC20AN8/080310_FC20AN8_s2_MethylC_ChIP_K562_SL171.align_25.hg18.txt" Count=" 3470047" Date="080310"/>
+<Track Flowcell="FC20AN8" Lane="4" Filename="Flowcells/FC20AN8/080310_FC20AN8_s4_MethylC_ChIP_K562_SL171.align_25.hg18.txt" Count="  804871" Date="080310"/>
+</Library>
+<Library Name="SL172">
+<Track Flowcell="FC20686" Lane="3" Filename="Flowcells/FC20686/080221_FC20686_s3_Histone_Mod_ChIP_HESC_SL172.align_25.hg18.txt" Count="    6153" Date="080221"/>
+<Track Flowcell="FC20AJB" Lane="23" Filename="Flowcells/FC20AJB/080411_FC20AJB_s23_Histone_Mod_ChIP_HESC_SL172.align_25.hg18.txt" Count=" 6025511" Date="080411"/>
+<Track Flowcell="FC20AN8" Lane="3" Filename="Flowcells/FC20AN8/080310_FC20AN8_s3_Histone_Mod_ChIP_HESC_SL172.align_25.hg18.txt" Count=" 1662103" Date="080310"/>
+</Library>
+<Library Name="SL173">
+<Track Flowcell="FC207CF" Lane="1" Filename="Flowcells/FC207CF/080207_FC207CF_s1_RNASeq_WOL_GCT6_SL173.align_25.hg18.txt" Count="  458511" Date="080207"/>
+<Track Flowcell="FC20AUF" Lane="1" Filename="Flowcells/FC20AUF/080418_FC20AUF_s1_RNAseq_WOL_GCT6_SL173.align_25.hg18.txt" Count="  192208" Date="080418"/>
+</Library>
+<Library Name="SL174">
+<Track Flowcell="FC207CF" Lane="8" Filename="Flowcells/FC207CF/080207_FC207CF_s8_RNAseq_WOL_GCT5_SL174.align_25.hg18.txt" Count="  419076" Date="080207"/>
+<Track Flowcell="FC20AUF" Lane="2" Filename="Flowcells/FC20AUF/080418_FC20AUF_s2_RNAseq_WOL_GCT5_SL174.align_25.hg18.txt" Count="  277173" Date="080418"/>
+</Library>
+<Library Name="SL180">
+<Track Flowcell="FC20AJ4" Lane="6" Filename="Flowcells/FC20AJ4/080312_FC20AJ4_s6_genomic_DNA_SL180.align_25.hg18.txt" Count=" 2947761" Date="080312"/>
+</Library>
+<Library Name="SL182">
+<Track Flowcell="FC20AJ4" Lane="8" Filename="Flowcells/FC20AJ4/080312_FC20AJ4_s8_N_pound_124_SL182.align_25.hg18.txt" Count="  744786" Date="080312"/>
+</Library>
+<Library Name="SL183">
+<Track Flowcell="FC20AN8" Lane="5" Filename="Flowcells/FC20AN8/080310_FC20AN8_s5_K27_ChIP_HESC_SL183.align_25.hg18.txt" Count=" 1323849" Date="080310"/>
+</Library>
+<Library Name="SL184">
+<Track Flowcell="FC20AN8" Lane="6" Filename="Flowcells/FC20AN8/080310_FC20AN8_s6_K36_ChIP_HESC_SL184.align_25.hg18.txt" Count=" 1416960" Date="080310"/>
+</Library>
+<Library Name="SL185">
+<Track Flowcell="FC20AN8" Lane="7" Filename="Flowcells/FC20AN8/080310_FC20AN8_s7_RNAPol2_ChIP_HESC_SL185.align_25.hg18.txt" Count="  303217" Date="080310"/>
+</Library>
+<Library Name="SL186">
+<Track Flowcell="FC20AN8" Lane="8" Filename="Flowcells/FC20AN8/080310_FC20AN8_s8_Input_Control_HESC_SL186.align_25.hg18.txt" Count="  524314" Date="080310"/>
+</Library>
+<Library Name="SL187">
+<Track Flowcell="FC204TE" Lane="4" Filename="Flowcells/FC204TE/080401_FC204TE_s4_RNApol2_ChIP_Jurkat_Rep2_SL187.align_25.hg18.txt" Count=" 3439954" Date="080401"/>
+<Track Flowcell="FC209TN" Lane="4" Filename="Flowcells/FC209TN/080320_FC209TN_s4_RNApol2_ChIP_Jurkat_Rep2_SL187.align_25.hg18.txt" Count=" 2798720" Date="080320"/>
+<Track Flowcell="FC20AJ6" Lane="3" Filename="Flowcells/FC20AJ6/080318_FC20AJ6_s3_RNApol2_ChIP_Jurkat_Rep2_SL187.align_25.hg18.txt" Count=" 2842778" Date="080318"/>
+<Track Flowcell="FC20AJB" Lane="6" Filename="Flowcells/FC20AJB/080411_FC20AJB_s6_RNApol2_ChIP_Jurkat_Rep2_SL187.align_25.hg18.txt" Count=" 3636448" Date="080411"/>
+</Library>
+<Library Name="SL189">
+<Track Flowcell="FC20AJ6" Lane="6" Filename="Flowcells/FC20AJ6/080318_FC20AJ6_s6_RNAseq_yeast_SL189.align_25.scer.txt" Count="  262855" Date="080318"/>
+</Library>
+<Library Name="SL190">
+<Track Flowcell="FC20AJ6" Lane="1" Filename="Flowcells/FC20AJ6/080318_FC20AJ6_s1_YX271_nucleosomal_DNA_SL190.align_25.cel.txt" Count=" 3261307" Date="080318"/>
+</Library>
+<Library Name="SL191">
+<Track Flowcell="FC20AJ6" Lane="2" Filename="Flowcells/FC20AJ6/080318_FC20AJ6_s2_YX213_nucleosomal_DNA_SL191.align_25.cel.txt" Count=" 1400954" Date="080318"/>
+</Library>
+<Library Name="SL192">
+<Track Flowcell="FC20ANBA" Lane="1" Filename="Flowcells/FC20ANBA/080321_FC20ANBA_s1_DKO_2_hpa_SL192.align_25.hg18.txt" Count=" 2724639" Date="080321"/>
+</Library>
+<Library Name="SL193">
+<Track Flowcell="FC20AJD" Lane="123" Filename="Flowcells/FC20AJD/080516_FC20AJD_s123_DKO_2_msp_SL193.align_25.hg18.txt" Count=" 10254337" Date="080516"/>
+<Track Flowcell="FC20ANBA" Lane="2" Filename="Flowcells/FC20ANBA/080321_FC20ANBA_s2_DKO_2_msp_SL193.align_25.hg18.txt" Count=" 2748790" Date="080321"/>
+</Library>
+<Library Name="SL194">
+<Track Flowcell="FC20ANBA" Lane="3" Filename="Flowcells/FC20ANBA/080321_FC20ANBA_s3_colon_A_hpa_SL194.align_25.hg18.txt" Count=" 3041571" Date="080321"/>
+</Library>
+<Library Name="SL195">
+<Track Flowcell="FC204TE" Lane="1" Filename="Flowcells/FC204TE/080401_FC204TE_s1_colon_B_hpa_SL195.align_25.hg18.txt" Count=" 3349137" Date="080401"/>
+<Track Flowcell="FC209TN" Lane="1" Filename="Flowcells/FC209TN/080320_FC209TN_s1_colon_B_hpa_SL195.align_25.hg18.txt" Count=" 3403447" Date="080320"/>
+</Library>
+<Library Name="SL196">
+<Track Flowcell="FC204TE" Lane="2" Filename="Flowcells/FC204TE/080401_FC204TE_s2_colon_C_hpa_SL196.align_25.hg18.txt" Count=" 3827859" Date="080401"/>
+<Track Flowcell="FC209TN" Lane="2" Filename="Flowcells/FC209TN/080320_FC209TN_s2_colon_C_hpa_SL196.align_25.hg18.txt" Count=" 3640251" Date="080320"/>
+</Library>
+<Library Name="SL197">
+<Track Flowcell="FC204TE" Lane="3" Filename="Flowcells/FC204TE/080401_FC204TE_s3_colon_A_msp_SL197.align_25.hg18.txt" Count=" 2691934" Date="080401"/>
+<Track Flowcell="FC209TN" Lane="3" Filename="Flowcells/FC209TN/080320_FC209TN_s3_colon_A_msp_SL197.align_25.hg18.txt" Count=" 2795747" Date="080320"/>
+<Track Flowcell="FC20AJD" Lane="678" Filename="Flowcells/FC20AJD/080516_FC20AJD_s678_colon_A_msp_SL197.align_25.hg18.txt" Count=" 10383564" Date="080516"/>
+</Library>
+<Library Name="SL199">
+<Track Flowcell="FC20AME" Lane="1" Filename="Flowcells/FC20AME/080327_FC20AME_s1_RIBO-XRLP_SL199.align_25.scer.txt" Count="  700987" Date="080327"/>
+</Library>
+<Library Name="SL200">
+<Track Flowcell="FC20ANBA" Lane="7" Filename="Flowcells/FC20ANBA/080321_FC20ANBA_s7_K562_Rep2_Hpa_SL200.align_25.hg18.txt" Count=" 1655989" Date="080321"/>
+</Library>
+<Library Name="SL201">
+<Track Flowcell="FC20ANBA" Lane="8" Filename="Flowcells/FC20ANBA/080321_FC20ANBA_s8_K562_Rep2_Msp_SL201.align_25.hg18.txt" Count=" 1438074" Date="080321"/>
+</Library>
+<Library Name="SL202">
+<Track Flowcell="FC204PT" Lane="1234" Filename="Flowcells/FC204PT/080408_FC204PT_s1234_NRSF_ChIP_GM12878_Rep1_SL202.align_25.hg18.txt" Count=" 7274643" Date="080408"/>
+<Track Flowcell="FC204TE" Lane="5" Filename="Flowcells/FC204TE/080401_FC204TE_s5_NRSF_ChIP_GM12878_Rep1_SL202.align_25.hg18.txt" Count=" 2247042" Date="080401"/>
+<Track Flowcell="FC209TN" Lane="5" Filename="Flowcells/FC209TN/080320_FC209TN_s5_NRSF_ChIP_GM12878_Rep1_SL202.align_25.hg18.txt" Count=" 1576307" Date="080320"/>
+</Library>
+<Library Name="SL203">
+<Track Flowcell="FC204PT" Lane="5678" Filename="Flowcells/FC204PT/080408_FC204PT_s5678_GABP_ChIP_GM12878_Rep1_SL203.align_25.hg18.txt" Count=" 7887093" Date="080408"/>
+<Track Flowcell="FC204TE" Lane="6" Filename="Flowcells/FC204TE/080401_FC204TE_s6_GABP_ChIP_GM12878_Rep2_SL203.align_25.hg18.txt" Count=" 2373273" Date="080401"/>
+<Track Flowcell="FC209TN" Lane="6" Filename="Flowcells/FC209TN/080320_FC209TN_s6_GABP_ChIP_GM12878_Rep1_SL203.align_25.hg18.txt" Count=" 1701737" Date="080320"/>
+</Library>
+<Library Name="SL204">
+<Track Flowcell="FC204GV" Lane="123" Filename="Flowcells/FC204GV/080429_FC204GV_s123_NRSF_ChIP_GM12878_Rep2_SL204.align_25.hg18.txt" Count=" 3577884" Date="080429"/>
+<Track Flowcell="FC209TN" Lane="7" Filename="Flowcells/FC209TN/080320_FC209TN_s7_NRSF_ChIP_GM12878_Rep2_SL204.align_25.hg18.txt" Count=" 1896929" Date="080320"/>
+<Track Flowcell="FC20ATL" Lane="3" Filename="Flowcells/FC20ATL/080527_FC20ATL_s3_NRSF_ChIP_GM12878_Rep2_SL204.align_25.hg18.txt" Count=" 3115234" Date="080527"/>
+<Track Flowcell="FC20ATL" Lane="4" Filename="Flowcells/FC20ATL/080527_FC20ATL_s4_NRSF_ChIP_GM12878_Rep2_SL204.align_25.hg18.txt" Count=" 3154935" Date="080527"/>
+</Library>
+<Library Name="SL205">
+<Track Flowcell="FC204PR" Lane="1" Filename="Flowcells/FC204PR/080520_FC204PR_s1_GABP_ChIP_GM12878_Rep2_SL205.align_25.hg18.txt" Count=" 2655501" Date="080520"/>
+<Track Flowcell="FC204TD" Lane="3" Filename="Flowcells/FC204TD/080509_FC204TD_s3_GABP_ChIP_GM12878_Rep2_SL205.align_25.hg18.txt" Count=" 3057775" Date="080509"/>
+<Track Flowcell="FC209TN" Lane="8" Filename="Flowcells/FC209TN/080320_FC209TN_s8_GABP_ChIP_GM12878_Rep2_SL205.align_25.hg18.txt" Count=" 2362256" Date="080320"/>
+<Track Flowcell="FC20ATL" Lane="1" Filename="Flowcells/FC20ATL/080527_FC20ATL_s1_GABP_ChIP_GM12878_Rep2_SL205.align_25.hg18.txt" Count=" 3517050" Date="080527"/>
+</Library>
+<Library Name="SL206">
+<Track Flowcell="FC209RM" Lane="5" Filename="Flowcells/FC209RM/080325_FC209RM_s5_RNAPol2_ChIP_GM12878_Rep1_R1_SL206.align_25.hg18.txt" Count=" 2140588" Date="080325"/>
+</Library>
+<Library Name="SL207">
+<Track Flowcell="FC204GW" Lane="12" Filename="Flowcells/FC204GW/080503_FC204GW_s12_RNAPol2_ChIP_GM12878_Rep1_R2_SL207.align_25.hg18.txt" Count=" 4626454" Date="080503"/>
+<Track Flowcell="FC204TD" Lane="4" Filename="Flowcells/FC204TD/080509_FC204TD_s4_RNAPol2_ChIP_GM12878_Rep1_R2_SL207.align_25.hg18.txt" Count=" 2702184" Date="080509"/>
+<Track Flowcell="FC209RM" Lane="6" Filename="Flowcells/FC209RM/080325_FC209RM_s6_RNAPol2_ChIP_GM12878_Rep1_R2_SL207.align_25.hg18.txt" Count=" 2332288" Date="080325"/>
+<Track Flowcell="FC20AJB" Lane="4" Filename="Flowcells/FC20AJB/080411_FC20AJB_s4_RNAPol2_ChIP_GM12878_Rep1_R2_SL207.align_25.hg18.txt" Count=" 2615980" Date="080411"/>
+</Library>
+<Library Name="SL208">
+<Track Flowcell="FC209RM" Lane="7" Filename="Flowcells/FC209RM/080325_FC209RM_s7_RNAPol2_ChIP_GM12878_Rep2_R1_SL208.align_25.hg18.txt" Count=" 2045107" Date="080325"/>
+</Library>
+<Library Name="SL209">
+<Track Flowcell="FC204GW" Lane="34" Filename="Flowcells/FC204GW/080503_FC204GW_s34_RNAPol2_ChIP_GM12878_Rep2_R2_SL209.align_25.hg18.txt" Count=" 6350506" Date="080503"/>
+<Track Flowcell="FC204TD" Lane="5" Filename="Flowcells/FC204TD/080509_FC204TD_s5_RNAPol2_ChIP_GM12878_Rep2_R2_SL209.align_25.hg18.txt" Count=" 2519907" Date="080509"/>
+<Track Flowcell="FC209RM" Lane="8" Filename="Flowcells/FC209RM/080325_FC209RM_s8_RNAPol2_ChIP_GM12878_Rep2_R2_SL209.align_25.hg18.txt" Count=" 2375516" Date="080325"/>
+<Track Flowcell="FC20AJB" Lane="5" Filename="Flowcells/FC20AJB/080411_FC20AJB_s5_RNAPol2_ChIP_GM12878_Rep2_R2_SL209.align_25.hg18.txt" Count=" 3527877" Date="080411"/>
+</Library>
+<Library Name="SL212">
+<Track Flowcell="FC20AJB" Lane="1" Filename="Flowcells/FC20AJB/080411_FC20AJB_s1_hESC_input_New_SL212.align_25.hg18.txt" Count=" 1721512" Date="080411"/>
+</Library>
+<Library Name="SL213">
+<Track Flowcell="FC204GW" Lane="7" Filename="Flowcells/FC204GW/080503_FC204GW_s7_day5_K4_SL213.align_25.hg18.txt" Count="  619689" Date="080503"/>
+</Library>
+<Library Name="SL214">
+<Track Flowcell="FC204GW" Lane="8" Filename="Flowcells/FC204GW/080503_FC204GW_s8_day5_input_SL214.align_25.hg18.txt" Count=" 1212965" Date="080503"/>
+</Library>
+<Library Name="SL217">
+<Track Flowcell="FC20ATK" Lane="1234" Filename="Flowcells/FC20ATK/080404_FC20ATK_s1234_GM12878_input_Ctrl_Rep1_SL217.align_25.hg18.txt" Count=" 14209973" Date="080404"/>
+</Library>
+<Library Name="SL218">
+<Track Flowcell="FC20ATK" Lane="5678" Filename="Flowcells/FC20ATK/080404_FC20ATK_s5678_GM12878_input_Ctrl_Rep2_SL218.align_25.hg18.txt" Count=" 11888537" Date="080404"/>
+</Library>
+<Library Name="SL219">
+<Track Flowcell="FC204TE" Lane="7" Filename="Flowcells/FC204TE/080401_FC204TE_s7_RNAPol2_ChIP_K562_Dex_rep1_SL219.align_25.hg18.txt" Count=" 3414718" Date="080401"/>
+</Library>
+<Library Name="SL220">
+<Track Flowcell="FC204TE" Lane="8" Filename="Flowcells/FC204TE/080401_FC204TE_s8_RNAPol2_ChIP_K562_EtOH_rep1_SL220.align_25.hg18.txt" Count=" 3318493" Date="080401"/>
+</Library>
+<Library Name="SL221">
+<Track Flowcell="FC209VL" Lane="12" Filename="Flowcells/FC209VL/080409_FC209VL_s12_NRSF_ChIP-K562_Rep1_SL221.align_25.hg18.txt" Count=" 5557080" Date="080409"/>
+<Track Flowcell="FC20AJD" Lane="4" Filename="Flowcells/FC20AJD/080516_FC20AJD_s4_NRSF_ChIP-K562_Rep1_SL221.align_25.hg18.txt" Count=" 3599218" Date="080516"/>
+<Track Flowcell="FC20ATL" Lane="5" Filename="Flowcells/FC20ATL/080527_FC20ATL_s5_NRSF_ChIP-K562_Rep1_SL221.align_25.hg18.txt" Count=" 4360336" Date="080527"/>
+<Track Flowcell="FC20ATL" Lane="6" Filename="Flowcells/FC20ATL/080527_FC20ATL_s6_NRSF_ChIP-K562_Rep1_SL221.align_25.hg18.txt" Count=" 4414231" Date="080527"/>
+</Library>
+<Library Name="SL222">
+<Track Flowcell="FC209VL" Lane="34" Filename="Flowcells/FC209VL/080409_FC209VL_s34_NRSF_ChIP_K562_Rep2_SL222.align_25.hg18.txt" Count=" 5104501" Date="080409"/>
+<Track Flowcell="FC20AJD" Lane="5" Filename="Flowcells/FC20AJD/080516_FC20AJD_s5_NRSF_ChIP_K562_Rep2_SL222.align_25.hg18.txt" Count=" 3449963" Date="080516"/>
+<Track Flowcell="FC20ATL" Lane="7" Filename="Flowcells/FC20ATL/080527_FC20ATL_s7_NRSF_ChIP_K562_Rep2_SL222.align_25.hg18.txt" Count=" 3722128" Date="080527"/>
+<Track Flowcell="FC20ATL" Lane="8" Filename="Flowcells/FC20ATL/080527_FC20ATL_s8_NRSF_ChIP_K562_Rep2_SL222.align_25.hg18.txt" Count=" 3947293" Date="080527"/>
+</Library>
+<Library Name="SL223">
+<Track Flowcell="FC204PR" Lane="2" Filename="Flowcells/FC204PR/080520_FC204PR_s2_GABP_ChIP_K562_Rep1_SL223.align_25.hg18.txt" Count=" 2860313" Date="080520"/>
+<Track Flowcell="FC209VL" Lane="56" Filename="Flowcells/FC209VL/080409_FC209VL_s56_GABP_ChIP_K562_Rep1_SL223.align_25.hg18.txt" Count=" 4864011" Date="080409"/>
+<Track Flowcell="FC20AJ8" Lane="4" Filename="Flowcells/FC20AJ8/080523_FC20AJ8_s4_GABP_ChIP_K562_Rep1_SL223.align_25.hg18.txt" Count=" 3540087" Date="080523"/>
+</Library>
+<Library Name="SL224">
+<Track Flowcell="FC204PR" Lane="3" Filename="Flowcells/FC204PR/080520_FC204PR_s3_GABP_ChIP_K562_Rep2_SL224.align_25.hg18.txt" Count="      17" Date="080520"/>
+<Track Flowcell="FC209VL" Lane="78" Filename="Flowcells/FC209VL/080409_FC209VL_s78_GABP_ChIP_K562_Rep2_SL224.align_25.hg18.txt" Count=" 4173297" Date="080409"/>
+<Track Flowcell="FC20AJ8" Lane="1" Filename="Flowcells/FC20AJ8/080523_FC20AJ8_s1_GABP_ChIP_K562_Rep2_SL224.align_25.hg18.txt" Count=" 3048516" Date="080523"/>
+<Track Flowcell="FC20AJ8" Lane="5" Filename="Flowcells/FC20AJ8/080523_FC20AJ8_s5_GABP_ChIP_K562_Rep2_SL224.align_25.hg18.txt" Count=" 3259099" Date="080523"/>
+</Library>
+<Library Name="SL225">
+<Track Flowcell="FC209VY" Lane="1" Filename="Flowcells/FC209VY/080415_FC209VY_s1_MeC_DIP_GM12878_Rep1_SL225.align_25.hg18.txt" Count="  596256" Date="080415"/>
+</Library>
+<Library Name="SL226">
+<Track Flowcell="FC209VY" Lane="2" Filename="Flowcells/FC209VY/080415_FC209VY_s2_MeC_DIP_GM12878_Rep2_SL226.align_25.hg18.txt" Count="  267004" Date="080415"/>
+</Library>
+<Library Name="SL227">
+<Track Flowcell="FC209VY" Lane="3" Filename="Flowcells/FC209VY/080415_FC209VY_s3_MeC_DIP_Input_GM12878_Rep1_SL227.align_25.hg18.txt" Count=" 2207861" Date="080415"/>
+</Library>
+<Library Name="SL228">
+<Track Flowcell="FC209VY" Lane="6" Filename="Flowcells/FC209VY/080415_FC209VY_s6_MeC_DIP_Input_GM12878_Rep2_SL228.align_25.hg18.txt" Count=" 2130348" Date="080415"/>
+</Library>
+<Library Name="SL229">
+<Track Flowcell="306WNAAXX" Lane="1" Filename="Flowcells/306WNAAXX/080731_306WNAAXX_s1_Methylseq_K562_R1_hpa_SL229.align_25.hg18.txt" Count=" 2789078" Date="080731"/>
+<Track Flowcell="FC204TD" Lane="6" Filename="Flowcells/FC204TD/080509_FC204TD_s6_Methylseq_K562_R1_hpa_SL229.align_25.hg18.txt" Count=" 1710215" Date="080509"/>
+</Library>
+<Library Name="SL230">
+<Track Flowcell="306WNAAXX" Lane="2" Filename="Flowcells/306WNAAXX/080731_306WNAAXX_s2_Methylseq_K562_R1_msp_SL230.align_25.hg18.txt" Count=" 3452680" Date="080731"/>
+<Track Flowcell="FC204TD" Lane="7" Filename="Flowcells/FC204TD/080509_FC204TD_s7_Methylseq_K562_R1_msp_SL230.align_25.hg18.txt" Count=" 1645339" Date="080509"/>
+</Library>
+<Library Name="SL231">
+<Track Flowcell="306WNAAXX" Lane="3" Filename="Flowcells/306WNAAXX/080731_306WNAAXX_s3_Methylseq_K562_R2_hpa_SL231.align_25.hg18.txt" Count=" 3339995" Date="080731"/>
+<Track Flowcell="FC204TD" Lane="8" Filename="Flowcells/FC204TD/080509_FC204TD_s8_Methylseq_K562_R2_hpa_SL231.align_25.hg18.txt" Count=" 1671255" Date="080509"/>
+</Library>
+<Library Name="SL232">
+<Track Flowcell="306WNAAXX" Lane="4" Filename="Flowcells/306WNAAXX/080731_306WNAAXX_s4_Methylseq_K562_R2_msp_SL232.align_25.hg18.txt" Count=" 2608243" Date="080731"/>
+<Track Flowcell="FC209VY" Lane="7" Filename="Flowcells/FC209VY/080415_FC209VY_s7_Methylseq_K562_msp_SL232.align_25.hg18.txt" Count=" 1996275" Date="080415"/>
+</Library>
+<Library Name="SL233">
+<Track Flowcell="FC209VY" Lane="4" Filename="Flowcells/FC209VY/080415_FC209VY_s4_Input_Control_K562_Rep1_SL233.align_25.hg18.txt" Count=" 2749243" Date="080415"/>
+<Track Flowcell="FC20E3HAAXX" Lane="4" Filename="Flowcells/FC20E3HAAXX/080502_FC20E3HAAXX_s4_Input_Control_K562_Rep1_SL233.align_25.hg18.txt" Count=" 1825060" Date="080502"/>
+<Track Flowcell="FC303PRAAXX" Lane="4" Filename="Flowcells/FC303PRAAXX/080523_FC303PRAAXX_s4_Input_Control_K562_Rep1_SL233.align_25.hg18.txt" Count=" 2792190" Date="080523"/>
+</Library>
+<Library Name="SL234">
+<Track Flowcell="FC209VY" Lane="5" Filename="Flowcells/FC209VY/080415_FC209VY_s5_Input_Control_K562_Rep2_SL234.align_25.hg18.txt" Count=" 2190280" Date="080415"/>
+<Track Flowcell="FC20E3HAAXX" Lane="5" Filename="Flowcells/FC20E3HAAXX/080502_FC20E3HAAXX_s5_Input_Control_K562_Rep2_SL234.align_25.hg18.txt" Count=" 1592799" Date="080502"/>
+<Track Flowcell="FC303PRAAXX" Lane="5" Filename="Flowcells/FC303PRAAXX/080523_FC303PRAAXX_s5_Input_Control_K562_Rep2_SL234.align_25.hg18.txt" Count=" 2679553" Date="080523"/>
+</Library>
+<Library Name="SL235">
+<Track Flowcell="FC209VY" Lane="8" Filename="Flowcells/FC209VY/080415_FC209VY_s8_RNAseq_AF_sol_101_SL235.align_25.cel.txt" Count=" 2172789" Date="080415"/>
+</Library>
+<Library Name="SL236">
+<Track Flowcell="FC20AUF" Lane="3" Filename="Flowcells/FC20AUF/080418_FC20AUF_s3_RNASeq_SL236.align_25.hg18.txt" Count="  334732" Date="080418"/>
+</Library>
+<Library Name="SL237">
+<Track Flowcell="FC20AUF" Lane="6" Filename="Flowcells/FC20AUF/080418_FC20AUF_s6_DNA_nucleosomes_SL237.align_25.mm9.txt" Count=" 2337360" Date="080418"/>
+</Library>
+<Library Name="SL238">
+<Track Flowcell="FC20AUF" Lane="7" Filename="Flowcells/FC20AUF/080418_FC20AUF_s7_AF_SOL_104_SL238.align_25.hg18.txt" Count=" 2960999" Date="080418"/>
+</Library>
+<Library Name="SL239">
+<Track Flowcell="FC20AUF" Lane="8" Filename="Flowcells/FC20AUF/080418_FC20AUF_s8_AF_SOL_105_SL239.align_25.hg18.txt" Count=" 3601304" Date="080418"/>
+</Library>
+<Library Name="SL240">
+<Track Flowcell="FC20E3HAAXX" Lane="1" Filename="Flowcells/FC20E3HAAXX/080502_FC20E3HAAXX_s1_K562_RNApol2_rep1_SL240.align_25.hg18.txt" Count=" 1666658" Date="080502"/>
+<Track Flowcell="FC303PRAAXX" Lane="12" Filename="Flowcells/FC303PRAAXX/080523_FC303PRAAXX_s12_K562_RNApol2_rep1_SL240.align_25.hg18.txt" Count=" 6613625" Date="080523"/>
+</Library>
+<Library Name="SL241">
+<Track Flowcell="FC20E3HAAXX" Lane="2" Filename="Flowcells/FC20E3HAAXX/080502_FC20E3HAAXX_s2_K562_RNApol2_rep2_SL241.align_25.hg18.txt" Count=" 2005718" Date="080502"/>
+<Track Flowcell="FC303PRAAXX" Lane="36" Filename="Flowcells/FC303PRAAXX/080523_FC303PRAAXX_s36_K562_RNApol2_rep2_SL241.align_25.hg18.txt" Count=" 5690721" Date="080523"/>
+</Library>
+<Library Name="SL242">
+<Track Flowcell="FC20E3HAAXX" Lane="36" Filename="Flowcells/FC20E3HAAXX/080502_FC20E3HAAXX_s36_K562_TAF250_Rep1_SL242.align_25.hg18.txt" Count=" 3378725" Date="080502"/>
+<Track Flowcell="FC303PRAAXX" Lane="7" Filename="Flowcells/FC303PRAAXX/080523_FC303PRAAXX_s7_K562_TAF250_Rep1_SL242.align_25.hg18.txt" Count=" 1171122" Date="080523"/>
+</Library>
+<Library Name="SL243">
+<Track Flowcell="FC20E3HAAXX" Lane="78" Filename="Flowcells/FC20E3HAAXX/080502_FC20E3HAAXX_s78_K562_TAF250_Rep2_SL243.align_25.hg18.txt" Count=" 4628303" Date="080502"/>
+<Track Flowcell="FC303PRAAXX" Lane="8" Filename="Flowcells/FC303PRAAXX/080523_FC303PRAAXX_s8_K562_TAF250_Rep2_SL243.align_25.hg18.txt" Count=" 2228574" Date="080523"/>
+</Library>
+<Library Name="SL244">
+<Track Flowcell="303y5aaxx" Lane="3" Filename="Flowcells/303y5aaxx/080715_303y5aaxx_s3_ChIPseq_A549_Pol2_Dex_SL244.align_25.hg18.txt" Count=" 4670412" Date="080715"/>
+<Track Flowcell="FC204GV" Lane="4" Filename="Flowcells/FC204GV/080429_FC204GV_s4_ChIPseq_A549_Pol2_Dex_SL244.align_25.hg18.txt" Count=" 1143215" Date="080429"/>
+<Track Flowcell="FC204GW" Lane="5" Filename="Flowcells/FC204GW/080503_FC204GW_s5_ChIPseq_A549_Pol2_Dex_SL244.align_25.hg18.txt" Count=" 2893570" Date="080503"/>
+<Track Flowcell="FC204PR" Lane="4" Filename="Flowcells/FC204PR/080520_FC204PR_s4_ChIPseq_A549_Pol2_Dex_SL244.align_25.hg18.txt" Count=" 2984654" Date="080520"/>
+</Library>
+<Library Name="SL245">
+<Track Flowcell="303y5aaxx" Lane="4" Filename="Flowcells/303y5aaxx/080715_303y5aaxx_s4_ChIPSeq_A549_Pol2_EtOH_SL245.align_25.hg18.txt" Count=" 5705811" Date="080715"/>
+<Track Flowcell="FC204GV" Lane="5" Filename="Flowcells/FC204GV/080429_FC204GV_s5_ChIPSeq_A549_Pol2_EtOH_SL245.align_25.hg18.txt" Count=" 1331975" Date="080429"/>
+<Track Flowcell="FC204GW" Lane="6" Filename="Flowcells/FC204GW/080503_FC204GW_s6_ChIPSeq_A549_Pol2_EtOH_SL245.align_25.hg18.txt" Count=" 3378626" Date="080503"/>
+<Track Flowcell="FC204PR" Lane="5" Filename="Flowcells/FC204PR/080520_FC204PR_s5_ChIPSeq_A549_Pol2_EtOH_SL245.align_25.hg18.txt" Count=" 3137998" Date="080520"/>
+</Library>
+<Library Name="SL246">
+<Track Flowcell="303y5aaxx" Lane="1" Filename="Flowcells/303y5aaxx/080715_303y5aaxx_s1_ChIPSeq_A549_M20_GR_Dex_SL246.align_25.hg18.txt" Count=" 2056910" Date="080715"/>
+<Track Flowcell="FC204JB" Lane="2" Filename="Flowcells/FC204JB/080507_FC204JB_s2_ChIPSeq_A549_M20_GR_Dex_SL246.align_25.hg18.txt" Count=" 1321687" Date="080507"/>
+<Track Flowcell="FC204PR" Lane="6" Filename="Flowcells/FC204PR/080520_FC204PR_s6_ChIPSeq_A549_M20_GR_Dex_SL246.align_25.hg18.txt" Count=" 1321643" Date="080520"/>
+<Track Flowcell="FC20AUF" Lane="4" Filename="Flowcells/FC20AUF/080418_FC20AUF_s4_ChIPSeq_A549_M20_GR_Dex_SL246.align_25.hg18.txt" Count=" 1236139" Date="080418"/>
+<Track Flowcell="FC20AUM" Lane="6" Filename="Flowcells/FC20AUM/080616_FC20AUM_s6_ChIPSeq_A549_M20_GR_Dex_SL246.align_25.hg18.txt" Count=" 1449936" Date="080616"/>
+<Track Flowcell="FC20AUM" Lane="7" Filename="Flowcells/FC20AUM/080616_FC20AUM_s7_ChIPSeq_A549_M20_GR_Dex_SL246.align_25.hg18.txt" Count=" 1599501" Date="080616"/>
+<Track Flowcell="FC20AUM" Lane="8" Filename="Flowcells/FC20AUM/080616_FC20AUM_s8_ChIPSeq_A549_M20_GR_Dex_SL246.align_25.hg18.txt" Count=" 1605226" Date="080616"/>
+</Library>
+<Library Name="SL247">
+<Track Flowcell="303y5aaxx" Lane="2" Filename="Flowcells/303y5aaxx/080715_303y5aaxx_s2_ChIPSeq_A549_M20_GR_EtOH_SL247.align_25.hg18.txt" Count=" 3710876" Date="080715"/>
+<Track Flowcell="FC204JB" Lane="4" Filename="Flowcells/FC204JB/080507_FC204JB_s4_ChIPSeq_A549_M20_GR_EtOH_SL247.align_25.hg18.txt" Count=" 2448458" Date="080507"/>
+<Track Flowcell="FC204PR" Lane="7" Filename="Flowcells/FC204PR/080520_FC204PR_s7_ChIPSeq_A549_M20_GR_EtOH_SL247.align_25.hg18.txt" Count=" 2346726" Date="080520"/>
+<Track Flowcell="FC20AUF" Lane="5" Filename="Flowcells/FC20AUF/080418_FC20AUF_s5_ChIPSeq_A549_M20_GR_EtOH_SL247.align_25.hg18.txt" Count=" 2148284" Date="080418"/>
+</Library>
+<Library Name="SL248">
+<Track Flowcell="FC204GV" Lane="6" Filename="Flowcells/FC204GV/080429_FC204GV_s6_XRLP_041408_SL248.align_25.scer.txt" Count=" 2411445" Date="080429"/>
+</Library>
+<Library Name="SL249">
+<Track Flowcell="FC204GV" Lane="7" Filename="Flowcells/FC204GV/080429_FC204GV_s7_NaCl_041408_SL249.align_25.scer.txt" Count=" 2433903" Date="080429"/>
+</Library>
+<Library Name="SL250">
+<Track Flowcell="FC204GV" Lane="8" Filename="Flowcells/FC204GV/080429_FC204GV_s8_WT_041408_SL250.align_25.scer.txt" Count=" 2135397" Date="080429"/>
+</Library>
+<Library Name="SL259">
+<Track Flowcell="FC204JB" Lane="3" Filename="Flowcells/FC204JB/080507_FC204JB_s3_Input_Control_Namwala_RX_Ch_SL259.align_25.hg18.txt" Count=" 3608279" Date="080507"/>
+</Library>
+<Library Name="SL260">
+<Track Flowcell="FC204JB" Lane="5" Filename="Flowcells/FC204JB/080507_FC204JB_s5_Input_Control_MNase_UB_SL260.align_25.hg18.txt" Count=" 2239155" Date="080507"/>
+</Library>
+<Library Name="SL261">
+<Track Flowcell="FC204JB" Lane="6" Filename="Flowcells/FC204JB/080507_FC204JB_s6_Input_Control_MNase_LB_SL261.align_25.hg18.txt" Count=" 4413501" Date="080507"/>
+</Library>
+<Library Name="SL262">
+<Track Flowcell="FC204JB" Lane="7" Filename="Flowcells/FC204JB/080507_FC204JB_s7_ChIPSeq_Namwala_Pol2_MNase_UB_SL262.align_25.hg18.txt" Count=" 2135250" Date="080507"/>
+</Library>
+<Library Name="SL263">
+<Track Flowcell="FC204JB" Lane="8" Filename="Flowcells/FC204JB/080507_FC204JB_s8_ChIPSeq_Namwala_Pol2_MNase_LB_SL263.align_25.hg18.txt" Count=" 4570064" Date="080507"/>
+</Library>
+<Library Name="SL264">
+<Track Flowcell="FC204JB" Lane="1" Filename="Flowcells/FC204JB/080507_FC204JB_s1_RNASeq_GM12878_Rep1_SL264.align_25.hg18.txt" Count=" 3546913" Date="080507"/>
+</Library>
+<Library Name="SL265">
+<Track Flowcell="FC204TD" Lane="1" Filename="Flowcells/FC204TD/080509_FC204TD_s1_RNASeq_K562_Rep1_SL265.align_25.hg18.txt" Count=" 3677080" Date="080509"/>
+</Library>
+<Library Name="SL266">
+<Track Flowcell="FC204TD" Lane="2" Filename="Flowcells/FC204TD/080509_FC204TD_s2_RNASeq_K562_Rep2_SL266.align_25.hg18.txt" Count=" 3565092" Date="080509"/>
+</Library>
+<Library Name="SL269">
+<Track Flowcell="FC204MT" Lane="1" Filename="Flowcells/FC204MT/080512_FC204MT_s1_MCF7_ChIPSeq_GR_Dex_SL269.align_25.hg18.txt" Count=" 2282494" Date="080512"/>
+</Library>
+<Library Name="SL270">
+<Track Flowcell="FC204MT" Lane="2" Filename="Flowcells/FC204MT/080512_FC204MT_s2_MCF7_ChIPSeq_GR_EtOH_SL270.align_25.hg18.txt" Count=" 2399296" Date="080512"/>
+</Library>
+<Library Name="SL271">
+<Track Flowcell="FC204MT" Lane="3" Filename="Flowcells/FC204MT/080512_FC204MT_s3_MCF7_ChIPSeq_Pol2_Dex_SL271.align_25.hg18.txt" Count=" 2884011" Date="080512"/>
+</Library>
+<Library Name="SL272">
+<Track Flowcell="FC204MT" Lane="4" Filename="Flowcells/FC204MT/080512_FC204MT_s4_ChIPSeq_MCF7_Pol2_EtOH_SL272.align_25.hg18.txt" Count=" 3016679" Date="080512"/>
+</Library>
+<Library Name="SL273">
+<Track Flowcell="209UKAAXX" Lane="1" Filename="Flowcells/209UKAAXX/080528_209UKAAXX_s1_ChIPSeq_HepG2_Rep1_NRSF_SL273.align_25.hg18.txt" Count=" 1096000" Date="080528"/>
+<Track Flowcell="209UKAAXX" Lane="2" Filename="Flowcells/209UKAAXX/080528_209UKAAXX_s2_ChIPSeq_HepG2_Rep1_NRSF_SL273.align_25.hg18.txt" Count=" 1197533" Date="080528"/>
+<Track Flowcell="209UKAAXX" Lane="3" Filename="Flowcells/209UKAAXX/080528_209UKAAXX_s3_ChIPSeq_HepG2_Rep1_NRSF_SL273.align_25.hg18.txt" Count=" 1437394" Date="080528"/>
+<Track Flowcell="209UKAAXX" Lane="4" Filename="Flowcells/209UKAAXX/080528_209UKAAXX_s4_ChIPSeq_HepG2_Rep1_NRSF_SL273.align_25.hg18.txt" Count=" 1523562" Date="080528"/>
+<Track Flowcell="306P2AAXX" Lane="4" Filename="Flowcells/306P2AAXX/080722_306P2AAXX_s4_ChIPSeq_HepG2_Rep1_NRSF_SL273.align_25.hg18.txt" Count=" 3111388" Date="080722"/>
+<Track Flowcell="FC204MT" Lane="5" Filename="Flowcells/FC204MT/080512_FC204MT_s5_ChIPSeq_HepG2_Rep1_NRSF_SL273.align_25.hg18.txt" Count=" 2875972" Date="080512"/>
+</Library>
+<Library Name="SL274">
+<Track Flowcell="209UKAAXX" Lane="5" Filename="Flowcells/209UKAAXX/080528_209UKAAXX_s5_ChIPSeq_HepG2_Rep2_NRSF_SL274.align_25.hg18.txt" Count=" 1726267" Date="080528"/>
+<Track Flowcell="209UKAAXX" Lane="6" Filename="Flowcells/209UKAAXX/080528_209UKAAXX_s6_ChIPSeq_HepG2_Rep2_NRSF_SL274.align_25.hg18.txt" Count=" 1693140" Date="080528"/>
+<Track Flowcell="209UKAAXX" Lane="7" Filename="Flowcells/209UKAAXX/080528_209UKAAXX_s7_ChIPSeq_HepG2_Rep2_NRSF_SL274.align_25.hg18.txt" Count=" 1537265" Date="080528"/>
+<Track Flowcell="209UKAAXX" Lane="8" Filename="Flowcells/209UKAAXX/080528_209UKAAXX_s8_ChIPSeq_HepG2_Rep2_NRSF_SL274.align_25.hg18.txt" Count=" 1364998" Date="080528"/>
+<Track Flowcell="306P2AAXX" Lane="3" Filename="Flowcells/306P2AAXX/080722_306P2AAXX_s3_ChIPSeq_HepG2_Rep2_NRSF_SL274.align_25.hg18.txt" Count=" 3945743" Date="080722"/>
+<Track Flowcell="FC204MT" Lane="6" Filename="Flowcells/FC204MT/080512_FC204MT_s6_ChIPSeq_HepG2_Rep2_NRSF_SL274.align_25.hg18.txt" Count=" 2969609" Date="080512"/>
+</Library>
+<Library Name="SL275">
+<Track Flowcell="306P2AAXX" Lane="2" Filename="Flowcells/306P2AAXX/080722_306P2AAXX_s2_ChIPSeq_HepG2_Rep1_GABP_SL275.align_25.hg18.txt" Count=" 4599829" Date="080722"/>
+<Track Flowcell="FC204MT" Lane="7" Filename="Flowcells/FC204MT/080512_FC204MT_s7_ChIPSeq_HepG2_Rep1_GABP_SL275.align_25.hg18.txt" Count=" 3373373" Date="080512"/>
+</Library>
+<Library Name="SL276">
+<Track Flowcell="306P2AAXX" Lane="1" Filename="Flowcells/306P2AAXX/080722_306P2AAXX_s1_ChIPSeq_HepG2_Rep2_GABP_SL276.align_25.hg18.txt" Count=" 4297640" Date="080722"/>
+<Track Flowcell="FC204MT" Lane="8" Filename="Flowcells/FC204MT/080512_FC204MT_s8_ChIPSeq_HepG2_Rep2_GABP_SL276.align_25.hg18.txt" Count=" 3252004" Date="080512"/>
+</Library>
+<Library Name="SL277">
+<Track Flowcell="FC20ATL" Lane="2" Filename="Flowcells/FC20ATL/080527_FC20ATL_s2_ChIPSeq_Jurkat_S_S_Rep1_SRF_SL277.align_25.hg18.txt" Count=" 3716401" Date="080527"/>
+</Library>
+<Library Name="SL280">
+<Track Flowcell="FC20AJ8" Lane="2" Filename="Flowcells/FC20AJ8/080523_FC20AJ8_s2_RNASeq_HepG2_Rep1_SL280.align_25.hg18.txt" Count="  194175" Date="080523"/>
+</Library>
+<Library Name="SL281">
+<Track Flowcell="FC20AJ8" Lane="3" Filename="Flowcells/FC20AJ8/080523_FC20AJ8_s3_RNASeq_HepG2_Rep2_SL281.align_25.hg18.txt" Count="  421392" Date="080523"/>
+</Library>
+<Library Name="SL288">
+<Track Flowcell="306P2AAXX" Lane="8" Filename="Flowcells/306P2AAXX/080722_306P2AAXX_s8_ChIPSeq_GM12878_Rep1_TAF250_SL288.align_25.hg18.txt" Count=" 2153614" Date="080722"/>
+<Track Flowcell="FC20AJ8" Lane="6" Filename="Flowcells/FC20AJ8/080523_FC20AJ8_s6_ChIPSeq_GM12878_Rep1_TAF250_SL288.align_25.hg18.txt" Count=" 3168587" Date="080523"/>
+</Library>
+<Library Name="SL289">
+<Track Flowcell="FC20AJ8" Lane="7" Filename="Flowcells/FC20AJ8/080523_FC20AJ8_s7_ChIPSeq_K562_Rep1_SRF_SL289.align_25.hg18.txt" Count=" 2705050" Date="080523"/>
+</Library>
+<Library Name="SL290">
+<Track Flowcell="FC20AJ8" Lane="8" Filename="Flowcells/FC20AJ8/080523_FC20AJ8_s8_ChIPSeq_K562_Rep2_SRF_SL290.align_25.hg18.txt" Count=" 2889602" Date="080523"/>
+</Library>
+<Library Name="SL291">
+<Track Flowcell="2087VAAXX" Lane="1" Filename="Flowcells/2087VAAXX/080611_2087VAAXX_s1_ChIPSeq_GM12878_Rep1_SRF_SL291.align_25.hg18.txt" Count=" 2326626" Date="080611"/>
+<Track Flowcell="2087VAAXX" Lane="5" Filename="Flowcells/2087VAAXX/080611_2087VAAXX_s5_ChIPSeq_GM12878_Rep1_SRF_SL291.align_25.hg18.txt" Count=" 2283483" Date="080611"/>
+<Track Flowcell="FC20ATH" Lane="1" Filename="Flowcells/FC20ATH/080602_FC20ATH_s1_ChIP-seq_SRF_GM12878_Rep1_SL291.align_25.hg18.txt" Count=" 1165384" Date="080602"/>
+</Library>
+<Library Name="SL292">
+<Track Flowcell="2087VAAXX" Lane="2" Filename="Flowcells/2087VAAXX/080611_2087VAAXX_s2_ChIPSeq_GM12878_Rep2_SRF_SL292.align_25.hg18.txt" Count=" 2117859" Date="080611"/>
+<Track Flowcell="2087VAAXX" Lane="6" Filename="Flowcells/2087VAAXX/080611_2087VAAXX_s6_ChIPSeq_GM12878_Rep2_SRF_SL292.align_25.hg18.txt" Count=" 2135165" Date="080611"/>
+<Track Flowcell="FC20ATH" Lane="2" Filename="Flowcells/FC20ATH/080602_FC20ATH_s2_ChIP-seq_SRF_GM12878_Rep2_SL292.align_25.hg18.txt" Count=" 2027947" Date="080602"/>
+</Library>
+<Library Name="SL293">
+<Track Flowcell="2087VAAXX" Lane="3" Filename="Flowcells/2087VAAXX/080611_2087VAAXX_s3_ChIPSeq_GM12878_Rep2_TAF250_SL293.align_25.hg18.txt" Count=" 2598142" Date="080611"/>
+<Track Flowcell="2087VAAXX" Lane="7" Filename="Flowcells/2087VAAXX/080611_2087VAAXX_s7_ChIPSeq_GM12878_Rep2_TAF250_SL293.align_25.hg18.txt" Count=" 2556642" Date="080611"/>
+<Track Flowcell="FC20ATH" Lane="3" Filename="Flowcells/FC20ATH/080602_FC20ATH_s3_ChIP-seq_TAF250_GM12878_Rep2_SL293.align_25.hg18.txt" Count=" 2398112" Date="080602"/>
+</Library>
+<Library Name="SL294">
+<Track Flowcell="2087VAAXX" Lane="8" Filename="Flowcells/2087VAAXX/080611_2087VAAXX_s8_ChIPSeq_HepG2_Rep1_InputControl_RXLCh_SL294.align_25.hg18.txt" Count=" 2190318" Date="080611"/>
+<Track Flowcell="306P2AAXX" Lane="7" Filename="Flowcells/306P2AAXX/080722_306P2AAXX_s7_Input_Control_HepG2_Rep1_SL294.align_25.hg18.txt" Count=" 1918136" Date="080722"/>
+<Track Flowcell="FC20ATH" Lane="4" Filename="Flowcells/FC20ATH/080602_FC20ATH_s4_Input_Control_HepG2_Rep1_SL294.align_25.hg18.txt" Count=" 2168270" Date="080602"/>
+</Library>
+<Library Name="SL295">
+<Track Flowcell="306P2AAXX" Lane="5" Filename="Flowcells/306P2AAXX/080722_306P2AAXX_s5_Input_Control_HepG2_Rep2_SL295.align_25.hg18.txt" Count=" 2771168" Date="080722"/>
+<Track Flowcell="306P2AAXX" Lane="6" Filename="Flowcells/306P2AAXX/080722_306P2AAXX_s6_Input_Control_HepG2_Rep2_SL295.align_25.hg18.txt" Count=" 1633531" Date="080722"/>
+<Track Flowcell="FC20ATH" Lane="5" Filename="Flowcells/FC20ATH/080602_FC20ATH_s5_Input_Control_HepG2_Rep2_SL295.align_25.hg18.txt" Count=" 1970158" Date="080602"/>
+</Library>
+<Library Name="SL296">
+<Track Flowcell="FC209TJ" Lane="5" Filename="Flowcells/FC209TJ/080606_FC209TJ_s5_Methylseq_GM12878_R1_hpa_1pcr_SL296.align_25.hg18.txt" Count=" 2940725" Date="080606"/>
+</Library>
+<Library Name="SL297">
+<Track Flowcell="FC209TJ" Lane="6" Filename="Flowcells/FC209TJ/080606_FC209TJ_s6_Methylseq_GM12878_R2_hpa_2pcr_SL297.align_25.hg18.txt" Count=" 2634191" Date="080606"/>
+</Library>
+<Library Name="SL298">
+<Track Flowcell="FC209TJ" Lane="7" Filename="Flowcells/FC209TJ/080606_FC209TJ_s7_Methylseq_GM12878_R1_msp_1pcr_SL298.align_25.hg18.txt" Count=" 2516383" Date="080606"/>
+</Library>
+<Library Name="SL299">
+<Track Flowcell="FC209TJ" Lane="8" Filename="Flowcells/FC209TJ/080606_FC209TJ_s8_Methylseq_GM12878_R2_msp_2pcr_SL299.align_25.hg18.txt" Count=" 1951342" Date="080606"/>
+</Library>
+<Library Name="SL300">
+<Track Flowcell="306WNAAXX" Lane="5" Filename="Flowcells/306WNAAXX/080731_306WNAAXX_s5_Methyl-seq_HepG2__rep1_hpa_1PCR_SL300.align_25.hg18.txt" Count=" 1404807" Date="080731"/>
+</Library>
+<Library Name="SL301">
+<Track Flowcell="306WNAAXX" Lane="6" Filename="Flowcells/306WNAAXX/080731_306WNAAXX_s6_Methyl-seq_HepG2__rep2_hpa_2PCR_SL301.align_25.hg18.txt" Count=" 1216872" Date="080731"/>
+</Library>
+<Library Name="SL302">
+<Track Flowcell="306WNAAXX" Lane="7" Filename="Flowcells/306WNAAXX/080731_306WNAAXX_s7_Methyl-seq_HepG2__rep2_msp_1PCR_SL302.align_25.hg18.txt" Count=" 1205138" Date="080731"/>
+</Library>
+<Library Name="SL303">
+<Track Flowcell="306WNAAXX" Lane="8" Filename="Flowcells/306WNAAXX/080731_306WNAAXX_s8_Methyl-seq_HepG2__rep2_msp_2PCR_SL303.align_25.hg18.txt" Count="  856073" Date="080731"/>
+</Library>
+<Library Name="SL304">
+<Track Flowcell="3072MAAXX" Lane="3" Filename="Flowcells/3072MAAXX/080722_3072MAAXX_s3_A549_Rep2_GR_Dex_ChIP_SL304.align_25.hg18.txt" Count=" 3036609" Date="080722"/>
+<Track Flowcell="3072MAAXX" Lane="4" Filename="Flowcells/3072MAAXX/080722_3072MAAXX_s4_A549_Rep2_GR_Dex_ChIP_SL304.align_25.hg18.txt" Count=" 2826138" Date="080722"/>
+<Track Flowcell="FC20AUG" Lane="5" Filename="Flowcells/FC20AUG/080612_FC20AUG_s5_A549_Rep2_GR_Dex_ChIP_SL304.align_25.hg18.txt" Count=" 2357287" Date="080612"/>
+</Library>
+<Library Name="SL305">
+<Track Flowcell="FC20AUG" Lane="6" Filename="Flowcells/FC20AUG/080612_FC20AUG_s6_A549_Rep2_GR_EtOH_ChIP_SL305.align_25.hg18.txt" Count=" 2182536" Date="080612"/>
+</Library>
+<Library Name="SL306">
+<Track Flowcell="3072MAAXX" Lane="5" Filename="Flowcells/3072MAAXX/080722_3072MAAXX_s5_A549_Rep2_Pol2_Dex_ChIP_SL306.align_25.hg18.txt" Count=" 3787015" Date="080722"/>
+<Track Flowcell="3072MAAXX" Lane="6" Filename="Flowcells/3072MAAXX/080722_3072MAAXX_s6_A549_Rep2_Pol2_Dex_ChIP_SL306.align_25.hg18.txt" Count=" 3262311" Date="080722"/>
+<Track Flowcell="3072MAAXX" Lane="7" Filename="Flowcells/3072MAAXX/080722_3072MAAXX_s7_A549_Rep2_Pol2_Dex_ChIP_SL306.align_25.hg18.txt" Count=" 2664712" Date="080722"/>
+<Track Flowcell="3072MAAXX" Lane="8" Filename="Flowcells/3072MAAXX/080722_3072MAAXX_s8_A549_Rep2_Pol2_Dex_ChIP_SL306.align_25.hg18.txt" Count=" 2082693" Date="080722"/>
+<Track Flowcell="FC20AUG" Lane="7" Filename="Flowcells/FC20AUG/080612_FC20AUG_s7_A549_Rep2_Pol2_Dex_ChIP_SL306.align_25.hg18.txt" Count=" 4246636" Date="080612"/>
+</Library>
+<Library Name="SL307">
+<Track Flowcell="3072MAAXX" Lane="1" Filename="Flowcells/3072MAAXX/080722_3072MAAXX_s1_A549_EtOH_RX_noIP_SL307.align_25.hg18.txt" Count=" 3727098" Date="080722"/>
+<Track Flowcell="3072MAAXX" Lane="2" Filename="Flowcells/3072MAAXX/080722_3072MAAXX_s2_A549_EtOH_RX_noIP_SL307.align_25.hg18.txt" Count=" 4398655" Date="080722"/>
+<Track Flowcell="FC20AUG" Lane="8" Filename="Flowcells/FC20AUG/080612_FC20AUG_s8_A549_EtOH_RX_noIP_SL307.align_25.hg18.txt" Count=" 3738550" Date="080612"/>
+</Library>
+<Library Name="SL310">
+<Track Flowcell="FC20ATH" Lane="6" Filename="Flowcells/FC20ATH/080602_FC20ATH_s6_RNA-seq_GM12878_Rep2_SL310.align_25.hg18.txt" Count=" 3087245" Date="080602"/>
+</Library>
+<Library Name="SL311">
+<Track Flowcell="FC20AUM" Lane="1" Filename="Flowcells/FC20AUM/080616_FC20AUM_s1_RNASeq_BJ_rep1_SL311.align_25.hg18.txt" Count=" 3688931" Date="080616"/>
+</Library>
+<Library Name="SL312">
+<Track Flowcell="FC20ATH" Lane="7" Filename="Flowcells/FC20ATH/080602_FC20ATH_s7_RNA-seq_HepG2_Rep1_SL312.align_25.hg18.txt" Count=" 3535250" Date="080602"/>
+</Library>
+<Library Name="SL313">
+<Track Flowcell="FC20ATH" Lane="8" Filename="Flowcells/FC20ATH/080602_FC20ATH_s8_RNA-seq_HepG2_Rep2_SL313.align_25.hg18.txt" Count=" 3462781" Date="080602"/>
+</Library>
+<Library Name="SL314">
+<Track Flowcell="FC20AUM" Lane="2" Filename="Flowcells/FC20AUM/080616_FC20AUM_s2_RNA-seq_HMEC_rep1_SL314.align_25.hg18.txt" Count=" 4056466" Date="080616"/>
+</Library>
+<Library Name="SL315">
+<Track Flowcell="FC20AUM" Lane="3" Filename="Flowcells/FC20AUM/080616_FC20AUM_s3_RNA-seq_HMEC_rep2_SL315.align_25.hg18.txt" Count=" 3958633" Date="080616"/>
+</Library>
+<Library Name="SL316">
+<Track Flowcell="306WKAAXX" Lane="5" Filename="Flowcells/306WKAAXX/080728_306WKAAXX_s5_RNAseq_Jurkat_rep1_SL316.align_25.hg18.txt" Count=" 2116970" Date="080728"/>
+<Track Flowcell="306WKAAXX" Lane="6" Filename="Flowcells/306WKAAXX/080728_306WKAAXX_s6_RNAseq_Jurkat_rep1_SL316.align_25.hg18.txt" Count=" 3213207" Date="080728"/>
+<Track Flowcell="FC20AUM" Lane="4" Filename="Flowcells/FC20AUM/080616_FC20AUM_s4_RNAseq_Jurkat_rep1_SL316.align_25.hg18.txt" Count=" 3926383" Date="080616"/>
+</Library>
+<Library Name="SL317">
+<Track Flowcell="306WKAAXX" Lane="7" Filename="Flowcells/306WKAAXX/080728_306WKAAXX_s7_RNAseq_Jurkat_rep2_SL317.align_25.hg18.txt" Count=" 4116201" Date="080728"/>
+<Track Flowcell="306WKAAXX" Lane="8" Filename="Flowcells/306WKAAXX/080728_306WKAAXX_s8_RNAseq_Jurkat_rep2_SL317.align_25.hg18.txt" Count=" 3689888" Date="080728"/>
+<Track Flowcell="FC20AUM" Lane="5" Filename="Flowcells/FC20AUM/080616_FC20AUM_s5_RNAseq_Jurkat_rep2_SL317.align_25.hg18.txt" Count=" 4104444" Date="080616"/>
+</Library>
+<Library Name="SL318">
+<Track Flowcell="FC20AMC" Lane="1" Filename="Flowcells/FC20AMC/080609_FC20AMC_s1_ChIP-seq_hESC_K36_repurified_SL318.align_25.hg18.txt" Count="  971624" Date="080609"/>
+</Library>
+<Library Name="SL319">
+<Track Flowcell="FC20AMC" Lane="2" Filename="Flowcells/FC20AMC/080609_FC20AMC_s2_ChIP-seq_hESC_K27_repurified_SL319.align_25.hg18.txt" Count="  365209" Date="080609"/>
+</Library>
+<Library Name="SL320">
+<Track Flowcell="FC20AMC" Lane="3" Filename="Flowcells/FC20AMC/080609_FC20AMC_s3_ChIP-seq_hESC_Pol2_repurified_SL320.align_25.hg18.txt" Count="  643582" Date="080609"/>
+</Library>
+<Library Name="SL321">
+<Track Flowcell="FC20AMC" Lane="4" Filename="Flowcells/FC20AMC/080609_FC20AMC_s4_Input_Control_hESC_Repurified_SL321.align_25.hg18.txt" Count=" 1384822" Date="080609"/>
+</Library>
+<Library Name="SL322">
+<Track Flowcell="FC209TJ" Lane="1" Filename="Flowcells/FC209TJ/080606_FC209TJ_s1_ChIpSeq_hESCday5_K4_SL322.align_25.hg18.txt" Count="  578452" Date="080606"/>
+</Library>
+<Library Name="SL323">
+<Track Flowcell="FC209TJ" Lane="2" Filename="Flowcells/FC209TJ/080606_FC209TJ_s2_Input_Control_hESCday5_SL323.align_25.hg18.txt" Count=" 1756643" Date="080606"/>
+</Library>
+<Library Name="SL324">
+<Track Flowcell="FC209TJ" Lane="3" Filename="Flowcells/FC209TJ/080606_FC209TJ_s3_ChIpSeq_hESCday5_K27_SL324.align_25.hg18.txt" Count=" 1306396" Date="080606"/>
+</Library>
+<Library Name="SL325">
+<Track Flowcell="FC209TJ" Lane="4" Filename="Flowcells/FC209TJ/080606_FC209TJ_s4_ChIpSeq_hESCday5_K36_SL325.align_25.hg18.txt" Count="  478866" Date="080606"/>
+</Library>
+<Library Name="SL326">
+<Track Flowcell="FC20AUG" Lane="1" Filename="Flowcells/FC20AUG/080612_FC20AUG_s1_RNA-seq_BJ_Rep2_75_SL326.align_25.hg18.txt" Count=" 3188417" Date="080612"/>
+</Library>
+<Library Name="SL327">
+<Track Flowcell="FC20AUG" Lane="2" Filename="Flowcells/FC20AUG/080612_FC20AUG_s2_RNA-seq_K562_Rep3_75_SL327.align_25.hg18.txt" Count=" 3717306" Date="080612"/>
+</Library>
+<Library Name="SL328">
+<Track Flowcell="FC20AUG" Lane="3" Filename="Flowcells/FC20AUG/080612_FC20AUG_s3_RNA-seq_BJ_Rep2_7_5_SL328.align_25.hg18.txt" Count=" 3864656" Date="080612"/>
+</Library>
+<Library Name="SL329">
+<Track Flowcell="FC20AUG" Lane="4" Filename="Flowcells/FC20AUG/080612_FC20AUG_s4_RNA-seq_K562_Rep3_7_5_SL329.align_25.hg18.txt" Count=" 3915270" Date="080612"/>
+</Library>
+<Library Name="SL330">
+<Track Flowcell="303n0aaxx" Lane="1" Filename="Flowcells/303n0aaxx/080715_303n0aaxx_s1_RNA-seq_A549_Rep1_Dex_SL330.align_25.hg18.txt" Count=" 1006720" Date="080715"/>
+<Track Flowcell="303n0aaxx" Lane="2" Filename="Flowcells/303n0aaxx/080715_303n0aaxx_s2_RNA-seq_A549_Rep1_Dex_SL330.align_25.hg18.txt" Count=" 1140136" Date="080715"/>
+<Track Flowcell="306WKAAXX" Lane="1" Filename="Flowcells/306WKAAXX/080728_306WKAAXX_s1_RNA-seq_A549_Rep1_Dex_SL330.align_25.hg18.txt" Count=" 3860069" Date="080728"/>
+<Track Flowcell="FC20AMC" Lane="5" Filename="Flowcells/FC20AMC/080609_FC20AMC_s5_RNA-seq_A549_Rep1_Dex_SL330.align_25.hg18.txt" Count=" 2586689" Date="080609"/>
+<Track Flowcell="FC306VCAAXX" Lane="1" Filename="Flowcells/FC306VCAAXX/080725_FC306VCAAXX_s1_RNA-seq_A549_Rep1_Dex_SL330.align_25.hg18.txt" Count=" 2607495" Date="080725"/>
+<Track Flowcell="FC306VCAAXX" Lane="2" Filename="Flowcells/FC306VCAAXX/080725_FC306VCAAXX_s2_RNA-seq_A549_Rep1_Dex_SL330.align_25.hg18.txt" Count=" 2538777" Date="080725"/>
+</Library>
+<Library Name="SL331">
+<Track Flowcell="303n0aaxx" Lane="5" Filename="Flowcells/303n0aaxx/080715_303n0aaxx_s5_RNA-seq_A549_Rep1_EtOH_SL331.align_25.hg18.txt" Count=" 2173243" Date="080715"/>
+<Track Flowcell="303n0aaxx" Lane="6" Filename="Flowcells/303n0aaxx/080715_303n0aaxx_s6_RNA-seq_A549_Rep1_EtOH_SL331.align_25.hg18.txt" Count=" 2197491" Date="080715"/>
+<Track Flowcell="306WKAAXX" Lane="2" Filename="Flowcells/306WKAAXX/080728_306WKAAXX_s2_RNA-seq_A549_Rep1_EtOH_SL331.align_25.hg18.txt" Count=" 3706943" Date="080728"/>
+<Track Flowcell="FC20AMC" Lane="6" Filename="Flowcells/FC20AMC/080609_FC20AMC_s6_RNA-seq_A549_Rep1_EtOH_SL331.align_25.hg18.txt" Count=" 2877770" Date="080609"/>
+<Track Flowcell="FC306VCAAXX" Lane="5" Filename="Flowcells/FC306VCAAXX/080725_FC306VCAAXX_s5_RNA-seq_A549_Rep1_EtOH_SL331.align_25.hg18.txt" Count=" 1159780" Date="080725"/>
+<Track Flowcell="FC306VCAAXX" Lane="6" Filename="Flowcells/FC306VCAAXX/080725_FC306VCAAXX_s6_RNA-seq_A549_Rep1_EtOH_SL331.align_25.hg18.txt" Count=" 1488352" Date="080725"/>
+</Library>
+<Library Name="SL332">
+<Track Flowcell="303n0aaxx" Lane="3" Filename="Flowcells/303n0aaxx/080715_303n0aaxx_s3_RNA-seq_A549_Rep2_Dex_SL332.align_25.hg18.txt" Count=" 1087155" Date="080715"/>
+<Track Flowcell="303n0aaxx" Lane="4" Filename="Flowcells/303n0aaxx/080715_303n0aaxx_s4_RNA-seq_A549_Rep2_Dex_SL332.align_25.hg18.txt" Count=" 1070083" Date="080715"/>
+<Track Flowcell="306WKAAXX" Lane="3" Filename="Flowcells/306WKAAXX/080728_306WKAAXX_s3_RNA-seq_A549_Rep2_Dex_SL332.align_25.hg18.txt" Count=" 4289055" Date="080728"/>
+<Track Flowcell="FC20AMC" Lane="7" Filename="Flowcells/FC20AMC/080609_FC20AMC_s7_RNA-seq_A549_Rep2_Dex_SL332.align_25.hg18.txt" Count=" 2950811" Date="080609"/>
+<Track Flowcell="FC306VCAAXX" Lane="3" Filename="Flowcells/FC306VCAAXX/080725_FC306VCAAXX_s3_RNA-seq_A549_Rep2_Dex_SL332.align_25.hg18.txt" Count=" 1260681" Date="080725"/>
+</Library>
+<Library Name="SL333">
+<Track Flowcell="303n0aaxx" Lane="7" Filename="Flowcells/303n0aaxx/080715_303n0aaxx_s7_RNA-seq_A549_Rep2_EtOH_SL333.align_25.hg18.txt" Count=" 1479883" Date="080715"/>
+<Track Flowcell="303n0aaxx" Lane="8" Filename="Flowcells/303n0aaxx/080715_303n0aaxx_s8_RNA-seq_A549_Rep2_EtOH_SL333.align_25.hg18.txt" Count=" 1429681" Date="080715"/>
+<Track Flowcell="306WKAAXX" Lane="4" Filename="Flowcells/306WKAAXX/080728_306WKAAXX_s4_RNA-seq_A549_Rep2_EtOH_SL333.align_25.hg18.txt" Count=" 3317843" Date="080728"/>
+<Track Flowcell="FC20AMC" Lane="8" Filename="Flowcells/FC20AMC/080609_FC20AMC_s8_RNA-seq_A549_Rep2_EtOH_SL333.align_25.hg18.txt" Count=" 2863677" Date="080609"/>
+<Track Flowcell="FC306VCAAXX" Lane="7" Filename="Flowcells/FC306VCAAXX/080725_FC306VCAAXX_s7_RNA-seq_A549_Rep2_EtOH_SL333.align_25.hg18.txt" Count=" 3146212" Date="080725"/>
+<Track Flowcell="FC306VCAAXX" Lane="8" Filename="Flowcells/FC306VCAAXX/080725_FC306VCAAXX_s8_RNA-seq_A549_Rep2_EtOH_SL333.align_25.hg18.txt" Count=" 2107413" Date="080725"/>
+</Library>
+<Library Name="SL334">
+<Track Flowcell="303y5aaxx" Lane="5" Filename="Flowcells/303y5aaxx/080715_303y5aaxx_s5_Pol2_EtOH_chIP_Rep1_SL334.align_25.hg18.txt" Count=" 4221253" Date="080715"/>
+<Track Flowcell="303y5aaxx" Lane="6" Filename="Flowcells/303y5aaxx/080715_303y5aaxx_s6_Pol2_EtOH_chIP_Rep1_SL334.align_25.hg18.txt" Count=" 4389966" Date="080715"/>
+</Library>
+<Library Name="SL335">
+<Track Flowcell="303y5aaxx" Lane="7" Filename="Flowcells/303y5aaxx/080715_303y5aaxx_s7_Input_RXLCh_+Dex_SL335.align_25.hg18.txt" Count=" 4320528" Date="080715"/>
+<Track Flowcell="303y5aaxx" Lane="8" Filename="Flowcells/303y5aaxx/080715_303y5aaxx_s8_Input_RXLCh_+Dex_SL335.align_25.hg18.txt" Count=" 3212232" Date="080715"/>
+</Library>
+<Library Name="SL336">
+<Track Flowcell="303PNAXX" Lane="1" Filename="Flowcells/303PNAXX/080718_303PNAXX_s1_Input_Control_RXLCh_Neuro2A_Rep1_SL336.align_25.mm9.txt" Count=" 4919007" Date="080718"/>
+</Library>
+<Library Name="SL337">
+<Track Flowcell="303PNAXX" Lane="2" Filename="Flowcells/303PNAXX/080718_303PNAXX_s2_Input_Control_RXLCh_CAD_Rep1_SL337.align_25.mm9.txt" Count=" 5960847" Date="080718"/>
+</Library>
+<Library Name="SL338">
+<Track Flowcell="303PNAXX" Lane="3" Filename="Flowcells/303PNAXX/080718_303PNAXX_s3_Neuro2A_CTCF_Rep1_SL338.align_25.mm9.txt" Count=" 5871158" Date="080718"/>
+</Library>
+<Library Name="SL339">
+<Track Flowcell="303PNAXX" Lane="4" Filename="Flowcells/303PNAXX/080718_303PNAXX_s4_CAD_CTCF_Rep1_SL339.align_25.mm9.txt" Count=" 5226675" Date="080718"/>
+</Library>
+<Library Name="SL340">
+<Track Flowcell="303PNAXX" Lane="5" Filename="Flowcells/303PNAXX/080718_303PNAXX_s5_Neuro2A_USF1_Rep1_SL340.align_25.mm9.txt" Count=" 5113687" Date="080718"/>
+</Library>
+<Library Name="SL341">
+<Track Flowcell="303PNAXX" Lane="6" Filename="Flowcells/303PNAXX/080718_303PNAXX_s6_CAD_USF1_Rep1_SL341.align_25.mm9.txt" Count=" 5580547" Date="080718"/>
+</Library>
+<Library Name="SL342">
+<Track Flowcell="303PNAXX" Lane="7" Filename="Flowcells/303PNAXX/080718_303PNAXX_s7_Neuro2A_USF2_Rep1_SL342.align_25.mm9.txt" Count=" 4845266" Date="080718"/>
+</Library>
+<Library Name="SL343">
+<Track Flowcell="303PNAXX" Lane="8" Filename="Flowcells/303PNAXX/080718_303PNAXX_s8_CAD_USF2_Rep1_SL343.align_25.mm9.txt" Count=" 4722617" Date="080718"/>
+</Library>
+<Library Name="SL344">
+<Track Flowcell="FC20AUL" Lane="5" Filename="Flowcells/FC20AUL/080621_FC20AUL_s5_Input_Control_HMEC_rep1_SL344.align_25.hg18.txt" Count=" 1854345" Date="080621"/>
+<Track Flowcell="FC20AUL" Lane="6" Filename="Flowcells/FC20AUL/080621_FC20AUL_s6_Input_Control_HMEC_rep1_SL344.align_25.hg18.txt" Count=" 2139393" Date="080621"/>
+</Library>
+<Library Name="SL345">
+<Track Flowcell="FC20AUL" Lane="7" Filename="Flowcells/FC20AUL/080621_FC20AUL_s7_Input_Control_HMEC_rep2_SL345.align_25.hg18.txt" Count=" 1981441" Date="080621"/>
+<Track Flowcell="FC20AUL" Lane="8" Filename="Flowcells/FC20AUL/080621_FC20AUL_s8_Input_Control_HMEC_rep2_SL345.align_25.hg18.txt" Count=" 2279789" Date="080621"/>
+</Library>
+<Library Name="SL350">
+<Track Flowcell="FC20AUL" Lane="1" Filename="Flowcells/FC20AUL/080621_FC20AUL_s1_ChIPSeq_HMEC_Rep1_RNApol2_SL350.align_25.hg18.txt" Count=" 1211303" Date="080621"/>
+<Track Flowcell="FC20AUL" Lane="2" Filename="Flowcells/FC20AUL/080621_FC20AUL_s2_ChIPSeq_HMEC_Rep1_RNApol2_SL350.align_25.hg18.txt" Count=" 1646993" Date="080621"/>
+</Library>
+<Library Name="SL351">
+<Track Flowcell="FC20AUL" Lane="3" Filename="Flowcells/FC20AUL/080621_FC20AUL_s3_chIPSeq_HMEC_Rep2_RNApol2_SL351.align_25.hg18.txt" Count=" 1810613" Date="080621"/>
+<Track Flowcell="FC20AUL" Lane="4" Filename="Flowcells/FC20AUL/080621_FC20AUL_s4_chIPSeq_HMEC_Rep1_RNApol2_SL351.align_25.hg18.txt" Count=" 1866673" Date="080621"/>
+</Library>
+<Library Name="SL358">
+<Track Flowcell="306WDAAXX" Lane="1" Filename="Flowcells/306WDAAXX/080725_306WDAAXX_s1_ChIP-seq_HepG2_Rep1_TAF250_SL358.align_25.hg18.txt" Count=" 3950828" Date="080725"/>
+<Track Flowcell="306WDAAXX" Lane="2" Filename="Flowcells/306WDAAXX/080725_306WDAAXX_s2_ChIP-seq_HepG2_Rep1_TAF250_SL358.align_25.hg18.txt" Count=" 4064007" Date="080725"/>
+</Library>
+<Library Name="SL359">
+<Track Flowcell="306WDAAXX" Lane="3" Filename="Flowcells/306WDAAXX/080725_306WDAAXX_s3_ChIP-seq_HepG2_Rep2_TAF250_SL359.align_25.hg18.txt" Count=" 2721181" Date="080725"/>
+<Track Flowcell="306WDAAXX" Lane="4" Filename="Flowcells/306WDAAXX/080725_306WDAAXX_s4_ChIP-seq_HepG2_Rep2_TAF250_SL359.align_25.hg18.txt" Count=" 3705820" Date="080725"/>
+</Library>
+<Library Name="SL360">
+<Track Flowcell="306WDAAXX" Lane="5" Filename="Flowcells/306WDAAXX/080725_306WDAAXX_s5_ChIP-seq_BJ_Fibroblast_Rep1_RNAPol2_SL360.align_25.hg18.txt" Count=" 3104910" Date="080725"/>
+</Library>
+<Library Name="SL361">
+<Track Flowcell="306WDAAXX" Lane="6" Filename="Flowcells/306WDAAXX/080725_306WDAAXX_s6_ChIP-seq_BJ_Fibroblast_Rep2_RNAPol2_SL361.align_25.hg18.txt" Count=" 2279682" Date="080725"/>
+</Library>
+<Library Name="SL362">
+<Track Flowcell="306WDAAXX" Lane="7" Filename="Flowcells/306WDAAXX/080725_306WDAAXX_s7_Input_Control_BJ_Fibroblast_Rep1_SL362.align_25.hg18.txt" Count=" 1305197" Date="080725"/>
+</Library>
+<Library Name="SL363">
+<Track Flowcell="306WDAAXX" Lane="8" Filename="Flowcells/306WDAAXX/080725_306WDAAXX_s8_Input_Control_BJ_Fibroblast_Rep2_SL363.align_25.hg18.txt" Count=" 1981571" Date="080725"/>
+</Library>
+<Library Name="SL400">
+<Track Flowcell="FCAlyssa" Lane="1" Filename="Flowcells/Alyssa/080731_FCAlyssa_s1_BG_SL400.align_25.mm9.txt" Count=" 3652474" Date="080731"/>
+</Library>
+<Library Name="SL401">
+<Track Flowcell="FCAlyssa" Lane="2" Filename="Flowcells/Alyssa/080731_FCAlyssa_s2_Pol2_SL401.align_25.mm9.txt" Count=" 3895128" Date="080731"/>
+</Library>
+<Library Name="SL402">
+<Track Flowcell="FCAlyssa" Lane="3" Filename="Flowcells/Alyssa/080731_FCAlyssa_s3_CHD1L_SL402.align_25.mm9.txt" Count=" 4498952" Date="080731"/>
+</Library>
+</Libraries>
\ No newline at end of file
diff --git a/htsworkflow/frontend/reports/__init__.py b/htsworkflow/frontend/reports/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/htsworkflow/frontend/reports/ht_urls.py b/htsworkflow/frontend/reports/ht_urls.py
new file mode 100644 (file)
index 0000000..39871b8
--- /dev/null
@@ -0,0 +1,5 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('',                                               
+    (r'^updLibInfo$', 'htswfrontend.htsw_reports.libinfopar.refreshLibInfoFile'),
+)
diff --git a/htsworkflow/frontend/reports/libinfopar.py b/htsworkflow/frontend/reports/libinfopar.py
new file mode 100644 (file)
index 0000000..56c75ad
--- /dev/null
@@ -0,0 +1,93 @@
+from django.http import HttpResponse
+from datetime import datetime
+from string import *
+import re
+from xml.sax import make_parser
+from xml.sax.handler import ContentHandler
+import urllib
+import urllib2
+import os
+
+'''
+Example library node from LibraryInfo.xml:
+<Library Name="SL14">
+<Track Flowcell="FC10135" Lane="4" Filename="071005_FC10135_s4_FoxP2_polyclonal_pfsk1_SL14.align_25.hg18.txt" Count=" 2438679" Complexity="4.51989e-06"/>
+<Track Flowcell="FC11977" Lane="6" Filename="070928_FC11977_s6_FoxP2_polyclonal_pfsk1_SL14.align_25.hg18.txt" Count=" 2007880" Complexity="0"/>
+<Track Flowcell="FC13593" Lane="5" Filename="071002_FC13593_s5_FoxP2_polyclonal_pfsk1_SL14.align_25.hg18.txt" Count=" 2533720" Complexity="1.97771e-06"/>
+</Library>
+'''
+class LibInfoHandler(ContentHandler):
+
+  def __init__ (self, searchTerm):
+    self.searchTerm= searchTerm
+    self.currlibid = ''
+    self.LanesCount, self.ReadsCount = 0, 0
+    self.Msg = ''
+       
+  def startElement(self, name, attrs):
+    if name == 'Library':     
+      self.currlibid = attrs.get('Name',"")      
+    elif name == 'Track' and self.searchTerm == self.currlibid:
+      self.LanesCount += len(attrs.get('Lane',""))
+      self.ReadsCount += int(attrs.get('Count',""))
+    else:
+      self.Msg += ' | name = '+name+', currlibid = '+ self.currlibid
+    return
+
+  #def characters (self, ch):
+    # return ..
+
+  #def endElement(self, name):
+    # return ..
+
+
+## TO DO: Change this to read the LibraryInfo.xml only ONCE per ReoprtRequest (do it in the models.py). + Read it directly from the analysis_server
+
+def getLibReads(libid):
+  searchTerm= libid
+  parser = make_parser()   
+  curHandler = LibInfoHandler(searchTerm)
+  parser.setContentHandler(curHandler)
+  parser.parse(open('/htsworkflow/htswfrontend/htswfrontend/htsw_reports/LibInfo/LibraryInfo.xml'))
+  arRes = []
+  arRes.append(curHandler.LanesCount) 
+  arRes.append(curHandler.ReadsCount)
+  return arRes
+
+def getWebPage(url,params):
+  pdata = urllib.urlencode(params)
+  req = urllib2.Request(url,pdata)
+  wpage = urllib2.urlopen(req)
+  restext = wpage.read()
+  wpage.close()
+  return restext
+
+def refreshLibInfoFile(request): 
+ varStatus = 'getting conf file from exp trac server'
+ url = 'http://m304-apple-server.stanford.edu/ENCODE/LibraryInfo.xml'
+ params = {}
+ readw = getWebPage(url,params)
+ # make sure file content starts as xml
+ match_str = re.compile('^<\?xml.+')
+ if match_str.search(readw): ##tempstr):
+   # Rename current file with timestamp
+   year = datetime.today().year.__str__()
+   year = replace(year,'20','')
+   month = datetime.today().month
+   if month < 10: month = "0"+month.__str__()
+   else: month = month.__str__()
+   day = datetime.today().day
+   if day < 10: day = "0"+day.__str__()
+   else: day = day.__str__()
+   mydate = year+month+day
+   folder = '/htsworkflow/htswfrontend/htswfrontend/htsw_reports/LibInfo/'
+   os.rename(folder+'LibraryInfo.xml',folder+mydate+'_LibraryInfo.xml')
+   # create file in curret folder
+   file_path = os.path.join(folder,'LibraryInfo.xml')
+   f = open(file_path, 'w')
+   f.write(readw)
+   f.close()
+   varStatus = 'OK. LibraryInfo.xml refreshed at Web server.'
+ else:
+   varStatus = 'Failed reading valid LibraryInfo.xml server reply:\n'+readw
+ return HttpResponse(varStatus)  
diff --git a/htsworkflow/frontend/reports/models.py b/htsworkflow/frontend/reports/models.py
new file mode 100644 (file)
index 0000000..8554688
--- /dev/null
@@ -0,0 +1,238 @@
+from django.db import models
+from django.db.models import Q
+from django.core.exceptions import ObjectDoesNotExist
+from datetime import datetime
+from htswfrontend.fctracker.models import * 
+from htswfrontend.analys_track.models import *
+from htswfrontend.exp_track.models import *
+from string import *
+from htswfrontend.htsw_reports.utils import *
+import re
+##from p1 import LibInfo
+from libinfopar import *
+
+## This is a table based REPORT generator. The goal is to display a Progress Report for all the ENCODE projects, based on Study Name (e.g. NRSF, FOXP2, Methy-Seq on .. etc).
+  
+class ProgressReport(models.Model):
+  st_sbj = models.ForeignKey(Project,limit_choices_to = Q(project_name__startswith='ENCODE '),related_name='project',db_index=True,verbose_name="Studied Subject")
+  interactome_complete = models.BooleanField(default=False)
+
+  def Study(self):
+    str = self.st_sbj.__str__()
+    str += '<br/><br/>'
+    str += '<a title="open Project record" href="/admin/analys_track/project/'+self.st_sbj.id.__str__()+'/" target=_self style="font-size:85%">Edit Project</a>'
+    return str  
+  Study.allow_tags = True
+
+  def submit_to_DCC(self):
+    varText = ''
+    if self.note_about_DCC:
+      varText += '<br/><u>Note:</u><br/>'+self.note_about_DCC
+    return '%s<br/>%s' % (self.submitted_to_DCC,varText)
+  submit_to_DCC.allow_tags = True
+
+  def submit_to_NCBI(self):
+    varText = ''
+    if self.note_about_NCBI:
+      varText += '<br/><u>Note:</u><br/>'+self.note_about_NCBI 
+    return '%s<br/>%s' % (self.submitted_to_NCBI,varText)
+  submit_to_NCBI.allow_tags = True
+
+  ## -- Utility functions <-- This method was transfered to untils.py
+
+  ## --- LIBARAY PREPARATION SECTION 
+  def getLibIds(self):
+    ptasks = self.st_sbj.tasks.distinct()
+    arLibs = [] 
+    for t in ptasks:
+      if t.subject1 is not None:
+        arLibs.append(t.subject1.library_id)
+      if t.subject2 is not None:
+        arLibs.append(t.subject2.library_id)
+    arLibs = unique(arLibs)
+    return arLibs #.sort()
+
+  def getFCInfo(self,libid):   ## This is the haviest function 
+    arFCLanes = []
+    ##Test return arFCLanes
+    # can't get this to work: FC_L1 = FlowCell.objects.filter(lane_5_library__exact=libid)
+    allFCs = FlowCell.objects.all()
+    for f in allFCs:
+      entry = ''
+      lanes = []
+      #found = False
+#      for i in range(1,9):
+#        if eval('f.lane_'+i.__str__()+'_library.library_id==libid'):
+#          lanes.append(i.__str__())
+#          found = True
+
+# maybe a bit faster this way:
+      if f.lane_1_library.library_id==libid:
+          lanes.append('1')
+          #found = True
+      if f.lane_2_library.library_id==libid:
+          lanes.append('2')
+          #found = True
+      if f.lane_3_library.library_id==libid:
+          lanes.append('3')
+          #found = True
+      if f.lane_4_library.library_id==libid:
+          lanes.append('4')
+          #found = True
+      if f.lane_5_library.library_id==libid:
+          lanes.append('5')
+          #found = True
+      if f.lane_6_library.library_id==libid:
+          lanes.append('6')
+          #found = True
+      if f.lane_7_library.library_id==libid:
+          lanes.append('7')
+          #found = True
+      if f.lane_8_library.library_id==libid:
+          lanes.append('8')
+          #found = True
+
+
+      #if found:
+      if len(lanes)>0:
+        rundate = re.sub(pattern="\s.*$",repl="",string=f.run_date.__str__())
+        entry = '<b>'+f.flowcell_id + '</b> Lanes No.: '+','.join(lanes)+' ('+rundate+')' 
+        arFCLanes.append(entry)    
+    if len(arFCLanes)==0:
+      arFCLanes.append('<font color=red>Flowcell not found.</font>')
+    return arFCLanes
+
+  def ab_batch(self):
+    ##  To have the Company's lot number, apearing on the (source) tube, we need to add new Field in Library. 
+    arlibs = self.getLibIds()
+    tstr = '<ul>' ##<u><b>Ab</b> from '+len(arlibs).__str__()+' libs</u>: '
+    arRows = []
+    for l in arlibs:
+      try:
+        rec = Library.objects.get(library_id=l,antibody__isnull=False)
+        arRows.append('<li>'+rec.antibody.antibodies+' for <b>'+rec.antibody.antigene+'</b> (src:'+rec.antibody.source+', cat:'+rec.antibody.catalog+')</li>')
+      except ObjectDoesNotExist:
+        tstr += ""
+    tstr += "".join(unique(arRows))+'</ul>'
+    return tstr
+  ab_batch.allow_tags = True
+
+  def cell_line(self):                                                                                           
+    arlibs = self.getLibIds()
+    tstr = '<ul>'
+    arRows = []                                                                                                                                     
+    for l in arlibs:
+      try:
+        rec = Library.objects.get(library_id=l)
+        arRows.append('<li><b>'+rec.cell_line.cellline_name+'</b> ('+rec.condition.condition_name+')</li>')
+      except ObjectDoesNotExist:
+        tstr += ""                                                                                                                               
+    tstr += "".join(unique(arRows))+'</ul>'
+    return tstr
+  cell_line.allow_tags = True
+
+  def cell_harvest_batch(self): # <- data now displayed in "cell_line"
+    ## name + date  
+    arlibs = self.getLibIds()
+    tstr = '<ul>'
+    arRows = []
+    for l in arlibs:
+      try:
+        rec = Library.objects.get(library_id=l)
+        arRows.append('<li><b>'+rec.condition.condition_name+'</b></li>')
+      except ObjectDoesNotExist:
+        tstr += ""
+    tstr += "".join(unique(arRows))+'</ul>'
+    return tstr
+  cell_harvest_batch.allow_tags = True
+
+  def ChIP_made(self):
+    ## person + date                                                                                                                                                                                                             
+    return '...'
+
+  def library(self):
+    ## Lib Id + Date + Person
+    tstr = '<script>'
+    tstr += 'function togit(eid){'
+    tstr += 'f=document.getElementById(eid);'
+    tstr += 'if(f.style.display==\'none\'){'
+    tstr += 'f.style.display=\'block\';'
+    tstr += '}else{'
+    tstr += 'f.style.display=\'none\';'
+    tstr += '}'
+    tstr += '}'
+    tstr += '</script>'
+    arlibs = self.getLibIds() ##.sort()
+    arlibs = arlibs
+    tstr +='<a href=# onClick="togit(\'libInfo'+self.st_sbj.project_name+'\')">view /hide</a>'
+    tstr += '<div id="libInfo'+self.st_sbj.project_name+'" style="display:block;border:solid #cccccc 1px;width:200px;height:300px;overflow:auto"><ul>'
+    arRows = []
+    for l in arlibs:
+      try:
+        rec = Library.objects.get(library_id=l)
+        arRows.append('<li><b>'+rec.library_id+'</b>: '+rec.library_name+'.<br/>Made By: '+rec.made_by+', On: '+ rec.creation_date.__str__()+'</li>')
+      except ObjectDoesNotExist:
+        tstr += ""
+    tstr += "".join(unique(arRows))+'</ul></div>'
+    return tstr
+  library.allow_tags = True
+
+
+  ## -- SEQUENCING SECTION 
+  def sequencing(self):
+    ## FCId + Lane + Date
+    arlibs = self.getLibIds()
+    tstr ='<a href=# onClick="togit(\'seqInfo'+self.st_sbj.project_name+'\')">view /hide</a>'
+    tstr += '<div id="seqInfo'+self.st_sbj.project_name+'" style="display:block;border:solid #cccccc 1px;width:200px;height:300px;overflow:auto"><ul>'    
+    for l in arlibs:
+      tstr += '<li><b>'+l+'</b>:<br/>'+(' / '.join(self.getFCInfo(l)))+'</li>'
+    tstr += '</ul></div>'
+    return tstr
+  sequencing.allow_tags = True
+  
+  def aligned_reads(self):
+    ## Mega reads/lane                                              
+    arlibs = self.getLibIds()
+    tstr = '<a href=# onClick="togit(\'readsInfo'+self.st_sbj.project_name+'\')">view /hide</a>'
+    tstr += '<div id="readsInfo'+self.st_sbj.project_name+'" style="display:block;border:solid #cccccc 1px;width:200px;height:300px;overflow:auto">'
+    tstr += '<table><tr><td>Library Id</td><td>Total Lanes</td><td>M Reads</td></tr>'
+    LanesCnt, ReadsCnt = 0, 0
+    for l in arlibs:      
+      res = getLibReads(l)
+      LanesCnt += res[0]
+      ReadsCnt += res[1]
+      rc = "%1.2f" % (res[1]/1000000.0)
+      tstr += '<tr><td><b>'+l+'</b></td><td>'+res[0].__str__()+'</td></td><td>'+rc+'</td></tr>'
+    tstr += '</table>'
+    #tstr += '<a target=_blank href="http://m304-apple-server.stanford.edu/projects/'+self.st_sbj.id.__str__()+'">Project results page</a>'
+    tstr += '</div>'
+    myNum = (ReadsCnt/1000000.0)
+    myNum  = "%1.2f" % (myNum) 
+    tstr += '<div>Total: <b>'+LanesCnt.__str__()+'</b> lanes and <b>'+myNum+'</b> M Reads</div>'
+    tstr += '<a target=_blank href="http://m304-apple-server.stanford.edu/projects/'+self.st_sbj.id.__str__()+'">Project results page</a>'
+    return tstr
+  aligned_reads.allow_tags = True
+
+  def peak_calling(self):
+    # date + what etc..
+    return 'coming up ..'
+
+  QPCR = models.CharField(max_length=500,blank=True,null=True)    
+  submitted_to_DCC = models.DateTimeField(core=True,blank=True,null=True)
+  submitted_to_NCBI = models.DateTimeField(core=True,blank=True,null=True)
+  note_about_DCC =  models.TextField(blank=True)
+  note_about_NCBI = models.TextField(blank=True)
+  
+  def __str__(self):
+      return '"%s" - %s' % (self.st_sbj,self.interactome_complete)
+
+  class Meta:
+    #verbose_name_plural = "Reports"
+    ordering = ["id"]
+
+  class Admin:
+    list_display = ('Study','ab_batch','cell_line','library','sequencing','aligned_reads','QPCR','submit_to_DCC','submit_to_NCBI','interactome_complete')
+    ## list_filter = ('interactome_complete')
+    
+
+#############################################
diff --git a/htsworkflow/frontend/reports/utils.py b/htsworkflow/frontend/reports/utils.py
new file mode 100644 (file)
index 0000000..7b2d1b8
--- /dev/null
@@ -0,0 +1,61 @@
+def unique(s):
+  """Return a list of the elements in s, but without duplicates.                                                                                                                                                                                             
+  For example, unique([1,2,3,1,2,3]) is some permutation of [1,2,3],                                                                                                                                                                                         
+  unique("abcabc") some permutation of ["a", "b", "c"], and                                                                                                                                                                                                  
+  unique(([1, 2], [2, 3], [1, 2])) some permutation of                                                                                                                                                                                                       
+  [[2, 3], [1, 2]].                                                                                                                                                                                                                                          
+  For best speed, all sequence elements should be hashable.  Then                                                                                                                                                                                            
+  unique() will usually work in linear time.                                                                                                                                                                                                                 
+  If not possible, the sequence elements should enjoy a total                                                                                                                                                                                                
+  ordering, and if list(s).sort() doesn't raise TypeError it's                                                                                                                                                                                               
+  assumed that they do enjoy a total ordering.  Then unique() will                                                                                                                                                                                           
+  usually work in O(N*log2(N)) time.                                                                                                                                                                                                                         
+  If that's not possible either, the sequence elements must support                                                                                                                                                                                          
+  equality-testing.  Then unique() will usually work in quadratic                                                                                                                                                                                            
+  time.                                                                                                                                                                                                                                                      
+  """
+
+  n = len(s)
+  if n == 0:
+      return []
+
+  # Try using a dict first, as that's the fastest and will usually                                                                                                                                                                                           
+  # work.  If it doesn't work, it will usually fail quickly, so it                                                                                                                                                                                           
+  # usually doesn't cost much to *try* it.  It requires that all the                                                                                                                                                                                         
+  # sequence elements be hashable, and support equality comparison.                                                                                                                                                                                          
+  u = {}
+  try:
+      for x in s:
+          u[x] = 1
+  except TypeError:
+      del u  # move on to the next method                                                                                                                                                                                                                    
+  else:
+      return u.keys()
+  # We can't hash all the elements.  Second fastest is to sort,                                                                                                                                                                                              
+  # which brings the equal elements together; then duplicates are                                                                                                                                                                                            
+  # easy to weed out in a single pass.                                                                                                                                                                                                                       
+  # NOTE:  Python's list.sort() was designed to be efficient in the                                                                                                                                                                                          
+  # presence of many duplicate elements.  This isn't true of all                                                                                                                                                                                             
+  # sort functions in all languages or libraries, so this approach                                                                                                                                                                                           
+  # is more effective in Python than it may be elsewhere.                                                                                                                                                                                                    
+  try:
+      t = list(s)
+      t.sort()
+  except TypeError:
+      del t  # move on to the next method                                                                                                                                                                                                                    
+  else:
+      assert n > 0
+      last = t[0]
+      lasti = i = 1
+      while i < n:
+          if t[i] != last:
+              t[lasti] = last = t[i]
+              lasti += 1
+          i += 1
+      return t[:lasti]
+  # Brute force is all that's left.                                                                                                                                                                                                                          
+  u = []
+  for x in s:
+      if x not in u:
+          u.append(x)
+  return u                                                                                                         
diff --git a/htsworkflow/frontend/samples/__init__.py b/htsworkflow/frontend/samples/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/htsworkflow/frontend/samples/models.py b/htsworkflow/frontend/samples/models.py
new file mode 100644 (file)
index 0000000..c4e1e3c
--- /dev/null
@@ -0,0 +1,225 @@
+from django.db import models
+from django.contrib.auth.models import User
+from htsworkflow.frontend import settings
+from htsworkflow.reports.libinfopar import *
+
+# Create your models here.
+
+class Antibody(models.Model):
+  antigene = models.CharField(max_length=500, db_index=True)
+  # New field Aug/20/08                                                                                                                                                            
+  # SQL to add column: alter table fctracker_antibody add column "nickname" varchar(20) NULL;
+  nickname = models.CharField(max_length=20,blank=True,null=True, db_index=True,verbose_name = 'Short Name')
+  catalog = models.CharField(max_length=50, unique=True, db_index=True)
+  antibodies = models.CharField(max_length=500, db_index=True)
+  source = models.CharField(max_length=500, blank=True, db_index=True)
+  biology = models.TextField(blank=True)
+  notes = models.TextField(blank=True)
+  def __str__(self):
+    return '%s - %s (%s)' % (self.antigene, self.antibodies, self.catalog)
+  class Meta:
+    verbose_name_plural = "antibodies"
+    ordering = ["antigene"]
+  class Admin:
+      list_display = ('antigene','nickname','antibodies','catalog','source','biology','notes')
+      list_filter = ('antibodies','source')
+      fields = (
+        (None, {
+            'fields': (('antigene','nickname','antibodies'),('catalog','source'),('biology'),('notes'))
+        }),
+       )
+
+class Cellline(models.Model):
+  cellline_name = models.CharField(max_length=100, unique=True, db_index=True)
+  notes = models.TextField(blank=True)
+  def __str__(self):
+    return '%s' % (self.cellline_name)
+
+  class Meta:
+    ordering = ["cellline_name"]
+
+  class Admin:
+      fields = (
+        (None, {
+            'fields': (('cellline_name'),('notes'),)
+        }),
+       )
+
+class Condition(models.Model):
+  condition_name = models.CharField(max_length=2000, unique=True, db_index=True)
+  notes = models.TextField(blank=True)
+  def __str__(self):
+    return '%s' % (self.condition_name)
+
+  class Meta:
+    ordering = ["condition_name"]
+
+  class Admin:
+      fields = (
+        (None, {
+            'fields': (('condition_name'),('notes'),)
+        }),
+       )
+
+class Species(models.Model):
+  
+  scientific_name = models.CharField(max_length=256, unique=False, db_index=True, core=True)
+  common_name = models.CharField(max_length=256, blank=True)
+  use_genome_build = models.CharField(max_length=100, blank=False, null=False)
+
+  def __str__(self):
+    return '%s (%s)|%s' % (self.scientific_name, self.common_name, self.use_genome_build)
+  
+  class Meta:
+    verbose_name_plural = "species"
+    ordering = ["scientific_name"]
+  
+  class Admin:
+      fields = (
+        (None, {
+            'fields': (('scientific_name', 'common_name'), ('use_genome_build'))
+        }),
+      )
+
+class Affiliation(models.Model):
+  name = models.CharField(max_length=256, db_index=True, core=True,verbose_name='Group Name')
+  contact = models.CharField(max_length=256, null=True, blank=True,verbose_name='Contact Name')  
+  email = models.EmailField(null=True,blank=True)
+  
+  def __str__(self):
+    str = self.name
+    if self.contact != '':
+      str += ' ('+self.contact+')' 
+    return str
+
+  class Meta:
+    ordering = ["name","contact"]
+    unique_together = (("name", "contact"),)
+
+  class Admin:
+      list_display = ('name','contact','email')
+      fields = (
+        (None, {
+            'fields': (('name','contact','email'))
+        }),
+      )
+
+class Library(models.Model):
+  
+  library_id = models.CharField(max_length=30, primary_key=True, db_index=True, core=True)
+  library_name = models.CharField(max_length=100, unique=True, core=True)
+  library_species = models.ForeignKey(Species, core=True)
+  cell_line = models.ForeignKey(Cellline,core=True)
+  condition = models.ForeignKey(Condition,core=True)
+  antibody = models.ForeignKey(Antibody,blank=True,null=True,core=True)
+  # New field Aug/25/08. SQL: alter table fctracker_library add column "lib_affiliation" varchar(256)  NULL;
+  affiliations = models.ManyToManyField(Affiliation,related_name='library_affiliations',null=True,filter_interface=models.HORIZONTAL)
+  # New field Aug/19/08
+  # SQL to add column: alter table fctracker_library add column "replicate" smallint unsigned NULL;
+  REPLICATE_NUM = ((1,1),(2,2),(3,3),(4,4))
+  replicate =  models.PositiveSmallIntegerField(choices=REPLICATE_NUM,default=1) 
+
+  EXPERIMENT_TYPES = (
+      ('INPUT_RXLCh','INPUT_RXLCh'),
+      ('ChIP-seq', 'ChIP-seq'),
+      ('Sheared', 'Sheared'),
+      ('RNA-seq', 'RNA-seq'),
+      ('Methyl-seq', 'Methyl-seq'),
+      ('DIP-seq', 'DIP-seq'),
+    ) 
+  experiment_type = models.CharField(max_length=50, choices=EXPERIMENT_TYPES,
+                                     default='RNA-seq')
+  
+  creation_date = models.DateField(blank=True, null=True)
+  made_for = models.ForeignKey(User)
+  made_by = models.CharField(max_length=50, blank=True, default="Lorian")
+  
+  PROTOCOL_END_POINTS = (
+      ('?', 'Unknown'),
+      ('Sample', 'Raw sample'),
+      ('Progress', 'In progress'),
+      ('1A', 'Ligation, then gel'),
+      ('PCR', 'Ligation, then PCR'),
+      ('1Ab', 'Ligation, PCR, then gel'),
+      ('1Aa', 'Ligation, gel, then PCR'),
+      ('2A', 'Ligation, PCR, gel, PCR'),
+      ('Done', 'Completed'),
+    )
+  stopping_point = models.CharField(max_length=25, choices=PROTOCOL_END_POINTS, default='Done')
+  amplified_from_sample = models.ForeignKey('self', blank=True, null=True)  
+  
+  undiluted_concentration = models.DecimalField("Undiluted concentration (ng/ul)", max_digits=5, decimal_places=2, default=0, blank=True, null=True)
+  successful_pM = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
+  ten_nM_dilution = models.BooleanField()
+  avg_lib_size = models.IntegerField(default=225, blank=True, null=True)
+  notes = models.TextField(blank=True)
+  
+  def __str__(self):
+    return '#%s: %s' % (self.library_id, self.library_name)
+  
+  class Meta:
+    verbose_name_plural = "libraries"
+    ordering = ["-creation_date"] #["-library_id"]
+  
+  def antibody_name(self):
+    return self.antibody.nickname
+
+  def org(self):
+    return self.library_species.common_name
+
+  def affiliation(self):
+    affs = self.affiliations.all().order_by('name')
+    tstr = ''
+    ar = []
+    for t in affs:
+        ar.append(t.__str__())
+    return '%s' % (", ".join(ar))
+
+
+  def aligned_reads(self):
+    res = getLibReads(self.library_id)
+    rc = "%1.2f" % (res[1]/1000000.0)
+    # Color Scheme: green is more than 10M, blue is more than 5M, orange is more than 3M and red is less. For RNAseq, all those thresholds should be doubled
+    if res[0] > 0:
+      bgcolor = '#ff3300'  # Red
+      rc_thr = [10000000,5000000,3000000]
+      if self.experiment_type == 'RNA-seq':
+        rc_thr = [20000000,10000000,6000000]
+
+      if res[1] > rc_thr[0]:
+        bgcolor = '#66ff66'  # Green
+      else:
+        if res[1] > rc_thr[1]:
+          bgcolor ='#00ccff'  # Blue
+        else:
+           if res[1] > rc_thr[2]: 
+             bgcolor ='#ffcc33'  # Orange
+      tstr = '<div style="background-color:'+bgcolor+';color:black">'
+      tstr += res[0].__str__()+' Lanes, '+rc+' M Reads'
+      tstr += '</div>'
+    else: tstr = 'not processed yet' 
+    return tstr
+  aligned_reads.allow_tags = True
+
+  class Admin:
+    date_hierarchy = "creation_date"
+    save_as = True
+    save_on_top = True
+    ##search_fields = ['library_id','library_name','affiliations__name','affiliations__contact','made_by','made_for','antibody__antigene','antibody__catalog','antibody__antibodies','antibody__source','cell_line__cellline_name','library_species__scientific_name','library_species__common_name','library_species__use_genome_build']
+    search_fields = ['library_id','library_name','cell_line__cellline_name','library_species__scientific_name','library_species__common_name','library_species__use_genome_build']
+    list_display = ('affiliation','library_id','aligned_reads','library_name','experiment_type','org','replicate','antibody_name','cell_line','made_by','creation_date')
+    list_display_links = ('library_id', 'library_name')
+
+    list_filter = ('experiment_type','affiliations','library_species','made_for', 'made_by','replicate')
+    fields = (
+        (None, {
+            'fields': (('replicate','library_id','library_name'),('library_species'),('experiment_type'),('cell_line','condition','antibody'),)
+        }),
+        ('Creation Information:', {
+            'fields' : (('made_for', 'made_by', 'creation_date'), ('stopping_point', 'amplified_from_sample'), ('undiluted_concentration', 'library_size'), 'notes',)
+        }),
+        ('Library/Project Affiliation:', {
+            'fields' : (('affiliations'),)
+        }),
+        )
+
diff --git a/htsworkflow/frontend/samples/views.py b/htsworkflow/frontend/samples/views.py
new file mode 100644 (file)
index 0000000..2299e4f
--- /dev/null
@@ -0,0 +1 @@
+# Create your views here.
\ No newline at end of file
index c9bee20ee7862b95f8765bded0ec719ade182c6c..ec400418a4e4fcecaba21dd07014d1fc5e6d18ba 100644 (file)
@@ -1,18 +1,79 @@
+"""
+Generate settings for the Django Application.
+
+To make it easier to customize the application the settings can be 
+defined in a configuration file read by ConfigParser.
+
+The options understood by this module are (with their defaults):
+
+  [frontend]
+  email_host=localhost
+  email_port=25
+  database_engine=sqlite3
+  database_name=/path/to/db
+
+  [admins]
+  #name1=email1
+
+  [allowed_hosts]
+  #name1=ip
+  localhost=127.0.0.1
+  
+  [allowed_analysis_hosts]
+  #name1=ip
+  localhost=127.0.0.1
+
+"""
+import ConfigParser
 import os
 
+def options_to_list(dest, section_name):
+  """
+  Load a options from section_name and store in a dictionary
+  """
+  if options.has_section(section_name):
+    for name in options.options(section_name):
+      dest.append( options.get(section_name, name) )
+      
+def options_to_dict(dest, section_name):
+  """
+  Load a options from section_name and store in a dictionary
+  """
+  if options.has_section(section_name):
+    for name in options.options(section_name):
+      dest[name] = options.get(section_name, name)
+
+# define your defaults here
+options = ConfigParser.SafeConfigParser(
+           { 'email_host': 'localhost',
+             'email_port': '25', 
+             'database_engine': 'sqlite3',
+             'database_name': 
+               os.path.abspath('/htsworkflow/htswfrontend/dev_fctracker.db'),
+             'time_zone': 'America/Los_Angeles',
+           })
+
+options.read([os.path.expanduser("~/.htsworkflow.ini"),
+              '/etc/htsworkflow.ini',])
+
 # Django settings for elandifier project.
 
 DEBUG = True
 TEMPLATE_DEBUG = DEBUG
 
-ADMINS = (
-    # ('Your Name', 'your_email@domain.com'),
-)
+ADMINS = []
+options_to_list(ADMINS, 'admins')
 
 MANAGERS = ADMINS
 
-DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
-DATABASE_NAME = os.path.abspath('../../fctracker.db')             # Or path to database file if using sqlite3.
+EMAIL_HOST = options.get('frontend', 'email_host')
+EMAIL_PORT = int(options.get('frontend', 'email_port'))
+
+# 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
+DATABASE_ENGINE = options.get('frontend', 'database_engine')
+
+# Or path to database file if using sqlite3.
+DATABASE_NAME = options.get('frontend', 'database_name' )
 DATABASE_USER = ''             # Not used with sqlite3.
 DATABASE_PASSWORD = ''         # Not used with sqlite3.
 DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
@@ -23,7 +84,7 @@ DATABASE_PORT = ''             # Set to empty string for default. Not used with
 # although not all variations may be possible on all operating systems.
 # If running in a Windows environment this must be set to the same as your
 # system time zone.
-TIME_ZONE = 'America/Los_Angeles'
+TIME_ZONE = options.get('frontend', 'time_zone')
 
 # Language code for this installation. All choices can be found here:
 # http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes
@@ -72,7 +133,7 @@ TEMPLATE_DIRS = (
     # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
     # Always use forward slashes, even on Windows.
     # Don't forget to use absolute paths, not relative paths.
-    os.path.abspath("../../templates"),
+    os.path.abspath("../templates"),
 )
 
 INSTALLED_APPS = (
@@ -83,12 +144,21 @@ INSTALLED_APPS = (
     'django.contrib.sites',
     'htsworkflow.frontend.eland_config',
     'htsworkflow.frontend.fctracker',
+    # modules from htsworkflow branch
+    #'htswfrontend.exp_track',
+    #'htswfrontend.analys_track', 
+    #'htswfrontend.htsw_reports',
     'django.contrib.databrowse',
 )
 
 # Project specific settings
-UPLOADTO_HOME = os.path.abspath('../../uploads')
-UPLOADTO_CONFIG_FILE = os.path.join(UPLOADTO_HOME, 'eland_config')
-UPLOADTO_ELAND_RESULT_PACKS = os.path.join(UPLOADTO_HOME, 'eland_results')
-UPLOADTO_BED_PACKS = os.path.join(UPLOADTO_HOME, 'bed_packs')
 
+ALLOWED_IPS={'localhost': '127.0.0.1'}
+options_to_dict(ALLOWED_IPS, 'allowed_hosts')
+
+ALLOWED_ANALYS_IPS = {'localhost': '127.0.0.1'}
+options_to_dict(ALLOWED_ANALYS_IPS, 'allowed_analysis_hosts')
+#UPLOADTO_HOME = os.path.abspath('../../uploads')
+#UPLOADTO_CONFIG_FILE = os.path.join(UPLOADTO_HOME, 'eland_config')
+#UPLOADTO_ELAND_RESULT_PACKS = os.path.join(UPLOADTO_HOME, 'eland_results')
+#UPLOADTO_BED_PACKS = os.path.join(UPLOADTO_HOME, 'bed_packs')
index a791b856eb4a4b0a0920a595ccd31b56fdff1b14..e06d92d65059819074b9cb5f3f4d0ae0b859b008 100644 (file)
@@ -11,6 +11,10 @@ urlpatterns = patterns('',
     (r'^eland_config/', include('htsworkflow.frontend.eland_config.urls')),
     # Admin:
      (r'^admin/', include('django.contrib.admin.urls')),
-    # Databrowser:
-     (r'^databrowse/(.*)', databrowse.site.root),
+    # ExpTrack:
+     (r'^experiments/', include('htswfrontend.experiments.et_urls')),
+    # AnalysTrack:
+     (r'^analysis/', include('htswfrontend.analysis.an_urls')),
+    # Report Views:
+    # (r'^reports/', include('gaworkflow.frontend....urls')),
 )