Last updated: 2018-06-22
workflowr checks: (Click a bullet for more information) ✔ R Markdown file: up-to-date
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
✔ Environment: empty
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
✔ Seed:
set.seed(1)
The command set.seed(1)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
✔ Session information: recorded
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
✔ Repository version: 5afe6c0
wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Untracked files:
Untracked: output/44binary.txt.gz
Untracked: output/bmaonlybetasd5lfsr.txt.gz
Untracked: output/bmaonlybetasd5posterior.means.txt.gz
Untracked: output/independentsim.rds
Untracked: output/independentsimesd05.rds
Untracked: output/independentsiminputdata
Untracked: output/independenttest.txt
Untracked: output/indsim05sdlfsr.txt.gz
Untracked: output/indsim05sdposterior.means.txt.gz
Untracked: output/logBFTABLEapril.txt
Untracked: output/noashsharedwithzerobmaalllfsr.txt.gz
Untracked: output/noashsharedwithzerobmaallposterior.means.txt.gz
Untracked: output/sharedashcutoffomega2jun15lfsr.txt.gz
Untracked: output/sharedashcutoffomega2jun15posterior.means.txt.gz
Untracked: output/sharedtest
Untracked: output/simdata.rds
Untracked: output/univariate.ash.lfsr.txt.gz
Untracked: output/univariate.ash.pm.txt.gz
Untracked: output/univariate.ash.pmindesd.txt.gz
Untracked: output/univariate.ashind.lfsresd.txt.gz
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
| File | Version | Author | Date | Message |
|---|---|---|---|---|
| html | 3ab329f | Peter Carbonetto | 2018-06-18 | Build site. |
| Rmd | 70b3ae5 | Gao Wang | 2018-06-16 | Fix misplaced strong.s labels |
| Rmd | 6314ce0 | Gao Wang | 2018-06-16 | Relabel ‘test’ to ‘strong’ in data and code |
| html | 6eee6a9 | Peter Carbonetto | 2018-06-06 | Updated the webpages for a bunch of R Markdown files after minor revisions. |
| Rmd | 7fec23c | Peter Carbonetto | 2018-06-06 | Renamed Tspecific analysis. |
| html | ab91f2e | Peter Carbonetto | 2018-06-06 | I’ve completed a rewrite of the “tissue effective sample sizes” |
| Rmd | 3823c99 | Peter Carbonetto | 2018-06-06 | wflow_publish(“SampleSize.Rmd”) |
| html | 6f66a94 | Peter Carbonetto | 2018-06-06 | Re-built revised SampleSize page. |
| Rmd | 324f27b | Peter Carbonetto | 2018-06-06 | wflow_publish(“SampleSize.Rmd”) |
| Rmd | f6f3914 | Peter Carbonetto | 2018-06-06 | Code in SampleSize.Rmd now runs successfully; need to polish it up. |
| html | aecc7f1 | Peter Carbonetto | 2017-09-20 | Moved doc to docs. |
| Rmd | 7072cdb | Peter Carbonetto | 2017-09-20 | Reorganized many of the files. |
Different levels of effect sharing among tissues means that effect estimates in some tissues gain more precision than others from the joint analysis. Here we quantify an “effective sample size” (ESS) per tissue and compare against the actual sample sizes.
Compare the last plot, at the bottom of this page, against Supplementary Figure 1 in the manuscript.
Load some of the results generated from the mas analysis of the GTEx data, as well as summary statistics (e.g., sample sizes, standard errors) calculated from the raw GTEx data.
missing.tissues <- c(7,8,19,20,24,25,31,34,37)
out <- readRDS("../data/MatrixEQTLSumStats.Portable.Z.rds")
maxz <- out$strong.z
maxbeta <- out$strong.b
qtl.names <- sapply(1:length(rownames(maxz)),
function(x) unlist(strsplit(rownames(maxz)[x],"[_]"))[[1]])
standard.error.from.z <- as.matrix(maxbeta/maxz)
dat <- read.csv("../data/ExprSampleSize.csv.gz",header = TRUE)
rownames(dat) <- dat[,1]
expr.data <- dat[,-1]
expr.sort <- expr.data[rownames(expr.data)%in%qtl.names,]
a <- match(qtl.names,rownames(expr.sort))
expr.sort <- expr.sort[a,]
exp.sort <- expr.sort[,-missing.tissues]
colnames(exp.sort) <- colnames(maxz)
standard.error <- out$strong.s
colnames(standard.error) <- colnames(maxz)
tissue.names <- colnames(maxz)
To draw the the bar charts, we use the colours that are used by convention used to represent the GTEx tissues in plots.
gtex.colors <- read.table('../data/GTExColors.txt',sep = '\t',
comment.char = '')[-missing.tissues,2]
Load the marginal posterior variances.
out <- readRDS(paste("../output/MatrixEQTLSumStats.Portable.Z.coved.K3.P3",
"lite.single.expanded.V1.posterior.rds",sep = "."))
marginal.var <- out$marginal.var
Compute the effective sample sizes,
\[n_{jeff} = \frac{s_{j}^2}{\tilde{s_{j}^2}}\]
original.var <- as.matrix(standard.error.from.z)^2
size <- as.matrix(exp.sort)
post.var <- as.matrix(marginal.var) * standard.error.from.z^2
njeffective <- size * original.var/post.var
increase <- njeffective/size
Next, order the tissues by the actual sample size.
samplesize <- apply(size,2,unique)
sampleorder <- order(samplesize,decreasing = TRUE)
median.nj.effective <- apply(njeffective,2,median)
median.nj.increase <- apply(increase,2,median)
Plot, for each tissue, the effective sample size, and the increase in the ESS over the actual sample sample size.
par(mfrow=c(1,2))
par(mar=c(5.1,8,4.1,0.1))
barplot(median.nj.effective[sampleorder],cex.names=0.4,las=2,
col=as.character(gtex.colors[sampleorder]),horiz = TRUE)
title("Median(Nj_effective)",cex.main = 0.8)
par(mar=c(5.1,2,4.1,6))
barplot(median.nj.increase[sampleorder],cex.names=0.4,las=2,
col=as.character(gtex.colors[sampleorder]),horiz = T,names="",xlim=c(16,0))
title("Median(Nj_effective/Nj_original)",cex.main=0.8)
| Version | Author | Date |
|---|---|---|
| ab91f2e | Peter Carbonetto | 2018-06-06 |
| 6f66a94 | Peter Carbonetto | 2018-06-06 |
We see that the ESS values are smallest for tissue that show more “tissue-specific” behaviour (e.g. testis, whole blood), and are largest for coronary artery, reflecting its stronger correlation with other tissues.
Here we plot the actual sample size and median effective sample size of each tissue, in which the tissues are ordered by their original sample size.
par(mfrow = c(1,2))
par(mar = c(5.1,8,1.1,0.1))
barplot(samplesize[sampleorder],cex.names=0.4,las=2,
col=as.character(gtex.colors[sampleorder]),horiz = TRUE,
xlim = c(0,2000))
title("Sample Size",cex.main=0.8)
par(mar = c(5.1,2,1.1,6))
barplot(median.nj.effective[sampleorder],cex.names = 0.4,las = 2,
col = as.character(gtex.colors[sampleorder]),horiz = TRUE,
names = "",xlim = c(0,2000))
title("Effective Sample Size",cex.main = 0.8)
| Version | Author | Date |
|---|---|---|
| ab91f2e | Peter Carbonetto | 2018-06-06 |
| 6f66a94 | Peter Carbonetto | 2018-06-06 |
Observe that the effective sample sizes are consistently higher than actual sample sizes, primarily due to sharing of information among tissues.
sessionInfo()
# R version 3.4.3 (2017-11-30)
# Platform: x86_64-apple-darwin15.6.0 (64-bit)
# Running under: macOS High Sierra 10.13.5
#
# Matrix products: default
# BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
# LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
#
# locale:
# [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
#
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
#
# loaded via a namespace (and not attached):
# [1] workflowr_<IP_ADDRESS>00 Rcpp_0.12.17 digest_0.6.15
# [4] rprojroot_1.3-2 R.methodsS3_1.7.1 backports_1.1.2
# [7] git2r_0.21.0 magrittr_1.5 evaluate_0.10.1
# [10] stringi_1.1.7 whisker_0.3-2 R.oo_1.21.0
# [13] R.utils_2.6.0 rmarkdown_1.9 tools_3.4.3
# [16] stringr_1.3.0 yaml_2.1.18 compiler_3.4.3
# [19] htmltools_0.3.6 knitr_1.20
This reproducible R Markdown analysis was created with workflowr <IP_ADDRESS>00


Total PTO
Total Sick
Hours Worked For The Week
Total Hour Worked For The Year
Name: Peter Griffin
Company: Paul Tucket Brewery
Position: Office Admin
Supervisor: Angela
Project Worked
Finish Project
In the Works
Total Emails Sent
Bounce Rate
Total Opened
Total Ignored
| Date | Reason | Hour |
|---|---|---|
| 4.15 | Personal Time | 21 |
| 5.06 | Personal Time | 40 |
| 7.8 | Personal Time | 10 |
| 9.7 | Personal Time | 80 |
| 7.26 | Personal Time | 90 |
Visitors last 24h
Visitors last 30m
Add Events By Manually Clicking or Click "Add to Calendar" Next to Events.


AWS::DocDB::DBInstance
The AWS::DocDB::DBInstance
Amazon DocumentDB (with MongoDB compatibility) resource describes a DBInstance. For
more information, see
DBInstance in the Amazon DocumentDB Developer Guide.
Topics
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::DocDB::DBInstance", "Properties" : { "AutoMinorVersionUpgrade" :
Boolean
, "AvailabilityZone" :String
, "DBClusterIdentifier" :String
, "DBInstanceClass" :String
, "DBInstanceIdentifier" :String
, "PreferredMaintenanceWindow" :String
, "Tags" : [ Tag, ... ] } }
YAML
Type: "AWS::DocDB::DBInstance" Properties: AutoMinorVersionUpgrade:
Boolean
AvailabilityZone:String
DBClusterIdentifier:String
DBInstanceClass:String
DBInstanceIdentifier:String
PreferredMaintenanceWindow:String
Tags: - Tag
Properties
AutoMinorVersionUpgrade
-
Indicates that minor version patches are applied automatically.
Required: No
Type: Boolean
Update requires: No interruption
AvailabilityZone
-
Specifies the name of the Availability Zone the DB instance is located in.
Required: No
Type: String
Update requires: Replacement
DBClusterIdentifier
-
Specifies the DB cluster this DB instance is a member of.
Required: Yes
Type: String
Update requires: Replacement
DBInstanceClass
-
Contains the name of the compute and memory capacity class of the DB instance.
Required: Yes
Type: String
Update requires: Some interruption
DBInstanceIdentifier
-
The unique identifier for this DB instance.
Required: No
Type: String
Update requires: Replacement
PreferredMaintenanceWindow
-
Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).
Required: No
Type: String
Update requires: No interruption
Tags
-
A list of up to 50 tags. A tag is metadata assigned to an Amazon DocumentDB (with MongoDB compatibility) resource consisting of a key-value pair.
Required: No
Type: List of Resource Tag property types
Update requires: No interruption
Return Values
Ref
When you pass the logical ID of an AWS::DocDB::DBInstance
resource to the intrinsic Ref
function, the function returns the DBInstanceIdentifier, such as sample-db-instance
.
For more information about using the
Ref
function, see
Ref.
Fn::GetAtt
Fn::GetAtt
returns a value for a specified attribute of this type.
The following are the available attributes and sample return values.
Endpoint
-
The connection endpoint for the DB instance. For example:
sample-cluster.cluster-abcdefghijkl.us-east-1.docdb.amazonaws.com
. Port
-
The port number on which the database accepts connections, such as
27017
.
For more information about using
Fn::GetAtt
, see
Fn::GetAtt.
Example
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myDBInstance" : { "Type" : "AWS::DocDB::DBInstance", "Properties" : { "AutoMinorVersionUpgrade" : "true", "Availabilityzone" : "us-east-1a", "DBClusterIdentifier" : "sample-cluster", "DBInstanceClass" : "db.r4.large", "DBInstanceIdentifier" : "sample-instance", "PreferredMaintenanceWindow" : "sat:04:51-sat:05:21", "Tags" : [ {"Key" : "String", "Value" : "String"} ] } } } }
YAML
AWSTemplateFormatVersion: "2010-09-09" Resources: myDBInstance: Type: "AWS::DocDB::DBInstance" Properties: AutoMinorVersionUpgrade: true AvailabilityZone: "us-east-1a" DBClusterIdentifier: "sample-cluster" DBInstanceClass: "db.r4.large" DBInstanceIdentifier: "sample-instance" PreferredMaintenanceWindow: "sat:04:51-sat:05:21" Tags: - Key: "String" Value: "String"
See Also
For more information, see the following topics in the Amazon DocumentDB Developers Guide.


Met Eireann issue status yellow rainfall warning for five counties
by Ciara WalshThe rainfall warning will remain in place until tomorrow afternoon.
A rainfall warning has been issued for five counties in Ireland and it will stay in place until 3pm tomorrow.
Met Eireann says that there will be "thundery" downpours throughout the night, with the Status Yellow warning in place for Carlow, Kilkenny, Wexford, Wicklow and Waterford.
It came into action at 3pm today, so you might want to be careful making your way home tonight.
The weather forecaster said: "Further spells of heavy rain expected with a continued risk of thundery downpours and flooding.
"Persistent and occasionally heavy rain will move in across the eastern half of the country overnight, with a risk of thundery downpours and spot flooding.
"Staying mostly dry across the western areas, with slight frost and fog patches locally. Lowest temperatures one to five degrees. Moderate northeast winds."


In an effort to feed your hunger for stalking random, unimportant people on the internet, I compiled a comprehensive list of links about me below.
© 2013-2015 Rob Frawley 2nd


In-class exercise
Create a webpage to return the MusicBrainz ID (MBID) and country for a given user-entered artist. A MBID is a unique identifier for each music entity in the MusicBrainz database.
Steps:
- Create form to retrieve user's data
- Parse the data submitted through the form to extract the name of the artist
Remember the documentation about
the searchParams
property
for parsing the parameters of the URL.
- Determine the MusicBrainz call you have to make to retrieve artists MBIDs.
Check https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2
- Make the HTTP request call.
Remember the documentation about the XMLHttpRequest object.
You can use of the httpGet function used in the solution.
- Parse the response from the server
- Render the data in the browser
Need a 'placeholder' element for the results


Fabricio Chalub My interests are Lisp, natural language processing, computational semantics, knowledge representation, and formal semantics of computer languages. [ github | M. Sc. info ]
| [1] | Fabricio Chalub, Alexandre Rademaker, and Hermann Haeusler. What is the SUO-KIF semantics? In Book of abstracts of the 18th Brazilian Logic Conference, XVIII EBL, Pirenópolis / GO, Brazil, May 2017. |
| [2] | Fabricio Chalub, Livy Real, Alexandre Rademaker, and Valeria de Paiva. Semantic links for portuguese. In 10th Edition of its Language Resources and Evaluation Conference (LREC), Portoroz, Slovenia, May 2016. |
| [3] | Livy Real, Valeria de Paiva, Fabricio Chalub, and Alexandre Rademaker. Gentle with gentilics. In Joint Second Workshop on Language and Ontologies (LangOnto2) and Terminology and Knowledge Structures (TermiKS) (co-located with LREC 2016), Slovenia, May 2016. |
| [4] | Joakim et al. Nivre. Universal dependencies 1.4, 2016. LINDAT/CLARIN digital library at the Institute of Formal and Applied Linguistics, Charles University. http ] |
| [5] | Alexandre Rademaker, Valeria de Paiva, Fabricio Chalub, Livy Real, and Claudia Freitas. Introducing OpenWordnet-PT: a open Portuguese wordnet for reasoning. In Tiago Timponi Torrent, editor, International FrameNet Workshop part of 9th International Conference on Construction Grammar (ICCG9), Juiz de Fora, Brazil, 2016. Universidade Federal de Juiz de Fora - UFJF. |
| [6] | Ted Lawless, Alexandre Rademaker, and Fabricio Chalub. Deploying VIVO as a static site. poster at VIVO 2016, 2016. http ] |
| [7] | Valeria de Paiva, Fabricio Chalub, Livy Real, and Alexandre Rademaker. Making virtue of necessity: a verb lexicon. In PROPOR -- International Conference on the Computational Processing of Portuguese, Tomar, Portugal, 2016. |
| [8] | Alexandre Rademaker and Fabricio Chalub. Verifying integrity constraints of a rdf-based wordnet. In Global Wordnet Conference 2016, Bucharest, Romenia, January 2016. |
| [9] | Livy Real, Fabricio Chalub, Valeria de Paiva, Claudia Freitas, and Alexandre Rademaker. Seeing is correcting: curating lexical resources using social interfaces. In Proceedings of 53rd Annual Meeting of the Association for Computational Linguistics and The 7th International Joint Conference on Natural Language Processing of Asian Federation of Natural Language Processing - Fourth Workshop on Linked Data in Linguistics: Resources and Applications (LDL 2015), Beijing, China, July 2015. |
| [10] | Livy Real, Fabricio Chalub, Valeria de Paiva, Claudia Freitas, and Alexandre Rademaker. Seeing is correcting: curating lexical resources using social interfaces. ACL-IJCNLP 2015, page 20, 2015. |
Partially generated by bibtex2html 1.97.


Strictly bosses 'step up security' after stars sent chilling death threats
Bosses at the BBC have reportedly hired a number of private security companies to provide protection for those deemed at risk
by Louise Randell, https://www.mirror.co.uk/authors/louise-randell/Strictly Come Dancing bosses have reportedly stepped up security after a number of stars were sent chilling death threats.
Bosses at the BBC are said to have brought in a number of private security companies to provide protection for the celebrities, dancers and judges.
According to The Sun Online , action was taken to offer round-the-clock security to anyone taking part that thinks they might be at risk.
It comes after contestant Mike Bushell told the Mirror exclusively that he'd been sent a death threat warning him to quit the dance competition or be a "dead man".
Head judge Shirley has also been sent worrying messages which have left others concerned for her safety.
The worst of the trolling after she made the unpopular decision to send Corrie star Catherine Tyldesley home from the competition.
Strictly bosses have faced threats before but they are believed to be particularly worried about the upcoming shows in Blackpool.
Pro dancer Gorka Marquez was attacked in the town during the Strictly run there in 2016.
Fellow pro AJ Pritchard was also beaten up in a vicious attack in a nightclub last year.
Speaking about the threats he's faced, Mike told the Mirror exclusively that he couldn't understand why anyone would do that.
He told us: "It said that unless I withdraw from the competition now I'm a dead man.
"It was personal and I thought WTF. There are bigger things in the world to worry about.
"I get that people have their own favourite dancers but it's an entertainment show at the end of the day and to get a death threat is ridiculous."
Mike's dancer partner Katya Jones has also been targeted and she quit social media after being bombarded with abuse from vicious trolls.
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033


OpenSearch provides you with rich features at the very cheap price
A site search could be setup within 5 minutes using OpenSearch. For more details, check Getting Started .
Using latest open source technologies and cloud based scaling, OpenSearch provides you blazing fast responses for your site search requirements.


Allows user to setup groups hierarchy, simulators, dashboards and smart rules in a tenant and simulate both normal and error conditions.


Our Company
We are part of you
DCPL is dedicated to supplying our customers only the highest quality materials, using the most current technology, at a fair market price. Our support, service, and technical assistance are unmatched in the paint and coatings manufacturing industry – far surpassing the industry standards. As your partner in business, we will never be satisfied in our pursuit to improve our value, continually striving to provide you the highest value in paint and coatings achievable.
Here’s what you get when you partner with DCPL:
A highly skilled staff of technical experts with more than 20 years experience in the coating industry Centrally located manufacturing facility able to provide products and services across the entire INDIA Technicians who specialize in EPOXY, PU & UV and solvent-reducible air-dry and bake coatings Generous stock-ahead policy that ensures prompt shipment to any location A family owned and operated company, not an impersonal corporate conglomerate.Family-Owned Means Personalized Service
As a family owned company, Deco coat Pvt Ltd. thrives on establishing strong personal relationships with our customers. When you call DCPL , you will hear a friendly voice on the other end of the phone, not some robotic operating system or answering service. We take the time to learn your product requirements, stock those products in advance of your needs, and typically ship our stock products the same day or next day to keep your operation running with no delays. Our staff is always available to address your problems and answer your questions.If you want friendly, personal service and high-quality products at reasonable prices, then you want to partner with DCPL.
Our Brands
Here is a list of our brand products


Amstel Aiding Ale
Home
About
Our Story
The Team
Careers
Products
Promotion
Advertisements
Contact
Purchase
PROMOTION


GCanvas start since 2013 in alibaba. At that time, canvas animation running on a mobile app was really a nightmare(at least in most cases). A few severe problems prevented developers utilizing the canvas in a wide way:
- slow performance
- bad compatibility(especially on Android)
- lack of completeness of canvas APIs
To solve the problems mentioned above, we decided to write a cross-platform solutions and provide APIs in JavaScript fully aligned with HTML5 canvas APIs. To ensure the performance, C++ with OpenGL ES appears to be the only way.
Time has passed, powerful mobile hybrid frameworks such as ReactNative/Weex have become popular, but Canvas/WebGL has been scarcely implemented on these frameworks. So we have GCanvas integrated into the most popular framework to provide high performance canvas APIs.
Contributors: 腾渊 兵长 芒格 许凡 米悠 济宇 星宝 宬豪 二同 韦青 胡帅 叶斋 寒泉
Great appreciate all GCanvas contributors.
Active maintainers:
|
@ertong |
@jwxbond |
@sylonhu |
@xieguanglei |
@wintercn |


Overview
It is always important to learn how to invest your money properly so that you do not need to worry about money after retirement.
Starting from this blog post, I am going to share how I used python to set up my own investment plan.
I will try to cover a few topics like:
- how to visualize the long term investment plan
- backtest dollar-cost averaging strategy for long-term investment
- backtest value averaging strategy for long-term investment
- compare different investment strategies for short-term investment
The jupyter notebooks can be downloaded here.
Disclaimer
Investing money into anything is often involved with risk. Please do your own research before investing and be responsible for your own investment decisions.
I am just learning investment on my own and want to share some codes that I have written that might be useful for others.
The content here is only for informational purpose (instead of taking them as professional investment advice).
Introduction
This blogpost contains a function that helps you visualize your long term investment plan.
Step 1: Calculate how much savings do you have for now and estimate how much you can save per year
Step 2: Think about how much money do you need after retirement
-
3,000 Euro/Month –> 36,000 Euro/Year
-
Assuming we can have 5% interest rate per year, then we need to accumulate at least 720,000 Euro before retirement (36,000/0.05 = 720,000)
-
Please also note that, assuming the inflation rate of 3% per year, the buying power of 3000 Euro in 2050 might only worth 1235 Euro in 2020. Please adjust the inflation rate by yourself when estimating how much money do you need after retirement
Step 3: Estmiate (roughly) how much money do you need to invest per year and calculate it’s long term return
Define functions
# Import libraries
from matplotlib import pyplot as plt
import pandas as pd
plt.style.use('bmh')
def calc_return_over_periods(initial_investment: int, investment_per_period: int,
return_per_period: float, n_period: int,
increase_investment_per_period: float = 0.00,
invest_at_period_begin: bool = True) -> pd.DataFrame:
"""
This function calculates the overall rate of return across n periods given a certain return rate pre period
:param initial_investment: Amount of initial investment
:param investment_per_period: Amount of investment per period
:param return_per_period: Assumed rate of return per period
:param n_period: Total number of periods
:param increase_investment_per_period: Increase the amount of investment by x for each period after the first investment period
:param invest_at_period_begin: whether to invest at the begining of each period or not
:return: dataframe contains the rate of return for n periods.
"""
df_result = pd.DataFrame()
for i in range(n_period):
if i == 0:
if invest_at_period_begin:
period_begin_investment = initial_investment + investment_per_period
if not invest_at_period_begin:
period_begin_investment = initial_investment
df_result.loc[i, 'period_begin_investment'] = period_begin_investment
df_result.loc[i, 'total_investment'] = period_begin_investment
value = period_begin_investment * (1 + return_per_period)
df_result.loc[i, 'value_by_next_period'] = value
else:
if invest_at_period_begin:
period_begin_investment = investment_per_period * ((1 + increase_investment_per_period) ** i)
if not invest_at_period_begin:
period_begin_investment = investment_per_period * ((1 + increase_investment_per_period) ** (i - 1))
value += period_begin_investment
df_result.loc[i, 'period_begin_investment'] = period_begin_investment
df_result.loc[i, 'total_investment'] = (df_result.loc[i - 1, 'total_investment'] +
df_result.loc[i, 'period_begin_investment'])
value = value * (1 + return_per_period)
df_result.loc[i, 'value_by_next_period'] = value
df_result['return_by_next_period'] = df_result['value_by_next_period'] / df_result['total_investment'] - 1
return df_result.round(2)
def plot_changes(df: pd.DataFrame,
y1: str = 'total_investment', y2: str = 'value_by_next_period',
xlabel: str = 'period', ylabel: str = 'value',
title: str = 'Visualize your saving plan and its future value',
target: int = None) -> None:
"""
This function visualizes the total investment and the total value of the investment plan across time
:param df: A dataframe contains total investment and total value
:param y1: Column name
:param y2: Column name
:param xlabel: X label
:param ylabel: Y label
:param title: Title of the graph
:param target: Final value one wants to achieve
:return: A plot
"""
plt.figure(figsize=(15, 5))
plt.plot(df[y1], label=y1)
plt.plot(df[y2], label=y2)
if target:
plt.axhline(y=target, c='black', label='target value')
plt.xlim([0, len(df[y1])-1])
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.title(title)
plt.legend()
plt.show()
Case 1
Imagine that you are around 30 years old and have some savings (e.g., 20k Euro), and you are determined to invest 10000 Euro each year in order to have enough money for your retirement.
If you invest your savings into a ETF (e.g., SP500), you are likely to get about 5% annual return on average.
If everything works well, you want to retire around 60, so about 30 years to go!
Let’s use the function above to check if we can have enough money saved for retirement in this case.
# Each period is a year
# Assuming investing 20000 Euro initially
initial_investment = 20000
# Assuming investing 10000 Euro in the begining of each year
investment_per_period = 10000
# Assuming the average investment return rate is about 5%
return_per_period = 0.05
# Assuming the plan lasts for 30 years
n_period = 30
df_plan1 = calc_return_over_periods(initial_investment, investment_per_period,
return_per_period, n_period)
df_plan1
| period_begin_investment | total_investment | value_by_next_period | return_by_next_period | |
|---|---|---|---|---|
| 0 | 30000.0 | 30000.0 | 31500.00 | 0.05 |
| 1 | 10000.0 | 40000.0 | 43575.00 | 0.09 |
| 2 | 10000.0 | 50000.0 | 56253.75 | 0.13 |
| 3 | 10000.0 | 60000.0 | 69566.44 | 0.16 |
| 4 | 10000.0 | 70000.0 | 83544.76 | 0.19 |
| 5 | 10000.0 | 80000.0 | 98222.00 | 0.23 |
| 6 | 10000.0 | 90000.0 | 113633.10 | 0.26 |
| 7 | 10000.0 | 100000.0 | 129814.75 | 0.30 |
| 8 | 10000.0 | 110000.0 | 146805.49 | 0.33 |
| 9 | 10000.0 | 120000.0 | 164645.76 | 0.37 |
| 10 | 10000.0 | 130000.0 | 183378.05 | 0.41 |
| 11 | 10000.0 | 140000.0 | 203046.95 | 0.45 |
| 12 | 10000.0 | 150000.0 | 223699.30 | 0.49 |
| 13 | 10000.0 | 160000.0 | 245384.27 | 0.53 |
| 14 | 10000.0 | 170000.0 | 268153.48 | 0.58 |
| 15 | 10000.0 | 180000.0 | 292061.16 | 0.62 |
| 16 | 10000.0 | 190000.0 | 317164.21 | 0.67 |
| 17 | 10000.0 | 200000.0 | 343522.42 | 0.72 |
| 18 | 10000.0 | 210000.0 | 371198.54 | 0.77 |
| 19 | 10000.0 | 220000.0 | 400258.47 | 0.82 |
| 20 | 10000.0 | 230000.0 | 430771.40 | 0.87 |
| 21 | 10000.0 | 240000.0 | 462809.97 | 0.93 |
| 22 | 10000.0 | 250000.0 | 496450.46 | 0.99 |
| 23 | 10000.0 | 260000.0 | 531772.99 | 1.05 |
| 24 | 10000.0 | 270000.0 | 568861.64 | 1.11 |
| 25 | 10000.0 | 280000.0 | 607804.72 | 1.17 |
| 26 | 10000.0 | 290000.0 | 648694.95 | 1.24 |
| 27 | 10000.0 | 300000.0 | 691629.70 | 1.31 |
| 28 | 10000.0 | 310000.0 | 736711.19 | 1.38 |
| 29 | 10000.0 | 320000.0 | 784046.75 | 1.45 |
target_value = 720000
plot_changes(df_plan1, title='Case 1', target = target_value, xlabel='year')
Conguraturations! It seems that if you just stick to this plan, you will have enough money for your retirement.
Case 2
Due to inflation and the increase of your salary, you might decided to save 2% more each year, let’s check how that is going to change the final value
# Each period is a year
# Assuming investing 20000 Euro initially
initial_investment = 20000
# Assuming investing 10000 Euro in the begining of each year
investment_per_period = 10000
# Assuming the average investment return rate is about 5%
return_per_period = 0.05
# Assuming the plan lasts for 30 years
n_period = 30
# Assuming increase the amount of investment each year by 2%
increase_investment_per_period = 0.02
df_plan2 = calc_return_over_periods(initial_investment, investment_per_period,
return_per_period, n_period,
increase_investment_per_period)
df_plan2
| period_begin_investment | total_investment | value_by_next_period | return_by_next_period | |
|---|---|---|---|---|
| 0 | 30000.00 | 30000.00 | 31500.00 | 0.05 |
| 1 | 10200.00 | 40200.00 | 43785.00 | 0.09 |
| 2 | 10404.00 | 50604.00 | 56898.45 | 0.12 |
| 3 | 10612.08 | 61216.08 | 70886.06 | 0.16 |
| 4 | 10824.32 | 72040.40 | 85795.90 | 0.19 |
| 5 | 11040.81 | 83081.21 | 101678.54 | 0.22 |
| 6 | 11261.62 | 94342.83 | 118587.17 | 0.26 |
| 7 | 11486.86 | 105829.69 | 136577.73 | 0.29 |
| 8 | 11716.59 | 117546.28 | 155709.04 | 0.32 |
| 9 | 11950.93 | 129497.21 | 176042.96 | 0.36 |
| 10 | 12189.94 | 141687.15 | 197644.55 | 0.39 |
| 11 | 12433.74 | 154120.90 | 220582.21 | 0.43 |
| 12 | 12682.42 | 166803.32 | 244927.86 | 0.47 |
| 13 | 12936.07 | 179739.38 | 270757.12 | 0.51 |
| 14 | 13194.79 | 192934.17 | 298149.51 | 0.55 |
| 15 | 13458.68 | 206392.85 | 327188.60 | 0.59 |
| 16 | 13727.86 | 220120.71 | 357962.28 | 0.63 |
| 17 | 14002.41 | 234123.12 | 390562.93 | 0.67 |
| 18 | 14282.46 | 248405.59 | 425087.66 | 0.71 |
| 19 | 14568.11 | 262973.70 | 461638.56 | 0.76 |
| 20 | 14859.47 | 277833.17 | 500322.94 | 0.80 |
| 21 | 15156.66 | 292989.84 | 541253.58 | 0.85 |
| 22 | 15459.80 | 308449.63 | 584549.05 | 0.90 |
| 23 | 15768.99 | 324218.62 | 630333.94 | 0.94 |
| 24 | 16084.37 | 340303.00 | 678739.23 | 0.99 |
| 25 | 16406.06 | 356709.06 | 729902.55 | 1.05 |
| 26 | 16734.18 | 373443.24 | 783968.57 | 1.10 |
| 27 | 17068.86 | 390512.10 | 841089.31 | 1.15 |
| 28 | 17410.24 | 407922.35 | 901424.53 | 1.21 |
| 29 | 17758.45 | 425680.79 | 965142.12 | 1.27 |
plot_changes(df_plan2, title='Case 2', target=target_value, xlabel='year')
It seems that it only takes about 26 years instead of the 30 years in order to have enough savings for retirement. However, the return rate was reduced a bit due to the investment of more money at the later stage of this plan.
Case 3
Let’s imagine that you are at your early 20s and just got your first job recently and do not have any savings for now.
From next month on, you will be able to save 500 each month.
# Each period is a month
# No initial investment
initial_investment = 0
# Invest 500 Euro at the end of each month
investment_per_period = 500
# Assuming the average investment return rate is about 5% per year
return_per_year = 0.05
return_per_period = (return_per_year + 1)**(1/12) - 1
# Assuming the plan lasts for 40 years
n_years = 40
n_period = n_years*12
df_plan3 = calc_return_over_periods(initial_investment, investment_per_period,
return_per_period, n_period,
invest_at_period_begin=False)
df_plan3
| period_begin_investment | total_investment | value_by_next_period | return_by_next_period | |
|---|---|---|---|---|
| 0 | 0.0 | 0.0 | 0.00 | NaN |
| 1 | 500.0 | 500.0 | 502.04 | 0.00 |
| 2 | 500.0 | 1000.0 | 1006.12 | 0.01 |
| 3 | 500.0 | 1500.0 | 1512.26 | 0.01 |
| 4 | 500.0 | 2000.0 | 2020.45 | 0.01 |
| ... | ... | ... | ... | ... |
| 475 | 500.0 | 237500.0 | 726824.57 | 2.06 |
| 476 | 500.0 | 238000.0 | 730287.78 | 2.07 |
| 477 | 500.0 | 238500.0 | 733765.10 | 2.08 |
| 478 | 500.0 | 239000.0 | 737256.59 | 2.08 |
| 479 | 500.0 | 239500.0 | 740762.30 | 2.09 |
plot_changes(df_plan3, title='Case 3', target=target_value, xlabel='month')
Even with little amount of savings, you can still have enough money for your retirement by 60.
Conclusion
We can observe that, in Case 3, the rate of return looks way better than Case 1 and and Case 2. So start investing earlier is always a good idea!
Hope this post is useful for you to set up a long term investment plan :)
Starting from the next post, we are going to do some backtesting using the total return index of SP500.


◆ FlatForward
| virtual Vector3 MoveToCode.TransformManager.FlatForward |
|
get |
◆ Forward
| abstract Vector3 MoveToCode.TransformManager.Forward |
|
get |
◆ GroundPosition
| virtual Vector3 MoveToCode.TransformManager.GroundPosition |
|
get |
◆ GroundYCord
| virtual float MoveToCode.TransformManager.GroundYCord |
|
getset |
◆ Left
| virtual Vector3 MoveToCode.TransformManager.Left |
|
get |
◆ OriginT
| Transform MoveToCode.TransformManager.OriginT |
|
get |
◆ Position
| abstract Vector3 MoveToCode.TransformManager.Position |
|
getset |
◆ Rotation
| abstract Quaternion MoveToCode.TransformManager.Rotation |
|
getset |
◆ TwoDForward
| virtual Vector2 MoveToCode.TransformManager.TwoDForward |
|
get |
◆ TwoDPosition
| virtual Vector2 MoveToCode.TransformManager.TwoDPosition |
|
get |
◆ Up
| virtual Vector3 MoveToCode.TransformManager.Up |
|
get |
The documentation for this class was generated from the following file:


NELL A film review by Michael John Legeros Copyright 1995 Michael John Legeros
Directed by Michael Apted Written by William Nicholson and Mark Handey, from a play by Mark Handey Cast Jodie Foster, Liam Neeson, Natasha Richardson, Richard Libertini MPAA Rating "PG-13" Running Time Approximately 110 minutes Reviewed at Colonial Park Mall, Harrisburg PA (25DEC)
==
Nothing in the first hour of NELL effectively explains what's going on. Sure, we're spoon fed the basics: Appalachian doctor Jerome Lovell (Liam Neeson) is called by the sheriff to a backwoods cabin, the home of a recluse who was thought to have lived alone. She was a stroke victim who had very little contact with the outside world. She also had a daughter that no one knew about--a young woman named Nell (Jodie Foster) who has never known contact with strangers.
They call Nell a "wild child" and immediately consult a psychologist (Natasha Richardson) in Charlotte. She wants Nell in a hospital, Jerry wants Nell to be left alone, and there you go. What does *Nell* want? Why is Jerry interested in her? Why does Richardson talk like she had Reba McEntire as a dialect coach? The script never answers these questions.
 Said child was borne as the result of a rape and so Mom painted a very cruel portrait of the outside world. Mom also suffered multiple strokes and her aphasia affected how the child was taught to speak. (Mom's accent didn't help much either, y'all.)
The scenes for such a story should write themselves. Sheriff discovers cabin. Doctor discovers Nell. Nell discovers civilization. Civilization discovers Nell. Those scenes exist, but they're pieced together in a routine, ambiguous fashion that never explains much of anything. We get plenty of moonlit shots of Nell communing with nature, for example. She dances under the stars and goes swimming buck-naked. It's a very showy performance from Foster that says very little.
Nell speaks through slow, swaying motions, appearing drunk in almost every scene. Why is she acting intoxicated?  We've seen her intelligent stares; we know she's smart. The movie needs *less* of her silly swaying and *more* of the characters who are paying attention to her.
Director Michael Apted includes a number of images from inside Nell's mind, which he overuses. How about some scientific mumbo jumbo, instead?
The film achieves satisfying closure, when Nell gives a courtroom speech that lets her say all the things that she should've said before. Of course, if she had spoken too soon, she would've ruined the suspense. Will the bad doctors study her like a specimen? Will the good doctors fall in love and protect her? Duh, what do you think?

Grade: C-
-- Michael J. Legeros Raleigh, North Carolina
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


- Journal List
- Br J Clin Pharmacol
- v.61(1); 2006 Jan
- PMC1884989
Effects of cytochrome P450 3A modulators ketoconazole and carbamazepine on quetiapine pharmacokinetics
Abstract
Aims
To explore the potential for drug interactions on quetiapine pharmacokinetics using in vitro and in vivo assessments.
Methods
The CYP enzymes responsible for quetiapine metabolite formation were assessed using recombinant expressed CYPs and CYP-selective inhibitors. P-glycoprotein (Pgp) transport was tested in MDCK cells expressing the human MDR1 gene. The effects of CYP3A4 inhibition were evaluated clinically in 12 healthy volunteers that received 25 mg quetiapine before and after 4 days of treatment with ketoconazole 200 mg daily. To assess CYP3A4 induction in vivo, 18 patients with psychiatric disorders were titrated to steady-state quetiapine levels (300 mg twice daily), then titrated to 600 mg daily carbamazepine for 2 weeks.
Results
CYP3A4 was found to be responsible for formation of quetiapine sulfoxide and N- and O-desalkylquetiapine and not a Pgp substrate. In the clinical studies, ketoconazole increased mean quetiapine plasma Cmax by 3.35-fold, from 45 to 150 ng ml−1 (mean Cmax ratio 90% CI 2.51, 4.47) and decreased its clearance (Cl/F) by 84%, from 138 to 22 l h−1 (mean ratio 90% CI 0.13, 0.20). Carbamazepine decreased quetiapine plasma Cmax by 80%, from 1042 to 205 ng ml−1 (mean Cmax ratio 90% CI 0.14, 0.28) and increased its clearance 7.5-fold, from 65 to 483 l h−1 (mean ratio 90% CI 6.04, 9.28).
Conclusions
Cytochrome P450 3A4 is a primary enzyme responsible for the metabolic clearance of quetiapine. Quetiapine pharmacokinetics were affected by concomitant administration of ketoconazole and carbamazepine, and therefore other drugs and ingested natural products that strongly modulate the activity or expression of CYP3A4 would be predicted to change exposure to quetiapine.
Introduction
Quetiapine fumarate, a dibenzothiazepine psychotropic, is extensively metabolized in vivo via sulfoxidation, considered the major metabolic pathway, as well as oxidation to carboxylic acid, hydroxylation, and dealkylation (Figure 1) [1–3]. Quetiapine is often used in combination with other drugs; thus, an understanding of its potential for clinically significant drug–drug interactions is essential to successful therapy [4–7].
A combination of commonly used in vitro approaches, including metabolism by recombinant human cytochrome P450 (CYP) and enzyme selective inhibitors in human liver microsomes [8, 9], enabled identification of the CYP enzymes that catalyse the formation of the primary circulating metabolites of quetiapine. Based on these in vitro results, we assessed the effects of ketoconazole, a strong CYP3A4 inhibitor, and carbamazepine, a strong CYP3A4 inducer, on the pharmacokinetics of quetiapine in healthy men and psychiatric patients, respectively.
Methods
In vitro studies of quetiapine metabolism
Materials
Unlabelled and 14C-labelled quetiapine (specific activity 52.1 Ci mg−1), all unlabelled quetiapine metabolites, dehydronifedipine and dextrorphan were synthesized by Zeneca Pharmaceuticals (now AstraZeneca Pharmaceuticals LP, Macclesfield, UK, and Wilmington, DE, USA). Phenacetin, acetaminophen, ketoconazole and nifedipine used in vitro were reference standards obtained from the US Pharmacopeial Convention, Inc. (Rockville, MD, USA). S-mephenytoin, 4-hydroxymephenytoin, hydroxytolbutamide, sulfaphenazole and furafylline were obtained from Ultrafine Ltd (Manchester, UK). Diethyldithiocarbamate (DDC) was purchased from Aldrich Chemical Company, Inc. (Milwaukee, WI, USA). Tolbutamide, chlorpropamide, quinidine, nicotinamide adenine dinucleotide phosphate (NADPH) and all other reagents were purchased from Sigma Chemical Co. (St Louis, MO, USA) or other standard sources. Fresh or snap-frozen human liver tissues were obtained from the International Institute for the Advancement of Medicine (Jessup, PA, USA).
Liver microsomes were prepared by three-step differential centrifugation, as described previously [10], and stored at −70 °C. Microsomal protein content was assayed using bicinchoninic acid reagent (Pierce Chemical Co., Rockford, IL, USA) with bovine serum albumin as the protein standard. Microsomes were pooled from several individual donors by combining an equivalent amount of microsomal protein from each sample. The complementary deoxyribonucleic acid-derived expressed human CYP isoforms were obtained from Gentest Corporation (Woburn, MA, USA).
Identification and kinetics of quetiapine metabolites formed by human liver microsomes
For in vitro identification of quetiapine metabolites, human liver microsomes (1 mg protein ml−1) were incubated for 60 min at 37 °C with 50 µm14C-quetiapine in 2.0 ml of assay buffer [50 m m N-[2-hydroxyethyl]piperazine N-[2-ethanesulphonic acid] (HEPES), pH 7.6, containing 5 m m MgCl2 and 1 m m NADPH].
Parent compound and metabolites were extracted with ethyl acetate after making the incubation mixture basic with NH4OH. The organic layer was isolated and evaporated under nitrogen. The extracted metabolites were redissolved in the high-pressure liquid chromatography (HPLC) mobile phase (see below) and subjected to liquid chromatography with mass spectrometric detection. All in vitro extracts (50 µl) were separated using a Zorbax SB-C8 4.6 × 25 mm column and a precolumn with the same packing. The HPLC mobile phase consisted of 0.1% aqueous trifluoroacetic acid (adjusted to pH 3.0 with NH4OH) and 100% acetonitrile, with gradient elution between 80 : 20 (v/v) and 65 : 35 (v/v) at 1.5 ml min−1 over 30 min. Authentic metabolite standards were analysed under the same conditions.
The kinetics of quetiapine metabolite formation were similarly evaluated. Duplicate samples of pooled microsomes (1 mg protein ml−1) were incubated for 20 min at 37 °C with 14C-quetiapine (5–100 µm) in 0.25 ml of the same assay buffer. After incubation, the reaction was terminated by precipitation of the microsomal protein by addition of acetonitrile. Quetiapine metabolites formed in the mixture were separated by gradient reverse-phase HPLC (described above) and monitored using both solid-phase radiochemical and ultraviolet-photodiode array detection. Peak areas of each metabolite in the chromatograms were plotted against the initial concentration of quetiapine in the incubations. Enzyme kinetic parameters for formation of each quetiapine metabolite were calculated by using nonlinear regression (PCNonlin; SCI Software, Lexington, KY, USA).
Effect of specific CYP inhibitors on quetiapine metabolism in human liver microsomes
Quetiapine (15 µm) was coincubated with selective CYP inhibitors at 37 °C with human liver microsomes (1 mg protein ml−1) in assay buffer as described. A concentration of 15 µm of quetiapine was used in these experiments because it was well below the apparentKm values for metabolite formation in human liver microsomes but allowed for analytical detection of the metabolites formed, even though this concentration is approximately sevenfold greater than the steady-state plasma maximal drug concentration (Cmax) following a clinically used 300-mg twice-daily dose [11].
The CYP inhibitors included furafylline, sulfaphenazole, quinidine, DDC and ketoconazole, which selectively inhibit CYP1A2, CYP2C9, CYP2D6, CYP2E1 and CYP3A4, respectively. The amount of quetiapine metabolites formed in the presence of these specific inhibitors was compared with a control sample containing only quetiapine, microsomes, other reaction cofactors, and solvent vehicle assay buffer (no inhibitor).
Quetiapine metabolism by heterologously expressed human CYP enzymes
Quetiapine (15 µm) was incubated for 1 h at 37 °C in assay buffer (as described above) containing microsomal fractions isolated from human lymphoblastoid cell lines expressing CYP1A2, CYP2C9, CYP2C19, CYP2D6 and CYP3A4. Exogenous CYP reductase (0.5 U ml−1) was added to incubations containing CYP1A2 and CYP2C19 because reductase was not coexpressed with CYP in these cell lines. Control samples were prepared by coincubating quetiapine with vector-transfected microsomal fractions lacking expressed CYP protein.
Transport of quetiapine across MDR-1-MDCK cell monolayers
Madin-Darby canine kidney cells transfected with human multidrug resistance gene (MDR-1-MDCK cells) were obtained from the Netherlands Cancer Institute (Amsterdam, the Netherlands) and cultured in DMEM supplemented with 10% fetal bovine serum. Directional [basolateral to apical (B–A) and apical to basolateral (A–B)] assays were conducted 3 days after seeding MDR-1-MDCK cells onto polycarbonate Transwell membranes at a density of 1.5 × 106 cm−2. Transport assays were conducted with 1 µm quetiapine or the known P-glycoprotein (Pgp) substrate loperamide at 37 °C for 60 min. After incubation, samples from both the donor and receiver chambers were analysed for quetiapine or loperamide concentration using LC/MS/MS.
Clinical studies of the effects of ketoconazole and carbamazepine on quetiapine pharmacokinetics
Two clinical studies were conducted to assess the effects of coadministration of drugs that strongly induce or inhibit CYP3A4 on quetiapine pharmacokinetics. In study 1, the effects of the CYP3A4 inhibitor ketoconazole were examined in healthy volunteers. In study 2, the effects of the CYP3A4 inducer carbamazepine were examined in patients. The patients were diagnosed by their treating physician based on Diagnostic and Statistical Manual of Mental Disorders, 4th edition, Text Revision (DSM-IV-TR) criteria [12]. In both studies, pharmacokinetic parameters obtained when quetiapine was used alone were compared with those obtained after coadministration with ketoconazole or carbamazepine.
Study participants
Healthy male volunteers aged 24–42 years were enrolled in study 1. Exclusion criteria included a positive test for hepatitis B surface antigen or human immunodeficiency virus (HIV) antibody; abnormalities in baseline laboratory values or electrocardiographic findings; presence of an acute nonpsychiatric illness within 2 weeks before enrolment; and use of drugs that affect the CYP enzyme system within 6 weeks before study initiation. Study participants were asked to limit their caffeine intake and refrain from making major changes in their dietary habits throughout the study. Use of prescription and nonprescription medications was prohibited unless deemed appropriate by the investigator.
Patients in study 2 were men and women aged 29–63 years; met DSM-IV-TR criteria [12] for schizophrenia, schizoaffective disorder, or bipolar disorder; and were in remission from an acute exacerbation of their disorder for at least 3 months. All patients had been treated with antipsychotic medications during the year before enrolment and were in remission without psychotic symptoms at time of enrolment into the study. Some subjects had adverse events on their previous medications, and because of the lower incidence of dystonic movements on quetiapine, were considered to be eligible and good candidates to be switched to quetiapine. The subjects were withdrawn from any previous medication and started on quetiapine within 4 days of their last dose of previous antischizophrenic treatment, and were titrated to a high dose of quetiapine (300 mg twice per day). The high dose ensured that even with the enzyme induction secondary to carbamazepine, the subjects would be receiving effective exposures to quetiapine. The subjects all were inpatients during the study and were closely observed so that if there was any sign of relapse of the acute psychotic state, the carbamazepine would be terminated and the subject aggressively treated. During the study none of the subjects had an acute relapse of their psychosis (see clinical effect in the Results section).
Patients taking lithium for schizoaffective disorder or bipolar disorder were allowed to continue doing so if their dose had been stable for at least 1 month before enrollment. All other antipsychotic, psychotropic or mood-stabilizing medications except lithium were discontinued at enrolment. Only oral chloral hydrate and benztropine mesylate were permitted to treat agitation, insomnia or extrapyramidal symptoms. Acetaminophen was the only analgesic allowed throughout the study. Women of childbearing age were allowed to participate only if they were not pregnant and were using a reliable nonhormonal method of contraception. Exclusions included a DSM-IV-TR Axis I disorder other than schizophrenia, schizoaffective disorder, or bipolar disorder; a positive test for hepatitis B surface antigen or HIV antibody; presence of an acute nonpsychiatric illness during the 2 weeks before study entry; use of clozapine within 2 months of enrolment; or use of CYP inducers or inhibitors within 6 weeks of enrolment.
The study in healthy volunteers was conducted at Christiana Care Research Institute in Newark, Delaware and was approved by the Institutional Review Board of Christiana Care Health Services. The patient study was conducted at two sites: Cincinnati VA Hospital and BHC Alhambra Hospital, Rosemead, California. The University of Cincinnati Medical Center Institutional Review Board and the Western Institutional Review Board approved the study, and the study protocol adhered to the ethical guidelines of the Declaration of Helsinki. Each subject gave informed consent. At the time of enrollment into the study, all of the patients were in remission, without active psychotic behaviour and were judged by the investigator to be capable of giving informed consent.
Study design
Study 1 was an 8-day, open-label, crossover trial in volunteers who resided at the clinical research centre during the study. After an 8-h fast, study participants were given a single oral dose of quetiapine (25 mg) at 08.00 h on days 1 and 6. Single oral doses of ketoconazole (200 mg day−1) were administered at 06.00 h from day 3 through day 6. Ketoconazole was taken at least 1 h before or 2 h after meals (quetiapine was administered after fasting), with a 2-h interval between the doses of ketoconazole and quetiapine on day 6.
Study 2 was a 36-day, open-label, multicentre, multiple-dose, pharmacokinetic study. Quetiapine was initiated at 25 mg twice daily on day 1 and increased to 300 mg twice daily by day 5. Patients remained on this dose through day 33 and then discontinued treatment after a final 300-mg dose given on the morning of day 34. Carbamazepine was initiated with a 200-mg dose on the evening of day 9, continued at 200 mg twice daily on days 10 through 12, and increased to 200 mg three times daily on days 13 through 33, ending after a final 200-mg dose on the morning of day 34. To attain a reliable determination of steady-state trough plasma concentrations of quetiapine both before and after the addition of carbamazepine, efforts were made to maintain a precise 12-h interval between the morning and evening doses of quetiapine on days 7 through 9 and days 32–33.
Pharmacokinetic sampling
In study 1, blood samples were obtained on days 1 and 6 at baseline and at 0.25, 0.5, 0.75, 1, 1.5, 2, 3, 5, 8, 12, 16, 20, 24 and 30 h after quetiapine administration to measure concentrations of quetiapine and its sulfoxide metabolite.
In study 2, blood samples were obtained for measurement of quetiapine exposure on days 9 and 34 at 15 min before and 0.25, 0.5, 0.75, 1, 1.5, 2, 2.5, 3, 4, 6, 8, 10 and 12 h after the morning dose of quetiapine. Additional blood samples were taken 15 min before carbamazepine administration on the evening of day 9 and the morning of day 34.
In both studies, blood samples were collected into heparinized Vacutainer® tubes (BD, Franklin Lakes, NJ, USA). The blood was centrifuged within 15–30 min after collection, and the resulting plasma samples were placed into polypropylene tubes and frozen at −20 °C until analysed using HPLC with atmospheric pressure chemical ionization and tandem mass spectrometry.
Plasma samples were analysed for concentrations of quetiapine and its major metabolite, quetiapine sulfoxide, using a validated procedure (KeyStone Analytical Laboratories, Inc., North Wales, PA, USA). These analytes were extracted from alkalinized plasma with ethyl acetate and evaporated, and the dried residues reconstituted in 50 : 50 methanol:acetonitrile. Chromatographic separation was carried out on a reverse-phase liquid chromatography system utilizing a 3.5-µm Zorbax™ SB-phenyl (4.6 × 75 mm) column, with a mobile phase composed of 0.088% ammonium formate (pH 3.0), methanol and acetonitrile at a flow rate of 1.5 ml min−1. Detection was achieved on a PE Sciex API 300 tandem mass spectrometer with turbo ionspray ionization. The parent/daughter ions monitored were m/z 384.2/253.0 (quetiapine) and m/z 400.1/221.1 (sulfoxide metabolite). The method has a quantification range of 2.50–500 ng ml−1 with an applicable range to 5000 ng ml−1 by sample dilution with plasma.
Pharmacokinetic variables
In study 1, primary pharmacokinetic variables included the area under the plasma concentration–time curve from baseline to t hours after dosing (AUC0–t), the total area under the plasma concentration–time curve from time 0 to infinity (AUC), and Cmax. The terminal half-life (t1/2) and apparent oral clearance (CL/F) of quetiapine were evaluated as secondary pharmacokinetic parameters. The pharmacokinetic profile of the sulfoxide metabolite of quetiapine was also examined.
In study 2, all primary pharmacokinetic parameters were assessed at steady state (ss), confirmed by analysis of minimum plasma concentrations (Cmin). Parameters included Cmax-ss and AUCτ-ss, where τ is the dosing interval. Secondary pharmacokinetic parameters included time to reach Cmax-ss (tmax-ss), Cmin-ss and CL/F.
In both studies, all pharmacokinetic parameters were determined using a noncompartmental model.
Statistical analyses
In study 1, AUC0–t, AUC, Cmax and CL/F were logarithmically transformed before analysis of variance (anova). The 90% confidence intervals of the geometric mean ratio for day 6 to day 1 for these parameters were constructed using Schuirmann's two one-sided tests procedure. The apparent t1/2 was analysed in a similar fashion but not log transformed. Descriptive statistics were given for all analyses of ketoconazole.
In study 2, the logarithmically transformed values of AUCτ-ss, Cmax-ss and CL/F and the rank transformed values of tmax-ss on day 9 (quetiapine alone) and day 34 (quetiapine plus carbamazepine) were analysed using a two-way anova. The anova results were then used to construct 90% confidence intervals for the geometric mean ratios of AUCτ-ss, Cmax-ss and CL/F. The interaction of quetiapine and carbamazepine was assessed using the two one-sided tests procedure. If the 90% confidence interval for a given geometric mean ratio was between 0.8 and 1.25 (indicating a change of less than 20% between day 9 and day 34), no statistically significant interactions were recorded. To ensure achievement of steady state, a two-way anova was used to compare Cmin values for quetiapine and its metabolites on days 8 and 9 with values on days 33 and 34.
Results
In vitro studies
Quetiapine metabolites formed by human liver microsomes
Four primary metabolites of quetiapine oxidation – quetiapine sulfoxide, 7-hydroxyquetiapine, and the N- and O-dealkylated products – were formed after quetiapine incubation with human liver microsomes (Figure 2). Structures of metabolites were verified by using mass spectrometry and by their retention times on HPLC in comparison with authentic metabolite standards. The apparent Km values for the microsomal formation of quetiapine sulfoxide and the 7-hydroxy, N-desalkyl and O-desalkyl metabolites were estimated at 110, 160, 100, and 170 µm (no assessment of nonspecific microsomal binding as a correction factor), respectively, although the maximum velocity of metabolite formation (Vmax) was not achieved for the four reactions at quetiapine concentrations up to 100 µm (the maximum concentration tested).
Inhibition of quetiapine metabolism by specific CYP isoenzyme inhibitors
Decreases in quetiapine metabolite formation were observed after coincubation with CYP2C9, CYP2D6 and CYP3A4 inhibitors (Table 1). Ketoconazole, a CYP3A4 inhibitor, decreased the microsomal formation of the sulfoxide metabolite in a concentration-dependent manner, with greater than 50% inhibition achieved at 0.02 µm ketoconazole. Ketoconazole also decreased the formation of N- and O-desalkyl metabolites in a concentration-dependent manner, whereas the 7-hydroxylation pathway was not changed by more than 10% in a concentration-independent fashion. The substantial inhibition of sulfoxidation and O- and N-dealkylation pathways by ketoconazole indicated that CYP3A4 enzymes are primarily responsible for three of the four metabolic pathways for quetiapine measured in human liver microsomes.
Quinidine, a potent inhibitor of CYP2D6, had no effect on the formation of the sulfoxide or dealkylated metabolites of quetiapine. However, 0.2–5 µm quinidine decreased formation of 7-hydroxyquetiapine by more than 50%, suggesting that CYP2D6 may be involved in 7-hydroxyquetiapine formation [8].
Sulfaphenazole, a selective CYP2C9 inhibitor, reduced formation of all four quetiapine metabolites when coincubated in human liver microsomes at a high concentration (100 µm). However, at 5.0 µm, a concentration that substantially decreases the metabolism of known CYP2C9 substrates [8], sulfaphenazole had little effect on quetiapine metabolism. Microsomal coincubation with furafylline (up to 25 µm) and DDC (up to 100 µm), inhibitors of CYP1A2 and CYP2E1, had little effect on quetiapine metabolism.
Quetiapine metabolism by heterologously expressed human CYP isoenzymes
Quetiapine metabolites were not detected after 1-h incubations of quetiapine with microsomes from vector-control lymphoblastoid cell lines or those that expressed CYP1A2, CYP2C9, CYP2C19 or CYP2E1. In contrast, metabolite profiles produced when quetiapine was incubated in human liver microsomes (Figure 2A) were similar to those produced by expressed CYP3A4 (Figure 2B). Quetiapine sulfoxide was the major metabolite formed during incubations with expressed CYP3A4. The O- and N-desalkyl metabolites and detectable amounts of the 7-hydroxy metabolite also were formed by expressed CYP3A4. Small amounts of a secondary O-desalkylsulfoxide metabolite were identified in both human liver microsomes and expressed CYP3A4. These findings clearly implicate CYP3A4 as the major CYP involved in quetiapine metabolism.
Expressed CYP2D6 formed detectable amounts of 7-hydroxyquetiapine but no other quetiapine metabolites. This result further corroborated the inhibition of this pathway in liver microsomes by the CYP2D6 inhibitor quinidine and confirmed that CYP2D6 is at least partially responsible for quetiapine 7-hydroxylation.
Transport of quetiapine across MDR-1-MDCK cell monolayers
The results of the experiments on transport of quetiapine across MDR-1-MDCK cell monolayers expressing human Pgp are shown in Table 2. Quetiapine was highly permeable in MDR-1-MDCK cell monolayers when incubated in either the apical-to-basolateral or basolateral-to-apical direction. There was little difference in flux in either direction (flux ratio =1.2), indicating that quetiapine is not an efflux substrate of Pgp.
Clinical studies
Demographics
In study 1, 12 healthy men (mean age 33 years) were enrolled. All study participants completed the trial and were included in the pharmacokinetic analysis. In study 2, 18 patients (men and women; mean age 44 years) were enrolled. Patients had diagnoses of paranoid schizophrenia (n = 4) or schizoaffective (n = 6) or bipolar disorder (n = 8). Fourteen patients had complete pharmacokinetic data. Baseline demographics for both studies are summarized in Table 3.
Pharmacokinetic evaluations
In study 1, concomitant use of ketoconazole resulted in substantial increases in plasma concentrations of quetiapine (Figure 3A). The mean Cmax and AUC of quetiapine were increased by 235% and 522%, respectively. Conversely, the geometric mean AUC and Cmax of the sulfoxide metabolite were decreased by 46% and 87%, respectively (Figure 3B). Mean CL/F of quetiapine was decreased by 84%, and mean t1/2 was increased from 2.61 to 6.76 h. Data for all pharmacokinetic variables are summarized in Table 4.
In study 2, concomitant use of carbamazepine resulted in substantial decreases in plasma concentrations of quetiapine (Figure 4). The geometric mean AUCτ-ss and Cmax-ss of quetiapine were decreased by 87% and 80%, respectively. Geometric mean CL/F of quetiapine was increased approximately sevenfold. Although the median tmax-ss of quetiapine was slightly decreased in the presence of carbamazepine, this difference was not considered statistically significant. Data for all pharmacokinetic variables are summarized in Table 5.
Clinical effect
In study 1, evaluation of effect was not applicable because the participants were healthy men. In study 2, in order to ensure that the patients did not relapse into an acute psychotic reaction, in addition to clinical observations, serial recordings of scores on the Brief Psychiatric Rating Scale (BPRS) and the Clinical Global Impressions (CGI) scale were determined. Because of the small number of patients and the lack of a comparative group, only descriptive statistics were determined and the effect of carbamazepine on clinical efficacy could not be judged. The mean total BPRS score improved by 6 points from baseline (before treatment) to discharge (mean baseline score 15.0; mean discharge score 9.1). No change was seen in the CGI-Severity of Illness score (mean baseline score 3.89; mean discharge score 3.69) and/or the CGI-Improvement score (mean discharge score 3.31).
Adverse events that were spontaneously reported by patients to staff members were recorded on the case report forms and analysed; all reported events were consistent with the known safety profile of quetiapine and were mild or moderate in intensity; none was serious. The most common adverse events were dizziness and somnolence (reported by five patients each). Other adverse events were asthenia, hypotension, nausea and rash.
Discussion
Four quetiapine metabolites were formed by pooled human liver microsomes: the 7-hydroxyl, sulfoxide and N- and O-desalkyl metabolites. In vivo studies, reviewed by DeVane and Nemeroff [13], have identified at least 10 measurable metabolites of quetiapine, although many of these are secondary oxidative or conjugated metabolites of the primary metabolite species seen in the in vitro microsomal experiments.
Taken together, our in vitro results with specific CYP inhibitors and the heterologously expressed CYP forms demonstrated that CYP3A4 is a major enzyme responsible for quetiapine metabolism, and that 7-hydroxylation, a minor metabolic pathway in vivo, is also catalysed by CYP2D6. Other CYP enzymes probably do not contribute substantially to quetiapine clearance. However, many substrates for CYP3A4 are also CYP3A5 substrates [14]. CYP3A5 may metabolize quetiapine similarly to CYP3A4, although we did not specifically evaluate this or other minor CYPs in this study.
Based on the moderate inhibition by sulfaphenazole at relatively high concentrations, a contribution to all quetiapine metabolic pathways by CYP2C9 cannot be ruled out. However, no inhibition of quetiapine metabolism was observed when coincubated in human liver microsomes at concentrations that substantially decrease the metabolism of known CYP2C9 substrates [8], and incubations with recombinant CYP2C9 did not form detectable metabolites.
Our in vitro findings suggested that concurrent administration of quetiapine with drugs that induce or inhibit CYP3A4-mediated metabolism would be more likely to alter quetiapine pharmacokinetics than drugs affecting other CYP enzymes. Therefore, the two clinical studies were undertaken to determine if the pharmacokinetics of quetiapine would be altered by concomitant administration of strong CYP3A4 inhibitors or inducers. These studies demonstrated that coadministration with ketoconazole or carbamazepine substantially altered the pharmacokinetic profile of quetiapine.
Concurrent administration of quetiapine with the CYP3A4 inhibitor ketoconazole in vivo increased plasma concentrations of quetiapine, with increases in the mean Cmax and AUC exceeding twofold and fivefold, respectively. The finding of a substantially increased AUC and Cmax is consistent with significant first-pass metabolism and hepatic clearance of quetiapine by CYP3A4. In this study, an 84% reduction in quetiapine clearance paralleled the increases in both Cmax and AUC. Because quetiapine was given as a single low dose (25 mg), no adverse events were expected in the study participants despite exposure to increased plasma concentrations of quetiapine.
Results of both clinical studies are consistent with the in vitro data predicting CYP3A4 as the primary CYP enzyme for quetiapine and with an earlier pharmacokinetic interaction study in humans treated with phenytoin, another inducer of CYP3A4 [15].
In the quetiapine–ketoconazole interaction study (study 1), a low dose of quetiapine was used because the study was performed in healthy volunteers. A low dose was believed to be scientifically appropriate because quetiapine is known to have linear pharmacokinetics at doses approved for use in the clinic. High doses of quetiapine in healthy volunteers are associated with considerable sedation, with a risk of developing symptomatic hypotension.
However, in clinical practice in patients with psychiatric illness, quetiapine is administered at substantially higher dosages (up to 750 mg day−1) [16, 17]. Ketoconazole has been shown to decrease the clearance and thus potentially increase adverse effects associated with many drugs that are CYP3A substrates [9, 18, 19], including midazolam [20], triazolam [21, 22], zolpidem [23] and tacrolimus [24]. Ketoconazole has also been shown to inhibit Pgp [25] and may cause interactions with drugs that are Pgp substrates. In addition, Boulton et al.[26] suggested that quetiapine was a substrate for Pgp in an in vitro study that assessed the stimulation of adenosine triphosphatase activity in membranes with expressed Pgp. We showed here using monolayer assays in cells expressing Pgp that quetiapine is not a substrate of this transporter and therefore the effects of ketoconazole on quetiapine pharmacokinetics are likely to be due to inhibition of its metabolic elimination. Therefore, plasma concentrations of quetiapine, when administered in usual clinical doses concurrently with ketoconazole or another strong CYP3A4 inhibitor, would be expected to increase substantially compared with those of quetiapine given alone. Likewise, drinking grapefruit juice during treatment with quetiapine may be expected to increase exposure to the drug owing to inactivation of intestinal CYP3A4 [27].
Coadministration of carbamazepine led to a significant decrease in the steady-state plasma concentrations of quetiapine. These results demonstrate that concurrent administration of quetiapine with a strong CYP3A4 inducer can lead to a significant increase in quetiapine metabolism and, potentially, a loss of clinical efficacy. Possibly because of the short duration of this study and the fact that patients were in clinical remission before enrolment, no loss of quetiapine efficacy was observed.
Conclusions
The in vitro and clinical studies described here demonstrate that clinically important pharmacokinetic changes may occur when drugs that potently modulate the expression or activity of CYP3A4 enzymes are administered concurrently with quetiapine. Patients with severe mental illness typically require long-term treatment with antipsychotic medication, often in conjunction with other psychotropic drugs [6] or with nonpsychiatric medications. In addition to ketoconazole and carbamazepine, other drugs that induce or inhibit CYP3A4 (e.g. rifampin, ritonavir) could affect quetiapine exposure, efficacy and adverse event profile. If concomitant use of drugs that potently change CYP3A4 activity is necessary in patients treated with quetiapine, clinicians should monitor their patients for signs of adverse effects or decreased efficacy and titrate dosages accordingly.
Acknowledgments
We thank Dr Liyue Huang for providing the Pgp results. Financial and editorial support for this work was provided by AstraZeneca Pharmaceuticals LP.
References
Formats:
- Article
- |
- PubReader
- |
- ePub (beta)
- |
- PDF (223K)
- |
- Citation


Concave shape class. More...
Inherits Drawable, and Transformable.
Public Member Functions | |
| ConcaveShape () | |
| Creates an empty shape. More... | |
| ConcaveShape (const sf::Shape &shape) | |
| Implicit constructor that adapts an existing sf::Shape. More... | |
| void | swap (ConcaveShape &other) |
| Exchanges the content of two instances in O(1). | |
| void | setPointCount (unsigned int count) |
| Sets the amount of points in the concave polygon. | |
| unsigned int | getPointCount () const |
| Returns the amount of points in the concave polygon. | |
| void | setPoint (unsigned int index, sf::Vector2f position) |
| Sets the position of a point. More... | |
| sf::Vector2f | getPoint (unsigned int index) const |
| Returns the position of a point. More... | |
| void | setFillColor (const sf::Color &fillColor) |
| Sets the polygon's fill color. | |
| void | setOutlineColor (const sf::Color &outlineColor) |
| Sets the polygon's outline color. | |
| sf::Color | getFillColor () const |
| Returns the polygon's fill color. | |
| sf::Color | getOutlineColor () const |
| Returns the polygon's outline color. | |
| void | setOutlineThickness (float outlineThickness) |
| sets the thickness of the shape's outline (0.f by default). More... | |
| float | getOutlineThickness () const |
| Returns the shape's outline thickness. | |
Related Functions | |
(Note that these are not member functions.) | |
| void | swap (ConcaveShape &lhs, ConcaveShape &rhs) |
| Exchanges the contents of two concave shapes. | |
Concave shape class.
This class has an interface and functionality similar to sf::ConvexShape, but is additionally able to work with shapes that are concave. It inherits the sf::Drawable and sf::Transformable classes.
| thor::ConcaveShape::ConcaveShape | ( | ) |
Creates an empty shape.
You can use setPointCount() and SetPoint() to build your own concave shape.
| thor::ConcaveShape::ConcaveShape | ( | const sf::Shape & | shape | ) |
Implicit constructor that adapts an existing sf::Shape.
The concave shape should look as similar as possible to the original convex shape.
| sf::Vector2f thor::ConcaveShape::getPoint | ( | unsigned int | index | ) | const |
Returns the position of a point.
| index | Which point? Must be in [0, getPointCount()[ |
| void thor::ConcaveShape::setOutlineThickness | ( | float | outlineThickness | ) |
sets the thickness of the shape's outline (0.f by default).
outlineThickness must be greater or equal to zero. If it is zero, no outline is visible.
| void thor::ConcaveShape::setPoint | ( | unsigned int | index, |
| sf::Vector2f | position | ||
| ) |
Sets the position of a point.
| index | Which point? Must be in [0, getPointCount()[ |
| position | New point position in local coordinates. |


where did we go wrong?
That is, while there is value in the items on the right, we value the items on the left more.
A guide for honest ways in handling IT projects.
This guide serves all members of a project. The way from feature wish to accepted and shipped product increments is full of pitfalls.
We aim on identifying and describing falsyfying factors as well as calling them to awareness.
We feel that honesty means transparency, responsibiility, truth and an open set of values.
reception of information has a start and end point.
the end is defined by an agreement on one common truth by all stakeholders.
implicit and explicit contents are equally important.
interpretation is part of the reception of information.
interpretation will be agreed on by all stakeholders to not falsify its spirit.
validation of information and its interpretation.
insist on completeness.
define together what is meant by a piece of information and what is not.
do not keep information. Hidden agendas do not serve transparency.
during times of pressure it is easy to let yourself being misled to knowingly misunderstand information.
misunderstand information due to means of comfort.
Ambiguities are likely to be adjusted to ones pleasure.
Fear of misunderstanding leads to withholding.
Hidden agendas and politics deny transparency.
identity is the foundation of any project.
objective aspects foster identity as much as emotional ones.
identity cannot be forced but facilitated.
is one of the most important requirements for motivation and performance.
we know who we are. there is exactly one version of our identity and no necissity to diversify or disguise.
the feelgood factor is a valid metric. we will communicate once we do not want to be part of this identity.
we work with people and inviduals, not with ressources. people provide ressources but are recognized as individuals.
it is easy to enforce behavioural patterns. this will not lead to identity but dissafection and abandonment.
identity is the sum of all participants. hereby it is easy to damage the identity of single participants towards a project by negative influences.
knowledge about our daily work and the existence of roles and business processes are mandatory for working processes.
knowledge about our business domains and processes needs to be educated continuously.
we are aware of our actions and their impacts.
we do not know everything and do not hesitate asking or educate ourselfs.
we do not commit feeling not being informed well enough.
we use tools to gain knowledge about what we do.
we know when we are done, because we did define it.
we know that fiddling with processes has impacts.
we gain, document, share and evaluate knowledge.
the moment something is not clear, there will be mistakes.
knowledge hidden behind obstacles will not be used.
don't kill the messenger.
knowledge should be documented.
it is easy to fall behind on knowledge and education.
we can never estimate all impacts of our actions.
there is no entitlement on completeness. it is easy to be satisfied with too less.
communication happens over formal and informal channels.
a reasonable way of communication assumes that receivers and channels are chosen correctly.
communication can be synchronous and asynchronous and has to deal with dependencies on time and content.
it is a keyfactor for successful teamwork.
standups help to informally offer and get help.
status meetings are means of reporting.
the less intermediates the less blurry the information gets.
since we do not lie, we can rely on what one says.
we do not delay. communication can be categorized, there is importance.
chinese whispers can have massive impacts.
"that is known anyway" is an irrational assumption.
there are no stupid questions.
chosing the wrong medium or recipients.
it is not enough to communicate for its own purpose. those who communicate are responsible for validation of contents and the choice of direct recipients.
behaviour describes the way we act and react.
by acting we influence our environment directly.
your mouth is writing checks your ass can't cash.
we are not prone to error and aim to improve constantly.
we do not pretend half arsed jobs to be complete.
we estimate realistic scopes.
partners are treated the same kind way customers are.
our shipments are products not prototypes.
we use industry standards and best practices.
reinventing the wheel.
forgetting about our partners and vendors.
a culture of blame impedes honesty when it comes to errors and mistakes.
fear of pressure leads to false estimates.
and we have mandatory processes and tools to control how those individuals (we prefer the term ‘resources’) interact
as long as that software is comprehensively documented
within the boundaries of strict contracts, of course, and subject to rigorous change control
provided a detailed plan is in place to respond to the change, and it is followed precisely
That is, while the items on the left sound nice in theory, we’re an enterprise company, and there’s no way we’re letting go of the items on the right.
| agile | turbulent, high change & project focused |
| plan-driven | stable, low-change & organization focused |
| agile | focused on prioritized increments, dedicated on-site customers |
| plan-driven | as-needed customer interactions, focused on contract provisions |
| agile | internalized plans, qualitative control |
| plan-driven | documented plans, quantitative control |
| agile | simple design; short increments, refactoring assumed expensive |
| plan-driven | extensive design, longer increments, refactoring assumed inexpensive |
| agile | comfort and empowerment via many degrees of freedom |
| plan-driven | comfort and empowerment via framework of policies and procedures |


Table of Contents
It is difficult to write a useful transactional tutorial and still keep within reasonable bounds of documentation; that is, without writing a book on transactional programming. We have two goals in this section: to familiarize readers with the transactional interfaces of Berkeley DB and to provide code building blocks that will be useful for creating applications.
We have not attempted to present this information using a real-world application. First, transactional applications are often complex and time-consuming to explain. Also, one of our goals is to give you an understanding of the wide variety of tools Berkeley DB makes available to you, and no single application would use most of the interfaces included in the Berkeley DB library. For these reasons, we have chosen to simply present the Berkeley DB data structures and programming solutions, using examples that differ from page to page. All the examples are included in a standalone program you can examine, modify, and run; and from which you will be able to extract code blocks for your own applications. Fragments of the program will be presented throughout this chapter, and the complete text of the example program for IEEE/ANSI Std 1003.1 (POSIX) standard systems is included in the Berkeley DB distribution.


If you have a citation number AND a case or docket number, we suggest using the case or docket number.


| set_config {pkgconfig} | R Documentation |
Set a configuration parameter, for the package we are calling from. If called from the R prompt and not from a package, then it sets the parameter for global environment.
set_config(...)
... |
Parameters to set, they should be all named. |
Nothing.


{{config.name}}
{{action.name}}
Personal Details
Identifier
Request Exchange
BALI PROCESS IMMIGRATION (GROUP)
AUSTRALIAN_IMMIGRATION
THAILAND_IMMIGRATION
INDONESIAN_IMMIGRATION
Upload image
Cancel
Submit


Michigan State gridiron great Henry Bullough dies at 85
by APEAST LANSING, Mich. (AP) — Henry Bullough, a former NFL coach and a guard on Michigan State’s national title team in 1952, has died. He was 85.
The university Monday announced his death but did not provide details. Son Chuck Bullough is an assistant coach for the Spartans.
Henry Bullough also played on the Michigan State team that won the Big Ten championship the year after it captured the national title.
“Michigan State has lost a great Spartan and the game of football has lost a coaching legend,” coach Mark Dantonio said.
Bullough was an NFL head coach for parts of three seasons with a 4-18 record and helped bring in the 3-4 defense while he was New England’s defensive coordinator in 1974. He led the Patriots briefly in the 1978 season and Buffalo for 21 games during the 1985 and 1986 seasons.
He was an NFL assistant for more than two decades and was with the Baltimore Colts when they won the Super Bowl in 1971. He also was an assistant with New England, Cincinnati, Buffalo, Green Bay and Detroit.
Bullough was Michigan State’s defensive coordinator during its glory years in the mid-1960s. He came back to join George Perles’ staff in 1994 for a 12th season as an assistant.
“Thanks to Michigan State, I accomplished everything I could have hoped for in my profession,” Bullough said when inducted into the Michigan State Athletics Hall of Fame in 2013.
Bullough was born in Scranton, Pennsylvania, and attended high school in Canton, Ohio. He was drafted in the fifth round by Green Bay in 1955 and played in 12 games as a rookie. After serving in the Army, he started in eight games for the Packers during the 1958 season.
Sons Chuck and Shane and three grandchildren — Max, Riley and Byron — played football for the Spartans.


He is currently the Chief Financial Officer of Emerson Collective. Mr. Tangherlini previously served as City Administrator of Washington D.C., and as interim General Manager for the Washington Metropolitan Area Transit Authority. His work included Amtrak labor settlement negotiations and development of new approaches to infrastructure financing. He focuses on the system of systems: tech, infrastructure, real estate, energy and finance.
He is a New Zealand computer scientist who founded Google’s first remote engineering center. He is now Head of Engineering at Sidewalk Labs, an Alphabet Inc.’s urban innovation organization. Sidewalk Labs seek to combine forward thinking-urban design and cutting-edge technology, and they aim to improve urban infrastructure through technological solutions, and tackle issues such as efficient transportation, energy usage, and cost of living.
She is the founder and design director of SCAPE, a design-driven landscape architecture and urban design studio based in New York. She is also the Faculty Director of the Center for Resilient Cities and Landscape and an Associate Professor at the Columbia Graduate School of Architecture, Planning and Preservation. Her work coordinates complex, interdisciplinary studios centers on urban systems of the future with a focus on ecological infrastructure, global cities and climate adaptation.
She is one of the leading voices on urban transportation policy. Ms. Saidk-Khan currently advises mayors of cities around the world as a principal at Bloomberg Associates. She is a former commissioner of the New York City Department of transportation and an advisor on transportation and urban issues.
Mr. Radford currently serves as HOT’s Executive Director. He joined HOT (Humanitarian OpenStreetMap Team) after 12 years leading diverse, people-focused, technology and data-enabled projects across nonprofit, international humanitarian, disaster risk reduction, recovery and relief projects for organizations such as the UN Secretariat and the American Red Cross.
He is the Director for Ian McHarg Center at the University of Pennsylvania Stuart Weizman School of Design. He co-authored The Indivisible Guide—a progressive, grassroots organization with more than 6,000 groups—and co-created Data Refuge, an international consortium of scientists, librarians, and programmers working to preserve vital the environmental data at risk of erasure during the Trump Administration.
He is the Director of the City Science research group at the MIT Media lab. His research focuses on developing urban interventions that enable more entrepreneurial, livable, high-performance urban districts. His projects include advanced simulation and augmented reality for urban design, transformable micro-housing for millennials, and urban living lab deployments in Hamburg, Helsinki, Shanghai, and Toronto. His research group received the “10-Year Impact Award” from UbiComp 2014.
He is an American media scholar, blogger, and internet activist. He is the director of the MIT Center for Civic Media. Mr. Zuckerman is a Fulbright scholar himself, and his research focuses on the use of media as a tool for social change, the role of technology in international development, and the use of new media technologies by activists.