text:
Infectious Agents and Cancer
Multiplex HPV RNA in situ hybridization/p16 immunohistochemistry: a novel approach to detect papillomavirus in HPV-related cancers. A novel multiplex ISH/IHC assay to detect HPV
Federica Zito Marino1,
Andrea Ronchi1,
Marianna Stilo1,
Immacolata Cozzolino1,
Elvira La Mantia1,
Nicola Colacurci2,
Giuseppe Colella3 &
Renato Franco ORCID: orcid.org/0000-0002-8340-31841
Infectious Agents and Cancer volume 15, Article number: 46 (2020) Cite this article
High-risk human papillomavirus (HR-HPV) is notoriously associated with tumor progression in a broad spectrum of malignancies. Detection of HR-HPV is clinically important in the management of HPV-related carcinomas, particularly in cervical cancer and oropharyngeal squamous cell carcinoma (OPSCC). Several methods for HPV detection are currently available including Polymerase chain reaction (PCR)-based techniques, DNA in situ hybridization (ISH), RNA ISH, and p16 immunohistochemistry (IHC). Currently, the guidelines for HPV detection in cervical carcinoma are available, while no clear consensus has not yet been reached on the gold standard for HPV testing in OPSCC. Multimodality testing could help to reliably identify patients with transcriptionally active high-risk HPV-positive.
We propose a multiplex approach carrying out HPV RNA ISH and p16 IHC on the same slide to detect simultaneously HPV E6/E7 transcripts and p16INK4a overexpression. We tested this assay in two different series one of the cervical cancers with p16-positive, as control, and the other of oropharyngeal squamous cell carcinomas with blind p16 status.
The multiplex HPV RNA ISH /p16 IHC results in the series both of the cervical cancers and the oral-oropharyngeal cancers were fully concordant with the previous results achieved through the classic p16 IHC and HPV RNA scope carried out on two different slides.
Our results suggesting several advantages of this technical approach, namely an easy interpretation fully in the light field, the feasibility in formalin-fixed paraffin-embedded tissue sections, complete automation and a potential wide spreadable for routine testing in several clinical laboratories.
Human papillomavirus (HPV) is non-enveloped icosahedral, circular, dsDNA virus that can infect cutaneous and mucosal epithelia. Approximately 200 different HPV genotypes have been identified responsible of a broad spectrum of the clinical profiles, from benign lesions to HPV-related carcinomas [1, 2]. High-risk HPV (HR-HPV), most commonly types 16 and 18, have a great oncogenic potential, leading to HPV-related carcinomas. HPV has been reported to be an etiological agent for approximately 5% of all the human cancers, particularly the cervical, oropharyngeal, vaginal, vulval, penile cancers and lung cancer [3, 4]. The HR-HPV persistent infection is the cause of up to 85% of cervical cancer in women, due generally to genotypes 16 and 18 [5, 6].
The US Preventative Services Task Force (USPSTF) recommends that women aged 30 to 65 years should be screened with cytology and HPV testing (co-testing) every 5 years [7]. Instead, the European guidelines for quality assurance in cervical cancer screening recommend to test for HPV alone in women aged 30–65 every five years [8].
In the last decade, HR-HPV has revolutionized head and neck oncology, since the HPV-positive oropharyngeal squamous cell carcinoma (OPSCC) represents a unique cancer type with distinct clinicopathologic features and favorable prognosis. Thus HPV-OPSCC is now a well-recognized tumoral entity in the field of head and neck oncology, with an increasing incidence [9, 10]. Several methods for HPV detection are currently available including Polymerase chain reaction (PCR)-based techniques, DNA in situ hybridization (ISH), RNA ISH and p16 immunohistochemisty (IHC) [11]. The PCR-based detection of the HPV DNA is exclusively able to quantify viral load, however it cannot distinguish the HPV transcriptionally-active infections from those defined as "passenger" HPV [12,13,14]. The quantitative reverse transcriptase PCR to detect HPV E6/E7 mRNA would seem to be an ideal HPV testing method, since it reveals that HPV is not merely present, but is transcriptionally active [13, 14]. The Food and Drug Administration (FDA) approved the PCR to detect E6/E7 mRNA as the "gold standard" for the detection and typing of HPV [15]. Unfortunately, this assay can be performed exclusively in fresh-frozen tumor tissue, leading its limited use in the clinical practice. RNA in situ hybridization for detecting the HPV E6/E7 mRNA transcripts represents an advance in HPV testing, because of the ability to detect the virus in its transcriptionally-active status also in formalin-fixed paraffin-embedded tumor tissues (FFPE) [11, 14]. RNA ISH is incredibly sensitive, being near to 100%, however, the assay showed a specificity approximately of 90% [16]. Another technique used in the clinical practice to HPV testing is the immunohistochemical detection of p16INK4a overexpression, used as a surrogate biomarker of viral activity mainly in cervical and oropharyngeal cancers [8, 14, 17]. p16 IHC represents a surrogate for transcriptionally-active HR HPV since HPV viral oncoprotein E7 signaling induces strong overexpression of the cellular protein p16INK4a in HPV-transformed cells [18].
p16 IHC represents a method relatively inexpensive, which is highly sensitive for transcriptionally active HR HPV [13, 19, 20]. Although a good concordance between RNA ISH and p16 IHC has been reported, there is no exclusive biologic link between p16 over-expression, HPV infection, and carcinogenesis [17].
In this context, multimodality testing could help an accurate detection of HPV. We developed a multiplex approach carrying out HPV RNA ISH and p16IHC on the same slide to detect simultaneously HPV E6/E7 transcripts and p16INK4a overexpression. We validated this approach in two different series, one of the cervical cancers and the other of OPSCC .
A series of 17 cervical cancers with p16-positive IHC and a series of 38 oral-oropharyngeal cancers with blind p16 status were included in our study. All cases were collected in our records at the University of Campania "L. Vanvitelli". The series included surgical samples or wide biopsies. Sections of 4 μm thickness from each block with a mean of 3 blocks per tumor) were stained with hematoxylin-eosin. All cases were reviewed according to the histopathological classification.
p16 immunohistochemistry
p16 IHC was carried out with a proprietary kit CIN tec Histology; MTM laboratories AG) using the clone E6H4 on a Ventana Benchmark autostainer (Ventana Medical Systems, Tucson, AZ, USA) for the detection of p16INK4a antigen. A tonsil squamous cell carcinoma with high p16 expression was used as a positive control. The primary antibody was omitted from negative controls. The new guidelines proposed by the College of American Pathologists (CAP), for HPV testing in head and neck carcinomas in routine clinical practice proposed the interpretation of p16 IHC as follows: tumors with lack of staining or < 70% of nuclear and cytoplasmic staining are classified as HPV negative, while tumors with ≥70% of nuclear and cytoplasmic staining as HPV positive [10]. According to the new CAP guidelines we evaluated as positive p16 IHC expression tumors with staining ≥70% nuclear and cytoplasmic staining, however in our analysis we identified also other subgroups with different p16 IHC staining. Finally, we interpreted p16 IHC as follows: p16 high expression: tumors with staining ≥70% nuclear and cytoplasmic staining; p16 moderate expression: tumors with staining 30–70% nuclear and cytoplasmic staining; p16 low expression: tumors with staining 10–30% nuclear and cytoplasmic staining; p16 negative: tumors with staining 1–10% nuclear and cytoplasmic staining. The slides were independently evaluated by three separate observers (FZM, AR and RF).
Automated HPV RNA in situ hybridization
Sections 4 μ mof each case are used to perform HPV RNA ISH test. Detection of high-risk-HPV E6/E7 mRNA was performed using Ready-to-use reagents from RNAscope 2.5 LS Reagent Kit-BROWN and the HPV-HR18 probe cocktail (Advanced Cell Diagnostics) that were loaded onto the Leica Biosystems' BOND RX Research Advanced Staining System according to the user manual (Doc. No. 322100-USM). The slides were independently evaluated by three separate observers (FZM, AR and RF). Ubiquitin C and dapB were used as positive and negative controls, respectively. A positive HPV ISH test result was defined as positive if any of the malignant cells showed brown punctate dot-like nuclear and/or cytoplasmatic positivity [21, 22].
Multiplex HPV RNA in situ hybridization ISH/p16 immunohistochemistry
All steps are performed on the Leica BOND RX, automated system (Leica Microsystems,Bannockburn, IL). We tested different technical conditions.
In particularly, we have tested different dilutions of the antibody for the detection of p16INK4a antigen; different protocols namely first RNA ISH and then p16IHC or the opposite sequence; different colorimetric approaches including detection for HPV mRNA in DAB and p16 staining in Fast Red or conversely.
Finally, our results showed that the sequential staining first RNA ISH in DAB and then p16 IHC staining in Fast Red represents the best technical approach (Fig. 1).
Schematic workflow of multiplex HPV RNA ISH/p16 IHC assay
The protocol utilizes the Diaminobenzidine (DAB) chromogen of the Bond Polymer Refine kit to staining HPV E6/E7 mRNA, the Fast Red chromogen of the Bond Polymer Red Refine kit to staining p16 and hematoxylin to counterstain.
Detection of high-risk-HPV E6/E7 mRNA was performed using ready-to-use reagents from RNAscope® 2.5 LS Reagent Kit-BROWN and the HPV-HR18 probe cocktail (Advanced Cell Diagnostics) that were loaded onto the Leica Biosystems' BOND RX Research Advanced Staining System according to the user manual (Doc. No. 322100-USM). The target-specific probes for the E6 and E7 genes of 18 HR-HPV genotypes HPV (16,18, 26,31, 33, 35, 39, 45, 51, 52, 53, 56, 58, 59, 66, 68, 73 and 82). The Ubiquitin C a constitutively expressed endogenous gene was used as positive control to assess the presence adequate RNA quality and avoid a false-negative result. The dapB test was used as negative control to assess non-specific staining, for a comparison in the cases with negative or weakly stained HPV staining.
In brief, 4 μm sections were baked and deparaffinized on the instrument, followed by epitope retrieval using Leica Epitope Retrieval Buffer 2 at 95 °C or at 88 °C for 15 min and protease treatment 15 min at 40 °C. Probe hybridization, signal amplification trough different AMP reagent AMP 1–6) and colorimetric detection were subsequently performed. Several washes were performed, subsequently the ready-to-use primary antibody clone E6H4 for the detection of p16INK4a antigen was incubated and colorimetric detection was performed. Finally, a hematoxylin staining was carried out.
When the run is completed and the slide trays are removed, the covertiles are carefully lifted upward by the neck to remove. The slides are dehydrated through 2 changes each of 70, 95, and 100% alcohol and 2 changes of xylene, before coverslipping. A schematic of multiplex HPV RNA ISH/p16 IHC assay workflow is presented in Fig. 1.
A positive HPV ISH test result was defined as positive if any of the malignant cells showed brown punctate dot-like nuclear and/or cytoplasmatic positivity. p16 IHC was positive if nuclear and cytoplasmic red staining was observed according to the above score. The slides were independently analyzed by three separate observers (FZM, AR and RF) evaluating simultaneously HPV mRNA and p16 expression.
Fisher's exact test was used to assess the correlation between the results obtained from multiplex HPV RNA ISH /p16 IHC and the achieved through the classic p16 IHC and HPV RNA scope carried out on two different slides. Statistical significance was set at p = 0.05. Data analysis and summarization were conducted using SPSS 20.0 for Mac (SPSS Inc., Chicago, Ill).
Results in the series of cervical cancers
The cervical cancers selected from our archive on the basis of p16-positive IHC status were tested for RNAscope HPV-test. All 17 cervical cancers p16-positive showed RNAscope HPV-test positive results (100% concordance). The multiplex HPV RNA ISH/p16 IHC analysis showed a complete correspondence with the data obtained using the p16 IHC test and RNAscope HPV-test carried out separately on two different slides (Fig. 2).
Representative results of a cervical cancer with high p16 and HPV RNA expression. a positive p16 IHC, DAB staining (100x); b positive HPV RNA in situ hybridization, DAB staining (100x); c-d multiplex HPV RNA ISH/p16 IHC: positive p16 IHC Fast Red staining and positive HPV RNA ISH DAB staining (50x)
Results in the series of oral-oropharyngeal cancers
Firstly, the p16 IHC and the RNAscope HPV-test were carried out separately on two different slides for each case. The p16 immunohistochemical expression was found in 7 (18.4%) of 38 cases of oral-oropharyngeal cancers, particularly 3 cases p16-positive (7.9%) showed high expression, 2 cases (5.3%) moderate expression and 2 cases (5.3%) low expression. The HPV mRNA was found in 3 (7.9%) out of 38 cases, particularly 1 case (2.6%) showed high positivity and 2 cases (5.3%) low positivity, all other cases were negative.
Overall, only two cases (5.3%) out of 38 showed concurrently p16 and HPV RNA expression, particularly one showing high expression and other low.
Overall, 6 (15.8%) out of 38 showed no corresponding test results between IHC and ISH. The p16 IHC analysis yielded positive results for five cases where there was an absence of detectable HPV mRNA by ISH. One case HPV RNA ISH positive was p16 IHC negative.
All 38 cases of oral-oropharyngeal cancers were tested with the multiplex HPV RNA ISH/p16 IHC and the results were compared with those obtained with the p16 IHC and HPV RNA test performed on two different samples.
The multiplex HPV RNA ISH/p16 IHC results showed 100% concordance with the previous results achieved through the classic p16 IHC and HPV RNAscope carried out on two different slides (Fig. 3 and 4). The concordance of results obtained from the multiplex HPV RNA ISH/ p16 IHC with the classic IHC and ISH tests was blindly assessed from three different observers.
Representative results of an oropharyngeal squamous cell carcinoma with high p16 and HPV RNA expression. a positive p16 IHC, DAB staining (100x); b positive HPV RNA in situ hybridization, DAB staining (50x); c multiplex HPV RNA ISH/p16 IHC: positive p16 IHC Fast Red staining and positive HPV RNA ISH DAB staining (100x); d multiplex HPV RNA ISH/p16 IHC: positive p16 IHC Fast Red staining and positive HPV RNA ISH DAB staining (50x)
Representative results of an oropharyngeal squamous cell carcinoma with low p16 and HPV RNA expression. a positive p16 IHC, DAB staining (50x); b positive HPV RNA in situ hybridization, DAB staining (50x); c-d multiplex HPV RNA ISH/p16 IHC: positive p16 IHC Fast Red staining and positive HPV RNA ISH DAB staining (50x)
Detection of HPV-DNA can be performed through PCR or ISH, while the detection of HPV E6/E7 mRNA is based on ISH assay, and finally, p16 IHC represents an indirect method to establish a possible infection with the virus integration. DNA ISH has limited sensibility, mainly for tumor samples with low HPV copy numbers resulting in false negative results [23]. Moreover, the high possibility of cross-contamination associated with PCR-based HPV-DNA detection can lead to false-positive results [12,13,14]. PCR-based detection of the HPV E6/E7 mRNA transcripts can distinguish the transcriptionally-active HPV-related carcinomas from HPV infections clinically insignificant [14, 24]. HPV RNA ISH showed higher sensitivity and specificity compared to DNA ISH [19, 23, 25, 26]. Indeed, RNA ISH showed positive results also in cases that were negative or equivocal for DNA ISH test [23]. These discordant results explainable since the testing for HPV E6/E7 transcripts detects the presence of the integrated and transcriptionally active virus.
p16 overexpression has been described in approximately 20% of metastatic skin and lung HPV unrelated SCCs without a real association with HR-HPV [27]. Previous studies showed a high correspondence between p16 IHC and the RNAscope HPV-test, however, even if only in a few cases, discordant results have been found [16, 22, 23, 25]. Despite different methods were developed to directly or indirectly identify HPV, none of them would seem to have absolute high specificity and sensitivity. The rationale behind the development of a technique that integrates two HPV detection methods into a single assay is the possibility of completely remove false -positive and -negative cases.
The multiplex HPV RNA ISH/p16 IHC assay could be a promising assay to use in our routine considering its many advantages. This method is able to identify in a single assay both the p16 overexpression and the viral transcripts resulting in an increase in sensitivity and specificity to detect clinically relevant HPV-infections. The main advantage of this method is the easy interpretation of the results by a pathologist, since it is fully interpretable in light field. Furthermore, multiplex HPV RNA ISH/p16 IHC is technically feasible in FFPE tissue sections) and cytological samples, thus wide spreadable for routine testing in several clinical laboratories. The complete automation of the multiplex HPV RNA ISH/p16 IHC allows the reduction of time-consuming and the reproducibility of the technique, reducing any operator-dependent bias.
The novel multiplex approach proposed in this study could have some limitations that may concern particularly the expertise in the interpretation of the results and the optimization of the technique on other automation systems. Unlike the immunohistochemistry which has wide diffusion in all laboratories and is easily interpretable, the ISH represents a not widespread technique and moreover not always easy to interpret by all observers. In this view, this multiplex approach may be difficult to interpret for the observers with little expertise in the analysis of the in situ hybridization. In terms of the automation, although we have optimized this method on plataform Bond Leica, not too many technical difficulties are conceivable in the translation of our multiplex HPV RNA ISH/p16 IHC on other automatic platforms.
In the cervical carcinomas the HPV diagnosis is currently performed using the DNA-based molecular, rather than HPV RNA ISH [8]. HPV RNA ISH could have a role in resolving a differential diagnosis between the cervical low-grade squamous intraepithelial lesions (LSIL) and the reactive lesions, since p16 IHC showed low sensitivity and specificity in this context [28, 29]. Previous results in a series of cervical biopsies originally diagnosed as LSIL or low-grade neoplasia (CIN 1) showed that the detection of high- and low- risk HPV using HPV RNA ISH had 95% sensitivity and 98% specificity for cases diagnosed as CIN1 [29] Our novel approach that integrates p16 IHC and HPV RNA ISH analysis could represent a potential tool to improve the accuracy of LSIL/CIN1 diagnosis for morphologically ambiguous cases.
According to the current clinical practice, the multiplex HPV RNA ISH/p16 IHC approach could improve the identification of HPV-related SCCs. In head and neck cancer, HPV-SCC patients overall have significantly improved outcomes when compared to HPV-negative [30, 31]. HPV testing has clinical importance for the accurate identification of HPV-related head and neck cancer, not only prognostically, but also in treatment planning and follow-up [22].
The 8th edition of the cancer staging manual defined HPV-related OPSCC as a distinct entity, with staging now completely dependent on testing for p16 as a surrogate of HPV status [32]. in the clinical practise, approximately 8–20% of cases p16-positive OPSCC are HPV-negatives, suggesting the need for a more careful detection of HR-HPV [22, 33,34,35]. RNA ISH has considerably improved the HPV-positive OPSCC patient stratification, since its performance is incredibly high on FFPE samples and even on cytology cell blocks [19, 23, 27].
Previous authors proposed HPV diagnostic algorithms for OPSCC using the p16-IHC as the first stepwise to define tumors HPV-unrelated based on exclusively p16-IHC negative. Conversely, p16-positive potentially HPV-driven OPSCC are addressed to second molecular assays, namely ISH or PCR, to confirm the presence of HR-HPV [13, 36,37,38]. To date, the combination of p16 IHC and HPV RNA-ISH is necessary to increase the specificity required to avoid possible undertreatment of the HPV-related OPSCC patients with misdiagnosis of HPV-status [39]. Our multiplex approach could simultaneously provide two informations both the p16 expression and the HPV E6/E7 transcripts, resulting in a decrease of p16 false-negative OPSCC cases (Fig. 5).
HPV diagnostic alghoritm for oropharyngeal squamous cell carcinoma OPSCC) including the multiplex HPV RNA ISH/p16 IHC assay
Moreover, we hypothesize a further application field of our technique on cytological samples, particularly in OPSCC patients at an advanced stage when the cytology specimens are the only sample available to establish HPV-status [39, 40].
Our results suggesting that the multiplex HPV RNA ISH/p16 IHC have several advantages, namely the feasibility in FFPE samples, the complete automation and a potential wide spreadable for clinical practice in several Pathology Unit. This novel approach could help to completely eliminate the percentage of misdiagnosed HPV-related cases saving time, costs and biomaterials.
The datasets analysed during the current study are available from the corresponding author on reasonable request.
HPV:
HR-HPV:
High-risk HPV
USPSTF:
US Preventative Services Task Force
OPSCC:
Oropharyngeal squamous cell carcinoma
PCR:
ISH:
Immunohistochemisty
FDA:
FFPE:
Formalin-fixed paraffin-embedded
DAB:
Diaminobenzidine
Van Doorslaer K, Li Z, Xirasagar S, Maes P, Kaminsky D, Liou D, Sun Q, Kaur R, Huyen Y, McBride AA. The Papillomavirus Episteme: a major update to the papillomavirus sequence database. Nucleic Acids Res. 2017;45:499–506. https://doi.org/10.1093/nar/gkw879.
Graham SV. The human papillomavirus replication cycle, and its links to cancer progression: a comprehensive review. Clinic Sci. 2017;131:2201–21. https://doi.org/10.1042/CS20160786.
Herrero R, Castellsagué X, Pawlita M, Lissowska J, Kee F, Balaram P, Rajkumar T, Sridhar H, Rose B, Pintos J, Fernández L, Idris A, Sánchez MJ, Nieto A, Talamini R, Tavani A, Bosch FX, Reidel U, Snijders PJ, Meijer CJ, Viscidi R, Muñoz N, Franceschi S, IARC Multicenter Oral Cancer Study Group. Human papillomavirus and oral cancer: the international agency for research on cancer multicenter study. J Natl Cancer Inst. 2003;95:1772e1783. https://doi.org/10.1093/jnci/djg107.
Berman TA, Schiller JT. Human papillomavirus in cervical cancer and oropharyngeal cancer: One cause, two diseases. Cancer. 2017;123:2219–29. https://doi.org/10.1002/cncr.30588.
Samimi SA, Mody RR, Goodman S, Luna E, Armylagos D, Schwartz MR, Mody DR, Ge Y. Do infection patterns of human papillomavirus affect the cytologic detection of high-grade cervical lesions on papanicolaou tests? Arch Pathol Lab Med. 2018;142:347–52. https://doi.org/10.5858/arpa.2016-0478-OA.
Alexander C, White M, Maleki Z, Rodriguez EF. HPV-ISH-negative invasive cervical squamous cell carcinoma: histologic and pap test results. Acta Cytol. 2019;63:417–23. https://doi.org/10.1159/000500595.
US Preventive Services Task Force, Curry SJ, Krist AH, Owens DK, Barry MJ, Caughey AB, et al. Screening for cervical cancer: US preventive services task force recommendation statement. JAMA. 2018;320:674–86. https://doi.org/10.1001/jama.2018.10897.
Arbyn M, Anttila A, Jordan J, Ronco G, Schenck U, Segnan N, Wiener HG, Herbert A, Daniel J, von Karsa L, editors. European guidelines for quality assurance in cervical cancer screening. 2nd ed. Belgium; 2008.
Fakhry C, Lacchetti C, Rooper LM, Jordan RC, Rischin D, Sturgis EM, Bell D, Lingen MW, Harichand-Herdt S, Thibo J, Zevallos J, Perez-Ordonez B. Human papillomavirus testing in head and neck carcinomas: ASCO Clinical Practice Guideline Endorsement Of The College of American Pathologis Guideline. J Clin Oncol. 2018;36:3152–61. https://doi.org/10.1200/JCO.18.00684.
Lewis JS Jr, Beadle B, Bishop JA, Chernock RD, Colasacco C, Lacchetti C, Moncur JT, Rocco JW, Schwartz MR, Seethala RR, Thomas NE, Westra WH, Faquin WC. Human papillomavirus testing in head and neck carcinomas: guideline from the College of American Pathologists. Arch Pathol Lab Med. 2018;142:559–97. https://doi.org/10.5858/arpa.2017-0286-CP.
Mendez-Pena JE, Sadow PM, Nose V, Hoang MP. RNA chromogenic in situ hybridization assay with clinical automated platform is a sensitive method in detecting high-risk human papillomavirus in squamous cell carcinoma. Hum Pathol. 2017;63:184–9. https://doi.org/10.1016/j.humpath.2017.02.021.
Weinberger PM, Yu Z, Haffty BG, Kowalski D, Harigopal M, Brandsma J, Sasaki C, Joe J, Camp RL, Rimm DL, Psyrri A. Molecular classification identifies a subset of human papillomavirus--associated oropharyngeal cancers with favorable prognosis. J Clin Oncol. 2006;24:736–47. https://doi.org/10.1200/JCO.2004.00.3335.
Smeets SJ, Hesselink AT, Speel EJ, Haesevoets A, Snijders PJ, Pawlita M, Meijer CJ, Braakhuis BJ, Leemans CR, Brakenhoff RH. A novel algorithm for reliable detection of human papillomavirus in paraffin embedded head and neck cancer specimen. Int J Cancer. 2007;121:2465–72. https://doi.org/10.1002/ijc.2298.
Bishop JA, Lewis JS Jr, Rocco JW, Faquin WC. HPV-related squamous cell carcinoma of the head and neck: an update on testing in routine pathology practice. Semin Diagn Pathol. 2015;32:344–51. https://doi.org/10.1053/j.semdp.2015.02.013.
Lenhoff A. Five FDA-approved HPV assays. MLO Med Lab Obs. 2012;44:14, 16, 18.
Lewis JS Jr, Ukpo OC, Ma XJ, Flanagan JJ, Luo Y, Thorstad WL, Chernock RD. Transcriptionally‐active high‐risk human papillomavirus is rare in oral cavity and laryngeal/hypopharyngeal squamous cell carcinomas– a tissue microarray study utilizing E6/E7 mRNA in situ hybridization. Histopathology. 2012;60:982–91. https://doi.org/10.1111/j.1365-2559.2011.04169.x.
Prigge ES, von Knebel DM, Reuschenbach M. Clinical relevance and implications of HPV-induced neoplasia in different anatomical locations. Mutat Res Rev Mutat Res. 2017;772:51–66. https://doi.org/10.1016/j.mrrev.2016.06.005.
McLaughlin-Drubin ME, Crum CP, Münger K. Human papillomavirus E7 oncoprotein induces KDM6A and KDM6B histone demethylase expression and causes epigenetic reprogramming. Proc Natl Acad Sci U S A. 2011;108:2130–5. https://doi.org/10.1073/pnas.1009933108.
Schache AG, Liloglou T, Risk JM, Jones TM, Ma XJ, Wang H, Bui S, Luo Y, Sloan P, Shaw RJ, Robinson M. Validation of a novel diagnostic standard in HPV-positive oropharyngeal squamous cell carcinoma. Br J Cancer. 2013;108:1332–9. https://doi.org/10.1038/bjc.2013.63.
Jordan RC, Lingen MW, Perez-Ordonez B, He X, Pickard R, Koluder M, Jiang B, Wakely P, Xiao W, Gillison ML. Validation of methods for oropharyngeal cancer HPV status determination in US cooperative group trials. Am J Surg Pathol. 2012;36:945–54. https://doi.org/10.1097/PAS.0b013e318253a2d1.
Cohen C, Lawson D, Jiang J, Siddiqui MT. Automated in situ hybridization for human papilloma virus. Appl Immunohistochem Mol Morphol. 2014;22:619–22. https://doi.org/10.1097/PAI.0b013e3182a501a2.
Mirghani H, Casiraghi O, Amen F, He M, Ma XJ, Saulnier P, Lacroix L, Drusch F, Ben Lakdhar A, Saint Guily JL, Badoual C, Scoazec JY, Vielh P. Diagnosis of HPV-driven head and neck cancer with a single test in routine clinical practice. Mod Pathol. 2015;28:1518–27.
Bishop JA, Ma XJ, Wang H, Luo Y, Illei PB, Begum S, Taube JM, Koch WM, Westra WH. Detection of transcriptionally active high-risk HPV in patients with head and neck squamous cell carcinoma as visualized by a novel E6/E7 mRNA in situ hybridization method. Am J Surg Pathol. 2012;36:1874–82. https://doi.org/10.1097/PAS.0b013e318265fb2b.
Leemans CR, Braakhuis BJ, Brakenhoff RH. The molecular biology of head and neck cancer. Nat Rev Cancer. 2011;11:9–22. https://doi.org/10.1038/nrc2982.
Ukpo OC, Flanagan JJ, Ma XJ, Luo Y, Thorstad WL, Lewis JS Jr. High-risk human papillomavirus E6/E7 mRNA detection by a novel in situ hybridization assay strongly correlates with p16 expression and patient outcomes in oropharyngeal squamous cell carcinoma. Am J Surg Pathol. 2011;35:1343–50. https://doi.org/10.1097/PAS.0b013e318220e59d.
Kerr DA, Arora KS, Mahadevan KK, Hornick JL, Krane JF, Rivera MN, Ting DT, Deshpande V, Faquin WC. Performance of a branch chain RNA in situ hybridization assay for the detection of high-risk human papillomavirus in head and neck squamous cell carcinoma. Am J Surg Pathol. 2015;39:1643–52. https://doi.org/10.1097/PAS.0000000000000516.
Lewis JS Jr. Human papillomavirus testing in head and neck squamous cell carcinoma in 2020: where are we now and where are we going? Head Neck Pathol. 2020. https://doi.org/10.1007/s12105-019-01117-y.
Coppock JD, Willis BC, Stoler MH, Mills AM. HPV RNA in situ hybridization can inform cervical cytology-histology correlation. Cancer Cytopathol. 2018;126:533–40. https://doi.org/10.1002/cncy.22027.
Mills AM, Coppock JD, Willis BC, Stoler MH. HPV E6/E7 mRNA in situ hybridization in the diagnosis of cervical low-grade squamous intraepithelial lesions (LSIL). Am J Surg Pathol. 2018. https://doi.org/10.1097/PAS.0000000000000800.
Ang KK, Harris J, Wheeler R, Weber R, Rosenthal DI, Nguyen-Tân PF, Westra WH, Chung CH, Jordan RC, Lu C, Kim H, Axelrod R, Silverman CC, Redmond KP, Gillison ML. Human papillomavirus and survival of patients with oropharyngeal cancer. N Engl J Med. 2010;363:24–35. https://doi.org/10.1056/NEJMoa0912217.
Ragin CC, Taioli E. Survival of squamous cell carcinoma of the head and neck in relation to human papillomavirus infection: review and meta-analysis. Int J Cancer. 2007;121:1 813–20. https://doi.org/10.1056/NEJMoa091221.
Lydiatt WM, Patel SG, O'Sullivan B, Brandwein MS, Ridge JA, Migliacci JC, Loomis AM, Shah JP. Head and neck cancers—major changes in the American Joint Committee on cancer eighth edition cancer staging manual. CA Cancer J Clin. 2017;67:122–37. https://doi.org/10.3322/caac.21389.
Adelstein DJ, Ridge JA, Gillison ML, Chaturvedi AK, D'Souza G, Gravitt PE, Westra W, Psyrri A, Kast WM, Koutsky LA, Giuliano A, Krosnick S, Trotti A, Schuller DE, Forastiere A, Ullmann CD. Head and neck squamous cell cancer and the human papillomavirus: summary of a National Cancer Institute State of the Science Meeting November 9-10, 2018, Washington, D.C. Head Neck. 2009;31:1393–422. https://doi.org/10.1002/hed.21269.
Wasylyk B, Abecassis J, Jung AC. Identification of clinically relevant HPV-related HNSCC: in p16 should we trust? Oral Oncol. 2013;49:e33–7. https://doi.org/10.1016/j.oraloncology.2013.07.014.
Rietbergen MM, Snijders PJ, Beekzada D, Braakhuis BJ, Brink A, Heideman DA, Hesselink AT, Witte BI, Bloemena E, Baatenburg-De Jong RJ, Leemans CR, Brakenhoff RH. Molecular characterization of p16-immunopositive but HPV DNA-negative oropharyngeal carcinomas. Int J Cancer. 2014;134:2366–72. https://doi.org/10.1002/ijc.28580.
Singhi AD, Westra WH. Comparison of human papillomavirus in situ hybridization and p16 immunohistochemistry in the detection of human papillomavirus-associated head and neck cancer based on a prospective clinical experience. Cancer. 2010;116:2166–73. https://doi.org/10.1002/cncr.25033.
Mirghani H, Casiraghi O, Guerlain J, Amen F, He MX, Ma XJ, et al. Diagnosis of HPV driven oropharyngeal cancers: Comparing p16 based algorithms with the RNAscope HPV-test. Oral Oncol. 2016;62:101–8. https://doi.org/10.1016/j.oraloncology.2016.10.009.
Morbini P, Benazzo M. Human papillomavirus and head and neck carcinomas: focus on evidence in the babel of published data. Acta Otorhinolaryngol Ital. 2016;36:249–58. https://doi.org/10.14639/0392-100X-853.
Kim KY, Lewis JS Jr, Chen Z. Current status of clinical testing for human papillomavirus in oropharyngeal squamous cell carcinoma. J Pathol Clin Res. 2018;4:213–26. https://doi.org/10.1002/cjp2.111.
Roy-Chowdhuri S, Krishnamurthy S. The role of cytology in the era of HPV-related head and neck carcinoma. Semin Diagn Pathol. 2015;32:250–7. https://doi.org/10.1053/j.semdp.2014.12.006.
Pathology Unit, Department of Mental and Physical Health and Preventive Medicine, University of Campania "L. Vanvitelli", 80138, Naples, Italy
Federica Zito Marino, Andrea Ronchi, Marianna Stilo, Immacolata Cozzolino, Elvira La Mantia & Renato Franco
Department of Woman, Child and General and Specialized Surgery, Obstetrics and Gynecology Unit, University of Campania "L. Vanvitelli", 80138, Naples, Italy
Nicola Colacurci
Maxillofacial Surgery Unit, Department of Medical, Surgical and Dental Speciality, University of Campania "L. Vanvitelli", 80138, Naples, Italy
Giuseppe Colella
Federica Zito Marino
Andrea Ronchi
Marianna Stilo
Immacolata Cozzolino
Elvira La Mantia
Renato Franco
Author contributions: FZM and RF conceived the study, methodology, investigation, original draft writing; FZM and MS: performed RNA ISH, IHC, and multiplex ISH/IHC assays; NC and GC: provided tissue samples; AR, IC and ELM: interpreted RNA ISH, IHC, and multiplex ISH/IHC interpetration. The author(s) read and approved the final manuscript.
Correspondence to Renato Franco.
The study has obtained the ethic approval by Vanvitelli University Hospital Ethic Commitee.
No competing interest for each author.
Zito Marino, F., Ronchi, A., Stilo, M. et al. Multiplex HPV RNA in situ hybridization/p16 immunohistochemistry: a novel approach to detect papillomavirus in HPV-related cancers. A novel multiplex ISH/IHC assay to detect HPV. Infect Agents Cancer 15, 46 (2020). https://doi.org/10.1186/s13027-020-00310-x
Received: 25 May 2020
DOI: https://doi.org/10.1186/s13027-020-00310-x
Cervical Cancer and oral cancer


Hinky Dinky Time on GTDR #160 – Hinky Dinky Parlay Voo?
Hinky Dinky Time on WFMU's Give the Drummer Radio, episode 160: Friday, July 8, 2016 at 12:00 PM, Eastern Time.
Miles Davis Ali (take three) prev. unr.
Curt Boettcher Another Time (demo) prev. unr.


text:
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models

class Migration(SchemaMigration):

    def forwards(self, orm):

        # Adding model 'Vote'
        db.create_table('updown_vote', (
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
            ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', to=orm['contenttypes.ContentType'])),
            ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()),
            ('key', self.gf('django.db.models.fields.CharField')(max_length=32)),
            ('score', self.gf('django.db.models.fields.SmallIntegerField')()),
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', to=orm['auth.User'])),
            ('date_added', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
            ('date_changed', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
        ))
        db.send_create_signal('updown', ['Vote'])

        # Adding unique constraint on 'Vote', fields ['content_type', 'object_id', 'key', 'user']
        db.create_unique('updown_vote', ['content_type_id', 'object_id', 'key', 'user_id'])

    def backwards(self, orm):

        # Removing unique constraint on 'Vote', fields ['content_type', 'object_id', 'key', 'user']
        db.delete_unique('updown_vote', ['content_type_id', 'object_id', 'key', 'user_id'])

        # Deleting model 'Vote'
        db.delete_table('updown_vote')

    models = {
        'auth.group': {
            'Meta': {'object_name': 'Group'},
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
        },
        'auth.permission': {
            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
        },
        'auth.user': {
            'Meta': {'object_name': 'User'},
            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
        },
        'contenttypes.contenttype': {
            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
        },
        'updown.vote': {
            'Meta': {'unique_together': "(('content_type', 'object_id', 'key', 'user'),)", 'object_name': 'Vote'},
            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['contenttypes.ContentType']"}),
            'date_added': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
            'date_changed': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
            'score': ('django.db.models.fields.SmallIntegerField', [], {}),
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['auth.User']"})
        }
    }

    complete_apps = ['updown']

redpajama_set_name: RedPajamaGithub


text:
A change of tone from Labour?
I know that many of you are very sceptical indeed about Labour's position on Welfare Reform and in particular how it failed the sick or disabled.
You're right to be sceptical and regular readers will know that I share that scepticism and even fury.
Nonetheless, I believe that the only way we will achieve real change is to win the hearts and minds of those 650 MPs sitting in the House of Commons. They get to vote, they get to decide, they have the power of veto.
Both myself, the Broken of Britain, National Charities and other campaigners and bloggers have worked tirelessly over the last year and well before to be heard. We have battled daily to give voice to the tremendous concerns we have over the changes to sickness and disability support. Some of it we write about, some of it we can't, but every day we fight.
Yesterday, Liam Byrne made a speech to the London Chamber of Commerce and it undoubtedly showed a change of tone from Labour. It refers to many of the points we have been making and gives me some hope, that at least to some degree, Labour are starting to hear us. I still have grave reservations about some of the content, but it would be self-defeating not to acknowledge the change. Here are the main quotes I feel are noteworthy :
This is the summary. We are at the very heart of it "
The idea of responsibility is a clear theme coming through in feedback to Labour's policy review listening events; welfare reform is therefore one of the policy areas where Labour needs to win back trust.
The Tories have a wrong-headed view of responsibility, with no sense of balance between the responsibility of people to work if they can, and the need of government to help provide jobs and protect the vulnerable.
The Lib Dems have a chance to show they are serious about standing up to the Tories, by opposing measures which risk pushing thousands of disabled people into poverty in some crunch votes on the welfare reform bill.
He goes on to say :
To help get people back to work – but to work if you can.
To invest in opportunity – but to protect too the most vulnerable.
To pay your taxes – but in turn to provide a helping hand with getting on and up in life.
Then :
Second, my basic position is that we should cut welfare to help cut the deficit; but we should cut welfare by pushing unemployed people into jobs; not pushing the disabled into poverty.
That is what I now fear the government's welfare reform bill is about to effect.
Just as government has a responsibility to invest in opportunity, so it has a responsibility to protect the vulnerable.
I think ESA should be reformed, but it is wrong to ask people still recovering from cancer to start filling in job applications.
I think DLA should be reformed with a new, independent gateway, but a big bang approach is irresponsible and risks pushing thousands of disabled people into poverty.
And it will waste over half a billion pounds on retesting and retesting, including the disabled, when thousands of disabled people who are blind or have severe mental health problems, are not going to get better no matter how often you re-test them.
The abolition of the DLA mobility payments will overnight, leave disabled people as prisoners in their care home.
And the halving of disability premium for disabled children risks punishing some of the most vulnerable people in our country.
Put this together, and this is an approach to reform which quite simply is financed by cruelty to the disabled.
It is irresponsible, we call on the government to change course before it is too late, and we will continue to seek to change the welfare reform bill to make it better.
These measures are not cruel to be kind. They are just cruel and they should change
Compare this to a speech he made just a few months ago on becoming Shadow Secretary of state for Work and Pensions :
http://diaryofabenefitscrounger.blogspot.com/2011/02/so-its-welfare-reform-on-agenda-today.html
Please don't misunderstand me. There is still a very, very long way to go indeed. Labour still support time-limiting sickness benefits, albeit for two years not one. They still seem unaware of (or wilfully ignoring) just how badly ESA is failing us. They are still all "stick" and no "carrot" - a speech to the Chamber of Commerce could have laid foundations for much more responsibility by business to employ and embrace us.
Nonetheless, every triumph is noteworthy and every step brings us closer to an improvement.
Later today, Mr Byrne will address the Hardest Hit protesters. They will, understandably, share our scepticism and it is at least to his credit that he will be there - unlike Maria Miller, Minister for Disabilities, who declined the invitation.
Maria Miller needs to go NOW!!!!
How dare she get paid a wage by the taxpayer and comepletely ignore the people she was put in to support!
DISGRACEFUL!!!!!
Romi 11 May 2011 at 12:32
Makes me fume....... steam from ears, full eruption of anger and disgust! It is totally disgraceful that this happens in the UK, respected nation..........my bottom!
And all your work, real work is appreciated, but then as an elected rep myself I have time for you and your arguments.
I will keep ranting to until we get a fair and dignified settlement that provides confidence for everybody should life go wrong for them.
You are doing a good job of out-Labouring Labour in Parliament Sue lol
SWrural 11 May 2011 at 13:55
Just interrupting (excuses0 to say you all got a good piece on BBC lunchtime news, although it was plonked towards the end. The interviewer said she had three disabled people to talk to but she didn't as one was Jane Asher who is fronting some charities.
I thought the two disabled people were far more effective.
Sue Marsh 11 May 2011 at 14:01
Thanks Howard! It took a while, but now at least we're on the BBC News 24 bulletins too. (as an aside, I see Nick is saying he should "blow his own trumpet" more. Really, who advises this guy on PR???)
Ralph - great to know we have another voice speaking out for us inside the tent.
It's all words sue I'm afraid i myself come from lord sugars neck of the woods and it all means nothing to me at this time it may to you but not to me
I have never in my life been allowed to speak a load of bull and that is what I'm still seeing and hearing both from labour and the conservatives
They dont like us pure and simple and when i come across a proper response from either of those two parties i will let everyone know
At the moment there just in to words that have no meaning and just playing on peoples fears and succeeding i may add
Sam Barnett-Cormack 11 May 2011 at 14:59
I've written some point-by-point analysis/criticism, limited to be sure, but I feel they were insightful, of the govt response to the DLA reform consultation and the draft criteria for the PIP assessment. I've sent them to the scrutiny committee, but I wonder if the Labour party, particularly Liam Byrne as the shadow for W&P, might find them useful as points to criticise in parliamentary debate and questions...
Does anyone know if this is likely, how to send such stuff for his attention as a member of the Shadow Cabinet, and/or if there's anyone else who might use it to inform a more well-thought-out group piece?
Hi sam
there are 3 ways to contact Liam.
1. Ring the office on 0121 789 7287 to speak to a member of Liam's team or book an appointment to see Liam at a monthly advice bureaux (see below for further information). The office opening hours are Monday – Friday, 9.00am – 5.00pm (excluding bank holidays).
2. Write to Liam at the House of Commons, London, SW1A 0AA
3. E-mail Liam at byrnel@parliament.uk
fourbanks: if those are parliamentary contact details, those are only supposed to be for constituents. Apparently there's a strict convention saying MPs mustn't respond to contact from others' constituents when contact is made through their facilities as an MP. For the Shadow Cabinet, I'd've thought it would be through the party somehow. I'll try googling later.
You can ring sam and they will tell you on how to proceed
Write to Liam at the House of Commons, London, SW1A 0AA is ok Shadow Secretary of State for Work and Pensions,
Fourbanks
That was good advice there sir.
Thanks Howard
ARTMENT OF WORK & PENSIONS (DWP)
http://www.dwp.gov.uk/about-dwp/ministers/#mm
The Right Honourable Iain Duncan Smith MP – Secretary of State for Work and Pensions
The Right Honourable Chris Grayling MP – Minister for Employment
Steve Webb MP - Minister for Pensions
Maria Miller MP - Minister for Disabled People
Lord Freud - Minister for Welfare Reform
Ministers' speeches
The Right Honourable Iain Duncan Smith MP
Secretary of State for Work and Pensions
The Secretary of State has overall departmental responsibility.
Iain Duncan Smith was appointed Secretary of State for Work and Pensions in May 2010 as part of the Conservative Liberal Democrat Coalition Government.
He was born in Edinburgh and before entering politics served in the military with the Scots Guards before leaving to join General Electric.
He was first elected as MP for Chingford and Woodford Green in the 1992 General Election and served as Leader of the Conservative Party between September 2001 and November 2003.
The Right Honourable Chris Grayling MP
Minister for Employment
Employment and related benefits
The Work Programme
Labour market and the economy
Jobcentre Plus
Chris Grayling has been MP for Epsom and Ewell since 2001 and lives in the constituency with his wife Sue and their two children.
Between 2003 and 2009, Chris held a number of Shadow frontbench posts including Shadow Higher and Further Education Minister, Shadow Leader of the House, Shadow Secretary of State for Transport, Shadow Secretary of State for Work and Pensions and Shadow Home Secretary. Following the formation of the coalition government in May 2010, he was appointed Minister of State at the Department for Work and Pensions.
Steve Webb MP
Minister for Pensions
Pensions and related benefits
Pensions reform
The Pension, Disability and Carers Service
Pensions Regulator
Pension Protection Fund
Financial Assistance Scheme
Pensions Advisory Service and Ombudsman
Social Fund
In 1997 Steve Webb became the Liberal Democrat MP for Northavon. He lives in the constituency with his wife and two children.
Before being elected, Steve studied Philosophy, Politics and Economics at Hertford College, Oxford. He worked as an economist at the Institute for Fiscal Studies from 1986 to 1995 before being appointed Professor of Social Policy at Bath University.
Maria Miller MP
Minister for Disabled People
Disability and carers benefits
Specialist disability employment
Office for Disability Issues
Child Maintenance and Enforcement Commission
Remploy
Independent Living Fund
Maria Miller has been Member of Parliament for Basingstoke since the 2005 General Election. She is married to Iain Miller, and they have one daughter and two sons.
Before entering Parliament, Maria was a director of Grey Advertising and also Rowland Saatchi. Prior to that Maria worked for the oil company Texaco in business development and marketing.
Lord Freud
Minister for Welfare Reform
Welfare reform and related benefits
Fraud and error
Housing support – including Housing Benefit and Support for Mortgage Interest
Customer Information – data sharing and information security
David Freud is the Parliamentary Under Secretary of State (Lords) for the Department for Work and Pensions.
How to contact ministers
Email DWP ministers
ministers@dwp.qsi.gov.uk
Or write to them at:
Department for Work and Pensions
Tothill Street
SW1H 9DA
A call to the Dept of Health re: Euthanasia options for the disabled :shock: :shock: :shock: :shock: :shock: :shock:
http://www.youtube.com/all_comments?v=MyNSVtF3Vs8
Jane 12 May 2011 at 15:29
I was shocked to see that there was no mention of The Hardest Hit march on the BBC News last night (Wednesday). Please join me in complaining to BBC Newswatch about the lack of mainstream reporting perpetuating our invisibility, so it's more likely our complaint will be aired on the Newswatch programme on Friday evening (BBC News Channel, Fridays at 8.45pm). Thanks everyone!
theyoungjane - Left Foot Forward asked me to write about just that tomorrow, so I'll try to put together a scorcher .
I did call the BBC but judging by the phone call didn't seam interested at all
The only ones interested it looks like are the Guardian
I sent the link above to them for comment
Sue - thanks, great minds and all that. You may be interested to know a little about me; I have worked in both the voluntary sector and local government in the field of disability - my most recent job was as Disability Equality and Access Officer at Kingston upon Thames, where I am also a service user.
We recently ran a high profile campaign in Kingston against its proposals to increase charges for social care services (which became a decision!) and we have now made an application for Judicial Review of the decision, on the basis that the authority did not fulfil its legal responsibility to promote the equality of disabled people and women and did not pay due regard to the impact of its proposals on disabled people and women. The solicitor is Rosa Curling of Leigh Day & Co and the barrister is Kate Markum of Doughty Street Chambers. Kingston have asked for more time to respond to the letter before claim so we have to wait to see what they say before the case can proceed. Rosa says we need to publicise what we're doing so that if the court tells Kingston to make its decision all over again they find it politically difficult to make the same decision again. I have a website at www.janeyoung.me.uk which I'm using to post updates on the campaign.
The other thing I can tell you is that my own MP, Zac Goldsmith, has been very receptive to my concerns and very good at writing to Maria Miller on my behalf but, unsurprisingly, she has never answered the question. But I'm in continual email contact with Zac and a few months ago he asked me for a briefing when he had a meeting coming up with Ian Duncan Smith, which I was quite chuffed about!
I try to follow the posts on your and other blogs regularly but like you I have periods of ill health when not much happens! I'm also trying to do an MA in Disability Studies from the University of Leeds but that needs more concentration and isn't so easy to progress when I'm not physically well! Thank you so much for all you're doing Sue - I look out for your articles in the Guardian as well.
Spoonie Revenge Party
Cameron's on holiday AGAIN??
This is what the fight costs us.
Welfare for the people, by the people - Continued
Welfare for the people, by the people - a Consulta...
Swearing against Disablism
Poverty Cooking
Kindergarten Debate
So, how am I?
Guest Post - NICE and Leukaemia Drugs
My local area Protest against Social Care Cuts
They Think it's all over....
The Hardest Hit March - We have a Dream
Why Labour still have it wrong on ESA
Jobcentres on Suicide Alert
Local Triumph!!
Clegg in "Tories Lie" Shocker!!
Just VOTE!
Is the workplace fit for me?
3 Claimants die after being found "Fit for Work"
Blogging Against Disablism Day

redpajama_set_name: RedPajamaCommonCrawl


text:
'Avatar: The Way of Water' Disney+ Release Date Possibly Revealed
By Allison Schonter - January 6, 2023 02:40 pm EST
Avatar: The Way of Water may still be dominating the box office, but Disney+ subscribers could soon be traveling to Pandora. Just weeks after James Cameron's followup to his 2009 blockbuster Avatar hit theaters on Dec. 16, Avatar: The Way of Water seems likely to hit the Disney+ streaming library sooner rather than later.
Although Disney has not yet confirmed a launch date for the film on its streaming service, taking a look back at the streamer's previous theater-to-streaming service practices and announcements provides some insight. Back in September 2021, the company announced a minimum 45-day exclusive theatrical release for its remaining releases that year, a release window that has been adopted for Marvel Cinematic Universe movies like Shang-Chi and the Legend of the Ten Rings as well as other films. This means that if Avatar: The Way of Water follows this process, the film would arrive on the streaming platform on Monday, Jan. 30, according to PEOPLE. However, it is possible that fans may not have to wait that long, as the movie could hit the streamer even sooner. Disney has previously granted 30-day release windows for some films, including Encanto. This timeframe would put Avatar's Disney+ release date at Sunday, Jan. 15.
It is also important to note that Avatar's journey to Disney+ may take a bit longer. In the past, Disney has extended that pipeline further for select films, including Thor: Love and Thunder, which made it to Disney+ 62 days after its premiere, and Black Panther: Wakanda Forever, which is set to be available for streaming beginning Wednesday, Feb. 1, marking an 82-day window. Avatar: The Way of Water does currently have a placeholder in the Disney+ streaming library, which gives subscribers the ability to add the title to their watchlist for streaming once it is available on the platform.
Arriving in theaters 13 years after Avatar, Avatar: The Way of Water is set over a decade after the first film and again finds Sam Worthington in the role of Jake Sully, a former human-turned-Na'vi. Zoe Saldana reprised her role as Jake's wife Neytiri for the film, which follows the Sully family and "the trouble that follows them, the lengths they go to keep each other safe, the battles they fight to stay alive, and the tragedies they endure," per an official logline. Sigourney Weaver has a new role as Kiri, Keyteri, and Jake's teenage daughter. Stephen Lang, Cliff Curtis, Giovanni Ribisi, CCH Pounder, Joel David Moore, Edie Falco, Jemaine Clement, Michelle Yeoh, and Kate Winsley also star.
The film has been a massive box office success, pulling a global total of $435 million over its opening weekend, making it the fourth-biggest opening weekend of 2022. The film has a 77% critics score and 92% audience score on Rotten Tomatoes. Avatar 3 was shot back-to-back with the second film and is expected to debut on Dec. 20, 2024. As fans await Avatar: The Way of Water's Disney+ release date, the 2009 film is currently streaming on the platform.
Everything Leaving Netflix in January 2023
New HBO Show Continues to Grow Audience as Season Goes On
How to Watch the 2023 Grammy Awards
FX Cancels Another Show
Showtime Purges Original Shows Starring Jim Carrey, Kirsten Dunst and More Big Names
Hulu Cancels Major Sitcom
Showtime Cancels Two Major Shows Amid Paramount+ Merger
Shailene Woodley Suffers Unfortunate Career Setback


text:
"""Tests for StructuredTensor.Spec."""

from absl.testing import parameterized
import numpy as np

from tensorflow.python.data.ops import dataset_ops
from tensorflow.python.eager import context
from tensorflow.python.framework import dtypes
from tensorflow.python.framework import tensor_shape
from tensorflow.python.framework import tensor_spec
from tensorflow.python.framework import test_util
from tensorflow.python.framework import type_spec
from tensorflow.python.ops.ragged import ragged_factory_ops
from tensorflow.python.ops.ragged import ragged_tensor
from tensorflow.python.ops.ragged import row_partition
from tensorflow.python.ops.ragged.dynamic_ragged_shape import DynamicRaggedShape
from tensorflow.python.ops.structured import structured_tensor
from tensorflow.python.ops.structured.structured_tensor import StructuredTensor
from tensorflow.python.platform import googletest

# TypeSpecs consts for fields types.
T_3 = tensor_spec.TensorSpec([3])
T_1_2 = tensor_spec.TensorSpec([1, 2])
T_1_2_8 = tensor_spec.TensorSpec([1, 2, 8])
T_1_2_3_4 = tensor_spec.TensorSpec([1, 2, 3, 4])
T_2_3 = tensor_spec.TensorSpec([2, 3])
R_1_N = ragged_tensor.RaggedTensorSpec([1, None])
R_2_N = ragged_tensor.RaggedTensorSpec([2, None])
R_1_N_N = ragged_tensor.RaggedTensorSpec([1, None, None])
R_2_1_N = ragged_tensor.RaggedTensorSpec([2, 1, None])

# TensorSpecs for nrows & row_splits in the _to_components encoding.
NROWS_SPEC = tensor_spec.TensorSpec([], dtypes.int64)
PARTITION_SPEC = row_partition.RowPartitionSpec()

# pylint: disable=g-long-lambda
@test_util.run_all_in_graph_and_eager_modes
class StructuredTensorSpecTest(test_util.TensorFlowTestCase,
                               parameterized.TestCase):

  # TODO(edloper): Add a subclass of TensorFlowTestCase that overrides
  # assertAllEqual etc to work with StructuredTensors.
  def assertAllEqual(self, a, b, msg=None):
    if not (isinstance(a, structured_tensor.StructuredTensor) or
            isinstance(b, structured_tensor.StructuredTensor)):
      return super(StructuredTensorSpecTest, self).assertAllEqual(a, b, msg)
    if not (isinstance(a, structured_tensor.StructuredTensor) and
            isinstance(b, structured_tensor.StructuredTensor)):
      # TODO(edloper) Add support for this once structured_factory_ops is added.
      raise ValueError('Not supported yet')

    self.assertEqual(repr(a.shape), repr(b.shape))
    self.assertEqual(set(a.field_names()), set(b.field_names()))
    for field in a.field_names():
      self.assertAllEqual(a.field_value(field), b.field_value(field))

  def assertAllTensorsEqual(self, x, y):
    assert isinstance(x, dict) and isinstance(y, dict)
    self.assertEqual(set(x), set(y))
    for key in x:
      self.assertAllEqual(x[key], y[key])

  def testConstruction(self):
    spec1_fields = dict(a=T_1_2_3_4)
    spec1 = StructuredTensor.Spec(
        _ragged_shape=DynamicRaggedShape.Spec(
            row_partitions=[],
            static_inner_shape=tensor_shape.TensorShape([1, 2, 3]),
            dtype=dtypes.int64),
        _fields=spec1_fields)
    self.assertEqual(spec1._shape, (1, 2, 3))
    self.assertEqual(spec1._field_specs, spec1_fields)

    spec2_fields = dict(a=T_1_2, b=T_1_2_8, c=R_1_N, d=R_1_N_N, s=spec1)
    spec2 = StructuredTensor.Spec(
        _ragged_shape=DynamicRaggedShape.Spec(
            row_partitions=[],
            static_inner_shape=tensor_shape.TensorShape([1, 2]),
            dtype=dtypes.int64),
        _fields=spec2_fields)
    self.assertEqual(spec2._shape, (1, 2))
    self.assertEqual(spec2._field_specs, spec2_fields)

  # Note that there is no error for creating a spec without known rank.
  @parameterized.parameters([
      (None, r'fields: expected mapping, got None'),
      ({1: tensor_spec.TensorSpec(None)},
       r'expected str, got 1'),
      ({'x': 0},
       r'got 0'),
  ])
  def testConstructionErrors(self, field_specs, error):
    with self.assertRaisesRegex(TypeError, error):
      structured_tensor.StructuredTensor.Spec(
          _ragged_shape=DynamicRaggedShape.Spec(
              row_partitions=[],
              static_inner_shape=[],
              dtype=dtypes.int64),
          _fields=field_specs)

  def testValueType(self):
    spec1 = StructuredTensor.Spec(
        _ragged_shape=DynamicRaggedShape.Spec(
            row_partitions=[],
            static_inner_shape=[1, 2],
            dtype=dtypes.int64),
        _fields=dict(a=T_1_2))
    self.assertEqual(spec1.value_type, StructuredTensor)

  @parameterized.parameters([
      {
          'shape': [],
          'fields': dict(x=[[1.0, 2.0]]),
          'field_specs': dict(x=T_1_2),
      },
      {
          'shape': [2],
          'fields': dict(
              a=ragged_factory_ops.constant_value([[1.0], [2.0, 3.0]]),
              b=[[4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]),
          'field_specs': dict(a=R_2_N, b=T_2_3),
      },
  ])  # pyformat: disable
  def testToFromComponents(self, shape, fields, field_specs):
    struct = StructuredTensor.from_fields(fields, shape)
    spec = StructuredTensor.Spec(_ragged_shape=DynamicRaggedShape.Spec(
        row_partitions=[],
        static_inner_shape=shape,
        dtype=dtypes.int64), _fields=field_specs)
    actual_components = spec._to_components(struct)
    rt_reconstructed = spec._from_components(actual_components)
    self.assertAllEqual(struct, rt_reconstructed)

  def testToFromComponentsEmptyScalar(self):
    struct = StructuredTensor.from_fields(fields={}, shape=[])
    spec = struct._type_spec
    components = spec._to_components(struct)
    rt_reconstructed = spec._from_components(components)
    self.assertAllEqual(struct, rt_reconstructed)

  def testToFromComponentsEmptyTensor(self):
    struct = StructuredTensor.from_fields(fields={}, shape=[1, 2, 3])
    spec = struct._type_spec
    components = spec._to_components(struct)
    rt_reconstructed = spec._from_components(components)
    self.assertAllEqual(struct, rt_reconstructed)

  @parameterized.parameters([
      {
          'unbatched': lambda: [
              StructuredTensor.from_fields({'a': 1, 'b': [5, 6]}),
              StructuredTensor.from_fields({'a': 2, 'b': [7, 8]})],
          'batch_size': 2,
          'batched': lambda: StructuredTensor.from_fields(shape=[2], fields={
              'a': [1, 2],
              'b': [[5, 6], [7, 8]]}),
      },
      {
          'unbatched': lambda: [
              StructuredTensor.from_fields(shape=[3], fields={
                  'a': [1, 2, 3],
                  'b': [[5, 6], [6, 7], [7, 8]]}),
              StructuredTensor.from_fields(shape=[3], fields={
                  'a': [2, 3, 4],
                  'b': [[2, 2], [3, 3], [4, 4]]})],
          'batch_size': 2,
          'batched': lambda: StructuredTensor.from_fields(shape=[2, 3], fields={
              'a': [[1, 2, 3], [2, 3, 4]],
              'b': [[[5, 6], [6, 7], [7, 8]],
                    [[2, 2], [3, 3], [4, 4]]]}),
      },
      {
          'unbatched': lambda: [
              StructuredTensor.from_fields(shape=[], fields={
                  'a': 1,
                  'b': StructuredTensor.from_fields({'x': [5]})}),
              StructuredTensor.from_fields(shape=[], fields={
                  'a': 2,
                  'b': StructuredTensor.from_fields({'x': [6]})})],
          'batch_size': 2,
          'batched': lambda: StructuredTensor.from_fields(shape=[2], fields={
              'a': [1, 2],
              'b': StructuredTensor.from_fields(shape=[2], fields={
                  'x': [[5], [6]]})}),
      },
      {
          'unbatched': lambda: [
              StructuredTensor.from_fields(shape=[], fields={
                  'Ragged3d': ragged_factory_ops.constant_value([[1, 2], [3]]),
                  'Ragged2d': ragged_factory_ops.constant_value([1]),
              }),
              StructuredTensor.from_fields(shape=[], fields={
                  'Ragged3d': ragged_factory_ops.constant_value([[1]]),
                  'Ragged2d': ragged_factory_ops.constant_value([2, 3]),
              })],
          'batch_size': 2,
          'batched': lambda: StructuredTensor.from_fields(shape=[2], fields={
              'Ragged3d': ragged_factory_ops.constant_value(
                  [[[1, 2], [3]], [[1]]]),
              'Ragged2d': ragged_factory_ops.constant_value([[1], [2, 3]]),
          }),
          'use_only_batched_spec': True,
      },
  ])  # pyformat: disable
  def testBatchUnbatchValues(self,
                             unbatched,
                             batch_size,
                             batched,
                             use_only_batched_spec=False):
    batched = batched()  # Deferred init because it creates tensors.
    unbatched = unbatched()  # Deferred init because it creates tensors.

    def unbatch_gen():
      for i in unbatched:
        yield i

    ds = dataset_ops.Dataset.from_tensors(batched)
    ds2 = ds.unbatch()
    if context.executing_eagerly():
      v = list(ds2.batch(2))
      self.assertAllEqual(v[0], batched)

    if not use_only_batched_spec:
      unbatched_spec = type_spec.type_spec_from_value(unbatched[0])

      dsu = dataset_ops.Dataset.from_generator(
          unbatch_gen, output_signature=unbatched_spec)
      dsu2 = dsu.batch(2)
      if context.executing_eagerly():
        v = list(dsu2)
        self.assertAllEqual(v[0], batched)

  def _lambda_for_fields(self):
    return lambda: {
        'a':
            np.ones([1, 2, 3, 1]),
        'b':
            np.ones([1, 2, 3, 1, 5]),
        'c':
            ragged_factory_ops.constant(
                np.zeros([1, 2, 3, 1], dtype=np.uint8), dtype=dtypes.uint8),
        'd':
            ragged_factory_ops.constant(
                np.zeros([1, 2, 3, 1, 3]).tolist(), ragged_rank=1),
        'e':
            ragged_factory_ops.constant(
                np.zeros([1, 2, 3, 1, 2, 2]).tolist(), ragged_rank=2),
        'f':
            ragged_factory_ops.constant(
                np.zeros([1, 2, 3, 1, 3]), dtype=dtypes.float32),
        'g':
            StructuredTensor.from_pyval([[
                [  # pylint: disable=g-complex-comprehension
                    [{
                        'x': j,
                        'y': k
                    }] for k in range(3)
                ] for j in range(2)
            ]]),
        'h':
            StructuredTensor.from_pyval([[
                [  # pylint: disable=g-complex-comprehension
                    [[
                        {
                            'x': j,
                            'y': k,
                            'z': z
                        } for z in range(j)
                    ]] for k in range(3)
                ] for j in range(2)
            ]]),
    }

if __name__ == '__main__':
  googletest.main()


text:
/* Desc: A screw or primastic joint
 * Author: Nate Koenig, Andrew Howard
 * Date: 21 May 2003
 */

#include <boost/bind.hpp>

#include <string>

#include "gazebo/gazebo_config.h"
#include "gazebo/common/Console.hh"

#include "gazebo/physics/Model.hh"
#include "gazebo/physics/Link.hh"
#include "gazebo/physics/ode/ODEScrewJoint.hh"

using namespace gazebo;
using namespace physics;

//////////////////////////////////////////////////
ODEScrewJoint::ODEScrewJoint(dWorldID _worldId, BasePtr _parent)
    : ScrewJoint<ODEJoint>(_parent)
{
  this->jointId = dJointCreateScrew(_worldId, NULL);
}

//////////////////////////////////////////////////
ODEScrewJoint::~ODEScrewJoint()
{
  if (this->applyDamping)
    physics::Joint::DisconnectJointUpdate(this->applyDamping);
}

//////////////////////////////////////////////////
void ODEScrewJoint::Load(sdf::ElementPtr _sdf)
{
  ScrewJoint<ODEJoint>::Load(_sdf);
  this->SetThreadPitch(this->threadPitch);
}

//////////////////////////////////////////////////
math::Vector3 ODEScrewJoint::GetAnchor(unsigned int /*index*/) const
{
  dVector3 result;
  // initialize to 0
  result[0] = result[1] = result[2] = 0.0;

  if (this->jointId)
    dJointGetScrewAnchor(this->jointId, result);
  else
    gzerr << "ODE Joint ID is invalid, returning 0 vector.\n";

  return math::Vector3(result[0], result[1], result[2]);
}

//////////////////////////////////////////////////
void ODEScrewJoint::SetAnchor(unsigned int /*index*/,
    const math::Vector3 &_anchor)
{
  if (!this->jointId)
  {
    gzerr << "ODE Joint ID is invalid, anchor not set.\n";
    return;
  }

  if (this->childLink)
    this->childLink->SetEnabled(true);
  if (this->parentLink)
    this->parentLink->SetEnabled(true);

  if (this->jointId)
    dJointSetScrewAnchor(this->jointId, _anchor.x, _anchor.y, _anchor.z);
}

//////////////////////////////////////////////////
math::Vector3 ODEScrewJoint::GetGlobalAxis(unsigned int /*_index*/) const
{
  dVector3 result;

  if (this->jointId)
    dJointGetScrewAxis(this->jointId, result);
  else
    gzerr << "ODE Joint ID is invalid\n";

  return math::Vector3(result[0], result[1], result[2]);
}

//////////////////////////////////////////////////
void ODEScrewJoint::SetAxis(unsigned int /*_index*/, const math::Vector3 &_axis)
{
  if (this->childLink)
    this->childLink->SetEnabled(true);
  if (this->parentLink)
    this->parentLink->SetEnabled(true);

  /// ODE needs global axis
  /// \TODO: currently we assume joint axis is specified in model frame,
  /// this is incorrect, and should be corrected to be
  /// joint frame which is specified in child link frame.
  math::Vector3 globalAxis = _axis;
  if (this->parentLink)
    globalAxis =
      this->GetParent()->GetModel()->GetWorldPose().rot.RotateVector(_axis);

  if (this->jointId)
    dJointSetScrewAxis(this->jointId, globalAxis.x, globalAxis.y, globalAxis.z);
  else
    gzerr << "ODE Joint ID is invalid\n";
}

//////////////////////////////////////////////////
math::Angle ODEScrewJoint::GetAngleImpl(unsigned int _index) const
{
  math::Angle result;
  if (this->jointId)
  {
    if (_index < this->GetAngleCount())
    {
      if (_index == 0)
        result = dJointGetScrewAngle(this->jointId);
      else if (_index == 1)
        result = dJointGetScrewPosition(this->jointId);
    }
    else
    {
      gzwarn << "ODEScrewJoint::GetAngleImpl(" << _index
             << "): invalid index exceeds allowed range("
             << this->GetAngleCount() << ").\n";
    }
  }
  else
    gzerr << "ODE Joint ID is invalid\n";

  return result;
}

//////////////////////////////////////////////////
double ODEScrewJoint::GetVelocity(unsigned int _index) const
{
  double result = 0;

  if (this->jointId)
  {
    if (_index < this->GetAngleCount())
    {
      if (_index == 0)
        result = dJointGetScrewAngleRate(this->jointId);
      else if (_index == 1)
        result = dJointGetScrewPositionRate(this->jointId);
    }
    else
    {
      gzwarn << "ODEScrewJoint::GetAngleImpl(" << _index
             << "): invalid index exceeds allowed range("
             << this->GetAngleCount() << ").\n";
    }
  }
  else
    gzerr << "ODE Joint ID is invalid\n";

  return result;
}

//////////////////////////////////////////////////
void ODEScrewJoint::SetVelocity(unsigned int /*index*/, double _angle)
{
  this->SetParam(dParamVel, _angle);
}

//////////////////////////////////////////////////
void ODEScrewJoint::SetThreadPitch(unsigned int /*_index*/, double _threadPitch)
{
  if (this->jointId)
  {
    /// \TODO: create an issue on making thread pitch = translation / angle
    /// \TODO: create an issue on making thread pitch = translation / angle
    dJointSetScrewThreadPitch(this->jointId, -_threadPitch);
  }
  else
    gzerr << "ODE Joint ID is invalid\n";
}

//////////////////////////////////////////////////
void ODEScrewJoint::SetThreadPitch(double _threadPitch)
{
  if (this->jointId)
  {
    /// \TODO: create an issue on making thread pitch = translation / angle
    dJointSetScrewThreadPitch(this->jointId, -_threadPitch);
  }
  else
    gzerr << "ODE Joint ID is invalid\n";
}

//////////////////////////////////////////////////
double ODEScrewJoint::GetThreadPitch(unsigned int /*_index*/)
{
  return this->GetThreadPitch();
}

//////////////////////////////////////////////////
double ODEScrewJoint::GetThreadPitch()
{
  return this->threadPitch;
}

//////////////////////////////////////////////////
void ODEScrewJoint::SetForceImpl(unsigned int /*_index*/, double _effort)
{
  if (this->jointId)
  {
    // dJointAddScrewForce(this->jointId, _effort);
    dJointAddScrewTorque(this->jointId, _effort);
  }
  else
    gzerr << "ODE Joint ID is invalid\n";
}

//////////////////////////////////////////////////
void ODEScrewJoint::SetParam(unsigned int _parameter, double _value)
{
  ODEJoint::SetParam(_parameter, _value);

  if (this->jointId)
    dJointSetScrewParam(this->jointId, _parameter, _value);
  else
    gzerr << "ODE Joint ID is invalid\n";
}

//////////////////////////////////////////////////
double ODEScrewJoint::GetParam(unsigned int _parameter) const
{
  double result = 0;

  if (this->jointId)
    result = dJointGetScrewParam(this->jointId, _parameter);
  else
    gzerr << "ODE Joint ID is invalid\n";

  return result;
}

//////////////////////////////////////////////////
void ODEScrewJoint::SetMaxForce(unsigned int /*_index*/, double _t)
{
  this->SetParam(dParamFMax, _t);
}

//////////////////////////////////////////////////
double ODEScrewJoint::GetMaxForce(unsigned int /*_index*/)
{
  return this->GetParam(dParamFMax);
}

//////////////////////////////////////////////////
bool ODEScrewJoint::SetParam(const std::string &_key,
  unsigned int _index, const boost::any &_value)
{
  if (_key  == "thread_pitch")
  {
    try
    {
      this->threadPitch = boost::any_cast<double>(_value);
    }
    catch(const boost::bad_any_cast &e)
    {
      gzerr << "boost any_cast error:" << e.what() << "\n";
      return false;
    }
  }
  else
    return ODEJoint::SetParam(_key, _index, _value);

  return true;
}

//////////////////////////////////////////////////
double ODEScrewJoint::GetParam(const std::string &_key, unsigned int _index)
{
  if (_key  == "thread_pitch")
    return this->threadPitch;
  else
    return ODEJoint::GetParam(_key, _index);
}


When I was young, my Mom used to take my brother and me to the public pool when it opened around 10 in morning, then pick us up when it closed around 6. They had a loud boomy speaker, and as our parents arrived at closing time, our names would be yelled out one by one. We would dawdle our way to the car, preferring to stay in the water as long as possible. I can't tell you how many times I got burned, peeled, then burned again. We didn't give a damn about sun screen, SPF's, or what if. We just played.
Those were long days, broken up only by the occasional errand-day or car-trip to my grandparents' in Virginia. There, summer felt like something else. The smell of chlorine was replaced with the smell of ivy on old brick walls or the odor of freshly caught fish, slung into the boat from the waters of the Rappahannock River. The energy spent flinging myself from the high dive or cartwheeling off the low one, was spent running around with my brother, pulling our wagon over the bumps in the sidewalk where the tree roots pushed it up. Packed sandwiches and Icees gave way to my grandmothers' amazing cooking. One, classic Southern with Smithfield Hams and homemade pickles. The other, continental or Creole. She was from New Orleans. But even with the change of location, there was a certain beautiful monotony to it. That was, after all, what summer was for.
These are memories I can smell and taste and hear. I wonder, often, what memories my children will have of their summers. We have spent many summers in France, but what is beautiful for one person, isn't always for another. One man's relaxing is another man's boring. I love the long walks and bike rides, the working in the garden, the observing the tiny changes that appear in the landscape and the village from year to year. It's like a meditation. But that is me.
My Mom was a big believer in boredom. She didn't go out of her way to keep me busy. She figured it was my job to figure out how to fill my time with my head and my imagination. I remember being so bored it hurt. So listless I wanted to hurt her. (How could she let the precious minutes of my life go by like that?) I am grateful to her now.
And yet, sometimes, it is still hard to be still. Difficult not to pick up the phone or the computer to check the latest polling results. Challenging to take a deep breath and say, It's OK to be bored. It's OK to relax. It's OK not to accomplish anything right this minute.
Is this hard for you? What do you remember of your childhood summers? What did you do to fill your boredom? I wish all of you the summeriest of summers.
I think boredom is the BIG push to imagination! Its the only real push we get…once we learn how to tap into imagination we instantly understand how to get from here to WAY OUT THERE!
BRILLIANTLY put!! Thank you for saying exactly that!
I grew up at the beach and we were left to our own devices. My school free days were spent swimming in the surf, scouring the beach for treasure, climbing on rocks or just walking for hours. I am paying the price for the endless sunburn now, but I don't regret a minute.
That sounds like a blissful way to grow up.
I had to dig deep into my memories to recall my childhood summers. I was brought up in a village and I tried to stay away from adults, because they always had something for us to do. They wanted us to help and work. I loved to read and visit my aunt in the city.
That's a really interesting observation. I have one child that loves performing chores and another that gets as far away from them as possible.
You know it's funny. I've been thinking about this – what my summers were like growing up in suburban New Jersey. I don't remember much. I think it was pretty boring. We didn't go to camp or have paid-for organized activities. We had to find things to do pretty much on our own. Lots of card playing, riding bikes, reading, fighting with my sisters, swimming in friends pools when we could, a few trips to the "shore" and a two week family camping trip. Period. That's about it. Boring. Maybe that is why I'm not content to just "hang out" now 50 + years later!
I tell my kids that…or something very like it. Hmmmmm.
Summers (well late summers) were all about the blackberry picking.
If you can tell me which photo I can try to help you!
Try searching google images in Italian "antichi pastai gragnesi" "antichi pastai Gragnano" "storia pasta Gragnano" or in English "history pasta Gragnano"…I don't know how many will be in high resolution, but you will find loads. Good luck! Let me know how it goes.


text:
Celebrity Statistics
Top 20 Rapper celebrities in Canada
Here is the latest list of the world's top 20 Rapper celebrities [Updated January 27, 2023].
1. Kardinal Offishall
Kardinal Offishall was born on May 11, 1976 in Toronto, Canada.
In 2006, his album Fire and Glory gained him recognition and a Juno Award.
Net Worth 2020: $6 Million
2. Tory Lanez
Tory Lanez was born on July 27, 1992 in Canada.
3. Madchild
Madchild was born on October 21, 1975 in Surrey, Canada.
He was barred from entering the United States due to alleged ties to the Hell's Angels biker gang in 2011.
Net Worth 2020: $1 million (2015)
4. SonReal
SonReal was born on August 16, 1985 in Vernon, Canada.
Prior to his own US tour, he supported Seattle rapper Grieves on his own 53 date US tour.
Net Worth 2020: $500 Thousand
5. Tom MacDonald
Tom MacDonald was born on September 21, 1988 in Canada.
His video "Tom MacDonald - 'Dear Rappers'" has more than 400,000 views on YouTube.
6. Nav
Nav was born on November 3, 1990 in Canada.
7. Jazz Cartier
Jazz Cartier was born on March 19, 1996 in Toronto, Canada.
He began working on his mixtape Marauding in Paradise as early as 2011, but was not satisfied with it. His single "Switch" became a regular track played at Toronto Raptors games.
8. DAX
DAX was born on March 22, 1994 in Ottawa, Canada.
Hip hop artist with a huge YouTube presence of more than 2.5 million subscribers who went viral with the official music video of his song "Cash Me Outside" featuring the creator of the same phrase, Danielle Bregoli. He is also known for creating diss tracks aimed at social media stars.
While at Newman University, he worked part-time as a janitor. Additionally, he has enjoyed doing spoken-word poetry and has been a traveling motivational speaker.
9. Allan Kingdom
Allan Kingdom was born on January 6, 1994 in Canada.
Rapper who released three EPs from 2012 to 2015. He was featured in Kanye West's single "All Day."
His previous stage names include Peanut Butter Prince and The Northern Gentleman. He has also performed with the music group thestand4rd out of Minnesota.
10. Pressa
Pressa was born on May 10, 1996 in Canada.
11. Deep Jandu
Deep Jandu was born on December 21, 1990 in Toronto, Canada.
He's also integrated rap music into his songs on occasion.
12. RUSSELL!
RUSSELL! was born on October 13, 1993 in Canada.
He previously performed under the aliases Pryde and D-Pryde.
13. Buck 65
Buck 65 was born on March 4, 1972 in Canada.
Apart from his musical career, he is a well known radio personality. In 2008, he began hosting a CBC program called the Radio 2 Drive Show.
14. John River
John River was born on September 29, 1994 in Mississauga, Canada.
His YouTube channel has over 900,000 total views.
15. Don Thrilla
Don Thrilla was born on March 31, 1995 in Canada.
He has produced more melodic tracks with harmonic progressions such as "Live Life," "Better Picture" and "Do You."
16. Dave Mac
Dave Mac was born on September 18, 1989 in Canada.
He has shared a stage with hip-hop arts such as Machine Gun Kelly, Thrust, Sean Brown and Slaine.
17. D-Pryde
D-Pryde was born on October 13, 1993 in Canada.
He had guest appearances in a number of singles including Full Time Thing with Chris Miles in 2012.
18. Charron
Charron was born on June 29, 1991 in Ottawa, Canada.
Battle rapper widely recognized for facing battles against established battlers like Arsonal and Shotgun Suge. In 2013, he made a name for himself on BET's 106 & Park winning the Freestyle Friday competition.
In 2014, he released his debut album Lied to My Face to YouTube and SoundCloud.
19. Chaboki
Chaboki was born on September 23, 1994 in Toronto, Canada.
Incredibly popular on social media, he has more than 20,000 Instagram followers and over 10,000 Twitter followers.
20. Lil Jaxe
Lil Jaxe was born on March 9, 1999 in Canada.
He is the voice of Cigna Healthcare's Do You campaign.
Top 20 Rapper celebrities in the world
Top 20 Rapper celebrities in Albania
Top 20 Rapper celebrities in Angola
Top 20 Rapper celebrities in Argentina
Top 20 Rapper celebrities in Australia
Top 20 Rapper celebrities in Austria
Top 20 Rapper celebrities in Belgium
Top 20 Rapper celebrities in Brazil
Top 20 Rapper celebrities in Bulgaria
Top 20 Rapper celebrities in Chile
Top 20 Rapper celebrities in China
Top 20 Rapper celebrities in Colombia
Top 20 Rapper celebrities in Connecticut
Top 20 Rapper celebrities in Cuba
Top 20 Rapper celebrities in Czech Republic


Scripture tells us we cannot be saved in deeds of service without faith in Christ, but our faith lacks sincerity if it doesn't reach out to others, both internally and externally. God says he wants our service to go beyond our personal growth to acts of kindness, charity, justice and generosity.
At First Presbyterian, some make casseroles. Some provide transportation, repair homes, send cards or financial help. Others participate in active prayer groups. Regardless of the gifts at our disposal, each one of us is called to offer those gifts back to God by SERVING ONE ANOTHER.


Time to pull out all the spooky decorations and get ready for Halloween!
Last year, I made this really cool creepy wreath with pine cones, ping pong balls, sticks and cardboard. It turned out so great I made a point of bagging it up and saving in a safe place in the garage so I could bring it out again this year. It's definitely a favorite in our holiday decoration collection.
So I thought I'd share how I made it.
Step 1: First I spray-painted the pine cones purple. I did this outside in a box so the over-spray would stay contained. Then I spray-painted my cardboard ring to match and let everything dry for an hour or two.
Step 2: Next I attached the pinecones to the cardboard ring by wrapping them with floral wire and tying them off in the back. Fill the ring all the way around this way and make sure everything is secure.
Step 3: Then I painted my ping pong balls to look like eyeballs.
First I painted around the ping pong ball in a skin color paint (leaving the white of the eye, un-painted). Then I painted a circle in the middle of the white area a pupil color and then a black iris on top of that. I let them dry completely (at least an hour) and then outlined the detail with a black permanent marker. As you can see I wasn't super careful about my lines. I put some markings inside the iris for texture and then and an eyelid line on top and bottom and some eyelashes. Believe me, I thought I was doing a terrible job at the time but once I stepped back and looked at my work I kind of liked it!
Step 4: Now it's time to add the creepy ping pong ball eyes to your wreath. Hot glue is the easiest way to do this but if you have more time on your hands you could opt for normal white craft glue. It might be fun to add plastic spiders or even snakes too but I skipped that step because I didn't feel like making another drive to the craft store.
Then I hung it on my front door and now we wait for Halloween!
I have a feeling this will bring all the trick or treaters to our door. I think next year I'm going to make the eyeballs light up!


A couple months ago (per Lucy's request) I sewed some doll clothes for her Bitty Baby. And though they weren't as hard to do as I'd imagined (and I actually ended up having fun in the process), I can't say I was excited about a future request for more.
I could tell she was really excited about it all.
Now you must know something about my mother-in-law, Linda. She loves antiques, girly stuff, and detailed, handmade quilts. Her kitchen is always filled with fresh hydrangeas and flowers from her garden. And her house is beautifully decorated in cottage style with cool antique finds everywhere. You may think I'm going somewhere Thrifty with this, but what I mean to say is that she enjoys the beauty of the little details in her craft. But with all that girly charm…..she gave birth to 4 boys. She never had the chance to buy a doll or a girl's dress or patent leather mary janes. And while she loves her boys dearly, when the grandkids started coming and the first three were girls, you can imagine how excited she was! It was her Bitty Baby hey-day at last!
So for Christmas, she and her friend spent an entire week sewing piles of these darling, handmade doll clothes! 3 matching piles for 3 girls and their dolls. I was so impressed!
It was more like an entire wardrobe, with interchangeable outfits and the cutest little shoes.
I wasn't sure who would be more excited about opening the gift on Christmas morning….Lucy or me.
To sew the wardrobe, Linda used a couple different doll clothes patterns, bought at Joanns. She sewed simple elastic waistband pants (easy to get on and off a doll) and made soft knit shirts to go along.
The shirts have velcro closures in the back. Easy for little hands to close.
There were two sets of flower pjs.
a purple outfit with an adorable jacket (one of my favorite pieces).
The jacket has fleece fringe and sweet polka dot bias tape around the edges. Love it!
with little tiny bunny slippers (from Joanns). Aw. Cute.
And my other favorite part of the set….mini Uggs. This pair is also from Joanns because sadly, Linda did make some adorable boots but the sizing was wrong for bitty babies. Bummer! And after a week of sewing, who wants to start over on that project? Good move Linda. Good move.
Just a doll and her wardrobe.
Just a girl and her dolls, playing on Christmas morn.
Thank you, thank you, Grandma for the adorable clothes! It's been too much fun. And thank you Gram (my mom) for the Jessie and Woody dolls too. They've been driving around everywhere with us!


Welcome to Mt Glorious, a truly magic little village in the heart of some absolutely breathtaking rainforest situated in the D'Aguilar Range north west of Brisbane City. The main National Park area is Maiala that means 'quiet place' in the dialect of the original aboriginal Kamilaroi people who were the earliest know settlers to the region.
Most visitors are surprised to find the stands of native rainforest so close to Brisbane; tall trees with huge buttresses, palms and ferns as well as the ever present array of tropical birds and parrots; quite an unbelievable place!
The regular motorcyclists all know the wonder of the fantastic roadside splendor of towering rainforest trees, the accompanying mist and cooler crisp climate.
Mount Glorious is a beautiful natural hill top that offers four small cafes, some spectacular forest walks as well as several BBQ areas set in rolling parkland. Quite a remarkable destination that is only 45 minutes from the Brisbane CBD!
Once you have visited you may just want to stay a little bit longer there are some wonderful B&B's on the mountain.
You'll find it all up here in the hills behind Brisbane at Mount Glorious; a lovely twisty drive from Samford or The Gap.


text:
{{ site.hero_text }}

		 Github