Monday, January 29, 2018

possible ms02 bug and how to fix it.

update on 20180202: it turns out the input pairs of network contain redundant pairs. So, input data need to be checked for consistency by a switch, such as "-input-check 1"

It is possible that recursive call return pairs that already existed in previous iterations, in recursive implementation.

This may explain why large network permutation give slightly different random networks.

One way to fix this is to do book-keeping on the entire networks (instead of a small chunk using recursive definitions). This may be implemented in a separate functional call, breaking self-pairing and reassignment partners.




machine learning in Python



http://scikit-learn.org/stable/

Thursday, January 25, 2018

NSF fastlane requirement update



You are receiving this email because you have been identified as having an in-process proposal or in-process Proposal File Update (PFU) in FastLane.
Effective January 29, 2018, NSF will implement changes in FastLane and Research.gov to support the following policy updates in the Proposal & Award Policies & Procedures Guide (PAPPG) (NSF 18-1) and to run updated Budget Justification page limit automated compliance checks in FastLane:
Standard Collaborators and Other Affiliations Template Implementation:
  • The revised PAPPG (NSF 18-1) incorporates the standard Collaborators and Other Affiliations (COA) template that has been in pilot phase in FastLane since April 2017.
  • FastLane system instructions will be updated in accordance with the new policy.
  • Frequently Asked Questions (FAQs) on the COA template are available at https://nsf.gov/bfa/dias/policy/coa.jsp.

Budget Justification Page Limitation Increase:
  • The Budget Justification page limitation will increase from three pages to five pages.
  • To align with the new policy, FastLane will run an automated compliance check for the Budget Justification page limitation across several proposal types and will generate an error or warning when the submission validation compliance check is not met.
  • Compliance checks are run during “Check Proposal,” “Forward to SPO,” and “Submit Proposal.” The complete list of FastLane automated compliance checks effective January 29, 2018, is available at https://www.nsf.gov/bfa/dias/policy/autocheck/compliancechecks_jan18.pdf.

New “Substitute Negotiator” Associated Document for Change of Principal Investigator (PI) Requests:
  • A new “Substitute Negotiator” Associated Document will be available in FastLane’s Notifications and Requests module when a “Change of PI” request is made (e.g., to be utilized in cases where a former employee or Intergovernmental Personnel Act (IPA) is being reappointed as a PI or Co-PI to an award they were previously involved with).
New “Other Request” Type:
  • A new “Other Request” type will be added to Research.gov’s Notifications and Requests module. This request will be reviewed and approved by the NSF Program Officer.

New Award Abstract Text:
  • In connection with NSF’s transparency and accountability efforts for award abstracts, the Foundation will add the following final paragraph to all award abstracts for awards with start dates of March 1 or later: “This award reflects NSF’s statutory mission and has been deemed worthy of support through evaluation using the Foundation’s intellectual merit and broader impacts review criteria.”

Note about Proposal File Updates (PFU):
The automated compliance checks also apply when a PFU is performed on a proposal. The compliance checks will be run on all sections of the proposal, regardless of which section was updated during the PFU. Proposers should be aware that if a proposal was previously submitted successfully, a PFU performed on the proposal will be prevented from submission if the proposal does not comply with the compliance checks in effect at the time.

We encourage you to share this information with your colleagues. To learn about all the changes to the PAPPG (NSF 18-1), be sure to view the latest webinar.

For IT system-related questions, please contact FastLane User Support at 1-800-673-6188 or fastlane@nsf.gov. Policy-related questions should be directed to policy@nsf.gov. 

Regards,
The FastLane Team at the National Science Foundation

If you would like to stay up-to-date on upcoming events or future enhancements to Research.gov and FastLane, subscribe to our System Updates NSF listserv. This listserv is available to both the research community and to NSF staff. To subscribe, simply send an email to system_updates-subscribe-request@listserv.nsf.gov and you will be automatically enrolled.


Tuesday, January 23, 2018

UTC Activity Insight

UTC Activity Insight

https://www.digitalmeasures.com/login/utc/faculty/app/activities


Friday, January 19, 2018

toread, paper on aging, calorie restriction

The Hsp70 homolog Ssb affects ribosome biogenesis via the TORC1-Sch9 signaling pathway Kaivalya Mudholkar1 , Edith Fitzke1 , Claudia Prinz1 , Matthias P. Mayer 2 & Sabine Rospert 1,3
https://www.nature.com/articles/s41467-017-00635-z.pdf



Are aberrant phase transitions a driver of cellular aging?Simon Alberti* and Anthony A. Hyman*
 
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5108435/





Protein biogenesis machinery is a driver of replicative aging in yeast. Georges E Janssens1†, Anne C Meinema2†‡, Javier Gonza ́lez, Justina C Wolters4, Alexander Schmidt5, Victor Guryev1, Rainer Bischoff4, Ernst C Wit3,
Liesbeth M Veenhoff1*, Matthias Heinemann2.  ELife. 
 https://elifesciences.org/articles/08527




 2018 Jan 2;217(1):51-63. doi: 10.1083/jcb.201709072. Epub 2017 Nov 10. Pathways of cellular proteostasis in aging and disease.Klaips CL1, Jayaraj GG2, Hartl FU3.
https://www.ncbi.nlm.nih.gov/pubmed/29127110


SVD

good and clear explanations
https://youtu.be/EfZsEFhHcNM


Thursday, January 18, 2018

all trap family tree

setup the systems
rm(list=ls())
debug = 1; 
read null distribution from single cell data
moving_buffer = read.csv("data/moving_buffer.csv")

p_dist = function(x, input_buffer) {
  input_buffer = input_buffer[ !is.na(input_buffer)];
  lower = input_buffer[ input_buffer < x]; lower = lower[!is.na(lower)];
  upper = input_buffer[input_buffer > x]; upper = upper[!is.na(upper)];
  
  LowerP =  (length(lower) / length(input_buffer))
  UpperP =  (length(upper) / length(input_buffer)) 
  
  return(list(LowerP,UpperP, mean(input_buffer, na.rm=T), sd(input_buffer, na.rm=T)))
}

my_dist = function(x1, y1, x2, y2) {sqrt( (x1 - x2)^2 + (y1-y2)^2 ) }; 
Load the segmented data
DataTrap <- read.csv("data/DataSet_v6.csv",header=TRUE,stringsAsFactors = FALSE)
Take one trap for the time beling to develop family tree
tb.alltraps = DataTrap;
tb.alltraps$predecessorID = NA;
tb.alltraps$successorID = NA;

traps = sort(unique(tb.alltraps$trap_num));
Work from bottom to top to build a family tree using trace-back.
for( cur_trap in 1:length(traps)){
# cur_trap = 10;
#for( cur_trap in c(20,30,50)){
 tb = tb.alltraps[tb.alltraps$trap_num==traps[cur_trap], ];
 timpoints = sort(unique(tb$Image_num))
 #plot( timpoints, 1:length(timpoints), type='l') #visual check timepoints.
 for (i in length(timpoints):2){
   if(debug > 1) { print(paste("i=",i)); }
   current_frame  = tb[ tb$Image_num == timpoints[i], ];
   previous_frame = tb[ tb$Image_num == timpoints[i-1], ];
   d.tb = p.d.tb = data.frame(matrix(nrow=length(current_frame[,1]), ncol=length(previous_frame[,1]) ));
   for ( i.cur in 1:length(current_frame[,1]) ) {
     for ( j.pre in 1:length(previous_frame[,1]) ) {
       d.tb[i.cur, j.pre] = my_dist(current_frame$cell_X[i.cur], current_frame$cell_Y[i.cur],
                       previous_frame$cell_X[j.pre], previous_frame$cell_Y[j.pre]);
       #my_dist = function(x1, y1, x2, y2) {sqrt( (x1 - x2)^2 + (y1-y2)^2 ) }; 
       p.d.tb[i.cur, j.pre] = p_dist(d.tb[i.cur, j.pre], moving_buffer$d )[[2]];
     }
     current_frame$predecessorID[i.cur] = which.max( p.d.tb[i.cur, ]); #pick max, greedy algorithm. 
   }
   tb$predecessorID[tb$Image_num == timpoints[i]] = current_frame$predecessorID; #assume order unchanged. 
 }
 tb.alltraps$predecessorID[tb.alltraps$trap_num==traps[cur_trap]] = tb$predecessorID;
}
 tb.alltraps$predecessorID[tb.alltraps$trap_num==traps[30]]; 
##    [1] NA  1  1  1  1  1  1  2  1  2  1  2  1  2  2  1  1  2  1  2  2  1  1
##   [24]  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2
##   [47]  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  2  1  2  1  1  2  1
##   [70]  2  1  2  1  2  1  2  1  2  1  2  1  2  1  1  1  1  1  2  1  2  1  2
##   [93]  1  2  1  2  2  1  2  1  1  1  1  1  2  1  2  1  2  1  2  1  1  1  1
##  [116]  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  2  1  1
##  [139]  2  2  1  1  1  2  1  2  1  2  1  2  1  2  2  1  2  1  1  2  1  2  1
##  [162]  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  2  1  2  1
##  [185]  1  1  2  1  2  1  2  2  1  1  2  2  1  1  1  2  1  2  1  2  1  2  1
##  [208]  1  1  1  1  2  1  2  1  2  2  1  2  1  1  1  2  1  2  1  2  1  2  1
##  [231]  2  1  2  1  1  1  1  2  1  2  1  2  1  2  1  1  1  1  1  2  1  2  1
##  [254]  2  1  2  1  2  1  1  1  1  2  1  2  1  2  1  2  1  1  1  1  1  2  1
##  [277]  2  1  2  1  1  1  1  1  1  2  1  2  1  2  1  2  1  1  1  1  1  2  1
##  [300]  2  1  2  1  2  1  1  1  1  1  1  2  1  2  1  2  1  2  1  2  1  2  1
##  [323]  1  1  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  1  1  1  1  2  1
##  [346]  2  1  2  1  2  1  2  1  1  1  1  1  1  2  1  2  1  2  1  2  1  2  1
##  [369]  2  1  2  1  2  1  1  1  1  1  1  1  1  2  1  2  1  2  1  2  1  2  1
##  [392]  2  1  2  1  2  1  1  1  1  1  1  1  1  2  1  2  1  2  1  2  1  2  1
##  [415]  2  1  2  1  2  1  1  1  1  1  1  2  1  2  3  1  2  3  1  2  3  1  2
##  [438]  3  1  2  3  1  2  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
##  [461]  1  1  1  1  1  1  2  3  1  2  3  1  2  3  1  2  3  1  2  3  1  2  3
##  [484]  1  2  3  1  2  1  2  1  1  2  1  2  1  1  2  3  1  2  1  2  1  2  1
##  [507]  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  1  2  2  1  1  2  2  1
##  [530]  1  1  2  1  3  4  1  2  3  4  2  1  3  4  2  1  3  4  1  2  3  4  1
##  [553]  3  2  4  1  3  2  2  1  3  1  2  3  2  1  3  1  2  3  1  2  3  1  2
##  [576]  3  1  1  2  3  4  2  1  3  4  2  1  3  4  1  2  3  4  1  2  3  4  1
##  [599]  2  3  1  4  2  1  3  4  2  1  3  4  1  2  3  4  1  2  3  1  2  3  1
##  [622]  1  2  3  1  2  3  1  2  3  1  1  2  3  4  1  2  3  4  2  1  3  4  2
##  [645]  1  3  2  1  3  2  1  3  1  2  3  1  2  3  1  2  3  1  2  3  1  2  3
##  [668]  1  2  3  1  2  3  1  2  3  1  1  2  3  4  1  2  3  4  1  2  3  4  1
##  [691]  2  3  3  4  1  2  1  3  4  6  5  2  1  4  6  1  2  3  3  4  1  2  4
##  [714]  5  1  2  3  3  4  1  2  4  5  1  2  1  3  4  1  2  3  4  5  1  2  3
##  [737]  4  5  1  2  4  5  1  2  3  4  1  2  3  4  1  2  3  3  4  1  2  4  5
##  [760]  1  2  3  4  1  2  3  1  4  1  2  3  5  1  2  3  3  4  1  2  4  5  1
##  [783]  2  1  3  4  1  2  3  4  5  1  2  3  4  5  1  2  4  5  1  2  3  4  1
##  [806]  2  3  4  1  2  3  3  4  1  2  4  5  1  2  3  4  1  2  3  1  4  1  2
##  [829]  3  5  1  2  3  1  2  3  1  2  3  1  2  3  1  2  3  1  2  3  1  2  3
##  [852]  1  2  3  1  1  1  1  1  2  3  4  5  6  7  1  2  3  4  4  3  5  7  1
##  [875]  1  2  3  4  5  6  8  9  7  1  2  3  4  6  7  9  8  1  2  3  4  4  7
##  [898]  6  1  2  3  5  6  7  1  2  3  4  4  5  6  1  2  3  5  4  6  7  1  2
##  [921]  4  3  5  7  6  1  2  3  4  5  7  6  1  2  5  4  4  3  6  1  7  1  2
##  [944]  3  4  6  7  9  1  2  3  4  4  1  6  7  1  2  3  4  3  7  8  1  2  3
##  [967]  4  5  6  7  1  2  5  4  3  6  7  1  2  5  4  3  6  7  1  2  3  4  5
##  [990]  6  7  1  2  4  3  5  4  7  1  6  1  2  3  4  5  6  7  9  8
write.csv(tb.alltraps, "data/alltraps_withtree.csv", quote=F)

Tuesday, January 16, 2018

single trap, family tree for segmented cells


setup the systems
rm(list=ls())
debug = 0; 
read null distribution from single cell data
moving_buffer = read.csv("data/moving_buffer.csv")

p_dist = function(x, input_buffer) {
  input_buffer = input_buffer[ !is.na(input_buffer)];
  lower = input_buffer[ input_buffer < x]; lower = lower[!is.na(lower)];
  upper = input_buffer[input_buffer > x]; upper = upper[!is.na(upper)];
  
  LowerP =  (length(lower) / length(input_buffer))
  UpperP =  (length(upper) / length(input_buffer)) 
  
  return(list(LowerP,UpperP, mean(input_buffer, na.rm=T), sd(input_buffer, na.rm=T)))
}

my_dist = function(x1, y1, x2, y2) {sqrt( (x1 - x2)^2 + (y1-y2)^2 ) }; 
Load the segmented data
DataTrap <- read.csv("data/DataSet_v6.csv",header=TRUE,stringsAsFactors = FALSE)
Take one trap for the time beling to develop family tree
tb = DataTrap[DataTrap$trap_num==17,  ]
tb$predecessorID = NA;
tb$successorID = NA;

timpoints = sort(unique(tb$Image_num))
plot( timpoints, 1:length(timpoints), type='l') #visual check timepoints.
Work from bottom to top to build a family tree using trace-back.
#   i= 200; 
 for (i in length(timpoints):2){
   print(paste("i=",i));
   current_frame  = tb[ tb$Image_num == timpoints[i], ];
   previous_frame = tb[ tb$Image_num == timpoints[i-1], ];
   d.tb = p.d.tb = data.frame(matrix(nrow=length(current_frame[,1]), ncol=length(previous_frame[,1]) ));
   for ( i.cur in 1:length(current_frame[,1]) ) {
     for ( j.pre in 1:length(previous_frame[,1]) ) {
       d.tb[i.cur, j.pre] = my_dist(current_frame$cell_X[i.cur], current_frame$cell_Y[i.cur],
                       previous_frame$cell_X[j.pre], previous_frame$cell_Y[j.pre]);
       #my_dist = function(x1, y1, x2, y2) {sqrt( (x1 - x2)^2 + (y1-y2)^2 ) }; 
       p.d.tb[i.cur, j.pre] = p_dist(d.tb[i.cur, j.pre], moving_buffer$d )[[2]];
     }
     current_frame$predecessorID[i.cur] = which.max( p.d.tb[i.cur, ]); #pick max, greedy algorithm. 
   }
   tb$predecessorID[tb$Image_num == timpoints[i]] = current_frame$predecessorID; #assume order unchanged. 
}
## [1] "i= 390"
## [1] "i= 389"
## [1] "i= 388"
## [1] "i= 387"
## [1] "i= 386"
## [1] "i= 385"
## [1] "i= 384"
## [1] "i= 383"
## [1] "i= 382"
## [1] "i= 381"
## [1] "i= 380"
## [1] "i= 379"
## [1] "i= 378"
## [1] "i= 377"
## [1] "i= 376"
## [1] "i= 375"
## [1] "i= 374"
## [1] "i= 373"
## [1] "i= 372"
## [1] "i= 371"
## [1] "i= 370"
## [1] "i= 369"
## [1] "i= 368"
## [1] "i= 367"
## [1] "i= 366"
## [1] "i= 365"
## [1] "i= 364"
## [1] "i= 363"
## [1] "i= 362"
## [1] "i= 361"
## [1] "i= 360"
## [1] "i= 359"
## [1] "i= 358"
## [1] "i= 357"
## [1] "i= 356"
## [1] "i= 355"
## [1] "i= 354"
## [1] "i= 353"
## [1] "i= 352"
## [1] "i= 351"
## [1] "i= 350"
## [1] "i= 349"
## [1] "i= 348"
## [1] "i= 347"
## [1] "i= 346"
## [1] "i= 345"
## [1] "i= 344"
## [1] "i= 343"
## [1] "i= 342"
## [1] "i= 341"
## [1] "i= 340"
## [1] "i= 339"
## [1] "i= 338"
## [1] "i= 337"
## [1] "i= 336"
## [1] "i= 335"
## [1] "i= 334"
## [1] "i= 333"
## [1] "i= 332"
## [1] "i= 331"
## [1] "i= 330"
## [1] "i= 329"
## [1] "i= 328"
## [1] "i= 327"
## [1] "i= 326"
## [1] "i= 325"
## [1] "i= 324"
## [1] "i= 323"
## [1] "i= 322"
## [1] "i= 321"
## [1] "i= 320"
## [1] "i= 319"
## [1] "i= 318"
## [1] "i= 317"
## [1] "i= 316"
## [1] "i= 315"
## [1] "i= 314"
## [1] "i= 313"
## [1] "i= 312"
## [1] "i= 311"
## [1] "i= 310"
## [1] "i= 309"
## [1] "i= 308"
## [1] "i= 307"
## [1] "i= 306"
## [1] "i= 305"
## [1] "i= 304"
## [1] "i= 303"
## [1] "i= 302"
## [1] "i= 301"
## [1] "i= 300"
## [1] "i= 299"
## [1] "i= 298"
## [1] "i= 297"
## [1] "i= 296"
## [1] "i= 295"
## [1] "i= 294"
## [1] "i= 293"
## [1] "i= 292"
## [1] "i= 291"
## [1] "i= 290"
## [1] "i= 289"
## [1] "i= 288"
## [1] "i= 287"
## [1] "i= 286"
## [1] "i= 285"
## [1] "i= 284"
## [1] "i= 283"
## [1] "i= 282"
## [1] "i= 281"
## [1] "i= 280"
## [1] "i= 279"
## [1] "i= 278"
## [1] "i= 277"
## [1] "i= 276"
## [1] "i= 275"
## [1] "i= 274"
## [1] "i= 273"
## [1] "i= 272"
## [1] "i= 271"
## [1] "i= 270"
## [1] "i= 269"
## [1] "i= 268"
## [1] "i= 267"
## [1] "i= 266"
## [1] "i= 265"
## [1] "i= 264"
## [1] "i= 263"
## [1] "i= 262"
## [1] "i= 261"
## [1] "i= 260"
## [1] "i= 259"
## [1] "i= 258"
## [1] "i= 257"
## [1] "i= 256"
## [1] "i= 255"
## [1] "i= 254"
## [1] "i= 253"
## [1] "i= 252"
## [1] "i= 251"
## [1] "i= 250"
## [1] "i= 249"
## [1] "i= 248"
## [1] "i= 247"
## [1] "i= 246"
## [1] "i= 245"
## [1] "i= 244"
## [1] "i= 243"
## [1] "i= 242"
## [1] "i= 241"
## [1] "i= 240"
## [1] "i= 239"
## [1] "i= 238"
## [1] "i= 237"
## [1] "i= 236"
## [1] "i= 235"
## [1] "i= 234"
## [1] "i= 233"
## [1] "i= 232"
## [1] "i= 231"
## [1] "i= 230"
## [1] "i= 229"
## [1] "i= 228"
## [1] "i= 227"
## [1] "i= 226"
## [1] "i= 225"
## [1] "i= 224"
## [1] "i= 223"
## [1] "i= 222"
## [1] "i= 221"
## [1] "i= 220"
## [1] "i= 219"
## [1] "i= 218"
## [1] "i= 217"
## [1] "i= 216"
## [1] "i= 215"
## [1] "i= 214"
## [1] "i= 213"
## [1] "i= 212"
## [1] "i= 211"
## [1] "i= 210"
## [1] "i= 209"
## [1] "i= 208"
## [1] "i= 207"
## [1] "i= 206"
## [1] "i= 205"
## [1] "i= 204"
## [1] "i= 203"
## [1] "i= 202"
## [1] "i= 201"
## [1] "i= 200"
## [1] "i= 199"
## [1] "i= 198"
## [1] "i= 197"
## [1] "i= 196"
## [1] "i= 195"
## [1] "i= 194"
## [1] "i= 193"
## [1] "i= 192"
## [1] "i= 191"
## [1] "i= 190"
## [1] "i= 189"
## [1] "i= 188"
## [1] "i= 187"
## [1] "i= 186"
## [1] "i= 185"
## [1] "i= 184"
## [1] "i= 183"
## [1] "i= 182"
## [1] "i= 181"
## [1] "i= 180"
## [1] "i= 179"
## [1] "i= 178"
## [1] "i= 177"
## [1] "i= 176"
## [1] "i= 175"
## [1] "i= 174"
## [1] "i= 173"
## [1] "i= 172"
## [1] "i= 171"
## [1] "i= 170"
## [1] "i= 169"
## [1] "i= 168"
## [1] "i= 167"
## [1] "i= 166"
## [1] "i= 165"
## [1] "i= 164"
## [1] "i= 163"
## [1] "i= 162"
## [1] "i= 161"
## [1] "i= 160"
## [1] "i= 159"
## [1] "i= 158"
## [1] "i= 157"
## [1] "i= 156"
## [1] "i= 155"
## [1] "i= 154"
## [1] "i= 153"
## [1] "i= 152"
## [1] "i= 151"
## [1] "i= 150"
## [1] "i= 149"
## [1] "i= 148"
## [1] "i= 147"
## [1] "i= 146"
## [1] "i= 145"
## [1] "i= 144"
## [1] "i= 143"
## [1] "i= 142"
## [1] "i= 141"
## [1] "i= 140"
## [1] "i= 139"
## [1] "i= 138"
## [1] "i= 137"
## [1] "i= 136"
## [1] "i= 135"
## [1] "i= 134"
## [1] "i= 133"
## [1] "i= 132"
## [1] "i= 131"
## [1] "i= 130"
## [1] "i= 129"
## [1] "i= 128"
## [1] "i= 127"
## [1] "i= 126"
## [1] "i= 125"
## [1] "i= 124"
## [1] "i= 123"
## [1] "i= 122"
## [1] "i= 121"
## [1] "i= 120"
## [1] "i= 119"
## [1] "i= 118"
## [1] "i= 117"
## [1] "i= 116"
## [1] "i= 115"
## [1] "i= 114"
## [1] "i= 113"
## [1] "i= 112"
## [1] "i= 111"
## [1] "i= 110"
## [1] "i= 109"
## [1] "i= 108"
## [1] "i= 107"
## [1] "i= 106"
## [1] "i= 105"
## [1] "i= 104"
## [1] "i= 103"
## [1] "i= 102"
## [1] "i= 101"
## [1] "i= 100"
## [1] "i= 99"
## [1] "i= 98"
## [1] "i= 97"
## [1] "i= 96"
## [1] "i= 95"
## [1] "i= 94"
## [1] "i= 93"
## [1] "i= 92"
## [1] "i= 91"
## [1] "i= 90"
## [1] "i= 89"
## [1] "i= 88"
## [1] "i= 87"
## [1] "i= 86"
## [1] "i= 85"
## [1] "i= 84"
## [1] "i= 83"
## [1] "i= 82"
## [1] "i= 81"
## [1] "i= 80"
## [1] "i= 79"
## [1] "i= 78"
## [1] "i= 77"
## [1] "i= 76"
## [1] "i= 75"
## [1] "i= 74"
## [1] "i= 73"
## [1] "i= 72"
## [1] "i= 71"
## [1] "i= 70"
## [1] "i= 69"
## [1] "i= 68"
## [1] "i= 67"
## [1] "i= 66"
## [1] "i= 65"
## [1] "i= 64"
## [1] "i= 63"
## [1] "i= 62"
## [1] "i= 61"
## [1] "i= 60"
## [1] "i= 59"
## [1] "i= 58"
## [1] "i= 57"
## [1] "i= 56"
## [1] "i= 55"
## [1] "i= 54"
## [1] "i= 53"
## [1] "i= 52"
## [1] "i= 51"
## [1] "i= 50"
## [1] "i= 49"
## [1] "i= 48"
## [1] "i= 47"
## [1] "i= 46"
## [1] "i= 45"
## [1] "i= 44"
## [1] "i= 43"
## [1] "i= 42"
## [1] "i= 41"
## [1] "i= 40"
## [1] "i= 39"
## [1] "i= 38"
## [1] "i= 37"
## [1] "i= 36"
## [1] "i= 35"
## [1] "i= 34"
## [1] "i= 33"
## [1] "i= 32"
## [1] "i= 31"
## [1] "i= 30"
## [1] "i= 29"
## [1] "i= 28"
## [1] "i= 27"
## [1] "i= 26"
## [1] "i= 25"
## [1] "i= 24"
## [1] "i= 23"
## [1] "i= 22"
## [1] "i= 21"
## [1] "i= 20"
## [1] "i= 19"
## [1] "i= 18"
## [1] "i= 17"
## [1] "i= 16"
## [1] "i= 15"
## [1] "i= 14"
## [1] "i= 13"
## [1] "i= 12"
## [1] "i= 11"
## [1] "i= 10"
## [1] "i= 9"
## [1] "i= 8"
## [1] "i= 7"
## [1] "i= 6"
## [1] "i= 5"
## [1] "i= 4"
## [1] "i= 3"
## [1] "i= 2"