Grass-Fed vs. Grain-Fed Beef

A new review article compares them. Here is most important info, as far as I’m concerned:

A healthy diet should consist of roughly one to four times more omega-6 fatty acids than omega-3 fatty acids. The typical American diet tends to contain 11 to 30 times more omega -6 fatty acids than omega -3, a phenomenon that has been hypothesized as a significant factor in the rising rate of inflammatory disorders in the United States [40]. Table 2 shows significant differences in n-6:n-3 ratios between grass-fed and grain-fed beef, with and overall average of 1.53 and 7.65 for grass-fed and grain-fed, respectively, for all studies reported in this review.

Grass-fed really is better.

Arithmetic Test R Code (part 2)

new.condition
function (conditions.so.far = newmath$condition)
{# get new condition name
#
#            conditions.so.far       vector of conditions so far
#
cat(“current time”,as.character(Sys.time()),”\n”)
t=as.character(tail(conditions.so.far,1)) #malfunctions without as.character
cat(“most recent condition”,t,”\nthis condition”)
condition=scan(nlines=1,what=”character”,quiet=TRUE, sep=”!”)
condition
}

> newmath2.problems
problem answer
[1,] “2*7″Â Â “4″
[2,] “1*7″Â Â “7″
[3,] “4+4″Â Â “8″
[4,] “8+5″Â Â “3″
[5,] “11-2″Â “9″
[6,] “4+6″Â Â “0″
[7,] “0*8″Â Â “0″
[8,] “0+4″Â Â “4″
[9,] “9*3″Â Â “7″
[10,] “16-9″Â “7″
[11,] “6*8″Â Â “8″
[12,] “7*6″Â Â “2″
[13,] “0+0″Â Â “0″
[14,] “10-9″Â “1″
[15,] “1*1″Â Â “1″
[16,] “8*8″Â Â “4″
[17,] “14-7″Â “7″
[18,] “5+5″Â Â “0″
[19,] “7-3″Â Â “4″
[20,] “3+5″Â Â “8″
[21,] “0+7″Â Â “7″
[22,] “4-4″Â Â “0″
[23,] “1+8″Â Â “9″
[24,] “4*1″Â Â “4″
[25,] “3*1″Â Â “3″
[26,] “3-2″Â Â “1″
[27,] “7*9″Â Â “3″
[28,] “0+8″Â Â “8″
[29,] “1*2″Â Â “2″
[30,] “9*1″Â Â “9″
[31,] “0*0″Â Â “0″
[32,] “7+1″Â Â “8″
[33,] “2-2″Â Â “0″
[34,] “4+5″Â Â “9″
[35,] “11-4″Â “7″
[36,] “4+3″Â Â “7″
[37,] “1*0″Â Â “0″
[38,] “1*4″Â Â “4″
[39,] “12-8″Â “4″
[40,] “7*1″Â Â “7″
[41,] “2-1″Â Â “1″
[42,] “4*6″Â Â “4″
[43,] “9-6″Â Â “3″
[44,] “12-3″Â “9″
[45,] “4+9″Â Â “3″
[46,] “9+4″Â Â “3″
[47,] “9*7″Â Â “3″
[48,] “15-7″Â “8″
[49,] “3*3″Â Â “9″
[50,] “8-0″Â Â “8″
[51,] “8*9″Â Â “2″
[52,] “11-8″Â “3″
[53,] “2*2″Â Â “4″
[54,] “10-2″Â “8″
[55,] “9+8″Â Â “7″
[56,] “8-4″Â Â “4″
[57,] “2+1″Â Â “3″
[58,] “8+3″Â Â “1″
[59,] “7-6″Â Â “1″
[60,] “3-3″Â Â “0″
[61,] “9*9″Â Â “1″
[62,] “8+1″Â Â “9″
[63,] “6*4″Â Â “4″
[64,] “9+9″Â Â “8″
[65,] “4*2″Â Â “8″
[66,] “6-5″Â Â “1″
[67,] “7+5″Â Â “2″
[68,] “9*0″Â Â “0″
[69,] “3*7″Â Â “1″
[70,] “8*1″Â Â “8″
[71,] “2+8″Â Â “0″
[72,] “0+2″Â Â “2″
[73,] “8+0″Â Â “8″
[74,] “5-4″Â Â “1″
[75,] “6-3″Â Â “3″
[76,] “2*0″Â Â “0″
[77,] “15-6″Â “9″
[78,] “1*9″Â Â “9″
[79,] “7-0″Â Â “7″
[80,] “12-9″Â “3″
[81,] “9+3″Â Â “2″
[82,] “4+7″Â Â “1″
[83,] “1+7″Â Â “8″
[84,] “6-4″Â Â “2″
[85,] “6+7″Â Â “3″
[86,] “0+3″Â Â “3″
[87,] “6+3″Â Â “9″
[88,] “13-5″Â “8″
[89,] “6+1″Â Â “7″
[90,] “16-8″Â “8″
[91,] “6+5″Â Â “1″
[92,] “8*6″Â Â “8″
[93,] “4*0″Â Â “0″
[94,] “5+4″Â Â “9″
[95,] “6+4″Â Â “0″
[96,] “3*9″Â Â “7″
[97,] “4+8″Â Â “2″
[98,] “5-3″Â Â “2″
[99,] “7+0″Â Â “7″
[100,] “15-8″Â “7″
[101,] “7*3″Â Â “1″
[102,] “3+7″Â Â “0″
[103,] “6+2″Â Â “8″
[104,] “4-3″Â Â “1″
[105,] “11-3″Â “8″
[106,] “9+2″Â Â “1″
[107,] “5-5″Â Â “0″
[108,] “7+6″Â Â “3″
[109,] “9+1″Â Â “0″
[110,] “1*3″Â Â “3″
[111,] “1+2″Â Â “3″
[112,] “2+0″Â Â “2″
[113,] “6-2″Â Â “4″
[114,] “13-9″Â “4″
[115,] “2*1″Â Â “2″
[116,] “9+0″Â Â “9″
[117,] “9-1″Â Â “8″
[118,] “3-0″Â Â “3″
[119,] “12-4″Â “8″
[120,] “2+9″Â Â “1″
[121,] “10-6″Â “4″
[122,] “1+0″Â Â “1″
[123,] “4-0″Â Â “4″
[124,] “0*2″Â Â “0″
[125,] “9*2″Â Â “8″
[126,] “14-5″Â “9″
[127,] “5-1″Â Â “4″
[128,] “9-5″Â Â “4″
[129,] “3+0″Â Â “3″
[130,] “17-8″Â “9″
[131,] “2+7″Â Â “9″
[132,] “5+6″Â Â “1″
[133,] “8-1″Â Â “7″
[134,] “7-5″Â Â “2″
[135,] “3+6″Â Â “9″
[136,] “6*0″Â Â “0″
[137,] “0*4″Â Â “0″
[138,] “1*8″Â Â “8″
[139,] “7-4″Â Â “3″
[140,] “7+2″Â Â “9″
[141,] “6-6″Â Â “0″
[142,] “9-9″Â Â “0″
[143,] “10-7″Â “3″
[144,] “3+1″Â Â “4″
[145,] “2+5″Â Â “7″
[146,] “5+9″Â Â “4″
[147,] “5+3″Â Â “8″
[148,] “8+6″Â Â “4″
[149,] “0*5″Â Â “0″
[150,] “0+9″Â Â “9″
[151,] “1-1″Â Â “0″
[152,] “3-1″Â Â “2″
[153,] “7*2″Â Â “4″
[154,] “7+4″Â Â “1″
[155,] “7+3″Â Â “0″
[156,] “1+1″Â Â “2″
[157,] “6+6″Â Â “2″
[158,] “9-7″Â Â “2″
[159,] “9-8″Â Â “1″
[160,] “9*8″Â Â “2″
[161,] “2*4″Â Â “8″
[162,] “8-5″Â Â “3″
[163,] “14-6″Â “8″
[164,] “9-2″Â Â “7″
[165,] “7*4″Â Â “8″
[166,] “6+8″Â Â “4″
[167,] “16-7″Â “9″
[168,] “4*3″Â Â “2″
[169,] “8+4″Â Â “2″
[170,] “8+2″Â Â “0″
[171,] “0*9″Â Â “0″
[172,] “6*2″Â Â “2″
[173,] “10-1″Â “9″
[174,] “4-2″Â Â “2″
[175,] “3*8″Â Â “4″
[176,] “4-1″Â Â “3″
[177,] “7-7″Â Â “0″
[178,] “9-0″Â Â “9″
[179,] “2*6″Â Â “2″
[180,] “12-5″Â “7″
[181,] “0-0″Â Â “0″
[182,] “0*7″Â Â “0″
[183,] “2+6″Â Â “8″
[184,] “0*6″Â Â “0″
[185,] “11-7″Â “4″
[186,] “0*3″Â Â “0″
[187,] “18-9″Â “9″
[188,] “5+2″Â Â “7″
[189,] “4+0″Â Â “4″
[190,] “8*4″Â Â “2″
[191,] “8*3″Â Â “4″
[192,] “8-8″Â Â “0″
[193,] “0*1″Â Â “0″
[194,] “7+7″Â Â “4″
[195,] “2+2″Â Â “4″
[196,] “13-6″Â “7″
[197,] “8*0″Â Â “0″
[198,] “5*0″Â Â “0″
[199,] “8+9″Â Â “7″
[200,] “3+8″Â Â “1″
[201,] “1+3″Â Â “4″
[202,] “2*9″Â Â “8″
[203,] “5-2″Â Â “3″
[204,] “10-3″Â “7″
[205,] “4*7″Â Â “8″
[206,] “8-6″Â Â “2″
[207,] “11-9″Â “2″
[208,] “1-0″Â Â “1″
[209,] “9+5″Â Â “4″
[210,] “6*7″Â Â “2″
[211,] “3*0″Â Â “0″
[212,] “10-8″Â “2″
[213,] “3*4″Â Â “2″
[214,] “1+6″Â Â “7″
[215,] “13-4″Â “9″
[216,] “3+9″Â Â “2″
[217,] “5+8″Â Â “3″
[218,] “17-9″Â “8″
[219,] “0+1″Â Â “1″
[220,] “8-7″Â Â “1″
[221,] “7*0″Â Â “0″
[222,] “5+7″Â Â “2″
[223,] “2-0″Â Â “2″
[224,] “4*8″Â Â “2″
[225,] “3+4″Â Â “7″
[226,] “1+9″Â Â “0″

> newmath2.trial
function (trial = 1, total.trials = 5, problem=newmath2.problems[1,],condition= “testing”, wait.range=c(1500,2500), num.possible=9, note = “”)
{#give one trial. returns list with components wait, answer.msec, etc.
#(“okay” or “aborted”) and results.
#
#             trial            trial number
#             total.trials     trials per session
#             problem          problem, answer (characters)
#Â Â Â Â Â Â Â Â Â Â Â Â Â condition
#             wait.range       range of wait times (msec)
#             num.possible     number of possible wait times
#Â Â Â Â Â Â Â Â Â Â Â Â Â note
#
tn=paste(“trial”,trial,”of”,total.trials)
msg=press.space.to.start(below=tn, col = “brown”)
if(msg==”end session”) return(“end session”)
wait.msec=newmath2.foreperiod(wait.range=wait.range, num.possible = num.possible)
t=newmath2.problem(problem=problem)
newmath2.feedback(problem=problem[1],answer.msec=t$answer.msec,correct=t$correct,status=t$status)
list(wait.msec=wait.msec, answer.msec=t$answer.msec,actual.answer=t$actual.answer, correct=t$correct,include=t$include,status=t$status)
}

Arithmetic Test R Code (part 3)

> newmath2.set.types
function ()
{# set variables in newmath2 to proper types
#
newmath2$year< <-as.integer(newmath2$year)
newmath2$month< <-as.integer(newmath2$month)
newmath2$day< <-as.integer(newmath2$day)
newmath2$hour< <-as.integer(newmath2$hour)
newmath2$minute< <-as.integer(newmath2$minute)
newmath2$second< <-as.integer(newmath2$second)
newmath2$condition< <-as.character(newmath2$condition)
newmath2$trial< <-as.integer(newmath2$trial)
newmath2$wait.msec< <-as.integer(as.character(newmath2$wait.msec))
newmath2$problem< <-as.character(newmath2$problem)
newmath2$answer.msec< <-as.integer(newmath2$answer.msec)
newmath2$actual.answer< <-as.integer(newmath2$actual.answer)
newmath2$correct< <-as.logical(newmath2$correct)
newmath2$include< <-as.logical(newmath2$include)
newmath2$note< <-as.character(newmath2$note)
}
> save.ws
function ()
{
invisible()
save.image(“C:/Documents and Settings/Seth/My Documents/omega-3/tracking.RData”)
cat(“tracking workspace saved”,as.character(Sys.time()),”\n”)
}

Arithmetic Test R Code (part 1)

[Below is some of the R code that runs the arithmetic test that I use to measure my brain function. This function (newmath2.add) is the top-level function — the function I actually call when I run the test. Later posts will give the subroutine code. The variable newmath2 is the database — the variable (a data frame) that holds the data.]

function (trials = 32, note=””, wait.range=c(1000,2000), num.possible = 9)
{#Like newmath but with separated trials.
#
#Collect data with arithmetic-like task. Simple arithmetic problems with
#the answer being a single digit. 1, 2, 3, 4, 7, 8, 9, 0 equally likely.
#If the answer is two digits (e.g., 12) it is truncated to the last digit
#(e.g., 2). The trials during each session are sampled without replacement
#from all possible problems.
#
#Trials where the response is incorrect are repeated with a new problem.
#Trials can be aborted; this is noted.
#
#              trials           trials in a session
#              note             comment for each trial
#              wait.range       range of wait times (msec)
#              num.possible     number of possible wait times
#
# 2009.07.11 Fixation symbol changed from + to o. Repetition of
# answer from one question to the next no longer allowed.
# 2009.07.15 Feedback now based only on answers to the same question
# More sophisticated computation of percentile.
# 2009.08.07 Can end session from Press Space screen
# 2009.10.23 fixed abort session and abort trial
#
invisible()
condition=new.condition(newmath2$condition)
start.time=Sys.time()
n=nrow(newmath2.problems)
problems=newmath2.problems[sample(n),]okay=c(TRUE,!problems[1:(n-1),2]==problems[2:n,2])
problems=problems[okay,]tr=1
pr=1
while(tr< =trials){
t=newmath2.trial(trial=tr, total.trials = trials, wait.range=wait.range, num.possible = num.possible, problem = problems[pr,], condition=condition, note=note)
if(t[1]==”end session”) break
if(t$status!=”okay”) {
if(t$status==”abort trial”) this.trial.note=”trial aborted”
if(t$status==”abort session”) this.trial.note=”session aborted”
t$include=FALSE
}
else this.trial.note=note
new.line1=c(current(),condition,tr,t$wait.msec, problems[pr,1])
new.line2=c(t$answer.msec,t$actual.answer,t$correct,t$include,this.trial.note)
newmath2< <-rbind(newmath2,c(new.line1,new.line2))
newmath2.set.types()
pr=pr+1
if(t$status==”abort session”) break
if(t$status==”abort trial”) next
if(!t$correct) next
tr=tr+1
}
msg=paste(“total time”,round(difftime(Sys.time(),start.time, unit=”mins”),1),”minutes\n”)
paint(above = “all done”, below=msg, duration = 3)
save.ws()
newmath2.plot()
}

“My Porphyria Went Away”

I asked Aaron Blaisdell what was most surprising about his experience with “ ancestral health” — adopting a evolutionarily reasonable diet. “That my porphyria went away,” he said. Aaron’s porphyria is/was a form of sun sensitivity. “My mother has it. Her father had it,” he said. It was obviously genetic. Scientists had located the genes involved. Aaron assumed that someday, not soon, it might be possible to fix the genes involved. Until then, he didn’t think anything would change. It was a rare and not particularly damaging disease — it wouldn’t attract a lot of research.

How reasonable the gene-fix idea sounds, in spite of being wrong. I’ve heard dozens of scientists, including Bruce Ames and James Watson, say that we are entering a new age where we will figure out the causes of diseases (their genetic causes) and fix them. A new age of rational medicine. To fix a car or dishwasher, you figure out the part at fault and repair or replace it. The metaphor is so convincing that nobody points out another possible metaphor: Your washing machine isn’t working because you haven’t plugged it in. You need to read the owner’s manual. Most health-care researchers, especially at medical schools, are studying the parts diagram of the washing machine, trying to figure out what part is at fault, when the problem is elsewhere: Not plugged in. Much easier to fix.

Assorted Links

  • Matt Ridley reviews The Hockey Stick Illusion. “One of the best science books in years. It exposes in delicious detail . . . how a great scientific mistake of immense political weight was perpetrated, defended and camouflaged by a scientific establishment that should now be red with shame.” Of the response to Stephen McIntyre’s damning critique: “I find the reaction of the scientific establishment more shocking than anything. . . . Shut-eyed denial.”
  • Answer to medical mystery is food allergies. If doctors can’t recognize food allergies, they are even further from understanding their cause.
  • Der Spiegel looks skeptically at man-made global warming. Will Elizabeth Kolbert (the New Yorker writer) ever realize she’s been credulous?
  • Low cholesterol bad? “Cholesterol levels in men with dementia and, in particular, those with Alzheimer disease had declined at least 15 years before the diagnosis and remained lower than cholesterol levels in men without dementia throughout that period.” Body weight also declines before the diagnosis.

Thanks to Peter Spero.

QuietComfort 15 Headphones (more)

I wrote earlier — sounding like an ad — that my new Bose QuietComfort 15 noise-cancelling headphones made me feel much better after a subway ride. The usual exhaustion was gone. Along the same lines, I recently wore the headphones during a one-hour flight. When it was over, I felt like I hadn’t flown at all — I’d been sitting in a chair for an hour. This had never happened before.

Health Benefits of Miso, According to the Marukome Company

The Marukome company calls itself “the leading miso manufacturing company in Japan.” As a corporate brochure says, “world-renowned Japanese longevity is deeply related to the traditional food of Japan.” Miso is probably the most traditional food of Japan, in the sense that the Japanese eat a lot of it per capita, far more per capita than people in any other country. They eat lots of fish, too, but that’s not unusual.

A corporate brochure for the Marukome company that I got at the recent Fancy Food Show makes many health claims for miso. Some involve the whole product. Two are interesting. 1. “Miso soup also helps prevent heart disease and diabetes.” This is vague, unfortunately. 2. “In 1981, researchers at Japan Cancer Center announced that miso soup lowers the risk of stomach cancer when consumed every day. Miso soup also lowers the risk of other cancers including liver cancer.” This sounds like a survey result: daily consumption of miso was associated with lower risk of various cancers. At least it is specific enough to check.

The brochure also makes health claims based on components: Vitamin B2, Vitamin B12, Vitamin E, “Enzyme”, Sabonin, etc. Each somehow improves health — for example, Vitamin B12 “reduces mental fatigue.” What interests me is that “improves immune function” isn’t on the list, nor does the list mention the microorganisms that grow in miso. Improves immune function I believe to be the main benefit of miso and the reason it reduces cancer. Judging by this brochure, you’d think this is a new idea in Japan, where lots of fermented foods are eaten. In Japan I met someone (a nurse) who said that perhaps a third of Japanese think that to be healthy you should eat fermented foods regularly. Perhaps the usual belief is that they improve digestion and better digestion somehow wards off cancer.

The Chinese Military and the Umami Hypothesis

In an article about China’s military, James Fallows says American forces are much stronger, partly because:

In modern times, American forces are continually in combat somewhere in the world. This has its drawbacks, but it means that U.S. leaders, tactics, and doctrine are constantly refined by the realities of warfare. In contrast, vanishingly few members of the People’s Liberation Army have any combat experience whatsoever.

He could have used the word readiness. One reason I believe my Umami Hypothesis — that we require a steady stream of bacteria in our diet to be healthy — is the underlying logic: That a steady stream of bacteria continuously activate the immune system, keeping it in working order. Without low-level activation, the immune system will (a) react too slowly, causing noticeable colds, and (b) overreact, which causes allergies and other immune system disorders, such as arthritis.

I wonder if the same logic applies in other situations — if a constant low-level threat improves performance. Is Chinese governance better because Chinese leadership feels threatened?