Saturday, January 30, 2016

last 50 years of scientific research,


http://dcscience.net/Lawrence-2016.pdf

The Last 50 Years: Mismeasurement and Mismanagement Are Impeding Scientific Research
 
 
Peter A. Lawrence
Department of Zoology, University of Cambridge, Cambridge, United Kingdom

 

Friday, January 29, 2016

bio125 20150129 Friday, miniprep

===============
Section 3:
Mistakes:
Many students were confused by the difference from actual protocol and vendor's version
one group added twice amount of TE
tips were not changed for new samples in one group.
one group did not put zppy column inside of collection tubes.

Neutralization buffer were stored at 4C, and given to students when needed.
Reagent tubes were color coded. A good practice that seems to lead to few student mistakes.  

5ml cells were spun down and given to students.

9:45am, transfer neutralized supernatant to zppy columns.

10:30am. 3 groups started nanodrop measurement.
by 11am, students finished nanodrop readings, and submit labnotes_2.
Classed end 11:30am.

===============
Section 4:
Mistakes:
one student mistook 10ul as 100ul when pipetting.
One student poured away TE buffer. (This student did not read before lab).
Make sure three samples are done at the same time.
Kioko: from lysis to neutralization should be quick. 

2:30pm, most groups have finished elusion step.




Wednesday, January 27, 2016

bio125, 20160127, Wed, central dogma, dna repair, msh2 overview

-----------------
Section 3

Go over assignment and Student presentations 
problems: double-strand and single strand DNA

APE on GeneX

9:55am Replication 3
Problem: Some studens thought DNA was synthesized 3-5 on the lagging strand.
Seize this teachable moment, ask student to draw replication fork, leading and lagging strands on paper.

5 min break.


   mutation, HSV paper
http://www.ncbi.nlm.nih.gov/pubmed/20026654 ATM S1981 reference


by 11am, Rstudio usage on standard curves. I made a mistake on the dilution.

11am-> APE on MSH2 annotation.

video on miniprep for Thu

-----------------
Section 4: (due to snow, bradford assay and serial dilution lab data were not analyzed). 
Summaryize lab

1-2pm, Go over standard curve plot. 

2pm-3pm  APE pMSH2 annotation
KD was not practicing APE. 

Went through math5 standard curve as well.

No other inclass assignment were done. Did not went through preclass assignment.



===============
pre-class: central dogma, DNA repair , MSH2 overview (abstract reading),,

In-class: 
(1) Replication (in class, drawings-mutation), 
(2) mutation, HSV paper

(2) Math problem 5, standard curve

(3) MCAT


Running R code on linear regression, generating plot and save figures

ApE usage

replication assignment 3

mutation&repair  assignment 1



reference:
http://hongqinlab.blogspot.com/2015/01/bio125-jan-27-tue-central-dogma-dna.html
http://hongqinlab.blogspot.com/2014/03/bio125-central-dogma-review.html

Tuesday, January 26, 2016

Eventbrite help pages

Eventbrite, Export attendee information

https://www.eventbrite.com/support/articles/en_US/How_To/how-to-edit-and-export-an-attendee-summary-report?lg=en_US



H2O2-LOH error bars, _1a.batchPlotH2O2-LOH.2016Jan25.R


# 20160125, try to add error bars to plots

rm=(list=ls())
setwd("~/github/LOH_H2O2_2016/analysis")
debug = 0;

#all data are in 'data.H2O2-LOH'
FileList = list.files( path="../data.H2O2-LOH/");  FileList;
if( debug > 5) {FileList = FileList[1:2]}

# infile = FileList[2]
for( infile in FileList) {
# infile='M1-2,20111207.modified.csv' #debug for NA, and low lead concentration
# infile =  'M2-8,08172011.H2O2.LOH.modified.csv';  #viability plot error
# infile =  'M2-8,06062011.H2O2onLOH.csv';  #b plot error
 
fullFileName = paste('../data.H2O2-LOH/',infile, sep='');
mylabel = infile

tb = read.csv(fullFileName, colClasses=c("character",NA, NA, "character", rep("numeric",8 ), NA));
names(tb) = c("Strain", "OD600", "Dilution","Date","H2O2stock", "White", "Black", "halfBlack", "quarterBlack", "ThreeQBlack", "QQBlack", "Other", "Notes")

######## set zeros
mycolumns = c("White","Black","halfBlack", "quarterBlack","ThreeQBlack", "QQBlack", "Other");
for( i in 1:length(tb[,1])) {
  for ( j in mycolumns) {
    if( is.na(tb[i,j]) ) { tb[i,j]= 0 }
  }
}

#H2O2 working stock is 2X
tb$H2O2 = tb$H2O2stock/2
tb$tot = tb$White + tb$Black + tb$halfBlack + tb$quarterBlack + tb$ThreeQBlack + tb$QQBlack + tb$Other
tb.ori = tb;
tb = tb[ ! is.na(tb$White), ]

tb$Dilution = tb$Dilution / tb$Dilution[1]

######## normalize all data
mycolumns = c("White","Black","halfBlack", "quarterBlack","ThreeQBlack", "QQBlack", "Other","tot");
for ( j in mycolumns) {
 tb[,j] = tb[,j] * tb$Dilution
}

####### find out means
H2O2 = sort(unique( tb$H2O2))
#s = H2O2
tbm = data.frame(cbind(H2O2))
for ( i in 1:length(H2O2)) {
  c = H2O2[i]
  tmp = tb[ tb$H2O2==c, ]
  tbm$tot[i] = mean(tmp$tot, na.rm=T)
  tbm$tot.sd[i] = sd(tmp$tot, na.rm=T)
  tbm$White[i] = mean(tmp$White, na.rm=T)
  tbm$White.sd[i] = sd(tmp$White, na.rm=T)
  tbm$Black[i] = mean(tmp$Black, na.rm=T)
  tbm$Black.sd[i] = sd(tmp$Black, na.rm=T)
  tbm$halfBlack[i] = mean(tmp$halfBlack, na.rm=T)
  tbm$halfBlack.sd[i] = sd(tmp$halfBlack, na.rm=T)
  tbm$quarterBlack[i] = mean(tmp$quarterBlack, na.rm=T)
  tbm$ThreeQBlack[i] = mean(tmp$ThreeQBlack, na.rm=T)
  tbm$QQBlack[i] = mean(tmp$QQBlack, na.rm=T);
}

tbm = tbm[tbm$tot>1, ] #remove plates with zero colonies

###### some manual curations here
#tbm$halfBlack[tbm$halfBlack==0 & tbm$H2O2>0] = NA;

###### calculate fractions
tbf = tbm;
tbf$s = tbf$tot / max(tbf$tot)
tbf$s.sd = tbm$tot.sd / max(tbm$tot)
for ( j in 3:11) {
  tbf[, j] = tbf[,j] / tbf$tot
}

tbf$Black[tbf$Black<0]=NA;  #remove weird experimental data, such as low-lead concentration effect

pdf(paste("sandbox/",infile, ".batch.sd.pdf", sep=''), width=5, height=5)

### full black plot
plot( tbf$s ~ tbf$H2O2, col="blue", axes=F, xlab='', ylab='', ylim=c(-0.05, 1.2), type='p');
lines( tbf$s ~ tbf$H2O2, col="blue",lty=2)
arrows( tbf$H2O2, (tbf$s - tbf$s.sd), tbf$H2O2, (tbf$s + tbf$s.sd), length=0.1, angle=90,code=3, lty=1, col="blue" );

axis( 4, at=pretty(c(0, 1.2)), col='black')
legend ( max(H2O2)*0.7, 0.9, c("viability","black"), col=c("blue","black"), lty=c(2,1), pch=c(1,16) )
par(new=T)
plot( tbf$Black ~ tbf$H2O2, pch=16, xlab='H2O2',ylab="black", ylim=c(-0.01, max(tbf$Black, na.rm = T)*3))
lines(tbf$Black ~ tbf$H2O2)
bottoms = tbf$Black -tbf$Black.sd
bottoms[bottoms<0]= 0.001
arrows( tbf$H2O2, bottoms, tbf$H2O2, (tbf$Black + tbf$Black.sd), length=0.1, angle=90,code=3, lty=1, col="gray" );

title(mylabel)

## full black -log plot
#tbf$H2O2[tbf$H2O2==0] = min(H2O2[-1])/10;

#with( tbf, plot( tot ~ log10(H2O2), col="blue"));
#par(new=T)
#with( tbf, plot( Black ~ log10(H2O2), pch=16))

#tbf$H2O2[tbf$H2O2==0] = min(H2O2[-1])/10;
#with( tbf, plot( s ~ log10(H2O2), col="blue", axes=F, xlab="H2O2", ylab='viability'), ylim=c(-0.5, 1.1) );
#xlabels = log10(c(0.001,0.001, 0.005, 0.01, 0.025, 0.05, 0.1, 0.15))
#axis(1, at = xlabels, labels= 10^xlabels)
#ylabels = c(0, 0.25, 0.5, 0.75, 1.0)
#axis(2, at=ylabels, labels=ylabels);
#par(new=T)
#with( tbf, plot( Black ~ log10(H2O2), pch=16, axes=F, xlab='', ylab=''))
#axis(4, pretty(range(tbf$Black)))
#title(mylabel)

### half black plot
plot( tbf$s ~ tbf$H2O2, col="blue", axes=F, xlab='', ylab='', ylim=c(0, 1.2), type='p', main=mylabel);
lines( tbf$s ~ tbf$H2O2, col="blue",lty=2)
axis( 4, at=pretty(c(0, 1.2)))
legend ( max(H2O2)*0.7, 0.5, c("viability","half-black"), col=c("blue","red"), lty=c(2,1), pch=c(1,16) )
par(new=T)
plot( tbf$halfBlack ~ tbf$H2O2, pch=16, xlab='H2O2',ylab="half-black", col='red', ylim=c(-0.005, max(tbf$halfBlack, na.rm=T)*2 ))
lines(tbf$halfBlack ~ tbf$H2O2, col='red')

bottoms = tbf$halfBlack - tbf$halfBlack.sd
bottoms[bottoms<0]= 0
arrows( tbf$H2O2, bottoms, tbf$H2O2, (tbf$halfBlack + tbf$halfBlack.sd), length=0.1, angle=90,code=3, lty=1, col="gray" );

title(mylabel)


### half/full plot
tbf$half.vs.full = tbf$halfBlack / tbf$Black
plot( tbf$s ~ tbf$H2O2, col="blue", axes=F, xlab='', ylab='', ylim=c(0, 1.2), type='p', main=mylabel);
lines( tbf$s ~ tbf$H2O2, col="blue",lty=2)
axis( 4, at=pretty(c(0, 1.2)))
legend ( max(H2O2)*0.7, 0.5, c("viability","half/full"), col=c("blue","green"), lty=c(2,1), pch=c(1,16) )
par(new=T)
plot( tbf$half.vs.full ~ tbf$H2O2, pch=16, xlab='H2O2',ylab="half/full", col='green')
lines(tbf$half.vs.full ~ tbf$H2O2, col='green')
bottoms = tbf$Black -tbf$Black.sd
bottoms[bottoms<0]= 0.001
title(mylabel)

dev.off() #end pdf
} #infile loop

#quit("yes")
 
 


Git tutorials


http://swcarpentry.github.io/git-novice/

sync a forked repository with upstream/master repository

This can be done in Github.

https://help.github.com/articles/syncing-a-fork/

Friday, January 22, 2016

bio125, 20160122Fri bradford assay of protein concentration, serial dilution


Snow storm is coming. Try to finish the lab quickly.
 
=======================
9am section 3.
AH went over lab safety.
9:07am, AH explained pipette usage and tips, two level of pressure. Properly eject the tips during exchange.



Shown recipe on the screen using student preclass submission and flow-chart.
9:28am, emphasize that bradford be added at the last step. 

Students were asked to figure out way to perform experiement on their own, only asking for help when they are 'challenged'. AH mostly answered students questions.

by 9:52, most students are adding NaCl solutions to eppendorf tubes.


Student Problems: 
One group add the curve in the wrong way. This is a recurring problem.


10am:
I then went over R code on standard curve preparation and analysis. I explained that sample codes will always provide to students in bio125.
R and Rstudio demo for data analysis



Review homework and assignment. No time, leave for next class.

=======================
9am section 3. 1-2pm. College closes at 2pm.

Only 10 students out of 18 students did pre-lab assignment. Among the 10 submitted, many of them are wrong.

Make sure protein are thawed.
Make sure unknown protein tube is not mistaken as BSA standard.

To save time, add solution directly to the curvettes.



Problems
Some student touch tips into working solutions and then used the same tips for stocks again.
Several groups still add wrong volumes.



references:
http://hongqinlab.blogspot.com/2015/01/bio125-thu-bradford-protein.html
http://hongqinlab.blogspot.com/2014/01/bio125-jan-21-2014-msh2-serial-dilution.html

Wednesday, January 20, 2016

tar backup byte laptop


lapphy-pc1:~ hqin$ cat backup.byte.sh 

date
 echo "Back up Byte laptop  now"
 time perl /Users/hqin/perl/backup4.pl /Volumes/bear/byte > /tmp/_backup.hqin.txt 


date

lapphy-pc1:~ hqin$ sh backup.byte.sh 
Wed Jan 20 20:23:37 EST 2016
Back up Byte laptop  now
defined(%hash) is deprecated at /Users/hqin/lib/perl/Util.pm line 610.
(Maybe you should just omit the defined()?)

du: Library/Saved Application State/com.adobe.flashplayer.installmanager.savedState: Permission denied
tar: wdijk-112507/trash: Couldn't visit directory: Permission denied
tar: wdijk-112507/doc: Couldn't visit directory: Permission denied
tar: day2.tab: could not open file: Permission denied
tar: day3.tab: could not open file: Permission denied
tar: day4.tab: could not open file: Permission denied
tar: Error exit delayed from previous errors.
tar: Google: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.

real 82m9.817s
user 0m9.009s
sys 5m13.683s


Wed Jan 20 21:45:47 EST 2016


Lotus Notes, reserve a room

General,

Reserve facility.

bio125, 20160120Wed


Section 1: 
9am-10:15 _Go over student assignments
NCBI data exercise

8:20-9am, do exericse in class on nucleotide structure, chromosome, and replication.
Problems: replication origin of circular chromosome in bacteria, heavy and light chain of replicated DNA,

10:20 _ApE
_ApE, CDS, reverse complementation

Add flowchart assignment for Day 2 on Moodle.

Socrative SPD on nucleotide structure

Summarize class by calling students to answer some problems on 3'OH, cell cycle phases.

Prep next class. Explain 5X meaning.
1 part of mix of y , 5 part of water,


Section 2: 
1pm
_Go over student assignments. Several groups in this section had problems with math problems.
_NCBI nucleotide database

PRoblems, 3' and 2' deoxy ribose, proofreading, genes in replication, GC content, 

1:50pm, right hand and left hand helix. 

2pm, ask students to reviews the questions. 

to 3pm. APE exercise on translate MSH2 ORF


Not used:
_Central dogma review (concept map, group activity)

_DNA structure and replication, with MSH2's role mentioned briefly
human genome 3 billion DNAbase
yeast, how big?
Past student presentations on MSH2 project
Past project poster

skipped: DNA double struck in SPDB, based bio233 materials on DNA.

Sunday, January 17, 2016

R GEO paring problem on osX

Working with R GEO on osX, somehow the GEO object cannot be parsed. I then update GEO to the most recent version. Problem persisted.

After restarting the computer, everything seems fine. Not sure what have happenned.

java problem for R package installed as sources.


install rJava as sources.

checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver    : '/usr/bin/jar'
compiler    : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags   : ''
java libs   : ''
configure: error: One or more Java configuration variables are not set.
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.


http://stackoverflow.com/questions/3311940/r-rjava-package-install-failing
This seems to be a common problem.

I went back to R and choose to install binaries. The installation passed.


Saturday, January 16, 2016

limma, model, contrast matrix, topTable

limma reference:
[31] Smyth, G. (2004). Linear models and empirical bayes methods for assessing dierential
expression in microarray experiments. Statistical Applications in Genetics and Molecular

Biology 3, Article 3.

[49] Yang, Y.H. and Speed, T.P. (2003). Design and analysis of comparative microarray experiments.
In T.P. Speed, editor, Statistical Analysis of Gene Expression Microarray Data,
pages 35-91. Chapman & Hall/CRC Press.


https://support.bioconductor.org/p/57268/




topTable output



R API packages for data sources


http://blog.revolutionanalytics.com/2016/01/new-data-sources-for-r.html

Friday, January 15, 2016

bio125 20160115 Day 2

List of things: 
Overview of course
lab safety signature
Pubmed exercise
Socractive
Review math assignments
eTextbook assignment and end of module questions
Simple R exercise

============================================
Section 1
9am Ask students to read lab safety.

PubMed search
Primary literature: original work versus reviews and commentaries.
Spelman [ad]

9:27 group work on cause of cancer                                                                                                                             
Smoking and lung cancer: fair coin and biased coin
coin toss for dish washing

10am check etext assignment. still not released
 by 10:30 3 math assignment
Go over math assignment

10:30am, go over R/Rstuido. 
11am. end the class. 

group 1, 2: colorectal cancer, MSH2
group 3: breast cancer, BRCA1
group 4; leukemia,
group 5: oral cancer, smoking, alcohol PMID 25564114
group 6: ovarian cancer: BRCA1 and 2
group 7: prostate cancer:
group 8: stomach cancer
group 9: pancreatic cancer
group 10: liver cancer

============================================
Section 2
 Ask students to read lab safety.

1:14-2pm PubMed search
Group work on cause of cancer                                                                                                                     

Primary literature: original work versus reviews and commentaries.
Spelman [ad]
Morehouse
      
by2:40 math assignment. Ask students work on the board. 

2:50pm, youtube live recording of ppt presenation.



Summary and end the class. 
Did not have time for R/Studio simple R exercise. 


============================================
Reference:




Wednesday, January 13, 2016

Day 1, bio125 20160113Wed, section 3 and 4

List of things: 
Names tags,
Syllabus, Learning objectives
Pre-survey on computing thinking: 
https://docs.google.com/forms/d/1g3hrO8QtbAGcW3h2Oh-PcRr-OlmnTAoCXw71iSeiHrM/viewform
preclass knowledge assessment

APE installation
R/Rstudio installation, data analysis
Socractive
Notebook
Past student presentations
Assignment due before class

============================================
Section 1
=> Dynamic books, access code problem
=> Names tags,
=>How to find upcoming assignments on Moodle?
=>Syllabus, flipped classroom, assignments are mostly due before class, 
Learning objectives
Use a seat map to connect student names, faces and seatings.

9:25
=>Signatures, notepad and pens
=>IRB, academic integrity, photo video release form (Need to add Yes or No on the form)

9:34 
=> computing survey
Emails the link through the commons news forum for unregistered students. 

9:45=>pre-assessment

10:06
=> Download ApE. About 2 students do not have laptops. 
ApE installation. On Yosemite, when the security setting is not changed, OS X gave a warning as if the downloaded software is damaged.
On some windows computer, ApE download as a ZIP file and have to be extract. 

by 10:42, R Rstudio. R has to be run directly on Spelman HP laptops. 

10:50am, recall names and ended the class. 

============================================
Section 2
1pm
=> Dynamic books, access code problem
Problem: No assignments can be seen on your textbook. 

13:16 
=> Names tags,
Use a seat map to connect student names, faces and seatings.

by 1:30
=>Syllabus, flipped classroom, assignments are mostly due before class, 
Learning objectives
grades, past exam, assignment due before class. 

** Use the past exam average to explain assessment, and how it can be helpful to improve teaching and learning strategies. 

1:30 =>Signatures, notepad and pens
=>IRB, academic integrity, photo video release form (Need to add Yes or No on the form)

=> computing survey

Emails the link through the commons news forum for unregistered students. 

13:55
=>pre-assessment

14:03
=> Download ApE. About 2 students do not have laptops. 

14:19 
=>R Rstudio. R has to be run directly on Spelman HP laptops. 

=>How to find upcoming assignments on Moodle?

2:40pm. Recall names and ended the class. 




Left for Day 2
=>lab safety form (I added the students names to the list).

Socrative login. Go over slides to test socrative. (students have trouble to generate account. Later, I figure out that students names are only available in pre-defined quizzes).

=> Past exam
=> Pubmed
=> Socrative

HP laptop log, wireless connections
Bring ethernet cables 

Presentation orders. natural group order

Did Group building on cancer. 
PubMed search
Primary literature: original work versus reviews and commentaries.
group 1, 2: colorectal cancer, MSH2
group 3: breast cancer, BRCA1
group 4; leukemia,
group 5: oral cancer, smoking, alcohol PMID 25564114
group 6: ovarian cancer: BRCA1 and 2
group 7: prostate cancer:
group 8: stomach cancer
group 9: pancreatic cancer
group 10: liver cancer

ToDo for Friday: R code for math assignments. 

Summary: presentation groups of next class on homework assignments.


Tuesday, January 12, 2016

GEO, Ovarian cancer, Cisplatin

Analysis of ovarian cancer under treatment of cisplatin GEO Data: http://www.ncbi.nlm.nih.gov/geo/geo2r/?acc=GSE47856 Use limma package for differnetial expression analysis.
################################################################
#   Differential expression analysis with limma
library(Biobase)
library(GEOquery)
library(limma)
Load series and platform data from GEO. After the first run, save the image for working offline.
# gset <- getGEO("GSE47856", GSEMatrix =TRUE)
# save.image("GSE47856.RData")
# rm(list=ls())
Load the image.
Study the structure of gset
# study the meta data
experimental_design = gset@phenoData@data
# gset@phenoData@varMetadata
# experimental_design[, "source_name_ch1"][1:10]
experimental_design[1:10,  c("characteristics_ch1", "characteristics_ch1.2")]
           characteristics_ch1 characteristics_ch1.2
GSM1160723    cell line: HeyA8       treatment: none
GSM1160724    cell line: HeyA8       treatment: none
GSM1160725    cell line: HeyA8       treatment: none
GSM1160726    cell line: HeyA8       treatment: none
GSM1160727    cell line: HeyA8       treatment: none
GSM1160728    cell line: HeyA8  treatment: Cisplatin
GSM1160729    cell line: HeyA8  treatment: Cisplatin
GSM1160730    cell line: HeyC2       treatment: none
GSM1160731    cell line: HeyC2       treatment: none
GSM1160732    cell line: HeyC2       treatment: none
unique( experimental_design$characteristics_ch1 )
 [1] cell line: HeyA8     cell line: HeyC2     cell line: A2780    
 [4] cell line: OVCA420   cell line: OVCA429   cell line: PA-1     
 [7] cell line: TYK-nu    cell line: CH1       cell line: OV90     
[10] cell line: FU-OV-1   cell line: A2008     cell line: DOV13    
[13] cell line: OVCA433   cell line: OVCAR-10  cell line: DOV13B   
[16] cell line: C13       cell line: IGROV-1   cell line: OVCAR-8  
[19] cell line: M41       cell line: A2780cisR cell line: ovary1847
[22] cell line: Caov-2    cell line: Caov-3    cell line: Hey      
[25] cell line: JHOS-2    cell line: JHOS-3    cell line: OAW28    
[28] cell line: OAW42     cell line: DOV13A    cell line: OV56     
[31] cell line: OVCAR-3   cell line: OVCA432   cell line: OVCAR-2  
[34] cell line: OVCAR-5   cell line: OVK-18    cell line: PEO1     
[37] cell line: RMG-I     cell line: RMG-II    cell line: SKOV-4   
[40] cell line: SKOV-3    cell line: SKOV-6    cell line: SKOV-8   
[43] cell line: TAYA      cell line: TOV-112D  cell line: TOV-21G  
[46] cell line: UWB1.289 
46 Levels: cell line: A2008 cell line: A2780 ... cell line: UWB1.289
Pick one cell line for test.
sel = grep("HeyC2", experimental_design$characteristics_ch1)
gset = gset[ ,sel]
Do a histogram of the expression data
ex <- exprs(gset)
hist(ex[,1])

hist(log2(ex[,1]))

boxplot(ex)

Log2 transform. Not sure about LogC
qx <- as.numeric(quantile(ex, c(0., 0.25, 0.5, 0.75, 0.99, 1.0), na.rm=T))
LogC <- (qx[5] > 100) ||
  (qx[6]-qx[1] > 50 && qx[2] > 0) ||
  (qx[2] > 0 && qx[2] < 1 && qx[4] > 1 && qx[4] < 2)
if (LogC) { ex[which(ex <= 0)] <- NaN
exprs(gset) <- log2(ex) }
Are the microarray data normalized? The sum of each array are similar.
head(ex)
        GSM1160730 GSM1160731 GSM1160732 GSM1160733 GSM1160734 GSM1160735
7892501    7.34145    5.99586    6.36227    7.71416    6.96127    7.66464
7892502    4.18187    3.83990    3.27792    4.86781    3.55629    4.10709
7892503    4.13694    3.35185    3.05373    3.59022    3.33752    3.33640
7892504    9.62438    9.01348    8.63508    9.06869    9.11466    9.04583
7892505    2.30237    2.23863    2.68872    4.01024    2.68134    2.19076
7892506    4.21606    2.84229    3.93290    3.51904    3.54838    3.37970
sums = apply(ex,2, sum)
sums / max(sums)
GSM1160730 GSM1160731 GSM1160732 GSM1160733 GSM1160734 GSM1160735 
 0.9921900  0.9946481  0.9945619  1.0000000  0.9930194  0.9935355 
medians = apply(ex, 2, median)
medians
GSM1160730 GSM1160731 GSM1160732 GSM1160733 GSM1160734 GSM1160735 
   5.76975    5.85706    5.81737    5.78378    5.85064    5.76896 
means = apply(ex, 2, mean)
means
GSM1160730 GSM1160731 GSM1160732 GSM1160733 GSM1160734 GSM1160735 
  6.091404   6.106495   6.105966   6.139352   6.096496   6.099664 
Set up the data and proceed with analysis. Modified by GEO sample script.
gset@phenoData@data[,  c("characteristics_ch1", "characteristics_ch1.2")]
           characteristics_ch1 characteristics_ch1.2
GSM1160730    cell line: HeyC2       treatment: none
GSM1160731    cell line: HeyC2       treatment: none
GSM1160732    cell line: HeyC2       treatment: none
GSM1160733    cell line: HeyC2  treatment: Cisplatin
GSM1160734    cell line: HeyC2  treatment: Cisplatin
GSM1160735    cell line: HeyC2  treatment: Cisplatin
gset@phenoData@data$characteristics_ch1.2
                  V9                  V10                  V11 
     treatment: none      treatment: none      treatment: none 
                 V12                  V13                  V14 
treatment: Cisplatin treatment: Cisplatin treatment: Cisplatin 
Levels: treatment: Cisplatin treatment: none
treatments <- make.names(gset@phenoData@data$characteristics_ch1.2)
fl.names = unique(treatments)
fl = as.factor( LETTERS[1:length(fl.names)]) 
names(fl) = fl.names
gset$description <- fl
design <- model.matrix(~ description + 0, gset)
colnames(design) <- levels(fl)
fit <- lmFit(gset, design)
cont.matrix <- makeContrasts( A-B, levels=fl)
fit2 <- contrasts.fit(fit, cont.matrix)
fit2 <- eBayes(fit2, 0.01)
tT <- topTable(fit2, adjust="fdr", sort.by="B", number=50)