這好酷~ 這是美國西北大學的研究,他們用 gelatin 在玻片(glass slide)上列印出一小塊方形(15mm x 15mm)支撐體(scaffold),列印是像針織一樣一條條交叉,他們用了三種角度(30°, 60°, 90°),然後在印出來支撐體上打出 2mm 大小的洞,可以放進不同大小的濾泡,包括次級卵泡(secondary follicles, 150-180 mm in diameter)和未成熟的濾泡集結(immature follicles aggregates (< 100 mm)。卵巢濾泡是一堆細胞的集結,包含了卵母細胞、支撐卵子的細胞,還有生產賀爾蒙的卵囊(theca)。
他們把列印出來的 gelatin scaffold 放到 24-well 的 transwell,把從老鼠卵巢裡取出的濾泡(follicles)放進去培養,發現 30° 和 60° 的支撐體效果比較好,濾泡的支撐細胞會依附在 scaffold 上面,且濾泡可以在裡面培養到八天還存活。他們也檢測了濾泡的功能性,發現培養在 30° 和 60° 的支撐體的濾泡可以生產賀爾蒙,讓卵子成熟(MII eggs),並且成功排卵(ovulation)。
之後,他們試驗在老鼠身上。他們在每個 scaffold 裡面放入 40-50 個濾泡,包括有原始卵泡(primordial follicles)、初級卵泡(primary follicles)和次級卵泡,然後體外培養四天後植入沒有卵巢的老鼠體內(原本卵巢被手術取出),植入一個禮拜後,血管長入濾泡內供給氧氣、養分和運送賀爾蒙進去刺激卵子成熟。而後,被植入人工卵巢的母鼠和公鼠交配,三隻帶有人工卵巢的母鼠都順利懷孕並且生出一到兩隻小鼠。
可以看影片介紹:
雖然帶有 3D 列印的人造卵巢的母鼠可以成功受孕,但每胎生的小鼠比正常老鼠少(正常老鼠每胎有六到八隻小鼠),加上看起來即便有了人工卵巢,卵子還是要用別人的,不過如果是用 iPS cells 的話,沒有卵巢的還是可以生自己的孩子。
參考舊文:未來.... 我們可以把皮膚細胞變成小寶寶嗎?
用自身的細胞轉為 iPS cells,然後在體外引導分化成卵子,之前日本做到這個階段,如果在這個時候可以放到 scaffold 裡面培養,然後再植入老鼠體內,這樣子就算是沒有卵巢也能靠人造卵巢生出自己的小孩了吧?
Articles:
Science / 3D-printed ovaries restore fertility in mice
The Scientist / Mice Successfully Reproduce with 3-D Printed Ovaries
Paper:
MM Laronda, AL Rutz et al, A bioprosthetic ovary created using 3D printed microporous scaffolds restores ovarian function in sterilized mice. Nature Communications (2017)
2017年5月21日 星期日
2017年5月7日 星期日
人造子宮:Biobag
人造子宮哦哦哦~ 這個是為了要幫助早產兒。
賓州費城兒童醫院(Children’s Hospital of Philadelphia, CHOP)的外科醫師 Alan Flake 團隊在小羊在 125-140 天(gestation, term = 145 days)的時候剖腹產取出,放在生物袋(biobag)裡,裡面裝滿了類羊水的 amniotic fluid,利用 micropore filter 過濾 amniotic fluid 後再循環,然後幫小羊接葉克膜(ECMO)來提供小羊氧氣,第一次不夠成功,雖然有小羊可以在袋子裡面維持 108 個小時(維持時間範圍為 23-108 小時),但是有 sepsis 等等的情況。之後他們把把循環的 amniotic fluid 改成不停的換新的,這階段實驗的五隻小羊為 120-125 天時放到 Biobag 裡,其中一隻羊在裡面維持了 288 小時(9.5 天;end at 120-132 gestation days)後,出來可以自然呼吸,目前已活到一歲。
羊的孕期(gestation days)約為 138-159 天,平均為 147 天。小羊在 110 天(gestational age, GA)的時候(相當於人類 23-24 週)是肺臟發展時期,他們在 106-113 天的時候把小羊放到 Biobag 裡面,然後把輸氧的接到小羊的臍帶讓心臟自己循環血裡的氧氣,試驗的五隻小羊在 Biobag 裡維持了 13-26 天。他們預計在三年內把這個應用在人類早產兒上面。
CHOP 自已有弄了一段影片介紹這是怎麼運作的。
原論文:EA Partridge et al, An extra-uterine system to physiologically support the extreme premature lamb. Nature Communications (2017)
賓州費城兒童醫院(Children’s Hospital of Philadelphia, CHOP)的外科醫師 Alan Flake 團隊在小羊在 125-140 天(gestation, term = 145 days)的時候剖腹產取出,放在生物袋(biobag)裡,裡面裝滿了類羊水的 amniotic fluid,利用 micropore filter 過濾 amniotic fluid 後再循環,然後幫小羊接葉克膜(ECMO)來提供小羊氧氣,第一次不夠成功,雖然有小羊可以在袋子裡面維持 108 個小時(維持時間範圍為 23-108 小時),但是有 sepsis 等等的情況。之後他們把把循環的 amniotic fluid 改成不停的換新的,這階段實驗的五隻小羊為 120-125 天時放到 Biobag 裡,其中一隻羊在裡面維持了 288 小時(9.5 天;end at 120-132 gestation days)後,出來可以自然呼吸,目前已活到一歲。
羊的孕期(gestation days)約為 138-159 天,平均為 147 天。小羊在 110 天(gestational age, GA)的時候(相當於人類 23-24 週)是肺臟發展時期,他們在 106-113 天的時候把小羊放到 Biobag 裡面,然後把輸氧的接到小羊的臍帶讓心臟自己循環血裡的氧氣,試驗的五隻小羊在 Biobag 裡維持了 13-26 天。他們預計在三年內把這個應用在人類早產兒上面。
CHOP 自已有弄了一段影片介紹這是怎麼運作的。
原論文:EA Partridge et al, An extra-uterine system to physiologically support the extreme premature lamb. Nature Communications (2017)
2017年5月6日 星期六
關於自閉症 ASD (Autism Spectrum Disorder)
(2014 年舊文)
禮拜三去聽了一場 UBC LSI 辦的關於自閉症的公開講座,主要是介紹他們和政府目前在推的自閉症計畫 iTARGET (Individualized Treatments for Autism Recovery using Genetic-Environmental Targets),也即將在溫哥華的 Richmond 建一個自閉症社區,預計於 2016 年完成。這個計畫主要是由 UBC 和 Western Univeristy (a.k.a. University of Western Ontario) 的二十一位研究者組成的一個核心組織,專業領域包含了基因(genetics)、腦神經科學(neuroscience)、微生物生態(microbiome)等基礎科學研究和臨床研究。
以下是一些筆記和資訊。
》何謂自閉症(Autism)?
(General term of) Complex disorders of brain development
自閉症是一種複雜的腦神經學學疾病,主要是發生於腦部發育,集合名稱為 Autism Spectrum Disorder (ASD),包含輕重不一的各種病症,亞斯伯格症(Asperger's Syndrome)是其中較輕微的一種。
》致病因素:
* 遺傳:雙生和家族研究發現有 92% 是遺傳(非百分之百,表示也有環境因素所造成),主要是因為基因突變(mutation)、多出某個基因(duplication)或少掉某個基因(deletion),大概有五百多種致病基因(genetic variation),例如其中一個重要致病基因是 SHANK3 (Chromosome: 22q13.3)。
* 環境:母親懷孕時期或生產過程(例如母親長期暴露在抗生素環境中,導致腸道細菌有抗藥性,或是母親長期處於壓力下改變了陰道的菌落生態,而這些菌落在生產過程中帶到小孩體內。)
註 1:通常不是只單一基因造成的,而是多個基因,或是基因加上環境因素集合在一起而致病,每個人的致病因素都不一樣,也因此造成診斷和治療上的困難。
註 2:通常兄弟姊妹中,一個有,另一個有的機率也很高。同卵雙生中若一個有 ASD,另一個有的機率為 36-95%。異卵雙生一個有 ASD,另一個有的機率為 0-36%。非雙生兄弟姊妹,第一個有 ASD,第二個有的機率為 2-18%。
》症狀表現時間:
兩到三歲(三歲以前)就會出現自閉症徵狀,但是大部分孩童都到三、四歲才被診斷出來,研究顯示兩歲診斷出來的結果已經是可信的。(Most children are not diagnosed until age 3 or 4; yet research has shown that a diagnosis at age 2 can be reliable, valid and stable.)
》診斷困難:
* Lack of effective diagnosis methods (因為症狀多樣,每個人都不同,所以目前沒有有效的診斷方法。)
* Late diagnosed: rarely before 3-yr, usually > 6.5 yr-old (很少在三歲以前診斷出來,大多是六歲半之後才發現有自閉症。)
》行為上的徵狀包括(但不限於下面幾種):
* No babbling by 12 months. (一歲大時還不會發出嬰兒胡言亂語的聲音)
* No gesturing (pointing, waving, etc.) by 12 months. (一歲大時還沒有各種手勢)
* No single word by 16 months (十六個月大時不會發出單字)
* No 2-word phrase by 24 months (兩歲大時不會發出兩個字的詞)
* Repetitive behavior (重複性的動作/行為)
* Social impairments (社交困難)
* 外觀上的表現(例如細長眼、大手掌、寬眼距等等)
註3:每個人的症狀都不同,不會有兩個人有完全相同的症狀。
》族群表現分類成兩種:
1. 複雜型(complex autism):佔了自閉症族群的 20%,症狀較嚴重,例如低智商、常抽蓄(seizures)、MRI 腦部診斷異常等等,通常女性多於男性。
2. 簡單型(simple autism):較多為遺傳,常見於兄弟姊妹和家族之間,男性多於女性。
》生理上的徵狀:
* GI problems (腸道問題): carbohydrate digestion (碳水化合物的消化)
* Defects in immune system (免疫系統問題)
* The majority (62%) of children with ASDs do not have intellectual disability. (大約有六成二的自閉患者不會有智商上的問題)
* About 40% have average to above average intellectual abilities. (大約有四成的人會有正常人或是高於正常人的智商)
* About 25% of individuals with ASD are nonverbal but can learn to communicate using other means. (大約有兩成五的自閉症患者有發音困難,但是可以用其他方法學習溝通。)
註4:患者的 gut microbiome 也和常人不同(可能是因為抗生素或其他環境因素所造成的,見上面致病因素解說),UBC 的教授 Dr. MacFabe 發現自病症患者腸道內某些有抗藥性(antibiotic-resistant)的細菌(例如 Clostridia),在分解碳水化合物的過程中產生的 propionic acid (PAA) 會干擾和影響腦部發育和功能,被餵食 PAA 的老鼠會忽略其他老鼠的存在,因此他們在研究看能不能用改變菌落生態的方法來治療。
》腦部症狀:
* Larger brain
* Lack of connectivity between brain regions
* Increased connectivity within brain regions
* Excitatory activity > Inhibitory activity: cause of seizures
* White matter disorder
註5:在孕期(trimesters)就可發現腦部發展有異常變化。
》費用:
* Estimated 3.2 million over a life time per person (自閉症患者一生花費估約要三百二十萬加幣)
》治療
目前方法有靠藥物和改善飲食,但因為每個人的致病因子不一樣,有的方法對某些病患有效,但對某些病患沒效。自閉症和糖尿病一樣,只能控制但無法根治。
》自閉症患者逐年增加
2001: 1 in 250
2007: 1 in 150
2014: 1 in 88
預計未來五年內會是 1 in 54
註5:男生比女生多五倍(boy: 1 in 42)
》BC Facts:
* 目前估約 BC 省有 56,000 名自閉症患者
* 估約 BC 省有 8,500 名孩童和青少年被診斷為 ASD 患者,其中超過 1,000 名是零到六歲,超過 7,500 名是六到十八歲。
* 自閉症計畫估計所需經費為 33 百萬,其中 BC 省政府會提供 20 百萬,剩下 13 百萬由私人贊助。
"$20 Million has been secured from the Government of British Columbia toward capital costs. Of the $13 million to be raised from private sources, $8 million will cover the remaining building costs, and a further $5 million will seed the Centre’s operating endowment." (PAFC)
》自閉症的發現
自閉症在它被命名之前就已經存在,只是以前都被誤診,直到 1801 年一名法國的年輕醫師 Jean Marc Itard 開始診斷並記錄一位叫 Victor 的男孩。這位男孩生活在森林之中,不知從何而來,因而被稱為 "The Wild Boy of Aveyron"。他的生活和行為在當時被視為異常,輾轉經過幾人之手後,最後被 Itard 收養和治療。
Autism 這個字第一次被使用是在 1919 年,當時一位瑞士的精神科醫師 Eugen Bleuler 在為一位精神分裂患者診斷時,用 autism 來形容他的症狀:自我中心的思考、離群索居、不被外界所影響。之後自閉症的重大進展開開始於 1943 年,當時一位猶太裔美國籍醫師 Leo Kanner 診斷了十一位有類似行為模式的小孩 -- 天生不善於和人群接觸,並且發表了一篇論文。
同時間於 1944 年,奧地利醫生 Han Asperger 也診斷了四名有自閉症狀的小孩,他稱他們為「小教授」(litter proferssors),因為他們可以對他們有興趣的事物做詳盡的解說,幾年之後,Asperger 發現這些小孩不但有特別的天資,而且在長大後有不凡的成就,其中一位(Elfriede Jelinek)甚至得到諾貝爾文學獎,亞斯伯格症(Asperger's Syndrome)便是由此而來。
"In 1944 and on the other side of the world, Austrian psychiatrist Hans Asperger independently described four children with “autistic psychopathy in childhood”. Asperger called these four children "little professors" because of their ability to talk about their favorite subject in great detail. Over time, he noticed that many of the children he identified used their special talents in adulthood and had an excellent career. One of them became a professor of astronomy and solved an error in Newton’s work. Another went on to win a Nobel Prize in literature. Asperger’s descriptions formed the basis of what is known as Asperger’s syndrome or “high functioning autism” today." (PAFC)
》演講影片
》參考資料(References)
* PAFC (Pacific Autism Family Centre)
* Spotlight on the Gut Bacteria-Brain Connection in Autism
* NINDS - Autism Fact Sheet
很久以前寫過的,翻譯美國科學人的關於自閉症的文章:[SciAm] 自閉症
禮拜三去聽了一場 UBC LSI 辦的關於自閉症的公開講座,主要是介紹他們和政府目前在推的自閉症計畫 iTARGET (Individualized Treatments for Autism Recovery using Genetic-Environmental Targets),也即將在溫哥華的 Richmond 建一個自閉症社區,預計於 2016 年完成。這個計畫主要是由 UBC 和 Western Univeristy (a.k.a. University of Western Ontario) 的二十一位研究者組成的一個核心組織,專業領域包含了基因(genetics)、腦神經科學(neuroscience)、微生物生態(microbiome)等基礎科學研究和臨床研究。
以下是一些筆記和資訊。
》何謂自閉症(Autism)?
(General term of) Complex disorders of brain development
自閉症是一種複雜的腦神經學學疾病,主要是發生於腦部發育,集合名稱為 Autism Spectrum Disorder (ASD),包含輕重不一的各種病症,亞斯伯格症(Asperger's Syndrome)是其中較輕微的一種。
》致病因素:
* 遺傳:雙生和家族研究發現有 92% 是遺傳(非百分之百,表示也有環境因素所造成),主要是因為基因突變(mutation)、多出某個基因(duplication)或少掉某個基因(deletion),大概有五百多種致病基因(genetic variation),例如其中一個重要致病基因是 SHANK3 (Chromosome: 22q13.3)。
* 環境:母親懷孕時期或生產過程(例如母親長期暴露在抗生素環境中,導致腸道細菌有抗藥性,或是母親長期處於壓力下改變了陰道的菌落生態,而這些菌落在生產過程中帶到小孩體內。)
註 1:通常不是只單一基因造成的,而是多個基因,或是基因加上環境因素集合在一起而致病,每個人的致病因素都不一樣,也因此造成診斷和治療上的困難。
註 2:通常兄弟姊妹中,一個有,另一個有的機率也很高。同卵雙生中若一個有 ASD,另一個有的機率為 36-95%。異卵雙生一個有 ASD,另一個有的機率為 0-36%。非雙生兄弟姊妹,第一個有 ASD,第二個有的機率為 2-18%。
》症狀表現時間:
兩到三歲(三歲以前)就會出現自閉症徵狀,但是大部分孩童都到三、四歲才被診斷出來,研究顯示兩歲診斷出來的結果已經是可信的。(Most children are not diagnosed until age 3 or 4; yet research has shown that a diagnosis at age 2 can be reliable, valid and stable.)
》診斷困難:
* Lack of effective diagnosis methods (因為症狀多樣,每個人都不同,所以目前沒有有效的診斷方法。)
* Late diagnosed: rarely before 3-yr, usually > 6.5 yr-old (很少在三歲以前診斷出來,大多是六歲半之後才發現有自閉症。)
》行為上的徵狀包括(但不限於下面幾種):
* No babbling by 12 months. (一歲大時還不會發出嬰兒胡言亂語的聲音)
* No gesturing (pointing, waving, etc.) by 12 months. (一歲大時還沒有各種手勢)
* No single word by 16 months (十六個月大時不會發出單字)
* No 2-word phrase by 24 months (兩歲大時不會發出兩個字的詞)
* Repetitive behavior (重複性的動作/行為)
* Social impairments (社交困難)
* 外觀上的表現(例如細長眼、大手掌、寬眼距等等)
註3:每個人的症狀都不同,不會有兩個人有完全相同的症狀。
》族群表現分類成兩種:
1. 複雜型(complex autism):佔了自閉症族群的 20%,症狀較嚴重,例如低智商、常抽蓄(seizures)、MRI 腦部診斷異常等等,通常女性多於男性。
2. 簡單型(simple autism):較多為遺傳,常見於兄弟姊妹和家族之間,男性多於女性。
》生理上的徵狀:
* GI problems (腸道問題): carbohydrate digestion (碳水化合物的消化)
* Defects in immune system (免疫系統問題)
* The majority (62%) of children with ASDs do not have intellectual disability. (大約有六成二的自閉患者不會有智商上的問題)
* About 40% have average to above average intellectual abilities. (大約有四成的人會有正常人或是高於正常人的智商)
* About 25% of individuals with ASD are nonverbal but can learn to communicate using other means. (大約有兩成五的自閉症患者有發音困難,但是可以用其他方法學習溝通。)
註4:患者的 gut microbiome 也和常人不同(可能是因為抗生素或其他環境因素所造成的,見上面致病因素解說),UBC 的教授 Dr. MacFabe 發現自病症患者腸道內某些有抗藥性(antibiotic-resistant)的細菌(例如 Clostridia),在分解碳水化合物的過程中產生的 propionic acid (PAA) 會干擾和影響腦部發育和功能,被餵食 PAA 的老鼠會忽略其他老鼠的存在,因此他們在研究看能不能用改變菌落生態的方法來治療。
》腦部症狀:
* Larger brain
* Lack of connectivity between brain regions
* Increased connectivity within brain regions
* Excitatory activity > Inhibitory activity: cause of seizures
* White matter disorder
註5:在孕期(trimesters)就可發現腦部發展有異常變化。
》費用:
* Estimated 3.2 million over a life time per person (自閉症患者一生花費估約要三百二十萬加幣)
》治療
目前方法有靠藥物和改善飲食,但因為每個人的致病因子不一樣,有的方法對某些病患有效,但對某些病患沒效。自閉症和糖尿病一樣,只能控制但無法根治。
》自閉症患者逐年增加
2001: 1 in 250
2007: 1 in 150
2014: 1 in 88
預計未來五年內會是 1 in 54
註5:男生比女生多五倍(boy: 1 in 42)
》BC Facts:
* 目前估約 BC 省有 56,000 名自閉症患者
* 估約 BC 省有 8,500 名孩童和青少年被診斷為 ASD 患者,其中超過 1,000 名是零到六歲,超過 7,500 名是六到十八歲。
* 自閉症計畫估計所需經費為 33 百萬,其中 BC 省政府會提供 20 百萬,剩下 13 百萬由私人贊助。
"$20 Million has been secured from the Government of British Columbia toward capital costs. Of the $13 million to be raised from private sources, $8 million will cover the remaining building costs, and a further $5 million will seed the Centre’s operating endowment." (PAFC)
》自閉症的發現
自閉症在它被命名之前就已經存在,只是以前都被誤診,直到 1801 年一名法國的年輕醫師 Jean Marc Itard 開始診斷並記錄一位叫 Victor 的男孩。這位男孩生活在森林之中,不知從何而來,因而被稱為 "The Wild Boy of Aveyron"。他的生活和行為在當時被視為異常,輾轉經過幾人之手後,最後被 Itard 收養和治療。
Autism 這個字第一次被使用是在 1919 年,當時一位瑞士的精神科醫師 Eugen Bleuler 在為一位精神分裂患者診斷時,用 autism 來形容他的症狀:自我中心的思考、離群索居、不被外界所影響。之後自閉症的重大進展開開始於 1943 年,當時一位猶太裔美國籍醫師 Leo Kanner 診斷了十一位有類似行為模式的小孩 -- 天生不善於和人群接觸,並且發表了一篇論文。
同時間於 1944 年,奧地利醫生 Han Asperger 也診斷了四名有自閉症狀的小孩,他稱他們為「小教授」(litter proferssors),因為他們可以對他們有興趣的事物做詳盡的解說,幾年之後,Asperger 發現這些小孩不但有特別的天資,而且在長大後有不凡的成就,其中一位(Elfriede Jelinek)甚至得到諾貝爾文學獎,亞斯伯格症(Asperger's Syndrome)便是由此而來。
"In 1944 and on the other side of the world, Austrian psychiatrist Hans Asperger independently described four children with “autistic psychopathy in childhood”. Asperger called these four children "little professors" because of their ability to talk about their favorite subject in great detail. Over time, he noticed that many of the children he identified used their special talents in adulthood and had an excellent career. One of them became a professor of astronomy and solved an error in Newton’s work. Another went on to win a Nobel Prize in literature. Asperger’s descriptions formed the basis of what is known as Asperger’s syndrome or “high functioning autism” today." (PAFC)
》演講影片
》參考資料(References)
* PAFC (Pacific Autism Family Centre)
* Spotlight on the Gut Bacteria-Brain Connection in Autism
* NINDS - Autism Fact Sheet
很久以前寫過的,翻譯美國科學人的關於自閉症的文章:[SciAm] 自閉症
四個關於疫苗的迷思
這個月 Science 主打疫苗的議題,這篇寫了關於疫苗的迷思和其來源 [1],這邊整理一下。
迷思一:疫苗會造成自閉症嗎?
1998 年的時候,英國的醫生 Dr. Andrew Wakefield 在 Lancet 發表了一篇論文說三合一疫苗(measles, mumps, and rubella; MMR)會引發自閉症,但是在 2004 年的時候一位記者 Brian Deer 揭露 Wakefield 有利益迴避(conflicts of interest)的問題,因為那時 Wakefield 正在申請麻疹疫苗的專利。之後,2010 年時 Lancet 把他 1998 年那篇論文撤了,英國的醫療議評會(General Medical Council)也吊銷了他的醫師執照。
目前並沒有證據顯示 MMR 會造成自閉症。2015 年的一個大數據分析,比較了有打疫苗和沒打疫苗的小孩,發現兩者間自閉症的比例並沒有差別,表示疫苗和自閉症並沒有關係 [2]。
迷思二:疫苗裡的水銀是神經毒(neurotoxin)?
2005 年的時候,美國的環境律師 Robert F. Kennedy Jr. (甘迺迪總統的外甥)發表了一篇文章說疫苗裡面的含汞物質 thimerosal (用來當防腐劑)會對腦部有影響,例如會造成自閉症。但其實從 2001 年起,thimerosal 已不被用於兒童疫苗中,CDC 的疫苗安全室主任 Frank DeStefano 表示,如果 thimerosal 會造成自閉症,那 2001 年之後自閉症兒童的人數應該會大減,但是並沒有。CDC 和 WHO 表示並沒有證據顯示疫苗中的 thimerosal 會對兒童的健康造成影響。
迷思三:拿掉疫苗中的汞會對小孩比較好嗎?
我覺得這個的標題和內容沒太大關係,和上一點的內容比較有關。那這個迷思主要說什麼呢?2000 年代中期的時候,美國一位醫生 Mark Geier 提出了汞和睾酮(testosterone)的相互作用會造成自閉症的症狀,所以認為疫苗內的汞會造成自閉,但這在這點裡不算是重點。
Geier 發現他的自閉症患者(兒童)有早熟的現象,認為是因為汞和睾酮的相互作用造成的兒童早熟(precocious puberty),於是研發了一種治療方法來治療自閉症,就是每天注射 leuprolide (Lupron) 和 chemical chelation。Leuprolide 是 GnRH receptor agonist,會降低體內性賀爾蒙(estradiol, testosterone)的生產量,通常被用來治療前列腺癌,也被用來化學閹割(chemical castration)性騷擾犯。Chelation 的意思就是螯合金屬物質,包括汞,通常用來治療重金屬中毒。雖說這個治療方法(又稱 Lupron protocol)是用來治療自閉症,但 leuprolide 本身也帶有引發癲癇(seizure)的風險,而癲癇同樣是自閉症的症狀之一。馬里蘭州的醫委會在 2011 年調查時表示用 Lupron protocol 來治療自閉症是有問題的,同時也吊銷 Geier 的醫師執照。
我猜這點想說的是用 chelator 去除汞這件事是否有比較好?但重點並不在去除汞,而是 chelator 不只會去除汞而已,而是體內所有的金屬,包括 Mg2+ 和 Ca2+ 這兩個在生體機能中很重要、不可或缺的金屬離子。
迷思四:分開打疫苗對兒童比較好
有人認為在兩歲以前要打完十四種疾病的疫苗太密集了,小孩的免疫系統可能會負荷不了,也可能對小孩的發育和健康不好。不過專家認為,小孩就算沒打疫苗,每天接觸的病原就很多了,疫苗帶的抗原相比之下算少的了,如果小孩的免疫系統每天都能對付那麼多病原,那怎麼會負荷不了疫苗。在 2015 年的一項調查裡,534 位小兒科醫師和家庭醫師中,只有 1% 認為疫苗不要在短時間內打好幾個。
References:
1. Science / Four vaccine myths and where they came from (2017)
2. A Jain et al, Autism Occurrence by MMR Vaccine Status Among US Children With Older Siblings With and Without Autism. JAMA (2015)
迷思一:疫苗會造成自閉症嗎?
1998 年的時候,英國的醫生 Dr. Andrew Wakefield 在 Lancet 發表了一篇論文說三合一疫苗(measles, mumps, and rubella; MMR)會引發自閉症,但是在 2004 年的時候一位記者 Brian Deer 揭露 Wakefield 有利益迴避(conflicts of interest)的問題,因為那時 Wakefield 正在申請麻疹疫苗的專利。之後,2010 年時 Lancet 把他 1998 年那篇論文撤了,英國的醫療議評會(General Medical Council)也吊銷了他的醫師執照。
目前並沒有證據顯示 MMR 會造成自閉症。2015 年的一個大數據分析,比較了有打疫苗和沒打疫苗的小孩,發現兩者間自閉症的比例並沒有差別,表示疫苗和自閉症並沒有關係 [2]。
迷思二:疫苗裡的水銀是神經毒(neurotoxin)?
2005 年的時候,美國的環境律師 Robert F. Kennedy Jr. (甘迺迪總統的外甥)發表了一篇文章說疫苗裡面的含汞物質 thimerosal (用來當防腐劑)會對腦部有影響,例如會造成自閉症。但其實從 2001 年起,thimerosal 已不被用於兒童疫苗中,CDC 的疫苗安全室主任 Frank DeStefano 表示,如果 thimerosal 會造成自閉症,那 2001 年之後自閉症兒童的人數應該會大減,但是並沒有。CDC 和 WHO 表示並沒有證據顯示疫苗中的 thimerosal 會對兒童的健康造成影響。
迷思三:拿掉疫苗中的汞會對小孩比較好嗎?
我覺得這個的標題和內容沒太大關係,和上一點的內容比較有關。那這個迷思主要說什麼呢?2000 年代中期的時候,美國一位醫生 Mark Geier 提出了汞和睾酮(testosterone)的相互作用會造成自閉症的症狀,所以認為疫苗內的汞會造成自閉,但這在這點裡不算是重點。
Geier 發現他的自閉症患者(兒童)有早熟的現象,認為是因為汞和睾酮的相互作用造成的兒童早熟(precocious puberty),於是研發了一種治療方法來治療自閉症,就是每天注射 leuprolide (Lupron) 和 chemical chelation。Leuprolide 是 GnRH receptor agonist,會降低體內性賀爾蒙(estradiol, testosterone)的生產量,通常被用來治療前列腺癌,也被用來化學閹割(chemical castration)性騷擾犯。Chelation 的意思就是螯合金屬物質,包括汞,通常用來治療重金屬中毒。雖說這個治療方法(又稱 Lupron protocol)是用來治療自閉症,但 leuprolide 本身也帶有引發癲癇(seizure)的風險,而癲癇同樣是自閉症的症狀之一。馬里蘭州的醫委會在 2011 年調查時表示用 Lupron protocol 來治療自閉症是有問題的,同時也吊銷 Geier 的醫師執照。
我猜這點想說的是用 chelator 去除汞這件事是否有比較好?但重點並不在去除汞,而是 chelator 不只會去除汞而已,而是體內所有的金屬,包括 Mg2+ 和 Ca2+ 這兩個在生體機能中很重要、不可或缺的金屬離子。
迷思四:分開打疫苗對兒童比較好
有人認為在兩歲以前要打完十四種疾病的疫苗太密集了,小孩的免疫系統可能會負荷不了,也可能對小孩的發育和健康不好。不過專家認為,小孩就算沒打疫苗,每天接觸的病原就很多了,疫苗帶的抗原相比之下算少的了,如果小孩的免疫系統每天都能對付那麼多病原,那怎麼會負荷不了疫苗。在 2015 年的一項調查裡,534 位小兒科醫師和家庭醫師中,只有 1% 認為疫苗不要在短時間內打好幾個。
References:
1. Science / Four vaccine myths and where they came from (2017)
2. A Jain et al, Autism Occurrence by MMR Vaccine Status Among US Children With Older Siblings With and Without Autism. JAMA (2015)
2017年4月26日 星期三
R | Data manipulation (1): select, filter, slice, piping
這邊要介紹幾個處理資料的幾個功能,因為太長所以分成兩篇,這篇介紹的功能有:select, filter, slice, piping
下篇會介紹:arrange, mutate, summarise
詳細功能介紹請參考這兩頁:Working with Data - Part 1 & Intro to R - Part 3
練習的部分可以參考 slides: Working with Data - Part 1 (pdf)
這幾個功能在 dplyr 這個 package 裡面,所以要先跑。同時要用內建檔案 mtcars 來練習,所以也要叫出來。下面還會用檔案資料 flights,因為它在 nycflights13 這個 packages 裡面,所以也需要安裝。
先介紹定義功能,幾個 operators 可看這篇。
下面先指定 a = 6,然後問 a 是否為 7。
a 不是 7,所以顯示出來為 FALSE。
如果問:a 不是 7 呢?
a 是六不是七是對的,所以顯示為 TRUE。
1. Select function: view only some variables
這是只選某些 variables 出來看,語法是:select(dataframe, var)
只選 mpg 和 wt 這兩項出來看。
選出 variables 開頭是 "d" 的。
列出所有的 variables。
2. Filter function: choose observations by their values
和 select() 不同的是 filter() 挑的更進一步,是選出某個 variable 裡的某個觀察(observations),例如下面是選出 cyl 這個 variable 裡面,數值為 8 的那些。
找出小於八的。
加兩個條件,用「或」(or),指令符號是: |
例如下面是找出 cyl 是 4 或 8 的。
在上面的例子中,因為我們想找的是在 cyl 中符合 4 和 8 的條件的,因此我們也可以用 %in% 的語法:var %in% c(obs1, obs2)
這是指在某個 variable 中找出裡面符合觀察值(obs)為特定值的項目,不一定要兩個,可以只有一個,也可以兩個以上,看你想找什麼,用上面的例子就會是:cyl %in% c(4, 8)
找出同時符合兩個條件的,用「和」(and),指令符號是: &
例如下面是找出 cyl 和 carb 都是八的。
用上面的語法前面只會出現數字,如果要顯示出是每列的名稱(也就是哪種車),可以用下面的語法。
select() 是挑出你想看的 variables,那如果想看某種特定條件下 variables 裡面的觀察值呢?例如我想看 variable qsec,但不想看全部的,只想看 cyl = 8 下的 qsec 值是什麼,這時候可以分開設,先用 filter() 找出 cyl = 8 的,然後再用 select() 看裡面的 qsec。
3. Slice function
和上面 filter() 不同的,slice() 是挑選某幾列(row)出來看,例如前三列或最後一列,而不是挑某種特定條件。
例如你只想要列出第三列的資料,可以這樣:
上面的兩種語法會出現同樣的結果,如下。
Note: slice() and filter() do not carry the row names with the subset of rows(注意:filter 和 slice 這兩個功能都不會在表格的前面顯示列的名稱,只有號碼。)
如果你想要列出第 1, 3, 5 列的資料,可以用 c(1, 3, 5)。
如果你想要顯示最後一行,不用找出一共有幾行,可以用這個語法: n()
n(): the number of observations in the current group.(表示那組有幾個觀察值就是幾個)
把它設在你想要挑選的列值的話,就會顯示最後一列,因為它的值是所有觀察值。例如 mtcars 總共有 32 個觀察值(就是有 32 列),那 n() 就是 32,於是就會顯示出第 32 列。
在上面的語法中,slice(mtcars, n()) 其實就是 slice(mtcars, 32),但如果用 n() 的話,就可以套用到所有資料李,不用每次改成最後一列的數字。
也可以用 filter() 的功能顯示最後一列,用的語法是:row_number() == n()
同理,如果要顯示從某行到最後一行的話,可以這樣:
因為 filter() 和 select() 功能都是不會給列名的,只有給數字,我們可以用 add_rownames() 或是 tibble::rownames_to_column() 的功能。
在 slice() 的表格裡加 row name 的話就是這樣:(下面顯示第三到五列)
Exercise
Q1. 找出 mtcars 檔案裡面 qsec 和 am 的資料,並把檔案裡第一個 column 的資料(i.e., mpg)指定為 am。
因為是要把 qsec 和 am 這兩個 variables 找出來看,所以用的是 select() 這個功能。
在 select() 的功能裡,如果用 var = # 這個語法,就是指把某個 variable 指定為檔案裡某一行的 variable,例如上面的 am = 1 就是指把 am 指定為檔案裡原本為第一行的 mpg,你可以看到 am 裡出現的的數值其實是 mpg 裡的。
下面我們用 am = 2,檔案裡的第二欄是 cyl,所以 am 裡的值會變成 cyl 裡的。
Q2. 找出檔案裡 am 是 1 的。
因為是挑處某個 variable 裡面的某個觀察值,所以要用 filter(),和上面不同的地方是要用 ==。
Q3. Extract the 1/4 mile time for cars with manual transmissions (找出檔案裡面 am 是 1 的 qsec 值)
am: transmission (0 = automatic, 1 = manual)
qsec: 1/4 mile time
Q4. Extract the mpg & wt for those cars with 5 gears or a manual transmission (找出檔案裡面 am 值是 1 或 gear 值是 5 的 qsec 值)
4. Piping (%>%): used when combining several function call together the command can be very hard to read
這個功能在 library(dplyr) 裡面,如果你用的疊層太多,很長的話,可以用 piping 把它分層變短。
Note: f(x) %>% g(y) is the same as g(f(x),y)
Exercise 1: Use %>% for Q3(把上面 Q3 的答案用 %>% 寫出來)
上面的是指在 mtcars 裡挑出 am == 1,再從裡面挑出 qsec 的資料。也就是說,mtcars 是最外層的,再來是 am == 1,最後才是 qsec。
Exercise 2:
把上面的語法用 %>% 分句寫。拆開來看是把 mtcars 加了列名之後,挑出 mpg >=30,再從裡面挑出 rowname, mpg cyl, hp 這幾項用 dataframe 的形式呈現出來。
最後,我們用檔案資料 flights 來練習一下。
Q1. Select all flights on January 2, but leave out the date columns.
選出所以一月二號的班機,不用顯示出日期(年月日)的那幾欄。
下面先看一下 flights 長怎樣。
挑出 variables 裡面的某個觀察,要用 filter() 挑出 month == 1 和 day == 2。要挑出某些 variables 的話要用 select(),如果要剔除的話同樣用 select(),但是在不要的 variables 前面加 - 。
也可以這樣:
可以看到上面的顯示的結果沒有 year, month 和 day 那三欄。
另外幾個處理檔案資料的功能請看這篇:R | Data manipulation (2): arrange, mutate, summarise
下篇會介紹:arrange, mutate, summarise
詳細功能介紹請參考這兩頁:Working with Data - Part 1 & Intro to R - Part 3
練習的部分可以參考 slides: Working with Data - Part 1 (pdf)
這幾個功能在 dplyr 這個 package 裡面,所以要先跑。同時要用內建檔案 mtcars 來練習,所以也要叫出來。下面還會用檔案資料 flights,因為它在 nycflights13 這個 packages 裡面,所以也需要安裝。
|
library(dplyr) library(nycflights13) mtcars |
先介紹定義功能,幾個 operators 可看這篇。
下面先指定 a = 6,然後問 a 是否為 7。
|
a <- 6 a == 7 |
| [1] FALSE |
a 不是 7,所以顯示出來為 FALSE。
如果問:a 不是 7 呢?
| a!= 7 |
| [1] TRUE |
a 是六不是七是對的,所以顯示為 TRUE。
1. Select function: view only some variables
這是只選某些 variables 出來看,語法是:select(dataframe, var)
只選 mpg 和 wt 這兩項出來看。
| select(mtcars, mpg, wt) |
|
mpg wt Mazda RX4 21.0 2.620 Mazda RX4 Wag 21.0 2.875 Datsun 710 22.8 2.320 Hornet 4 Drive 21.4 3.215 Hornet Sportabout 18.7 3.44 Valiant 18.1 3.460 Duster 360 14.3 3.570 Merc 240D 24.4 3.190 Merc 230 22.8 3.150 Merc 280 19.2 3.440 Merc 280C 17.8 3.440 ...... |
選出 variables 開頭是 "d" 的。
| select(mtcars, starts_with("d")) |
|
disp drat Mazda RX4 160.0 3.90 Mazda RX4 Wag 160.0 3.90 Datsun 710 108.0 3.85 Hornet 4 Drive 258.0 3.08 Hornet Sportabout 360.0 3.15 Valiant 225.0 2.76 Duster 360 360.0 3.21 ...... |
列出所有的 variables。
| select(mtcars, everything()) |
2. Filter function: choose observations by their values
和 select() 不同的是 filter() 挑的更進一步,是選出某個 variable 裡的某個觀察(observations),例如下面是選出 cyl 這個 variable 裡面,數值為 8 的那些。
| filter(mtcars, cyl == 8) |
|
mpg cyl disp hp drat wt qsec vs am gear carb 1 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 2 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 3 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 4 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 5 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 6 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 ...... |
找出小於八的。
| filter(mtcars, cyl < 8) |
加兩個條件,用「或」(or),指令符號是: |
例如下面是找出 cyl 是 4 或 8 的。
| filter(mtcars, cyl == 4 | cyl == 8) |
|
mpg cyl disp hp drat wt qsec vs am gear carb 1 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 2 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 3 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 4 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 5 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 6 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 ...... |
在上面的例子中,因為我們想找的是在 cyl 中符合 4 和 8 的條件的,因此我們也可以用 %in% 的語法:var %in% c(obs1, obs2)
這是指在某個 variable 中找出裡面符合觀察值(obs)為特定值的項目,不一定要兩個,可以只有一個,也可以兩個以上,看你想找什麼,用上面的例子就會是:cyl %in% c(4, 8)
| filter(mtcars, cyl %in% c(4, 8)) |
找出同時符合兩個條件的,用「和」(and),指令符號是: &
例如下面是找出 cyl 和 carb 都是八的。
| filter(mtcars, cyl == 8 & carb == 8) |
|
mpg cyl disp hp drat wt qsec vs am gear carb 1 15 8 301 335 3.54 3.57 14.6 0 1 5 8 |
用上面的語法前面只會出現數字,如果要顯示出是每列的名稱(也就是哪種車),可以用下面的語法。
| mtcars[mtcars$cyl == 4 | mtcars$carb == 8, ] |
|
mpg cyl disp hp drat wt qsec vs am gear carb Maserati Bora 15 8 301 335 3.54 3.57 14.6 0 1 5 8 |
select() 是挑出你想看的 variables,那如果想看某種特定條件下 variables 裡面的觀察值呢?例如我想看 variable qsec,但不想看全部的,只想看 cyl = 8 下的 qsec 值是什麼,這時候可以分開設,先用 filter() 找出 cyl = 8 的,然後再用 select() 看裡面的 qsec。
|
df <- filter(mtcars, cyl == 8) select(df, qsec) |
|
qsec 1 17.02 2 15.84 3 17.40 4 17.60 5 18.00 6 17.98 7 17.82 8 17.42 9 16.87 10 17.30 11 15.41 12 17.05 13 14.50 14 14.60 |
3. Slice function
和上面 filter() 不同的,slice() 是挑選某幾列(row)出來看,例如前三列或最後一列,而不是挑某種特定條件。
例如你只想要列出第三列的資料,可以這樣:
|
slice(mtcars, 3L) slice(mtcars, 3) |
上面的兩種語法會出現同樣的結果,如下。
|
# A tibble: 1 x 11 mpg cyl disp hp drat wt qsec vs am gear carb <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1 |
Note: slice() and filter() do not carry the row names with the subset of rows(注意:filter 和 slice 這兩個功能都不會在表格的前面顯示列的名稱,只有號碼。)
如果你想要列出第 1, 3, 5 列的資料,可以用 c(1, 3, 5)。
| slice(mtcars, c(1, 3, 5)) |
|
# A tibble: 3 x 11 mpg cyl disp hp drat wt qsec vs am gear carb <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 21.0 6 160 110 3.90 2.62 16.46 0 1 4 4 2 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1 3 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2 |
如果你想要顯示最後一行,不用找出一共有幾行,可以用這個語法: n()
n(): the number of observations in the current group.(表示那組有幾個觀察值就是幾個)
把它設在你想要挑選的列值的話,就會顯示最後一列,因為它的值是所有觀察值。例如 mtcars 總共有 32 個觀察值(就是有 32 列),那 n() 就是 32,於是就會顯示出第 32 列。
| slice(mtcars, n()) |
|
# A tibble: 1 x 11 mpg cyl disp hp drat wt qsec vs am gear carb <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2 |
在上面的語法中,slice(mtcars, n()) 其實就是 slice(mtcars, 32),但如果用 n() 的話,就可以套用到所有資料李,不用每次改成最後一列的數字。
也可以用 filter() 的功能顯示最後一列,用的語法是:row_number() == n()
| filter(mtcars, row_number() == n()) |
|
mpg cyl disp hp drat wt qsec vs am gear carb 1 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2 |
同理,如果要顯示從某行到最後一行的話,可以這樣:
| slice(mtcars, 5:n()) |
|
# A tibble: 28 x 11 mpg cyl disp hp drat wt qsec vs am gear carb <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 18.7 8 360.0 175 3.15 3.44 17.02 0 0 3 2 2 18.1 6 225.0 105 2.76 3.46 20.22 1 0 3 1 3 14.3 8 360.0 245 3.21 3.57 15.84 0 0 3 4 4 24.4 4 146.7 62 3.69 3.19 20.00 1 0 4 2 5 22.8 4 140.8 95 3.92 3.15 22.90 1 0 4 2 6 19.2 6 167.6 123 3.92 3.44 18.30 1 0 4 4 7 17.8 6 167.6 123 3.92 3.44 18.90 1 0 4 4 8 16.4 8 275.8 180 3.07 4.07 17.40 0 0 3 3 9 17.3 8 275.8 180 3.07 3.73 17.60 0 0 3 3 10 15.2 8 275.8 180 3.07 3.78 18.00 0 0 3 3 # ... with 18 more rows |
因為 filter() 和 select() 功能都是不會給列名的,只有給數字,我們可以用 add_rownames() 或是 tibble::rownames_to_column() 的功能。
| filter(add_rownames(mtcars), cyl == 8, carb == 3) |
|
# A tibble: 3 x 12 rowname mpg cyl disp hp drat wt qsec vs am gear <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 Merc 450SE 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 2 Merc 450SL 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3 Merc 450SLC 15.2 8 275.8 180 3.07 3.78 18.0 0 0 3 Warning message: Deprecated, use tibble::rownames_to_column() instead. |
|
filter(tibble::rownames_to_column(mtcars), cyl == 8, carb == 3) |
|
rowname mpg cyl disp hp drat wt qsec vs am gear carb 1 Merc 450SE 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3 2 Merc 450SL 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3 3 Merc 450SLC 15.2 8 275.8 180 3.07 3.78 18.0 0 0 3 3 |
在 slice() 的表格裡加 row name 的話就是這樣:(下面顯示第三到五列)
| slice(tibble::rownames_to_column(mtcars), c(3:5)) |
|
# A tibble: 3 x 12 rowname mpg cyl disp hp drat wt qsec vs am <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 2 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 |
Exercise
Q1. 找出 mtcars 檔案裡面 qsec 和 am 的資料,並把檔案裡第一個 column 的資料(i.e., mpg)指定為 am。
因為是要把 qsec 和 am 這兩個 variables 找出來看,所以用的是 select() 這個功能。
| select(mtcars, qsec, am = 1) |
在 select() 的功能裡,如果用 var = # 這個語法,就是指把某個 variable 指定為檔案裡某一行的 variable,例如上面的 am = 1 就是指把 am 指定為檔案裡原本為第一行的 mpg,你可以看到 am 裡出現的的數值其實是 mpg 裡的。
|
qsec am Mazda RX4 16.46 21.0 Mazda RX4 Wag 17.02 21.0 Datsun 710 18.61 22.8 Hornet 4 Drive 19.44 21.4 Hornet Sportabout 17.02 18.7 |
下面我們用 am = 2,檔案裡的第二欄是 cyl,所以 am 裡的值會變成 cyl 裡的。
| select(mtcars, qsec, am = 2) |
|
qsec am Mazda RX4 16.46 6 Mazda RX4 Wag 17.02 6 Datsun 710 18.61 4 Hornet 4 Drive 19.44 6 Hornet Sportabout 17.02 8 |
Q2. 找出檔案裡 am 是 1 的。
因為是挑處某個 variable 裡面的某個觀察值,所以要用 filter(),和上面不同的地方是要用 ==。
| filter(mtcars, am == 1) |
|
mpg cyl disp hp drat wt qsec vs am gear carb 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 4 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 5 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 |
Q3. Extract the 1/4 mile time for cars with manual transmissions (找出檔案裡面 am 是 1 的 qsec 值)
am: transmission (0 = automatic, 1 = manual)
qsec: 1/4 mile time
| select(filter(mtcars, am == 1), qsec) |
|
qsec 1 16.46 2 17.02 3 18.61 4 19.47 5 18.52 6 19.90 7 18.90 8 16.70 9 16.90 10 14.50 11 15.50 12 14.60 13 18.60 |
Q4. Extract the mpg & wt for those cars with 5 gears or a manual transmission (找出檔案裡面 am 值是 1 或 gear 值是 5 的 qsec 值)
| select(filter(mtcars, gear == 5 | am == 1), mpg, wt) |
|
mpg wt 1 21.0 2.620 2 21.0 2.875 3 22.8 2.320 4 32.4 2.200 5 30.4 1.615 6 33.9 1.835 7 27.3 1.935 8 26.0 2.140 9 30.4 1.513 10 15.8 3.170 11 19.7 2.770 12 15.0 3.570 13 21.4 2.780 |
4. Piping (%>%): used when combining several function call together the command can be very hard to read
這個功能在 library(dplyr) 裡面,如果你用的疊層太多,很長的話,可以用 piping 把它分層變短。
Note: f(x) %>% g(y) is the same as g(f(x),y)
Exercise 1: Use %>% for Q3(把上面 Q3 的答案用 %>% 寫出來)
| select(filter(mtcars, am == 1), qsec) |
上面的是指在 mtcars 裡挑出 am == 1,再從裡面挑出 qsec 的資料。也就是說,mtcars 是最外層的,再來是 am == 1,最後才是 qsec。
| mtcars %>% filter(am == 1) %>% select(qsec) |
Exercise 2:
|
as.data.frame(select(filter(add_rownames(mtcars), mpg >= 30), rowname, mpg, cyl, hp)) |
把上面的語法用 %>% 分句寫。拆開來看是把 mtcars 加了列名之後,挑出 mpg >=30,再從裡面挑出 rowname, mpg cyl, hp 這幾項用 dataframe 的形式呈現出來。
|
add_rownames(mtcars) %>% filter(mpg >= 30) %>% select(rowname, mpg, cyl, hp) %>% as.data.frame() |
最後,我們用檔案資料 flights 來練習一下。
Q1. Select all flights on January 2, but leave out the date columns.
選出所以一月二號的班機,不用顯示出日期(年月日)的那幾欄。
下面先看一下 flights 長怎樣。
| head(flights) |
|
# A tibble: 6 x 19 year month day dep_time sched_dep_time dep_delay arr_time <int> <int> <int> <int> <int> <dbl> <int> 1 2013 1 1 517 515 2 830 2 2013 1 1 533 529 4 850 3 2013 1 1 542 540 2 923 4 2013 1 1 544 545 -1 1004 5 2013 1 1 554 600 -6 812 6 2013 1 1 554 558 -4 740 # ... with 10 more variables: carrier <chr>, flight <int>, # tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, # distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm> |
挑出 variables 裡面的某個觀察,要用 filter() 挑出 month == 1 和 day == 2。要挑出某些 variables 的話要用 select(),如果要剔除的話同樣用 select(),但是在不要的 variables 前面加 - 。
| flights %>% filter(month == 1, day == 2) %>% select(-year, -month, -day) |
也可以這樣:
|
flights %>% filter(month == 1, day == 2) %>% select(-(year:day)) |
|
# A tibble: 943 x 16 dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay <int> <int> <dbl> <int> <int> <dbl> 1 42 2359 43 518 442 36 2 126 2250 156 233 2359 154 3 458 500 -2 703 650 13 4 512 515 -3 809 819 -10 5 535 540 -5 831 850 -19 |
可以看到上面的顯示的結果沒有 year, month 和 day 那三欄。
另外幾個處理檔案資料的功能請看這篇:R | Data manipulation (2): arrange, mutate, summarise
2017年4月22日 星期六
年輕的血可以抗老(二): TIMP2
還記得前幾年的這個實驗嗎?把老年的老鼠和年輕老鼠縫在一起(parabiosis)後,年輕老鼠的血讓老年老鼠變年輕了。
2013 年的時候,哈佛大學的 Dr. Amy Wagers 團隊把年輕(兩個月大)的和老年(23 個月大)的老鼠縫在一起,發現老年老鼠的心室肥大症狀(cardiac hypertrophy)改善了[1, 6]。為了找出是什麼蛋白質造成這個現象,他們分析比較了年輕老鼠和老年老鼠的血,發現兩者間有十三個蛋白質的表現量差很多,其中一個是 GDF11 (BMP-11),老鼠血中的 GDF11 隨著年紀增加而減少 [6]。GDF11 是生長激素 TGF-β 家族裡的其中一個,他們把 GDF11 打進老老鼠腹腔後(i.p. injection),同樣可以改善因老化而造成的心室肥大症。隔年,他們又發表了兩篇研究在 Science 說 GDF11 可以增進肌肉功能 [2, 7] 和腦細胞生長 [8]。
不過這兩篇研究在 2015 年的時候引起爭議,因為 Novartis Institutes 的執行長(executive director) David Glass 說他們重複實驗後得到的是相反的結果 [3, 4],研究結果發表在 Cell Metabolism [9]。他們發現老鼠和人類血液中的 GDF11 是隨著年齡增長而增多的,而且不但不會改善肌肉傷害,還會使它更嚴重,因為 GDF11 會抑制肌肉重新生長 [4, 9]。對此 Dr. Wagers 表示結果不同可能是因為 GDF11 有不只一種 isoforms,而其中一種確實是減少的 [3, 4],並且 Novartis 用的 GDF11 量是她用的三倍之多,過多的 GDF11 可能造成反效果。另外要提的是 myostatin (GDF8) 和 GDF11 很像,根據 Novartis 的研究,GDF11 和 myostatin 有相同的功能,都會抑制肌肉生長 [9],Novartis 有一個研發藥物即是 myostatin blocker,是想用來治療肌肉萎縮(muscular atrophy)的。這兩個研究之間的爭議和不同之處在 Dr. Wagers 關於 GDF11 可以改善肌肉傷害那篇 [6] 的 PubPeer 有諸多討論。
好了,為什麼要提起上面這些研究呢?因為今天有一篇發表在 Nature 的研究說除了 GDF11 外,還有另一個蛋白質可以讓年老的老鼠變年輕變聰明 [5]。這個研究是史丹佛大學的 Dr. Tony Wyss-Cory 團隊做的,他們之前有和 Dr. Wagers 合作過連體老鼠的研究。在這篇 Nature 的研究裡,他們比較了老年人(61-82 yrs)、年輕人(19-24 yrs)和新生兒臍帶血(umbilical cord plasma)的血漿蛋白,發現臍帶血漿可以增進老鼠的腦神經功能。之後他們比較了年輕老鼠和年輕人的血漿,找尋在老鼠和在人類血液內都會隨著年紀增加而降低的蛋白質,其中一個是 TIMP2 [10] [註]。TIMP2 在人類臍帶血和年輕老鼠的血漿及海馬旋裡的表現量都很高,當他們把 TIMP2 打進老鼠體內後,老年老鼠的認知功能改善了。同時,他們也發現 TIMP2 對年輕老鼠的空間記憶(spatial memory)是必須的,如果 knock down TIMP2,LTP (long-term potentiation)就無法表現 [10]。不過,他們目前還不知道 TIMP2 作用在記憶力的機制是什麼,需要更進一步的研究。
註:在 Wagers 2013 [6] 的那個研究裡,發現隨著年紀減少的蛋白有一個是 TIMP3,不過雖然 TIMP2 和 TIMP3 都在同一個家族裡,但他們的功能似乎差很多。
延伸閱讀:年輕的血可以抗老(一)GDF11
Articles:
1. Science / Nineteenth Century Technique Turns Old Mouse Hearts Young (2013)
2. Science / Young Blood Renews Old Mice (2014)
3. Science / Doubts cast on 'rejuvenating' protein (2015)
4. Nature / 'Young blood' anti-ageing mechanism called into question (2015)
5. Nature / Young human blood makes old mice smarter (2017)
Papers:
6. FS Loffredo et al, Growth Differentiation Factor 11 Is a Circulating Factor that Reverses Age-Related Cardiac Hypertrophy. Cell (2013)
7. M Sinha et al, Restoring Systemic GDF11 Levels Reverses Age-Related Dysfunction in Mouse Skeletal Muscle. Science (2014)
8. L Katsimpardi et al, Vascular and Neurogenic Rejuvenation of the Aging Mouse Brain by Young Systemic Factors. Science (2014)
9. MA Egerman et al, GDF11 Increases with Age and Inhibits Skeletal Muscle Regeneration. Cell Metabolism (2015)
10. JM Castellano et al, Human umbilical cord plasma proteins revitalize hippocampal function in aged mice. Nature (2017)
2013 年的時候,哈佛大學的 Dr. Amy Wagers 團隊把年輕(兩個月大)的和老年(23 個月大)的老鼠縫在一起,發現老年老鼠的心室肥大症狀(cardiac hypertrophy)改善了[1, 6]。為了找出是什麼蛋白質造成這個現象,他們分析比較了年輕老鼠和老年老鼠的血,發現兩者間有十三個蛋白質的表現量差很多,其中一個是 GDF11 (BMP-11),老鼠血中的 GDF11 隨著年紀增加而減少 [6]。GDF11 是生長激素 TGF-β 家族裡的其中一個,他們把 GDF11 打進老老鼠腹腔後(i.p. injection),同樣可以改善因老化而造成的心室肥大症。隔年,他們又發表了兩篇研究在 Science 說 GDF11 可以增進肌肉功能 [2, 7] 和腦細胞生長 [8]。
不過這兩篇研究在 2015 年的時候引起爭議,因為 Novartis Institutes 的執行長(executive director) David Glass 說他們重複實驗後得到的是相反的結果 [3, 4],研究結果發表在 Cell Metabolism [9]。他們發現老鼠和人類血液中的 GDF11 是隨著年齡增長而增多的,而且不但不會改善肌肉傷害,還會使它更嚴重,因為 GDF11 會抑制肌肉重新生長 [4, 9]。對此 Dr. Wagers 表示結果不同可能是因為 GDF11 有不只一種 isoforms,而其中一種確實是減少的 [3, 4],並且 Novartis 用的 GDF11 量是她用的三倍之多,過多的 GDF11 可能造成反效果。另外要提的是 myostatin (GDF8) 和 GDF11 很像,根據 Novartis 的研究,GDF11 和 myostatin 有相同的功能,都會抑制肌肉生長 [9],Novartis 有一個研發藥物即是 myostatin blocker,是想用來治療肌肉萎縮(muscular atrophy)的。這兩個研究之間的爭議和不同之處在 Dr. Wagers 關於 GDF11 可以改善肌肉傷害那篇 [6] 的 PubPeer 有諸多討論。
好了,為什麼要提起上面這些研究呢?因為今天有一篇發表在 Nature 的研究說除了 GDF11 外,還有另一個蛋白質可以讓年老的老鼠變年輕變聰明 [5]。這個研究是史丹佛大學的 Dr. Tony Wyss-Cory 團隊做的,他們之前有和 Dr. Wagers 合作過連體老鼠的研究。在這篇 Nature 的研究裡,他們比較了老年人(61-82 yrs)、年輕人(19-24 yrs)和新生兒臍帶血(umbilical cord plasma)的血漿蛋白,發現臍帶血漿可以增進老鼠的腦神經功能。之後他們比較了年輕老鼠和年輕人的血漿,找尋在老鼠和在人類血液內都會隨著年紀增加而降低的蛋白質,其中一個是 TIMP2 [10] [註]。TIMP2 在人類臍帶血和年輕老鼠的血漿及海馬旋裡的表現量都很高,當他們把 TIMP2 打進老鼠體內後,老年老鼠的認知功能改善了。同時,他們也發現 TIMP2 對年輕老鼠的空間記憶(spatial memory)是必須的,如果 knock down TIMP2,LTP (long-term potentiation)就無法表現 [10]。不過,他們目前還不知道 TIMP2 作用在記憶力的機制是什麼,需要更進一步的研究。
註:在 Wagers 2013 [6] 的那個研究裡,發現隨著年紀減少的蛋白有一個是 TIMP3,不過雖然 TIMP2 和 TIMP3 都在同一個家族裡,但他們的功能似乎差很多。
延伸閱讀:年輕的血可以抗老(一)GDF11
Articles:
1. Science / Nineteenth Century Technique Turns Old Mouse Hearts Young (2013)
2. Science / Young Blood Renews Old Mice (2014)
3. Science / Doubts cast on 'rejuvenating' protein (2015)
4. Nature / 'Young blood' anti-ageing mechanism called into question (2015)
5. Nature / Young human blood makes old mice smarter (2017)
Papers:
6. FS Loffredo et al, Growth Differentiation Factor 11 Is a Circulating Factor that Reverses Age-Related Cardiac Hypertrophy. Cell (2013)
7. M Sinha et al, Restoring Systemic GDF11 Levels Reverses Age-Related Dysfunction in Mouse Skeletal Muscle. Science (2014)
8. L Katsimpardi et al, Vascular and Neurogenic Rejuvenation of the Aging Mouse Brain by Young Systemic Factors. Science (2014)
9. MA Egerman et al, GDF11 Increases with Age and Inhibits Skeletal Muscle Regeneration. Cell Metabolism (2015)
10. JM Castellano et al, Human umbilical cord plasma proteins revitalize hippocampal function in aged mice. Nature (2017)
2017年4月20日 星期四
除了人類基因體計畫,還有另一種:Human Knockout Project
做研究常常需要用到 KO (knock-out) mice 來確認目標蛋白質的重要性,或是主要功能是什麼。不過呢,人和老鼠還是有差別,我們可以把老鼠的某個基因 KO,但無法把人類的基因 KO。如果我們無法 KO 人類的基因,那總可以找本來就沒有某些基因的人來研究吧?
雖說近親繁殖會使隱性的突變和疾病顯現出來,例如某 A 帶的一對基因一個是正常的(X),一個是突變沒功能的(x),那他帶的這個基因就是 Xx。因為突變而喪失功能叫 loss-of-function (LoF),假設某 B 是近親因此也有同樣的情形 (Xx),兩個人通婚後生的小孩就會有 25% 的機會是 xx,也就是身體裡沒有正常功能的蛋白質 X,等於是人類的 X 基因 KO。這種近親通婚的情況目前在帕基斯坦還存在,他們常常會和自己的表親通婚,於是會出現讓隱性突變顯性表現出來的情形。然而,很多人即使因為這個情形而喪失了某些基因,但還是活得很健康,這表示這個基因不重要嗎?這些看似不重要的基因也許可以為藥物研發帶來什麼意義。
2000 年的時候,Daniel MacArthur 開始找人類沒有也不會有事的基因。那年他還是 Dr. Kathryn North 實驗室的大學生。Dr. North 是澳洲雪梨大學的教授,之前發現一對兄弟的 muscular dystrophy (MD) 早發症狀(early-onset)可能是因為 ACTN3 出問題,不過當他們確認了父母肌肉裡的蛋白表現時,發現並沒有正常的 ACTN3 蛋白,但是父母本身是健康的,表示兄弟倆的 MD 症狀並非是缺少 ACTN3 蛋白的緣故(他們後來也發現是另一個基因突變造成的)[1]。於是呢,Dr. North 便開始想找出有什麼基因是看似重要,但沒有也可以存活的,也許我們缺少了那個基因非但無害,反而還有好處,他把這個計畫叫做 Human Knockout Project。為 1000 Genomes Project [註] 的一部份,分析了 185 位的基因體,MacArthur 和同事發現健康的人平均有一百種 LoF variants 和二十個完全喪失功能的基因突變 [1, 8]。
健康人的 LoF variants 通常是這幾種情形 [8]:
- 兩個 alleles 只有一個有問題(heterogenous),而有問題的那個雖然造成嚴重疾病,但因為是 recessive 所以(病徵)不會表現出來。
- 有問題的 alleles 雖然沒那麼嚴重,但也不至於造成疾病。
- 那個基因是多餘的(redundant),也就是說有其他的基因可以取代它的功能。
- 不會影響基因的功能
2014 年的時候,MacArthur 和耶魯大學的 van Heel,還有英國倫敦大學(University of London)的 Richard Trembath 計畫花四年定序住在英國的倫敦東區的 25,000 位巴基斯坦裔英國人的基因,這些人的父母很多都是一等親(表親)通婚。2015 年的時候,他們開始這項計畫,Sanger Institute 也答應幫他們定序,預計 2017 年年底可以完成 [2]。2016 年的時候,他們把已經定序和分析了的 3222 位巴裔英國人的結果發表在 Science,發現他們真的缺少不少基因,在 821 人裡有 781 個基因共出現 847 種 variants,其中有 575 個 variants 是 LoF。有 38 個人缺少了之前以為很重要的基因,但只有 9 人因為缺少這些基因而生病 [3, 9]。
之後,MIT Broad Institute 的 Dr. Sekar Kathiresan 也做了類似的研究,他們分析了 10,503 位有參與長期心血管疾病和糖尿病研究的巴基斯坦人的基因,結果發表在這個月的 Nature。他們發現這些人的基因中有 1317 個是即便完全喪失功能(fully knock-out)也不會造成需要就醫的情形,有 1843 人至少有一個完全喪失功能的基因(就是兩個 alleles 都 KO),有兩個人以上是同時有七個喪失功能的基因:PLA2G7 (Lp-PLA2), CYP2F1 (Cytochrome P450 2F1), TREH (Trehalase), A3GALT2 (α1,3-galactosyltransferase 2), NRG4 (neureglin 4), SLC9A3R1, APOC3 [5, 11]。
七個基因中有一個是 PLA2G7,其蛋白是 Lp-PLA2 (lipoprotein associated phospholipase A2),這是和血塞有關的酵素,之前研究顯示如果血中的 Lp-PLA2 越高的話,心臟病發(heart attack)的機率就越高。GSK 在 2012 年花了三億美金(USD$3B)買下 Human Genome Sciences 研發抑制 Lp-PLA2 的藥物 Darapladib,不過它的兩個大型 phase III 臨床試驗都失敗 [7]。這個研究發現少了一個或一對 Lp-PLA2 基因的巴基斯坦人得到心血管疾病的機率並沒有比較低,也許可以解釋為什麼 Lp-PLA2 inhibitor 會失敗 [5, 11]。
七個基因中還有一個是 APOC3,其蛋白是 ApoC3 (apolipoprotein C3),它是 chylomicrons, VLDL (very low density lipoprotein) 和 HDL (high-density lipoprotein)裡的其中一個蛋白,會讓肝臟無法吸收富含甘油三酯(triglycerides, TGs)的脂肪粒(TG-rich lipoproteins, TRLs),使食物中的脂肪無法從體內循環中被清除,使得高血液中的 TRLs 升高。之前研究顯示當血中的 ApoC3 和 TRLs 過高的話,會造成高三酸甘油酯症(hypertriglyceridemia);而如果抑制 ApoC3 的話,則應該可以促進脂肪代謝。而在這個研究裡,有一整個家庭,包括雙親和九個孩子,全部都缺少 APOC3 基因,即便他們喝了一杯充滿脂肪的奶昔,但血液中的脂肪量卻很少會上升。這個家庭雖然缺少 ApoC3,但身體健康,表示如果用藥物抑制 ApoC-III 來治療應該是安全的 [5, 6, 11]。
另一個跟 ApoC-III 類似情況的是 PCSK9。德州大學 Southwestern Medical Center 的心血管疾病專家 Helen Hobbs 說他和同事之前懷疑過,有些人的壞膽固醇(LDL, low-density lipoprotein)異常的低是因為 PCSK9 喪失功能。他們找到一位個案是 34 歲的女士,她的一對 PCSK9 都因為突變而喪失功能,造成她的 LDL 極低但身體卻是健康的。因為這個研究,藥廠發現可以用藥物抑制 PCSK9 來降低膽固醇 [1]。事實上,PCSK9 inhibtor 已經進入臨床試驗階段,今年三月的時候,結果發表在 NEJM 中 [10]。這個藥物是 Amgen 的 evolocumab (Repatha),顯示不但可以降低血液中的膽固醇(up to 59%),也可以在已經服用降膽固醇藥物 statins 的病患身上再降低 20% 因心血管疾病致死的風險 [4]。
註:為 The 1000 Genomes Project Consortium 的計畫,目的是深入了解 genotype (基因)和 phenotype (表現出來的徵狀)的關係, genotype 如何影響 phenotype [12]。其中合作者眾多,有 Baylor College of Medicine, Broad Institute (MIT, Harvard), Illumina, Life Technologies, Roche, Wellcome Trust Sanger Institute, Cold Spring Harbor Laboratory, EBI, Yale, Stanford 等等。
這個計畫下面有三個主要計畫:
1. 從四個族群裡選出 179 人做全基因底定序(low-coverage WGS)
2. 兩代基因定序(high-coverage WGS),基本為父母和孩子三人的(mother-father-child trios)。
3. 從幾個族群裡選出 679 人做目標性定序(targeted sequencing)
Articles:
1. J Kaiser, The Hunt for Missing Genes. Science (2014)
2. J Kaiser, East London study to explore high disease rates in south Asians (2015)
3. J Kaiser, Human ‘knockouts’ reveal genes we don’t need. Science (2016)
4. H Ledford, Genome-based cholesterol drug boosts heart health. Nature (2017)
5. J Kaiser, Human ‘knockouts’ may reveal why some drugs fail. Science (2017)
6. Science News / Gene knockouts in people provide drug safety, effectiveness clues (2017)
7. Science Daily / New genetic research can significantly improve drug development (2016)
Papers:
8. DG MacArthur et al, A Systematic Survey of Loss-of-Function Variants in Human Protein-Coding Genes. Science (2012)
9. VM Narasimhan et al, Health and population effects of rare gene knockouts in adult humans with related parents. Science (2016)
10. MS Sabatine et al, Evolocumab and Clinical Outcomes in Patients with Cardiovascular Disease. NEJM (2017)
11. D Saleheen et al, Human knockouts and phenotypic analysis in a cohort with a high rate of consanguinity. Nature (2017)
12. The 1000 Genomes Project Consortium, A map of human genome variation from population-scale sequencing. Nature (2010)
雖說近親繁殖會使隱性的突變和疾病顯現出來,例如某 A 帶的一對基因一個是正常的(X),一個是突變沒功能的(x),那他帶的這個基因就是 Xx。因為突變而喪失功能叫 loss-of-function (LoF),假設某 B 是近親因此也有同樣的情形 (Xx),兩個人通婚後生的小孩就會有 25% 的機會是 xx,也就是身體裡沒有正常功能的蛋白質 X,等於是人類的 X 基因 KO。這種近親通婚的情況目前在帕基斯坦還存在,他們常常會和自己的表親通婚,於是會出現讓隱性突變顯性表現出來的情形。然而,很多人即使因為這個情形而喪失了某些基因,但還是活得很健康,這表示這個基因不重要嗎?這些看似不重要的基因也許可以為藥物研發帶來什麼意義。
2000 年的時候,Daniel MacArthur 開始找人類沒有也不會有事的基因。那年他還是 Dr. Kathryn North 實驗室的大學生。Dr. North 是澳洲雪梨大學的教授,之前發現一對兄弟的 muscular dystrophy (MD) 早發症狀(early-onset)可能是因為 ACTN3 出問題,不過當他們確認了父母肌肉裡的蛋白表現時,發現並沒有正常的 ACTN3 蛋白,但是父母本身是健康的,表示兄弟倆的 MD 症狀並非是缺少 ACTN3 蛋白的緣故(他們後來也發現是另一個基因突變造成的)[1]。於是呢,Dr. North 便開始想找出有什麼基因是看似重要,但沒有也可以存活的,也許我們缺少了那個基因非但無害,反而還有好處,他把這個計畫叫做 Human Knockout Project。為 1000 Genomes Project [註] 的一部份,分析了 185 位的基因體,MacArthur 和同事發現健康的人平均有一百種 LoF variants 和二十個完全喪失功能的基因突變 [1, 8]。
健康人的 LoF variants 通常是這幾種情形 [8]:
- 兩個 alleles 只有一個有問題(heterogenous),而有問題的那個雖然造成嚴重疾病,但因為是 recessive 所以(病徵)不會表現出來。
- 有問題的 alleles 雖然沒那麼嚴重,但也不至於造成疾病。
- 那個基因是多餘的(redundant),也就是說有其他的基因可以取代它的功能。
- 不會影響基因的功能
2014 年的時候,MacArthur 和耶魯大學的 van Heel,還有英國倫敦大學(University of London)的 Richard Trembath 計畫花四年定序住在英國的倫敦東區的 25,000 位巴基斯坦裔英國人的基因,這些人的父母很多都是一等親(表親)通婚。2015 年的時候,他們開始這項計畫,Sanger Institute 也答應幫他們定序,預計 2017 年年底可以完成 [2]。2016 年的時候,他們把已經定序和分析了的 3222 位巴裔英國人的結果發表在 Science,發現他們真的缺少不少基因,在 821 人裡有 781 個基因共出現 847 種 variants,其中有 575 個 variants 是 LoF。有 38 個人缺少了之前以為很重要的基因,但只有 9 人因為缺少這些基因而生病 [3, 9]。
之後,MIT Broad Institute 的 Dr. Sekar Kathiresan 也做了類似的研究,他們分析了 10,503 位有參與長期心血管疾病和糖尿病研究的巴基斯坦人的基因,結果發表在這個月的 Nature。他們發現這些人的基因中有 1317 個是即便完全喪失功能(fully knock-out)也不會造成需要就醫的情形,有 1843 人至少有一個完全喪失功能的基因(就是兩個 alleles 都 KO),有兩個人以上是同時有七個喪失功能的基因:PLA2G7 (Lp-PLA2), CYP2F1 (Cytochrome P450 2F1), TREH (Trehalase), A3GALT2 (α1,3-galactosyltransferase 2), NRG4 (neureglin 4), SLC9A3R1, APOC3 [5, 11]。
七個基因中有一個是 PLA2G7,其蛋白是 Lp-PLA2 (lipoprotein associated phospholipase A2),這是和血塞有關的酵素,之前研究顯示如果血中的 Lp-PLA2 越高的話,心臟病發(heart attack)的機率就越高。GSK 在 2012 年花了三億美金(USD$3B)買下 Human Genome Sciences 研發抑制 Lp-PLA2 的藥物 Darapladib,不過它的兩個大型 phase III 臨床試驗都失敗 [7]。這個研究發現少了一個或一對 Lp-PLA2 基因的巴基斯坦人得到心血管疾病的機率並沒有比較低,也許可以解釋為什麼 Lp-PLA2 inhibitor 會失敗 [5, 11]。
七個基因中還有一個是 APOC3,其蛋白是 ApoC3 (apolipoprotein C3),它是 chylomicrons, VLDL (very low density lipoprotein) 和 HDL (high-density lipoprotein)裡的其中一個蛋白,會讓肝臟無法吸收富含甘油三酯(triglycerides, TGs)的脂肪粒(TG-rich lipoproteins, TRLs),使食物中的脂肪無法從體內循環中被清除,使得高血液中的 TRLs 升高。之前研究顯示當血中的 ApoC3 和 TRLs 過高的話,會造成高三酸甘油酯症(hypertriglyceridemia);而如果抑制 ApoC3 的話,則應該可以促進脂肪代謝。而在這個研究裡,有一整個家庭,包括雙親和九個孩子,全部都缺少 APOC3 基因,即便他們喝了一杯充滿脂肪的奶昔,但血液中的脂肪量卻很少會上升。這個家庭雖然缺少 ApoC3,但身體健康,表示如果用藥物抑制 ApoC-III 來治療應該是安全的 [5, 6, 11]。
另一個跟 ApoC-III 類似情況的是 PCSK9。德州大學 Southwestern Medical Center 的心血管疾病專家 Helen Hobbs 說他和同事之前懷疑過,有些人的壞膽固醇(LDL, low-density lipoprotein)異常的低是因為 PCSK9 喪失功能。他們找到一位個案是 34 歲的女士,她的一對 PCSK9 都因為突變而喪失功能,造成她的 LDL 極低但身體卻是健康的。因為這個研究,藥廠發現可以用藥物抑制 PCSK9 來降低膽固醇 [1]。事實上,PCSK9 inhibtor 已經進入臨床試驗階段,今年三月的時候,結果發表在 NEJM 中 [10]。這個藥物是 Amgen 的 evolocumab (Repatha),顯示不但可以降低血液中的膽固醇(up to 59%),也可以在已經服用降膽固醇藥物 statins 的病患身上再降低 20% 因心血管疾病致死的風險 [4]。
註:為 The 1000 Genomes Project Consortium 的計畫,目的是深入了解 genotype (基因)和 phenotype (表現出來的徵狀)的關係, genotype 如何影響 phenotype [12]。其中合作者眾多,有 Baylor College of Medicine, Broad Institute (MIT, Harvard), Illumina, Life Technologies, Roche, Wellcome Trust Sanger Institute, Cold Spring Harbor Laboratory, EBI, Yale, Stanford 等等。
這個計畫下面有三個主要計畫:
1. 從四個族群裡選出 179 人做全基因底定序(low-coverage WGS)
2. 兩代基因定序(high-coverage WGS),基本為父母和孩子三人的(mother-father-child trios)。
3. 從幾個族群裡選出 679 人做目標性定序(targeted sequencing)
Articles:
1. J Kaiser, The Hunt for Missing Genes. Science (2014)
2. J Kaiser, East London study to explore high disease rates in south Asians (2015)
3. J Kaiser, Human ‘knockouts’ reveal genes we don’t need. Science (2016)
4. H Ledford, Genome-based cholesterol drug boosts heart health. Nature (2017)
5. J Kaiser, Human ‘knockouts’ may reveal why some drugs fail. Science (2017)
6. Science News / Gene knockouts in people provide drug safety, effectiveness clues (2017)
7. Science Daily / New genetic research can significantly improve drug development (2016)
Papers:
8. DG MacArthur et al, A Systematic Survey of Loss-of-Function Variants in Human Protein-Coding Genes. Science (2012)
9. VM Narasimhan et al, Health and population effects of rare gene knockouts in adult humans with related parents. Science (2016)
10. MS Sabatine et al, Evolocumab and Clinical Outcomes in Patients with Cardiovascular Disease. NEJM (2017)
11. D Saleheen et al, Human knockouts and phenotypic analysis in a cohort with a high rate of consanguinity. Nature (2017)
12. The 1000 Genomes Project Consortium, A map of human genome variation from population-scale sequencing. Nature (2010)
訂閱:
文章 (Atom)