Get all available regions for the Amazon Kinesis service.
| Return type: | list |
|---|---|
| Returns: | A list of boto.regioninfo.RegionInfo |
Amazon Kinesis Service API Reference Amazon Kinesis is a managed service that scales elastically for real time processing of streaming big data.
alias of JSONResponseError
This operation adds a new Amazon Kinesis stream to your AWS account. A stream captures and transports data records that are continuously emitted from different data sources or producers . Scale-out within an Amazon Kinesis stream is explicitly supported by means of shards, which are uniquely identified groups of data records in an Amazon Kinesis stream.
You specify and control the number of shards that a stream is composed of. Each shard can support up to 5 read transactions per second up to a maximum total of 2 MB of data read per second. Each shard can support up to 1000 write transactions per second up to a maximum total of 1 MB data written per second. You can add shards to a stream if the amount of data input increases and you can remove shards if the amount of data input decreases.
The stream name identifies the stream. The name is scoped to the AWS account used by the application. It is also scoped by region. That is, two streams in two different accounts can have the same name, and two streams in the same account, but in two different regions, can have the same name.
CreateStream is an asynchronous operation. Upon receiving a CreateStream request, Amazon Kinesis immediately returns and sets the stream status to CREATING. After the stream is created, Amazon Kinesis sets the stream status to ACTIVE. You should perform read and write operations only on an ACTIVE stream.
You receive a LimitExceededException when making a CreateStream request if you try to do one of the following:
Note: The default limit for an AWS account is two shards per stream. If you need to create a stream with more than two shards, contact AWS Support to increase the limit on your account.
You can use the DescribeStream operation to check the stream status, which is returned in StreamStatus.
CreateStream has a limit of 5 transactions per second per account.
| Parameters: |
|
|---|
This operation deletes a stream and all of its shards and data. You must shut down any applications that are operating on the stream before you delete the stream. If an application attempts to operate on a deleted stream, it will receive the exception ResourceNotFoundException.
If the stream is in the ACTIVE state, you can delete it. After a DeleteStream request, the specified stream is in the DELETING state until Amazon Kinesis completes the deletion.
Note: Amazon Kinesis might continue to accept data read and write operations, such as PutRecord and GetRecords, on a stream in the DELETING state until the stream deletion is complete.
When you delete a stream, any shards in that stream are also deleted.
You can use the DescribeStream operation to check the state of the stream, which is returned in StreamStatus.
DeleteStream has a limit of 5 transactions per second per account.
| Parameters: | stream_name (string) – The name of the stream to delete. |
|---|
This operation returns the following information about the stream: the current status of the stream, the stream Amazon Resource Name (ARN), and an array of shard objects that comprise the stream. For each shard object there is information about the hash key and sequence number ranges that the shard spans, and the IDs of any earlier shards that played in a role in a MergeShards or SplitShard operation that created the shard. A sequence number is the identifier associated with every record ingested in the Amazon Kinesis stream. The sequence number is assigned by the Amazon Kinesis service when a record is put into the stream.
You can limit the number of returned shards using the Limit parameter. The number of shards in a stream may be too large to return from a single call to DescribeStream. You can detect this by using the HasMoreShards flag in the returned output. HasMoreShards is set to True when there is more data available.
If there are more shards available, you can request more shards by using the shard ID of the last shard returned by the DescribeStream request, in the ExclusiveStartShardId parameter in a subsequent request to DescribeStream. DescribeStream is a paginated operation.
DescribeStream has a limit of 10 transactions per second per account.
| Parameters: |
|---|
This operation returns one or more data records from a shard. A GetRecords operation request can retrieve up to 10 MB of data.
You specify a shard iterator for the shard that you want to read data from in the ShardIterator parameter. The shard iterator specifies the position in the shard from which you want to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in the shard. For more information about the shard iterator, see GetShardIterator.
GetRecords may return a partial result if the response size limit is exceeded. You will get an error, but not a partial result if the shard’s provisioned throughput is exceeded, the shard iterator has expired, or an internal processing failure has occurred. Clients can request a smaller amount of data by specifying a maximum number of returned records using the Limit parameter. The Limit parameter can be set to an integer value of up to 10,000. If you set the value to an integer greater than 10,000, you will receive InvalidArgumentException.
A new shard iterator is returned by every GetRecords request in NextShardIterator, which you use in the ShardIterator parameter of the next GetRecords request. When you repeatedly read from an Amazon Kinesis stream use a GetShardIterator request to get the first shard iterator to use in your first GetRecords request and then use the shard iterator returned in NextShardIterator for subsequent reads.
GetRecords can return null for the NextShardIterator to reflect that the shard has been closed and that the requested shard iterator would never have returned more data.
If no items can be processed because of insufficient provisioned throughput on the shard involved in the request, GetRecords throws ProvisionedThroughputExceededException.
| Parameters: |
|
|---|
This operation returns a shard iterator in ShardIterator. The shard iterator specifies the position in the shard from which you want to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the Amazon Kinesis stream. The sequence number is assigned by the Amazon Kinesis service when a record is put into the stream.
You must specify the shard iterator type in the GetShardIterator request. For example, you can set the ShardIteratorType parameter to read exactly from the position denoted by a specific sequence number by using the AT_SEQUENCE_NUMBER shard iterator type, or right after the sequence number by using the AFTER_SEQUENCE_NUMBER shard iterator type, using sequence numbers returned by earlier PutRecord, GetRecords or DescribeStream requests. You can specify the shard iterator type TRIM_HORIZON in the request to cause ShardIterator to point to the last untrimmed record in the shard in the system, which is the oldest data record in the shard. Or you can point to just after the most recent record in the shard, by using the shard iterator type LATEST, so that you always read the most recent data in the shard.
Note: Each shard iterator expires five minutes after it is returned to the requester.
When you repeatedly read from an Amazon Kinesis stream use a GetShardIterator request to get the first shard iterator to to use in your first GetRecords request and then use the shard iterator returned by the GetRecords request in NextShardIterator for subsequent reads. A new shard iterator is returned by every GetRecords request in NextShardIterator, which you use in the ShardIterator parameter of the next GetRecords request.
If a GetShardIterator request is made too often, you will receive a ProvisionedThroughputExceededException. For more information about throughput limits, see the `Amazon Kinesis Developer Guide`_.
GetShardIterator can return null for its ShardIterator to indicate that the shard has been closed and that the requested iterator will return no more data. A shard can be closed by a SplitShard or MergeShards operation.
GetShardIterator has a limit of 5 transactions per second per account per shard.
| Parameters: |
|---|
The following are the valid shard iterator types:
by a specific sequence number.
denoted by a specific sequence number.
shard in the system, which is the oldest data record in the shard.
shard, so that you always read the most recent data in the shard.
| Parameters: | starting_sequence_number (string) – The sequence number of the data record in the shard from which to start reading from. |
|---|
This operation returns an array of the names of all the streams that are associated with the AWS account making the ListStreams request. A given AWS account can have many streams active at one time.
The number of streams may be too large to return from a single call to ListStreams. You can limit the number of returned streams using the Limit parameter. If you do not specify a value for the Limit parameter, Amazon Kinesis uses the default limit, which is currently 10.
You can detect if there are more streams available to list by using the HasMoreStreams flag from the returned output. If there are more streams available, you can request more streams by using the name of the last stream returned by the ListStreams request in the ExclusiveStartStreamName parameter in a subsequent request to ListStreams. The group of stream names returned by the subsequent request is then added to the list. You can continue this process until all the stream names have been collected in the list.
ListStreams has a limit of 5 transactions per second per account.
| Parameters: |
|
|---|
This operation merges two adjacent shards in a stream and combines them into a single shard to reduce the stream’s capacity to ingest and transport data. Two shards are considered adjacent if the union of the hash key ranges for the two shards form a contiguous set with no gaps. For example, if you have two shards, one with a hash key range of 276...381 and the other with a hash key range of 382...454, then you could merge these two shards into a single shard that would have a hash key range of 276...454. After the merge, the single child shard receives data for all hash key values covered by the two parent shards.
MergeShards is called when there is a need to reduce the overall capacity of a stream because of excess capacity that is not being used. The operation requires that you specify the shard to be merged and the adjacent shard for a given stream. For more information about merging shards, see the `Amazon Kinesis Developer Guide`_.
If the stream is in the ACTIVE state, you can call MergeShards. If a stream is in CREATING or UPDATING or DELETING states, then Amazon Kinesis returns a ResourceInUseException. If the specified stream does not exist, Amazon Kinesis returns a ResourceNotFoundException.
You can use the DescribeStream operation to check the state of the stream, which is returned in StreamStatus.
MergeShards is an asynchronous operation. Upon receiving a MergeShards request, Amazon Kinesis immediately returns a response and sets the StreamStatus to UPDATING. After the operation is completed, Amazon Kinesis sets the StreamStatus to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state.
You use the DescribeStream operation to determine the shard IDs that are specified in the MergeShards request.
If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards or SplitShard, you will receive a LimitExceededException.
MergeShards has limit of 5 transactions per second per account.
| Parameters: |
|---|
This operation puts a data record into an Amazon Kinesis stream from a producer. This operation must be called to send data from the producer into the Amazon Kinesis stream for real-time ingestion and subsequent processing. The PutRecord operation requires the name of the stream that captures, stores, and transports the data; a partition key; and the data blob itself. The data blob could be a segment from a log file, geographic/location data, website clickstream data, or any other data type.
The partition key is used to distribute data across shards. Amazon Kinesis segregates the data records that belong to a data stream into multiple shards, using the partition key associated with each data record to determine which shard a given data record belongs to.
Partition keys are Unicode strings, with a maximum length limit of 256 bytes. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards using the hash key ranges of the shards. You can override hashing the partition key to determine the shard by explicitly specifying a hash value using the ExplicitHashKey parameter. For more information, see the `Amazon Kinesis Developer Guide`_.
PutRecord returns the shard ID of where the data record was placed and the sequence number that was assigned to the data record.
Sequence numbers generally increase over time. To guarantee strictly increasing ordering, use the SequenceNumberForOrdering parameter. For more information, see the `Amazon Kinesis Developer Guide`_.
If a PutRecord request cannot be processed because of insufficient provisioned throughput on the shard involved in the request, PutRecord throws ProvisionedThroughputExceededException.
Data records are accessible for only 24 hours from the time that they are added to an Amazon Kinesis stream.
| Parameters: |
|
|---|
This operation splits a shard into two new shards in the stream, to increase the stream’s capacity to ingest and transport data. SplitShard is called when there is a need to increase the overall capacity of stream because of an expected increase in the volume of data records being ingested.
SplitShard can also be used when a given shard appears to be approaching its maximum utilization, for example, when the set of producers sending data into the specific shard are suddenly sending more than previously anticipated. You can also call the SplitShard operation to increase stream capacity, so that more Amazon Kinesis applications can simultaneously read data from the stream for real-time processing.
The SplitShard operation requires that you specify the shard to be split and the new hash key, which is the position in the shard where the shard gets split in two. In many cases, the new hash key might simply be the average of the beginning and ending hash key, but it can be any hash key value in the range being mapped into the shard. For more information about splitting shards, see the `Amazon Kinesis Developer Guide`_.
You can use the DescribeStream operation to determine the shard ID and hash key values for the ShardToSplit and NewStartingHashKey parameters that are specified in the SplitShard request.
SplitShard is an asynchronous operation. Upon receiving a SplitShard request, Amazon Kinesis immediately returns a response and sets the stream status to UPDATING. After the operation is completed, Amazon Kinesis sets the stream status to ACTIVE. Read and write operations continue to work while the stream is in the UPDATING state.
You can use DescribeStream to check the status of the stream, which is returned in StreamStatus. If the stream is in the ACTIVE state, you can call SplitShard. If a stream is in CREATING or UPDATING or DELETING states, then Amazon Kinesis returns a ResourceInUseException.
If the specified stream does not exist, Amazon Kinesis returns a ResourceNotFoundException. If you try to create more shards than are authorized for your account, you receive a LimitExceededException.
Note: The default limit for an AWS account is two shards per stream. If you need to create a stream with more than two shards, contact AWS Support to increase the limit on your account.
If you try to operate on too many streams in parallel using CreateStream, DeleteStream, MergeShards or SplitShard, you will receive a LimitExceededException.
SplitShard has limit of 5 transactions per second per account.
| Parameters: |
|
|---|


data_hacks¶
Command line utilities for data analysis.
| Home | https://github.com/bitly/data_hacks |
| Versions | 0.3.1 |
| License | Apache 2.0 |
| Recipe | https://github.com/bioconda/bioconda-recipes/tree/master/recipes/data_hacks |
Installation¶
With an activated Bioconda channel (see Setup and usage), install with:
conda install data_hacks
and update with:
conda update data_hacks
A Docker container is available at https://quay.io/repository/biocontainers/data_hacks.
Link to this page¶
Render an badge with the following Markdown:
[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)](http://bioconda.github.io/recipes/data_hacks/README.html)


This agreement (the "Terms of Service") is a legally binding agreement between you and Flux App, LLC ("Grotto", "we", or "us"), pursuant to which you agree to the terms of use of the Grotto mobile application (the "Grotto App") as more specifically described below. By registering for and/or using the Grotto App, you hereby agree as follows:


2.1 #Components - Alerts Alerts
Notifications provide lightweight feedback about an operation. They show a brief message at the top of the screen. Notifications can contain an action.
Example
Markup:
Markup:


Happy
anniversary
Scroll ↓
Thank you for
the adventures
,
the memories
for...
being a friend
for...
being easy to love
for...
being patient
for...
dishes & laundry...
for...
documentaries
for...
rollercoasters
for...
traveling abroad
for...
baking experiments
for...
drinking wine in mugs
for...
people watching in coffee shops
for...
awful trips to the malls
Happy
1 years
2 years
3 years
and more to come!
Fin.
p.s. I love you.


An OtterUI project manages a set of scene files as well as project-wide settings such as resolutions, platforms, fonts, and so on. In order to start building a User Interface using Otter, you must first create and set up a project.
To create a project, launch the Otter Editor and from the File menu click on New and specify where you want to create your new project. It is recommended to create the new project in its own folder, as the Otter Editor will use the location of the project when creating new scenes and other data.
Once the project has been created, it will be opened automatically in the Otter Editor.
Once the project has been created, you must add platforms for which you want to build your user interface. Platforms may be as specific or as generic as you want them to be. For the purposes of this tutorial, we will be setting up a platform for a generic big-endian platform:
Create as many platforms as you need. At export time you will have the option to export to specific platforms or all at once.
Note: A default platform for PC is provided automatically.
While building user interfaces it is very important to be able to preview your work in the target resolution. To do this, the Otter Editor must be aware of the resolutions you wish to work with. Adding new resolutions is easy:
Note: A default resolution at 1024x768 is provided automatically.
In order to render text labels, you will need some fonts. No font is provided automatically, so it is recommended to add at least one font as soon as possible.
Congratulations! Your project is now set up and ready to use.
Created with the Personal Edition of HelpNDoc: Produce electronic books easily


A simple example of how to deploy a docker container to Heroku.
Source code can be found on Github at BennyHoward/deploy-docker-to-heroku-helloworld.


About me |
I am 28 years old this year, graduated from university just two years ago.
My last two jobs have been in Operations Excellence: basically applying tools like Lean Six Sigma to help businesses get more out of their people and process.
However, helping people with their businesses is far less fulfilling than running your own show. Seeing all the exciting developments in the field of infotech makes me want to be a part of this community.
I hope this immersive will be an opportunity for me to get one step closer to my dream job.
|
|


| Ken Flurchick | and | Libero Bartolotti |
| Ohio Supercomputer Center | North Carolina Supercomputing Center | |
| 1224 Kinnear Rd | 3021 Cornwallis Rd | |
| Columbus, OH 43212 | Research Triangle Park, NC 27709 |
In this article we present two AVS/EXPRESS modules which read the geometric structure and electronic properties of a molecular system from the CUBE output generated by the GAUSSIAN(c) package[6]. These modules are, in part, extensions from previous work, namely the AVS5 modules coord_to_geom and CUBE_to_Field. Electronic and structural information is obtained from either Density Functional Theory or Schrödinger Theory, using the GAUSSIAN(c) code. These modules, in conjunction with the built-in visualization modules, can display the geometric structure with electronic properties. In addition, using the enhanced User Interface capabilities in AVS/EXPRESS, a more user-friendly front-end has been developed. The capabilities of these modules will be discussed using several examples from current research activities.
Visualizing the results from quantum chemistry calculations is an important tool for scientists. Several AVS5 modules[1] were written to process the data from a number of quantum chemistry programs and have been restructured to utilize the enhanced User Interface capabilities of AVS/EXPRESS plus the easier data structure to pass array objects to construct the field data. We call this set of modules the Simple Molecular Display (SMD).
Quantum Mechanics CalculationsThe quantum chemistry packages calculate electron densities using either Density Functional Theory (DFT) via the Kohn-Sham (KS)[2] orbital-density equations:
where Dls = S i cil ci s is the density matrix and S mn is the overlap matrix which arises from the non-orthogonality of the basis functions.
For additional information about the different methodologies, see Szabo Ostlundslund[3], Parr and Yang[4] and Boyd et.al.[5]. The electron density contains both quantitative and qualitative information about the system of interest. Molecular properties can be determined from the electron density such as molecular bonding, reactivity indices, electrostatic potentials and aromatitcity.
The computational chemistry code GAUSSIAN is widely used by chemists, and can output a variety of molecular properties in addition to the molecular structure. Some of the molecular properties are:
To display the molecular properties, the visualization process begins by reading the molecular structure and electronic property information and converting this information to AVS/EXPRESS objects. This is accomplished by the AVS/EXPRESS module mol_c and Read_G94_cube. Figure 1 shows the subobjects in the modules mol_c and Figure 2 shows the subobjects of Read_G94_cube.
|
Figure 1 Subobject list for the module mol_c |
Figure 2 Subobject list for the module Read_G94_cube |
One important point to note is that the module mol_c outputs arrays of numbers which represent the atomic centers (array a_lst), atom colors (array rgb_lst), atomic radii (array r_lst) and bonding information (array connect_lst). The information is then passed to AVS/EXPRESS mesh modules. The module Read_G94_cube output both mesh coordinates array geometry) and the molecular property information (array Orbital_Data).
For the molecular structure, the modules point mesh (renamed as atomic point mesh), node color (renamed as atomic mesh color), node radii (renamed as atomic radii) and combine mesh (renamed as atomic field) are used (see figure 3) to create the molecular structure field.
|
Figure 3 Network to create molecular structure field. |
For the electronic structure (the ESP, HOMO and electron density), the modules struct mesh (structured mesh), node scalar (the molecular property data), and combine mesh data are used (see figure 4) to create the molecular property field. The field data is the passed to the usual bounds, isosurface and isoline modules to display the data.
|
Figure 4 Network for the molecular property display. |
In addition to the modules mol_c and Read_G94_cube, the user interface was designed using the interface modules (UI Kit). The UI kit contains numerous modules to manipulate windows, frames and widgets as part of the user interface. The UI for the molecular structure part is shown in figure 5. The parameters to select the type of file to read, the file name and the units parameters are options to select. The display options are in the bottom part of the UI, the type of display, options to display atom names and so on. The entire interface is constructed from modules built into AVS/EXPRESS, no additional coding was necessary. The network to construct the UI is shown in figure 6.
|
Figure 5 UI for mol_c. | |
|
Figure 6 Network to construct the mol_c UI. |
To demonstrate the use of these modules, we show various displays of the molecular system tryptophan (C11H12N2O). The structure and molecular properties were computed using GAUSSIAN 94[6]. Figure 7 shows three views of the display, the most common type of display is shown, namely the geometry of the molecule. Three different types of structure displays are shown. The upper left is CPK, upper right is ball_and_stick and the bottom image shows the structure labeled by atom names.
|
Figure 7 Display of Tryptophan. |
The next two figures show the capabilities of combining AVS and results from calculations. Figure 8 shows the electron density plus the molecular structure and figure 9 depicts the HOMO and the molecular structure.
|
Figure 8 Electronic shape of Tryptophan. | |
|
Figure 9 HOMO display of Tryptophan. |
Lastly, we show in figure 10, some contour lines of the electrostatic potential. Also in the image, is the 3D viewer used to display the results in AVS/EXPRESS.
|
Figure 10 Electrostatic potential contours of Tryptophan. |
|


CSV Grid Display
Click on the bar in the box to import the csv file. Make changes and fill in the following form to export it back to your computer.
This feature works in computers. Not in Mobile
Which columns should we export?
All
Visible
Which rows should we export?
All
Visible
Selected
What format would you like?
CSV
PDF
Export


[1]:
%run ../initscript.py
HTML("""

Enter Password:

<input id="password" type="password"/>
<button onclick="done()" style="border-radius: 12px;">Submit</button>

<button onclick="unlock()" style="border-radius: 12px;">Unclock</button>
show code
""")
[1]:
[2]:
%run loadmlfuncs.py
df_book_part1 = pd.read_csv(dataurl+'book_train.csv', header=0, index_col='customer')
df_book_part2 = pd.read_csv(dataurl+'book_validation.csv', header=0, index_col='customer')
toggle()
[2]:
Logistic Regression¶
Logistic regression is a popular method for classifying individuals (although we call it regression), given the values of a set of explanatory variables. It estimates the probability that an individual is in a particular category. We will demonstrate the method by considering a book club case.
Book Club¶
In a book club, a new title, “The Art History of Florence”, is ready for release. The book club has sent promotion mails to a sample of customers from its customer base in two different times. Each time it randomly select 1000 customers.
[3]:
df_book_part1.head()
[3]:
| month | art_book | purchased | |
|---|---|---|---|
| customer | |||
| 1 | 24 | 0 | 0 |
| 2 | 16 | 0 | 0 |
| 3 | 15 | 0 | 0 |
| 4 | 22 | 0 | 0 |
| 5 | 15 | 0 | 1 |
[4]:
df_book_part2.head()
[4]:
| month | art_book | purchased | |
|---|---|---|---|
| customer | |||
| 1001 | 30 | 0 | 0 |
| 1002 | 12 | 0 | 0 |
| 1003 | 18 | 0 | 0 |
| 1004 | 27 | 1 | 0 |
| 1005 | 4 | 1 | 0 |
Book club has collected several variables for all 2000 customers as follows:
month: months to the customer’s last purchase when promotion mail is sent
art_book: number of art books the customer purchased before
purchased: if s/he paid for the new title “The Art History of Florence”
It costs the book club $1 for sending a mail and generates $7 profit for selling the book. After two promotions, an analyst in the book club realizes that the store actually lost money in both promotions.
[5]:
def calc_profit(df):
mail_cost = 1
selling_profit = 7
profit = df.purchased.sum() * 7 - df.month.count()*mail_cost
return profit
print('net profit for the 1st promotion:', calc_profit(df_book_part1))
print('net profit for the 2nd promotion:', calc_profit(df_book_part2))
net profit for the 1st promotion: -418
net profit for the 2nd promotion: -433
The manager believes that the book club should build a predictive model to predict each customer’s probability of purchasing, and then send out promotion mail only if such a probability is high enough.
can we derive a prediction model after collecting the data from the first promotion?
can this prediction model improve the second promotion?
We expect this prediction model
uses
month
andart_book
to predictpurchased
which suggests a regression equation purchased
\(\sim\) month
\(+\) art_book
. However, the \(y\) variable purchased
is either 0 or 1, and a scatter plot between purchased
and month
(\(y\) vs \(x\)) shows as follows
[6]:
df_book_part1.plot.scatter(x='month', y='purchased')
plt.show()
The graph is against many linear regression assumptions:
there is no linear relationship between independent and dependent variables.
error term is probably not normally distributed.
The Model¶
Instead of using the binary variable (purchased or not), we may consider purchasing probability \(p\) as dependent variable in a regression equation such as
\begin{align} p &= \beta_0 + \beta_1 \times \text{month} + \beta_2 \times \text{art_book} \end{align}
Although \(p\) is continuous, we still cannot run a linear regression on \(p\) because it is bounded in range \([0,1]\). In linear regression, the dependent variable should be able to take any value in range \([-\infty, +\infty]\).
We introduce odds and utility
\begin{align} \text{odds} &= \frac{p}{1-p} \nonumber \\ \text{utility} &= \log(\text{odds}) \nonumber \\ \end{align}
Note that utility is in \([-\infty, +\infty]\). Now a regression equation can be used
\begin{align} \text{utility} &= \beta_0 + \beta_1 \times \text{month} + \beta_2 \times \text{art_book} \end{align}
[7]:
p = np.linspace(0,1,100)
odds = p / (1-p)
utility = np.log(odds)
plt.subplots(1, 2, figsize=(12,5))
plt.subplot(1, 2, 1)
plt.plot(p, odds)
plt.xlabel('$p$')
plt.ylabel('odds')
plt.subplot(1, 2, 2)
plt.plot(p, utility)
plt.xlabel('$p$')
plt.ylabel('utility')
plt.show()
toggle()
[7]:
In practice, we can simply use a typical type of regression, logistic regression, with binary dependent variable. Statistical tools will perform all the transformation for us. In python, we can use either statmodels
which provides statistical summary or sklearn
package.
[8]:
from statsmodels.api import add_constant
from statsmodels.formula.api import Logit
X = add_constant(df_book_part1[['month','art_book']])
y = df_book_part1['purchased']
model = Logit(y, X)
model.fit().summary()
Optimization terminated successfully.
Current function value: 0.251705
Iterations 7
[8]:
| Dep. Variable: | purchased | No. Observations: | 999 |
|---|---|---|---|
| Model: | Logit | Df Residuals: | 996 |
| Method: | MLE | Df Model: | 2 |
| Date: | Mon, 29 Jul 2019 | Pseudo R-squ.: | 0.1206 |
| Time: | 20:41:18 | Log-Likelihood: | -251.45 |
| converged: | True | LL-Null: | -285.95 |
| LLR p-value: | 1.044e-15 |
| coef | std err | z | P>|z| | [0.025 | 0.975] | |
|---|---|---|---|---|---|---|
| const | -2.2262 | 0.239 | -9.316 | 0.000 | -2.695 | -1.758 |
| month | -0.0706 | 0.019 | -3.670 | 0.000 | -0.108 | -0.033 |
| art_book | 0.9888 | 0.135 | 7.343 | 0.000 | 0.725 | 1.253 |
The signs of the coefficients indicate whether the probability of purchasing the book increases or decreases when these variables increases. For example, the probability of purchasing the book decrease as month
increase (because of its minus sign) and increase as art_book
increase (because of its plus sign).
However, you have to use caution when interpreting the magnitudes of the coefficients. For example, the absolute value of coefficient of month
is smaller than art_book
because month
generally have larger values than art_book
.
The value \(\exp\)(coefficient) is more interpretable. For example, if art_book
increases 1, the odds of purchasing the book increase by a factor about \(\exp(0.9888)\). So, you should be on the lookout for values well above or below 1.
[9]:
from sklearn import linear_model
X = df_book_part1[['month','art_book']]
y = df_book_part1['purchased']
clf = linear_model.LogisticRegression(C=1e5, solver='lbfgs')
clf.fit(X, y)
print('intercept=', clf.intercept_, '\ncoefficient =', clf.coef_)
intercept= [-2.22621349]
coefficient = [[-0.07061966 0.98880806]]
Validation¶
After we have obtained \(\beta_0, \beta_1\) and \(\beta_2\), we can use equation \((2)\) for our validation data to evaluate its utility. Then, the probability can be derived by
\begin{align} p = \frac{\exp(\text{utility})}{1+\exp(\text{utility})} \nonumber \end{align}
[10]:
utility = np.linspace(-10,10,100)
p = np.exp(utility) / (1 + np.exp(utility))
plt.subplots(1, 1, figsize=(12,5))
plt.plot(utility, p)
plt.xlabel('utility')
plt.ylabel('$p$')
plt.show()
toggle()
[10]:
In general, our decision can be made based on a threshold value 0.5. That is, if the probability that a customer may purchase the book is greater than 0.5, we send a mail.
However, in the book club case, it has a simple break-even point where the cost-profit ratio is \(1/7\). Therefore, our strategy can be designed based on this ratio as follows. If the probability that a customer may purchase the book is greater than \(1/7\), we send a mail, otherwise we do not.
We prefer to use sklearn
because it provides capability to predict the probability directly.
[11]:
df_book_part2['purchase_prob'] = clf.predict_proba(df_book_part2[['month','art_book']])[:,1]
df_book_part2['send'] = df_book_part2['purchase_prob'] > 1/7
df_book_part2.head()
[11]:
| month | art_book | purchased | purchase_prob | send | |
|---|---|---|---|---|---|
| customer | |||||
| 1001 | 30 | 0 | 0 | 0.012808 | False |
| 1002 | 12 | 0 | 0 | 0.044207 | False |
| 1003 | 18 | 0 | 0 | 0.029387 | False |
| 1004 | 27 | 1 | 0 | 0.041323 | False |
| 1005 | 4 | 1 | 0 | 0.179479 | True |
[12]:
num_mail_send = df_book_part2[df_book_part2['send']].shape[0]
num_purchased = df_book_part2[df_book_part2['send'] & df_book_part2['purchased'] == 1].shape[0]
profit = num_purchased * 7 - num_mail_send
print('Based on our prediction model, we should send {} mails.'.format(num_mail_send))
print('We would expect receiving {} orders and our profit is ${}.'.format(num_purchased, profit))
toggle()
Based on our prediction model, we should send 128 mails.
We would expect receiving 38 orders and our profit is $138.
[12]:


NEWS.md
Suppress warnings when clValid::connectivity()
is called regarding comparison with more than one class. Since R-4.0.0, a matrix
object also inherits from class array
In algii_heatmap()
, the object ii
already has row names passed from columns which are named vectors (issue also identified in #148, thanks @romainfrancois)
The following steps were taken to minimize dependencies and ensure that diceR
can still run on R 3.5:
Removed cli
and RColorBrewer
from Imports
Moved apcluster
, blockcluster
, cluster
, dbscan
, e1071
, kernlab
, and kohonen
to Suggests
, use their specific clustering algorithms conditionally. mclust
needs to be in Imports
because mclust::mclustBIC()
needs to be imported
Moved sigclust
to Suggests
, use within sigclust()
conditionally
Moved progress
to Suggests
, use within consensus_cluster()
conditionally
Moved poLCA
to Suggests
, use within dice()
conditionally
Moved Rtsne
to Suggests
, use within prepare_data()
conditionally
Removed old dependency grDevices
from Imports
Set minimum version to R (>= 3.5) for klaR
dependency questionr
In ev_confmat()
, use yardstick::conf_mat()
instead of caret::confusionMatrix()
. caret
has many dependencies, so best to avoid using it
In graph_heatmap()
, use NMF::aheatmap()
instead of gplots::heatmap.2()
. gplots
depends on caTools
, which now relies on R (>= 3.6)
In consensus_cluster()
, use stringr::str_to_title()
instead of Hmisc::capitalize()
. Hmisc
depends on latticeExtra
, which now relies on R (>= 3.6)
In graph_delta_area()
, use base solution instead of flux::auc()
. flux
also depends on caTools
In prepare_data()
, use own implementation of quantable::robustscale()
with all of the former function’s defaults. quantable
also depends on caTools
Specify Bioconductor installation on Travis and AppVeyor since NMF
now Imports Biobase
Remove suppressWarnings(RNGversion("3.5.0"))
after updating R version
Run LCA()
unit test on imputed clustering object
Remove internal validity measures with any Inf
entries for consensus_reweigh()
Use a cleaner, more robust method of removing Rplots.pdf
after running test-graphs.R
Ensure column binding with purrr::map_dfc()
in consensus_rank()
Replaced dplyr::bind_cols()
with purrr::flatten_dfc()
to suppress warning “Outer names are only allowed for unnamed scalar” in get_cdf()
update roxygen and docs
Remove deprecated dplyr
functions and use .data
pronoun
k-means clustering should not support distance matrices as input (@jerryji1993, #139)
Add LCA as a consensus function (@philstraforelli, #137)
Fix length > 1 in coercion to logical
error in consensus_evaluate()
due to comparisons using ||
operator
Add suppressWarnings(RNGversion("3.5.0"))
before call to set.seed()
in examples, tests, and vignette to use old RNG sampling
Use .covrignore
to exclude zzz.R
from being considered in code coverage
Use dplyr
version >= 0.7.5 to ensure bind_rows()
works
Fixed bug where scaled matrix using the “robust” method in prepare_data()
was nested in the data
element (@AlineTalhouk, #134)
Add parameter hc.method
in dice
and consensus_cluster
to pass to method
parameter in stats::hclust
(@JakeNel28, #130)
Remove dependencies on largeVis
: package will be archived
Revert back to using NMF
since NNLM
has been archived and NMF
is back in active maintenance.
Choose fuzzifier m in cmeans
using Equation 5 from https://academic.oup.com/bioinformatics/article/26/22/2841/227572 (thanks @Asduveneck)
Replace all code that depended on NMF
with NNLM
and pheatmap
: CRAN notified that NMF
will be archived because of inactive maintenance
Update .yml
files default templates
Fix bug in consensus_cluster()
when custom algorithms were excluded from output (thanks @phiala)
Use markdown language for documentation
Various performance improvements and code simplifications
Suppress success/fail message printout and fix input data to be matrix for block clustering
Fix bug in algii_heatmap()
when k.method = "all"
in dice()
Fix bug in calculating internal indices when data has categorical variables (thanks Kurt Salmela)
Updated object output names in consensus_evaluate()
Fix unit test in test-dice.R
for R-devel
Add internal function: ranked algorithms vs internal validity indices heatmap graph
Fix bugs in graph_cdf()
, graph_tracking()
when only one k selected
Progress messages in dice()
Fix bug in consensus_evaluate()
when algorithm has NA
for all PAC values
New dimension reduction methods: t-SNE, largeVis (@dustin21)
Better annotated progress bar using progress
package
Speed up the operation that transforms a matrix to become “NMF-ready”
Simplify saving mechanism in consensus_cluster()
such that only file.name
needs to be specified, and the save
parameter has been removed
New algorithms: SOM, Fuzzy C-Means, DBSCAN (@dustin21, #118)
Added significance testing section to vignette
Fixed direction of optimization: compactness and connectivity should be minimized


KEYNOTE SPEECH
Keynote Speech -- Build or Buy: Evolving Enterprise Integration Models
Presented by Jim Schraith, Vice President & General Manager of North America for Compaq.
The answer to Enterprise Solutions of yesteryear was -- BUILD. Build the applications from scratch and maintain the code as long as you can to recover the development costs. The model of the past was based on building complex and costly business applications based on single-vendor solutions.
The model is changing. The answer to Enterprise Solutions of today and into the millenium is -- BUY. The new and evolving Enterprise Integration Model requires developing partnerships with stong industry vendors that understand and are committed to this new model. Off-the-shelf integration that provides cost-effective, highly scalable, fault tolerant solutions for mission-critical applications.
Jim Schraith will help you gain insight into the new industry dynamics of this decade. Understanding and adopting this new model can propel you to success as you design and implement technologies to support your changing business environment.
| Access Spring'97 HomePage | Schedule | About Access Spring'97 | Breakout Sessions | High-Availability Sessions | Partner Pavilion | Keynote Speech | Professional Workstation Presentation | Account Case Studies | The Access Lab | Microsoft Sponsor Night | Compaq Technical Product Training | Prize Drawing and Giveaway |
| |||||||||||||
|
Revised: 23 April 1997 |


|
|---|
| When the morning was come, all the chief priests and elders of the people took counsel against Jesus to put him to death:
|
|---|
| ᏑᎾᎴᏃ ᏄᎵᏍᏔᏅ, ᏂᎦᏛ ᏄᏂᎬᏫᏳᏒ ᎠᏥᎸ-ᎠᏁᎶᎯ ᎠᎴ ᏗᏂᎳᏫᎩ ᎠᏁᎲ ᎠᏫ ᎤᏂᏃᎮᎴ ᎢᏳᎾᏛᏁᏗᏱ ᏥᏌ ᎤᏂᎯᏍᏗᏱ.
|
|---|
Su-na-le-no nu-li-s-ta-nv, ni-ga-dv nu-ni-gv-wi-yu-sv a-tsi-lv--a-ne-lo-hi a-le di-ni-la-wi-gi a-ne-hv a-wi u-ni-no-he-le i-yu-na-dv-ne-di-yi Tsi-sa u-ni-hi-s-di-yi.
|
|---|
|
|---|
| And when they had bound him, they led him away, and delivered him to Pontius Pilate the governor.
|
|---|
| ᎿᎭᏉᏃ ᎤᎾᎸᎸ ᎤᏁᎵᏌᎾᏫᏛᎮᎢ, ᏆᏂᏛ ᏆᎴᏗ ᎤᎬᏫᏳᎯ ᏫᏚᏂᏲᎯᏎᎴᎢ.
|
|---|
Hna-quo-no u-na-lv-lv u-ne-li-sa-na-wi-dv-he-i, Qua-ni-dv Qua-le-di u-gv-wi-yu-hi wi-du-ni-yo-hi-se-le-i.
|
|---|
|
|---|
| Then Judas, which had betrayed him, when he saw that he was condemned, repented himself, and brought again the thirty pieces of silver to the chief priests and elders,
|
|---|
| ᎿᎭᏉᏃ ᏧᏓᏏ ᎾᏍᎩ ᎤᎶᏄᎮᎸᎯ ᎤᏙᎴᎰᏒ ᏓᎫᎪᏓᏁᎸᎢ ᎤᏁᏟᏴᏎ ᎤᏓᏅᏛᎢ, ᎠᎴ ᏄᏂᎬᏫᏳᏒ ᎠᏥᎸ-ᎠᏁᎶᎯ ᎠᎴ ᏧᎾᏛᏐᏅᎯ ᏙᎤᏲᎮᎴ ᏦᎠᏍᎪᎯ ᎠᏰᎵ-ᎠᏕᎸ ᏧᎾᎬᏩᎶᏗ,
|
|---|
Hna-quo-no Tsu-da-si na-s-gi u-lo-nu-he-lv-hi u-do-le-ho-sv da-gu-go-da-ne-lv-i u-ne-tli-yv-se u-da-nv-dv-i, a-le nu-ni-gv-wi-yu-sv a-tsi-lv--a-ne-lo-hi a-le tsu-na-dv-so-nv-hi do-u-yo-he-le tso-a-s-go-hi a-ye-li--a-de-lv tsu-na-gv-wa-lo-di,
|
|---|
|
|---|
| Saying, I have sinned in that I have betrayed the innocent blood. And they said, What is that to us? see thou to that.
|
|---|
| ᎯᎠ ᏄᏪᏎᎢ; ᏥᏍᎦᏅᎩ ᏄᏍᎦᏅᏨᎾ ᎩᎬ ᏥᎦᏡᏓ. ᎯᎠᏃ ᏄᏂᏪᏎᎢ; ᎦᏙ ᎾᏍᎩ ᎠᏴ ᎣᎬᏙᏗ? ᏨᏒ ᎾᏍᎩ ᏗᏣᎸᏫᏍᏓᏏ.
|
|---|
Hi-a nu-we-se-i; tsi-s-ga-nv-gi nu-s-ga-nv-tsv-na gi-gv tsi-ga-tlu-da. Hi-a-no nu-ni-we-se-i; Ga-do na-s-gi a-yv o-gv-do-di? Tsv-sv na-s-gi di-tsa-lv-wi-s-da-si.
|
|---|
|
|---|
| And he cast down the pieces of silver in the temple, and departed, and went and hanged himself.
|
|---|
| ᎠᎴ ᏚᏗᏅ ᎠᏕᎸ ᎾᎿᎭᏗᎦᎳᏫᎢᏍᏗᏱ, ᎠᎴ ᎤᏄᎪᏤᎢ, ᎠᎴ ᎢᏴᏛ ᏭᎶᏒ, ᎤᏩᏒ ᏭᏓᏛᏁᎢ.
|
|---|
A-le du-di-nv a-de-lv na-hna di-ga-la-wi-i-s-di-yi, a-le u-nu-go-tse-i, a-le i-yv-dv wu-lo-sv, u-wa-sv wu-da-dv-ne-i.
|
|---|
|
|---|
| And the chief priests took the silver pieces, and said, It is not lawful for to put them into the treasury, because it is the price of blood.
|
|---|
| ᏄᏂᎬᏫᏳᏒᏃ ᎠᏥᎸ-ᎠᏁᎶᎯ ᏚᏂᎩᏒ ᎠᏕᎸ ᎯᎠ ᏄᏂᏪᏎᎢ; ᎥᏝ ᏚᏳᎪᏛ ᏱᎦᎩ ᎠᏕᎸ-ᏗᏗᏱ ᏱᏗᏗᎲᏍᎦ, ᎩᎬᏰᏃ ᏧᎬᏩᎳᏅᎯ.
|
|---|
Nu-ni-gv-wi-yu-sv-no a-tsi-lv--a-ne-lo-hi du-ni-gi-sv a-de-lv hi-a nu-ni-we-se-i; v-tla du-yu-go-dv yi-ga-gi a-de-lv--di-di-yi yi-di-di-hv-s-ga, gi-gv-ye-no tsu-gv-wa-la-nv-hi.
|
|---|
|
|---|
| And they took counsel, and bought with them the potter's field, to bury strangers in.
|
|---|
| ᎤᏂᏃᎮᎸᏃ, ᎤᏂᏩᎯᏍᏔᏁ ᎥᏘ ᏗᎪᏢᏍᎩ ᎤᎶᎨᏒᎢ ᎾᎿᎭᎠᏁᏙᎯ ᏗᎨᏥᏂᏐᏗᏱ.
|
|---|
U-ni-no-he-lv-no, u-ni-wa-hi-s-ta-ne v-ti di-go-tlv-s-gi u-lo-ge-sv-i na-hna a-ne-do-hi di-ge-tsi-ni-so-di-yi.
|
|---|
|
|---|
| Wherefore that field was called, The field of blood, unto this day.
|
|---|
| ᎾᏍᎩ ᎢᏳᏍᏗ ᎾᏍᎩ ᏠᎨᏏ ᎩᎬ ᎤᎶᎨᏒ ᎠᏃᏎᎭ ᎪᎯ ᏥᎩ.
|
|---|
Na-s-gi i-yu-s-di na-s-gi tlo-ge-si gi-gv u-lo-ge-sv a-no-se-ha go-hi tsi-gi.
|
|---|
|
|---|
| Then was fulfilled that which was spoken by Jeremy the prophet, saying, And they took the thirty pieces of silver, the price of him that was valued, whom they of the children of Israel did value;
|
|---|
| ᎿᎭᏉᏃ ᎤᏙᎯᏳᏁ ᏧᏁᏤ ᏤᎵᎹᏯ ᎠᏙᎴᎰᏍᎩ, ᎯᎠ ᏥᏄᏪᏎᎢ; ᎠᎴ ᏚᏂᎩᏒᎩ ᏦᎠᏍᎪᎯ ᎠᏰᎵ-ᎠᏕᎸ ᎾᏍᎩ Ꮎ ᏧᎬᏩᏔᏅᎯ, ᎾᏍᎩ ᏣᏥᎬᏩᎶᏔᏅᎯ, ᎢᏏᎵ ᏧᏪᏥ ᏧᏂᎬᏩᎶᏔᏅᎯ,
|
|---|
Hna-quo-no u-do-hi-yu-ne tsu-ne-tse Tse-li-ma-ya a-do-le-ho-s-gi, hi-a tsi-nu-we-se-i; A-le du-ni-gi-sv-gi tso-a-s-go-hi a-ye-li--a-de-lv na-s-gi na tsu-gv-wa-ta-nv-hi, na-s-gi tsa-tsi-gv-wa-lo-ta-nv-hi, I-si-li tsu-we-tsi tsu-ni-gv-wa-lo-ta-nv-hi,
|
|---|
|
|---|
| And gave them for the potter's field, as the Lord appointed me.
|
|---|
| ᎠᎴ ᎤᏂᏩᎯᏍᏔᏅᎩ ᎥᏘ ᏗᎪᏢᏍᎩ ᎤᎶᎨᏒᎢ, ᎾᏍᎩᏯ ᏱᎰᏩ ᎠᏇᏲᏅᎢ.
|
|---|
A-le u-ni-wa-hi-s-ta-nv-gi v-ti di-go-tlv-s-gi u-lo-ge-sv-i, na-s-gi-ya Yi-ho-wa a-que-yo-nv-i.
|
|---|
|
|---|
| And Jesus stood before the governor: and the governor asked him, saying, Art thou the King of the Jews? And Jesus said unto him, Thou sayest.
|
|---|
| ᏥᏌᏃ ᎦᏙᎨ ᎢᎬᏱᏗᏢ ᎤᎬᏫᏳᎯ ᎤᏬᎸᎢ. ᎤᎬᏫᏳᎯᏃ ᎤᏛᏛᏁᎢ, ᎯᎠ ᏄᏪᏎᎢ; ᏂᎯᏍᎪ ᏣᎬᏫᏳᎯ ᎠᏂᏧᏏ ᎤᎾᏤᎵᎦ? ᏥᏌᏃ ᎯᎠ ᏄᏪᏎᎴᎢ; ᏰᎵᏂᏫ.
|
|---|
Tsi-sa-no ga-do-ge i-gv-yi-di-tlv u-gv-wi-yu-hi u-wo-lv-i. U-gv-wi-yu-hi-no u-dv-dv-ne-i, hi-a nu-we-se-i; ni-hi-s-go Tsa-gv-wi-yu-hi A-ni-tsu-si u-na-tse-li-ga? Tsi-sa-no hi-a nu-we-se-le-i; Ye-li-ni-wi.
|
|---|
|
|---|
| And when he was accused of the chief priests and elders, he answered nothing.
|
|---|
| ᏄᏂᎬᏫᏳᏒᏃ ᎠᏥᎸ-ᎠᏁᎶᎯ ᎠᎴ ᏗᏂᎳᏫᎩ ᎬᏩᏱᎵᏙᎸ ᎥᏝ ᏳᏁᏤᎢ.
|
|---|
Nu-ni-gv-wi-yu-sv-no a-tsi-lv--a-ne-lo-hi a-le di-ni-la-wi-gi gv-wa-yi-li-do-lv v-tla yu-ne-tse-i.
|
|---|
|
|---|
| Then said Pilate unto him, Hearest thou not how many things they witness against thee?
|
|---|
| ᎿᎭᏉᏃ ᏆᎴᏗ ᎯᎠ ᏄᏪᏎᎴᎢ; ᏝᏍᎪ ᏯᏛᎩᎭ ᏂᎦᎥ ᎬᏂᎨᏒ ᎾᏅᏁᎲ ᎠᏂᎦᏔᎯ ᎨᏣᏡᏗᏍᎬᎢ?
|
|---|
Hna-quo-no Qua-le-di hi-a nu-we-se-le-i; Tla-s-go ya-dv-gi-ha ni-ga-v gv-ni-ge-sv na-nv-ne-hv a-ni-ga-ta-hi ge-tsa-tlu-di-s-gv-i?
|
|---|
|
|---|
| And he answered him to never a word; insomuch that the governor marvelled greatly.
|
|---|
| ᎠᏎᏃ ᎥᏝ ᏌᏉᎤᏅ ᏱᏄᏁᏤᎢ, ᎾᏍᎩ ᎢᏳᏍᏗ ᎤᎬᏫᏳᎯ ᎤᏣᏘ ᎤᏍᏆᏂᎪᏎᎢ.
|
|---|
A-se-no v-tla sa-quo-u-nv yi-nu-ne-tse-i, na-s-gi i-yu-s-di u-gv-wi-yu-hi u-tsa-ti u-s-qua-ni-go-se-i.
|
|---|
|
|---|
| Now at that feast the governor was wont to release unto the people a prisoner, whom they would.
|
|---|
| ᏗᎵᏍᏓᏴᏗᏱᏃ ᎨᏒ ᎢᏳᎢ ᎤᎬᏫᏳᎯ ᏧᏲᎯᏎᏗ ᎨᏐ ᏌᏉ ᎠᏴᎩ, ᎯᎠᏉ ᎠᏁᎳ ᏴᏫ.
|
|---|
Di-li-s-da-yv-di-yi-no ge-sv i-yu-i u-gv-wi-yu-hi tsu-yo-hi-se-di ge-so sa-quo a-yv-gi, hi-a-quo a-ne-la yv-wi.
|
|---|
|
|---|
| And they had then a notable prisoner, called Barabbas.
|
|---|
| ᎾᎯᏳᏃ ᏗᎦᏃᏣᎵ ᎠᏴᎩ ᎤᏂᎧᎮ ᏆᎳᏆ ᏧᏙᎢᏛ.
|
|---|
Na-hi-yu-no di-ga-no-tsa-li a-yv-gi u-ni-ka-he Qua-la-qua tsu-do-i-dv.
|
|---|
|
|---|
| Therefore when they were gathered together, Pilate said unto them, Whom will ye that I release unto you? Barabbas, or Jesus which is called Christ?
|
|---|
| ᎾᏍᎩ ᎢᏳᏍᏗ ᎿᎭᏉ ᏚᏂᎳᏫᏨ ᏆᎴᏗ ᎯᎠ ᏂᏚᏪᏎᎴᎢ; ᎦᎪ ᎢᏣᏚᎵ ᏗᏨᏲᎯᏎᏗᏱ? ᏆᎳᏆᏍᎪ? ᏥᏌᎨ ᎦᎶᏁᏛ ᏣᏃᏎᎰᎢ?
|
|---|
Na-s-gi i-yu-s-di hna-quo du-ni-la-wi-tsv Qua-le-di hi-a ni-du-we-se-le-i; Ga-go i-tsa-du-li di-tsv-yo-hi-se-di-yi? Qua-la-qua-s-go? Tsi-sa-ge Ga-lo-ne-dv tsa-no-se-ho-i?
|
|---|
|
|---|
| For he knew that for envy they had delivered him.
|
|---|
| ᎠᎦᏔᎮᏰᏃ ᎠᏅᏳᎬᏉ ᏅᏗᎦᎵᏍᏙᏗᏍᎬ ᏚᏂᏲᏒᎢ.
|
|---|
A-ga-ta-he-ye-no a-nv-yu-gv-quo nv-di-ga-li-s-do-di-s-gv du-ni-yo-sv-i.
|
|---|
|
|---|
| When he was set down on the judgment seat, his wife sent unto him, saying, Have thou nothing to do with that just man: for I have suffered many things this day in a dream because of him.
|
|---|
| ᎤᏬᎸᏃ ᏗᎫᎪᏙᏗᏱ ᎦᏍᎩᎸᎢ ᎤᏓᎵᎢ ᏧᏓᏅᏎᎢ, ᎯᎠ ᏅᏧᏪᏎᎴᎢ; ᏞᏍᏗ ᏂᎯ ᎪᎱᏍᏗ Ꮎ ᎾᏍᎦᏅᎾ ᎠᏍᎦᏯ ᎤᎬᏩᎵ ᏱᏗᏣᎸᏫᏍᏓᏁᎴᏍᏗ, ᎤᏣᏘᏰᏃ ᏥᎩᎵᏲᎩ ᎪᎯ ᎢᎦ ᎦᏍᎩᏓᏍᎬᎢ ᎾᏍᎩ ᏅᏗᎦᎵᏍᏙᏗᏍᎬᎢ.
|
|---|
U-wo-lv-no di-gu-go-do-di-yi ga-s-gi-lv-i u-da-li-i tsu-da-nv-se-i, hi-a nv-tsu-we-se-le-i; Tle-s-di ni-hi go-hu-s-di na na-s-ga-nv-na a-s-ga-ya u-gv-wa-li yi-di-tsa-lv-wi-s-da-ne-le-s-di, u-tsa-ti-ye-no tsi-gi-li-yo-gi go-hi i-ga ga-s-gi-da-s-gv-i na-s-gi nv-di-ga-li-s-do-di-s-gv-i.
|
|---|
|
|---|
| But the chief priests and elders persuaded the multitude that they should ask Barabbas, and destroy Jesus.
|
|---|
| ᎠᏎᏃ ᏄᏂᎬᏫᏳᏒ ᎠᏥᎸ-ᎠᏁᎶᎯ ᎠᎴ ᏗᏂᎳᏫᎩ ᏚᏂᏍᏗᏰᏔᏁ ᎤᏂᏣᏘ ᎨᏒ ᏆᎳᏆ ᎤᏂᏔᏲᏎᏗᏱ, ᏥᏌᏃ ᎤᏂᎯᏍᏗᏱ.
|
|---|
A-se-no nu-ni-gv-wi-yu-sv a-tsi-lv--a-ne-lo-hi a-le di-ni-la-wi-gi du-ni-s-di-ye-ta-ne u-ni-tsa-ti ge-sv Qua-la-qua u-ni-ta-yo-se-di-yi, Tsi-sa-no u-ni-hi-s-di-yi.
|
|---|
|
|---|
| The governor answered and said unto them, Whether of the twain will ye that I release unto you? They said, Barabbas.
|
|---|
| ᎤᎬᏫᏳᎯᏃ ᎤᏁᏨ ᎯᎠ ᏂᏚᏪᏎᎴᎢ; ᎦᎪ ᎯᎠ ᎠᏂᏔᎵ ᎨᏒ ᎢᏣᏚᎵ ᏗᏨᏲᎯᏎᏗᏱ? ᏆᎳᏆ, ᎤᎾᏛᏁᎢ.
|
|---|
U-gv-wi-yu-hi-no u-ne-tsv hi-a ni-du-we-se-le-i; Ga-go hi-a a-ni-ta-li ge-sv i-tsa-du-li di-tsv-yo-hi-se-di-yi? Qua-la-qua, u-na-dv-ne-i.
|
|---|
|
|---|
| Pilate saith unto them, What shall I do then with Jesus which is called Christ? They all say unto him, Let him be crucified.
|
|---|
| ᏆᎴᏗ ᎯᎠ ᏂᏚᏪᏎᎴᎢ; ᎦᏙᏃ ᏓᏥᏴᏁᎵ ᏥᏌ, ᎦᎶᏁᏛ ᏣᏃᏎᎰᎢ? ᏩᎦᏛᎥᎦ, ᎬᏬᏎᎴ ᏂᎦᏛ.
|
|---|
Qua-le-di hi-a ni-du-we-se-le-i; Ga-do-no da-tsi-yv-ne-li Tsi-sa, Ga-lo-ne-dv tsa-no-se-ho-i? Wa-ga-dv-v-ga, gv-wo-se-le ni-ga-dv.
|
|---|
|
|---|
| And the governor said, Why, what evil hath he done? But they cried out the more, saying, Let him be crucified.
|
|---|
| ᎤᎬᏫᏳᎯᏃ ᎯᎠ ᏄᏪᏎᎢ; ᎦᏙᏃ, ᎦᏙ ᎤᏛᏁᎸ ᎤᏍᎦᏅᏨ? ᎠᏎᏃ ᎤᏟᏉ ᏂᎦᎡ ᎤᏁᎷᏁᎢ, ᏩᎦᏛᎥᎦ, ᎠᎾᏗᏍᎬᎢ.
|
|---|
U-gv-wi-yu-hi-no hi-a nu-we-se-i; Ga-do-no, ga-do u-dv-ne-lv u-s-ga-nv-tsv? A-se-no u-tli-quo ni-ga-e u-ne-lu-ne-i, wa-ga-dv-v-ga, a-na-di-s-gv-i.
|
|---|
|
|---|
| When Pilate saw that he could prevail nothing, but that rather a tumult was made, he took water, and washed his hands before the multitude, saying, I am innocent of the blood of this just person: see ye to it.
|
|---|
| ᏆᎴᏗ ᎤᏙᎴᎰᏒ ᏗᎬᏩᏎᎪᎩᏍᏗ ᏂᎨᏒᎾ ᎨᏒᎢ, ᎠᎴ ᎤᎾᏓᏑᏰᏛ ᎤᎾᎵᏔᎸᏅᎩ, ᎠᎹ ᏬᏁᎩᏎᎢ, ᎠᎴ ᏚᏑᎴᎮ ᎤᏂᏣᏘ ᎠᏂᎦᏔᎲᎢ, ᎯᎠ ᏄᏪᏎᎢ; ᎠᏴ ᎥᏝ ᎠᎩᏍᎦᏅᏨᎯ ᏱᎩ ᎯᎠ ᏄᏍᎦᏅᏨᎾ ᏴᏫ ᎤᎩᎬ. ᏂᎯ ᎢᏣᎦᏌᏯᏍᏓ.
|
|---|
Qua-le-di u-do-le-ho-sv di-gv-wa-se-go-gi-s-di ni-ge-sv-na ge-sv-i, a-le u-na-da-su-ye-dv u-na-li-ta-lv-nv-gi, a-ma wo-ne-gi-se-i, a-le du-su-le-he u-ni-tsa-ti a-ni-ga-ta-hv-i, hi-a nu-we-se-i; A-yv v-tla a-gi-s-ga-nv-tsv-hi yi-gi hi-a nu-s-ga-nv-tsv-na yv-wi u-gi-gv. Ni-hi i-tsa-ga-sa-ya-s-da.
|
|---|
|
|---|
| Then answered all the people, and said, His blood be on us, and on our children.
|
|---|
| ᏂᎦᏛᏃ ᏴᏫ ᎤᏂᏁᏤᎢ, ᎯᎠ ᏄᏂᏪᏎᎢ; ᎤᎩᎬ ᎠᏴ ᎠᎴ ᏦᎨᏥ ᎣᎩᏅᎦᎴᏍᏗ.
|
|---|
Ni-ga-dv-no yv-wi u-ni-ne-tse-i, hi-a nu-ni-we-se-i; U-gi-gv a-yv a-le tso-ge-tsi o-gi-nv-ga-le-s-di.
|
|---|
|
|---|
| Then released he Barabbas unto them: and when he had scourged Jesus, he delivered him to be crucified.
|
|---|
| ᎿᎭᏉᏃ ᏆᎳᏆ ᏕᎤᏲᎯᏎᎴᎢ; ᎤᎵᎥᏃᏅᏃ ᏥᏌ ᏚᏲᏎ ᎠᎦᏛᏗᏱ.
|
|---|
Hna-quo-no Qua-la-qua de-u-yo-hi-se-le-i; u-li-v-no-nv-no Tsi-sa du-yo-se a-ga-dv-di-yi.
|
|---|
|
|---|
| Then the soldiers of the governor took Jesus into the common hall, and gathered unto him the whole band of soldiers.
|
|---|
| ᎿᎭᏉᏃ ᎠᏂᏯᏫᏍᎩ ᎤᎬᏫᏳᎯ ᏧᏤᎵᎦ ᎤᎬᏫᏳᎯ ᎦᏁᎸ ᎤᏂᏴᏔᏁ ᏥᏌ, ᎠᎴ ᎾᎿᎭᏕᎬᏩᏚᏫᏍᏔᏁ ᏂᎦᏛ ᏑᎾᏓᏡᎩ ᎠᏂᏯᏫᏍᎩ.
|
|---|
Hna-quo-no a-ni-ya-wi-s-gi u-gv-wi-yu-hi tsu-tse-li-ga u-gv-wi-yu-hi ga-ne-lv u-ni-yv-ta-ne Tsi-sa, a-le na-hna de-gv-wa-du-wi-s-ta-ne ni-ga-dv su-na-da-tlu-gi a-ni-ya-wi-s-gi.
|
|---|
|
|---|
| And they stripped him, and put on him a scarlet robe.
|
|---|
| ᏚᏂᏄᏪᏒᏃ, ᎩᎦᎨ ᎦᏌᎴᎾ ᎤᏂᏄᏬᎡᎢ.
|
|---|
Du-ni-nu-we-sv-no, gi-ga-ge ga-sa-le-na u-ni-nu-wo-e-i.
|
|---|
|
|---|
| And when they had platted a crown of thorns, they put it upon his head, and a reed in his right hand: and they bowed the knee before him, and mocked him, saying, Hail, King of the Jews!
|
|---|
| ᎠᎴ ᎤᏂᏍᏕᏲᏅ ᎠᎵᏍᏚᎶ ᏧᏣᏲᏍᏗ ᎪᏢᏔᏅᎯ, ᎤᏂᏍᏚᎳᏁᎢ, ᎠᎴ ᎦᎾᏍᏓ ᎠᎦᏘᏏ ᎢᏗᏢ ᎤᎾᏒᎦᎳᏗᏍᏔᏁᎢ; ᎠᎴ ᏓᎾᎵᏂᏆᏅᏁᎮ ᎠᎴ ᎠᎾᏕᎰᏗᏍᎨᎢ, ᎯᎠ ᎾᏂᏪᏍᎨᎢ; ᎢᏨᏲᎵᎦ, ᏣᎬᏫᏳᎯ ᎠᏂᏧᏏ ᎤᎾᏤᎵᎦ.
|
|---|
A-le u-ni-s-de-yo-nv a-li-s-du-lo tsu-tsa-yo-s-di go-tlv-ta-nv-hi, u-ni-s-du-la-ne-i, a-le ga-na-s-da a-ga-ti-si i-di-tlv u-na-sv-ga-la-di-s-ta-ne-i; a-le da-na-li-ni-qua-nv-ne-he a-le a-na-de-ho-di-s-ge-i, hi-a na-ni-we-s-ge-i; I-tsv-yo-li-ga, Tsa-gv-wi-yu-hi A-ni-tsu-si u-na-tse-li-ga.
|
|---|
|
|---|
| And they spit upon him, and took the reed, and smote him on the head.
|
|---|
| ᏚᎾᎵᏥᏇᏃ ᎠᎴ ᎤᏂᏴᎡᎴ ᎦᎾᏍᏓ ᎠᎴ ᎤᏂᏍᏆᎸᏂᏍᏔᏁᎢ.
|
|---|
Du-na-li-tsi-que-no a-le u-ni-yv-e-le ga-na-s-da a-le u-ni-s-qua-lv-ni-s-ta-ne-i.
|
|---|
|
|---|
| And after that they had mocked him, they took the robe off from him, and put his own raiment on him, and led him away to crucify him.
|
|---|
| ᎤᎾᏕᎰᏔᏃᏅᏃ ᎤᏂᏄᏪᏎ ᎦᏌᎴᎾ, ᎠᎴ ᎤᏩᏒ ᏧᏄᏪ ᏚᏂᏄᏬᎡᎢ; ᎠᎴ ᎤᎾᏛᏗᏱ ᏭᎾᏘᏅᏍᏔᏁᎢ.
|
|---|
U-na-de-ho-ta-no-nv-no u-ni-nu-we-se ga-sa-le-na, a-le u-wa-sv tsu-nu-we du-ni-nu-wo-e-i; a-le u-na-dv-di-yi wu-na-ti-nv-s-ta-ne-i.
|
|---|
|
|---|
| And as they came out, they found a man of Cyrene, Simon by name: him they compelled to bear his cross.
|
|---|
| ᎤᏂᏄᎪᏨᏃ ᎤᏂᏩᏛᎮ ᎠᏍᎦᏯ ᏌᎵᏂ ᎡᎯ ᏌᏩᏂ ᏧᏙᎢᏛ; ᎾᏍᎩ ᎬᏍᎦᎢᏍᏓᎩ ᏄᏅᏁᎴ ᎤᏪᏅᏍᏗᏱ ᏧᏓᎿᎭᏩᏛ.
|
|---|
U-ni-nu-go-tsv-no u-ni-wa-dv-he a-s-ga-ya Sa-li-ni e-hi Sa-wa-ni tsu-do-i-dv; na-s-gi gv-s-ga-i-s-da-gi nu-nv-ne-le u-we-nv-s-di-yi tsu-da-hna-wa-dv.
|
|---|
|
|---|
| And when they were come unto a place called Golgotha, that is to say, a place of a skull,
|
|---|
| ᏭᏂᎷᏨᏃ ᎪᎵᎦᏓ ᏚᏙᎥᎢ, ᎾᏍᎩ ᎤᏍᏆᎷᎪᎢ ᏥᎦᏛᎦ,
|
|---|
Wu-ni-lu-tsv-no Go-li-ga-da du-do-v-i, na-s-gi u-s-qua-lu-go-i tsi-ga-dv-ga,
|
|---|
|
|---|
| They gave him vinegar to drink mingled with gall: and when he had tasted thereof, he would not drink.
|
|---|
| ᏧᏂᏦᏯᏍᏗ ᎤᏗᏔᏍᏗ ᎠᏓᎦ ᎠᏑᏱ ᎤᏂᏁᏁᎴᎢ, ᎤᏁᎸᏔᏅᏃ ᎥᏝ ᏳᏚᎸᎮ ᎤᏗᏔᏍᏗᏱ.
|
|---|
Tsu-ni-tso-ya-s-di u-di-ta-s-di a-da-ga a-su-yi u-ni-ne-ne-le-i, u-ne-lv-ta-nv-no v-tla yu-du-lv-he u-di-ta-s-di-yi.
|
|---|
|
|---|
| And they crucified him, and parted his garments, casting lots: that it might be fulfilled which was spoken by the prophet, They parted my garments among them, and upon my vesture did they cast lots.
|
|---|
| ᎤᎾᏛᏁᏃ ᎠᎴ ᏚᏂᏯᏙᎴ ᏧᏄᏬ ᎠᎾᏌᏍᏗᏍᎨᎢ; ᎾᏍᎩᏃ ᎤᏙᎯᏳᏁ ᎠᏙᎴᎰᏍᎩ ᏧᏁᏤᎢ, ᎯᎠ ᏥᏄᏪᏎᎢ; ᏗᏆᏄᏬ ᏚᏂᏯᏙᎸᎩ, ᎠᎴ ᎠᏆᏄᏬ ᎤᎾᏌᏍᏔᏅᎩ.
|
|---|
U-na-dv-ne-no a-le du-ni-ya-do-le tsu-nu-wo a-na-sa-s-di-s-ge-i; na-s-gi-no u-do-hi-yu-ne a-do-le-ho-s-gi tsu-ne-tse-i, hi-a tsi-nu-we-se-i; Di-qua-nu-wo du-ni-ya-do-lv-gi, a-le a-qua-nu-wo u-na-sa-s-ta-nv-gi.
|
|---|
|
|---|
| And sitting down they watched him there;
|
|---|
| ᎤᎾᏅᏁᏃ ᎠᎴ ᎤᏂᏯᏫᏎ.
|
|---|
U-na-nv-ne-no a-le u-ni-ya-wi-se.
|
|---|
|
|---|
| And set up over his head his accusation written, THIS IS JESUS THE KING OF THE JEWS.
|
|---|
| ᎤᏂᏯᎸᏁᏃ ᎦᎸᎳᏗᏢ ᎤᎵᏍᏓᏛᎢ ᎢᏳᏍᏗ ᎨᏒ ᎤᎵᏱᎵᏕᎲᎢ, ᎯᎠ ᏂᎬᏁ ᎪᏪᎴᎢ; ᎯᎠᏲ ᏥᏌ ᎤᎬᏫᏳᎯ ᎠᏂᏧᏏ ᎤᎾᏤᎵᎦ.
|
|---|
U-ni-ya-lv-ne-no ga-lv-la-di-tlv u-li-s-da-dv-i i-yu-s-di ge-sv u-li-yi-li-de-hv-i, hi-a ni-gv-ne go-we-le-i; Hi-A-Yo Tsi-Sa U-Gv-Wi-Yu-Hi A-Ni-Tsu-Si U-Na-Tse-Li-Ga.
|
|---|
|
|---|
| Then were there two thieves crucified with him, one on the right hand, and another on the left.
|
|---|
| ᎾᏍᏉᏃ ᎢᏧᎳᎭ ᏕᎨᎦᏛᏁ ᎠᏂᏔᎵ ᎠᏂᏃᏍᎩᏍᎩ, ᏌᏉ ᎠᎦᏘᏏ ᎢᏗᏢ, ᏐᎢᏃ ᎠᎦᏍᎦᏂ ᎢᏗᏢ.
|
|---|
Na-s-quo-no i-tsu-la-ha de-ge-ga-dv-ne a-ni-ta-li a-ni-no-s-gi-s-gi, sa-quo a-ga-ti-si i-di-tlv, so-i-no a-ga-s-ga-ni i-di-tlv.
|
|---|
|
|---|
| And they that passed by reviled him, wagging their heads,
|
|---|
| ᎾᎥᏃ ᎠᏂᎶᏍᎩ ᎦᎬᏩᏐᏢᏕᎢ, ᎠᎴ ᏓᎾᎵᏍᏛᏁᎮᎢ,
|
|---|
Na-v-no a-ni-lo-s-gi ga-gv-wa-so-tlv-de-i, a-le da-na-li-s-dv-ne-he-i,
|
|---|
|
|---|
| And saying, Thou that destroyest the temple, and buildest it in three days, save thyself. If thou be the Son of God, come down from the cross.
|
|---|
| ᎯᎠ ᎾᏂᏪᏍᎨᎢ; ᎤᏛᎾ-ᏗᎦᎳᏫᎢᏍᏗᏱ ᎯᏲᏍᏗᏍᎩ, ᏦᎢᏉᏃ ᎢᎦ ᎯᏰᎢᎵᏙᎯ ᎭᏁᏍᎨᏍᎩ, ᎭᎵᏍᏕᎸ ᏨᏒ; ᎢᏳᏃ ᏂᎯ ᎤᏁᎳᏅᎯ ᎤᏪᏥ ᎨᏎᏍᏗ, ᏓᏓᎿᎭᏩᏍᏛ ᎡᎭᏠᎠᎯ.
|
|---|
Hi-a na-ni-we-s-ge-i; u-dv-na--di-ga-la-wi-i-s-di-yi hi-yo-s-di-s-gi, tso-i-quo-no i-ga hi-ye-i-li-do-hi ha-ne-s-ge-s-gi, ha-li-s-de-lv tsv-sv; i-yu-no ni-hi U-ne-la-nv-hi U-we-tsi ge-se-s-di, da-da-hna-wa-s-dv e-ha-tlo-a-hi.
|
|---|
|
|---|
| Likewise also the chief priests mocking him, with the scribes and elders, said,
|
|---|
| ᎾᏍᏉᏃ ᏄᏂᎬᏫᏳᏒ ᎠᏥᎸᎠᏁᎶᎯ ᎠᎴ ᏗᏃᏪᎵᏍᎩ ᎠᎴ ᏗᏂᎳᏫᎩ ᎠᏂᏰᎵᏍᎬᎢ ᎯᎠ ᎾᏂᏪᏍᎨᎢ;
|
|---|
Na-s-quo-no nu-ni-gv-wi-yu-sv a-tsi-lv-a-ne-lo-hi a-le di-no-we-li-s-gi a-le di-ni-la-wi-gi a-ni-ye-li-s-gv-i hi-a na-ni-we-s-ge-i;
|
|---|
|
|---|
| He saved others; himself he cannot save. If he be the King of Israel, let him now come down from the cross, and we will believe him.
|
|---|
| ᎠᏂᏐᎢ ᏓᏍᏕᎵᏍᎬᎩ, ᎤᏩᏒᏍᎩᏂ ᎥᏝ ᏴᎬᎵᏍᏕᎸ. ᎢᏳᏃ ᎤᎬᏫᏳᎯ ᎢᏏᎵ ᎤᎾᏤᎵ ᎨᏎᏍᏗ, ᎿᎭᏉ ᏓᏓᎿᎭᏩᏍᏛ ᎡᎠᏠᎠᎯ, ᎩᎳᏃ ᏓᏰᏙᎢᏳᏂ.
|
|---|
A-ni-so-i da-s-de-li-s-gv-gi, u-wa-sv-s-gi-ni v-tla yv-gv-li-s-de-lv. I-yu-no U-gv-wi-yu-hi I-si-li u-na-tse-li ge-se-s-di, hna-quo da-da-hna-wa-s-dv e-a-tlo-a-hi, gi-la-no da-ye-do-i-yu-ni.
|
|---|
|
|---|
| He trusted in God; let him deliver him now, if he will have him: for he said, I am the Son of God.
|
|---|
| ᎤᏁᎳᏅᎯ ᎤᎵᏍᎦᏍᏙᏛᎩ; ᎿᎭᏉ ᏭᏍᏕᎸ ᎢᏳᏃ ᎤᎸᏉᏕᏍᏗ; ᎯᎠᏰᏃ ᏥᏂᎦᏪᏍᎬᎩ, ᎤᏁᎳᏅᎯ ᎡᏙᏓ.
|
|---|
U-ne-la-nv-hi u-li-s-ga-s-do-dv-gi; hna-quo wu-s-de-lv i-yu-no u-lv-quo-de-s-di; hi-a-ye-no tsi-ni-ga-we-s-gv-gi, U-ne-la-nv-hi E-do-da.
|
|---|
|
|---|
| The thieves also, which were crucified with him, cast the same in his teeth.
|
|---|
| ᎠᏂᏃᏍᎩᏍᎩᏃ ᎾᏍᎩ ᎢᏧᎳᎭ ᏗᎨᎦᏛᏅᎯ ᎾᏍᏉ ᎦᎬᏩᏐᏢᏕᎢ.
|
|---|
A-ni-no-s-gi-s-gi-no na-s-gi i-tsu-la-ha di-ge-ga-dv-nv-hi na-s-quo ga-gv-wa-so-tlv-de-i.
|
|---|
|
|---|
| Now from the sixth hour there was darkness over all the land unto the ninth hour.
|
|---|
| ᎿᎭᏉᏃ ᎢᎦ ᎤᏓᎴᏅᏛ ᏦᎢᏁ ᎢᏳᏟᎶᏛ ᎧᎳᏩᏗᏒ ᎢᏯᏍᏘ ᎤᏒᎯᏰᏱ ᎢᏗᏢ ᎤᎵᏏᎲᏒᎩ ᏂᎬ ᎾᏍᎩ ᎦᏙᎯ.
|
|---|
Hna-quo-no i-ga u-da-le-nv-dv tso-i-ne i-yu-tli-lo-dv ka-la-wa-di-sv i-ya-s-ti u-sv-hi-ye-yi i-di-tlv u-li-si-hv-sv-gi ni-gv na-s-gi ga-do-hi.
|
|---|
|
|---|
| And about the ninth hour Jesus cried with a loud voice, saying, Eli, Eli, lama sabachthani? that is to say, My God, my God, why hast thou forsaken me?
|
|---|
| ᏦᎢᏁᏃ ᎢᏳᏟᎶᏛ ᎢᏴ ᎧᏔᏩᏗᏒ ᎤᏒᎯᏰᏱ ᎢᏗᏢ ᏥᏌ ᎤᏁᏤ ᎠᏍᏓᏯ, ᎯᎠ ᏄᏪᏎᎢ; ᎢᎳ, ᎢᎳ, ᎳᎹ ᏌᏆᏓᏂ? ᎾᏍᎩ ᎯᎠ ᏄᏍᏗ ᎦᏛᎬᎢ, ᎤᏁᎳᏅᎯ ᎠᏆᏤᎵᎦ, ᎤᏁᎳᏅᎯ ᎠᏆᏤᎵᎦ, ᎦᏙᏃ ᎢᏍᏋᏕᏨᏉ?
|
|---|
Tso-i-ne-no i-yu-tli-lo-dv i-yv ka-ta-wa-di-sv u-sv-hi-ye-yi i-di-tlv Tsi-sa u-ne-tse a-s-da-ya, hi-a nu-we-se-i; I-la, I-la, la-ma sa-qua-da-ni? Na-s-gi hi-a nu-s-di ga-dv-gv-i, U-ne-la-nv-hi a-qua-tse-li-ga, U-ne-la-nv-hi a-qua-tse-li-ga, ga-do-no i-s-quv-de-tsv-quo?
|
|---|
|
|---|
| Some of them that stood there, when they heard that, said, This man calleth for Elias.
|
|---|
| ᎢᎦᏛᏃ ᎾᎿᎭᎠᏂᏙᎾᎢ ᎾᏍᎩ ᎤᎾᏛᎦᏅ, ᎢᎳᏯ ᎠᏯᏂᎭ ᎯᎠ, ᎤᎾᏛᏁᎢ.
|
|---|
I-ga-dv-no na-hna a-ni-do-na-i na-s-gi u-na-dv-ga-nv, I-la-ya a-ya-ni-ha hi-a, u-na-dv-ne-i.
|
|---|
|
|---|
| And straightway one of them ran, and took a spunge, and filled it with vinegar, and put it on a reed, and gave him to drink.
|
|---|
| ᎩᎳᏉᏃ ᎢᏴᏛ ᎠᏏᏴᏫ ᏚᏍᏆᎸᏔᏁᎢ, ᎠᎴ ᏭᏁᏎ ᏚᏬᎵ, ᎠᎴ ᏧᏂᏦᏯᏍᏗ ᎤᎧᎵᎢᏍᏔᏁᎢ, ᎦᎾᏍᏙᎯᏃ ᎤᏪᏆᏙᏔᏅ ᏭᏅᏁᎴ ᎾᏍᎩ ᎤᏗᏔᏍᏗ.
|
|---|
Gi-la-quo-no i-yv-dv a-si-yv-wi du-s-qua-lv-ta-ne-i, a-le wu-ne-se du-wo-li, a-le tsu-ni-tso-ya-s-di u-ka-li-i-s-ta-ne-i, ga-na-s-do-hi-no u-we-qua-do-ta-nv wu-nv-ne-le na-s-gi u-di-ta-s-di.
|
|---|
|
|---|
| The rest said, Let be, let us see whether Elias will come to save him.
|
|---|
| ᎢᎦᏛᏃ ᎯᎠ ᏄᏂᏪᏎᎢ; ᎤᏁᎳᎩ, ᎢᏓᏙᎴᎰᎯ, ᏥᎪᏃ ᎢᎳᏯ ᏓᎦᎷᏥ ᏓᏳᏍᏕᎸᎯᎵ.
|
|---|
I-ga-dv-no hi-a nu-ni-we-se-i; U-ne-la-gi, i-da-do-le-ho-hi, tsi-go-no I-la-ya da-ga-lu-tsi da-yu-s-de-lv-hi-li.
|
|---|
|
|---|
| Jesus, when he had cried again with a loud voice, yielded up the ghost.
|
|---|
| ᏥᏌᏃ ᏔᎵᏁ ᎠᏍᏓᏯ ᎤᏁᏨ ᏕᎤᏲᏎ ᎤᏓᏅᏙ.
|
|---|
Tsi-sa-no ta-li-ne a-s-da-ya u-ne-tsv de-u-yo-se u-da-nv-do.
|
|---|
|
|---|
| And, behold, the veil of the temple was rent in twain from the top to the bottom; and the earth did quake, and the rocks rent;
|
|---|
| ᎬᏂᏳᏉᏃ ᎠᏄᏬ ᎠᏰᏙᎳᏛ ᎤᏛᎾ-ᏗᎦᎳᏫᎢᏍᏗᏱ ᏚᎵᏍᏡᏰᎢ, ᎦᎸᎳᏗ ᏧᎴᏅᎮ ᎡᎳᏗ ᏭᏍᏆᏗᏍᏔᏁᎢ; ᎠᎴ ᎦᏙᎯ ᎤᎵᏖᎸᏁᎢ, ᎠᎴ ᏅᏯ ᏚᎾᎵᏍᏡᏰᎢ.
|
|---|
Gv-ni-yu-quo-no a-nu-wo a-ye-do-la-dv u-dv-na--di-ga-la-wi-i-s-di-yi du-li-s-tlu-ye-i, ga-lv-la-di tsu-le-nv-he e-la-di wu-s-qua-di-s-ta-ne-i; a-le ga-do-hi u-li-te-lv-ne-i, a-le nv-ya du-na-li-s-tlu-ye-i.
|
|---|
|
|---|
| And the graves were opened; and many bodies of the saints which slept arose,
|
|---|
| ᏓᏤᎵᏍᏛᏃ ᏚᎵᏍᏚᎢᏎᎢ, ᎠᎴ ᎤᏂᏣᏘ ᎤᎾᏓᏅᏘ ᎤᏂᎵᏅᏨᎯ ᎤᎾᏗᏓᏁᏎᎢ,
|
|---|
Da-tse-li-s-dv-no du-li-s-du-i-se-i, a-le u-ni-tsa-ti u-na-da-nv-ti u-ni-li-nv-tsv-hi u-na-di-da-ne-se-i,
|
|---|
|
|---|
| And came out of the graves after his resurrection, and went into the holy city, and appeared unto many.
|
|---|
| ᎠᎴ ᏓᏤᎵᏍᏛ ᏚᏂᏄᎪᏤ ᏧᎴᏅᎯ ᏂᎨᏎᎢ, ᎠᎴ ᎦᎸᏉᏗᏳ ᎦᏚᎲ ᎤᏂᏴᎴᎢ, ᎠᎴ ᎤᏂᏣᏖ ᎬᏂᎨᏒ ᏂᏚᎾᏛᏁᎴᎢ.
|
|---|
A-le da-tse-li-s-dv du-ni-nu-go-tse tsu-le-nv-hi ni-ge-se-i, a-le ga-lv-quo-di-yu ga-du-hv u-ni-yv-le-i, a-le u-ni-tsa-te gv-ni-ge-sv ni-du-na-dv-ne-le-i.
|
|---|
|
|---|
| Now when the centurion, and they that were with him, watching Jesus, saw the earthquake, and those things that were done, they feared greatly, saying, Truly this was the Son of God.
|
|---|
| ᎿᎭᏉᏃ ᎠᏍᎪᎯᏧᏈ ᏗᏓᏘᏂᏙᎯ ᎠᎴ ᎾᏍᎩ Ꮎ ᎢᏧᎳᎭ ᏥᏌ ᎬᏩᏯᏫᏍᎩ, ᎤᎾᏙᎴᎰᏒ ᎦᏙᎯ ᎠᎵᏖᎸᎲᏍᎬᎢ, ᎠᎴ ᎾᏍᎩ ᏄᎵᏍᏔᏂᏙᎸᎢ, ᎤᏣᏖ ᎤᏂᏍᎦᎴᎢ, ᎯᎠ ᏄᏂᏪᏎᎢ; ᎤᏙᎯᏳᎯᏯ ᎤᏁᎳᏅᎯ ᎤᏪᏥ ᎨᏎ ᎯᎠ.
|
|---|
Hna-quo-no a-s-go-hi-tsu-qui di-da-ti-ni-do-hi a-le na-s-gi na i-tsu-la-ha Tsi-sa gv-wa-ya-wi-s-gi, u-na-do-le-ho-sv ga-do-hi a-li-te-lv-hv-s-gv-i, a-le na-s-gi nu-li-s-ta-ni-do-lv-i, u-tsa-te u-ni-s-ga-le-i, hi-a nu-ni-we-se-i; U-do-hi-yu-hi-ya U-ne-la-nv-hi U-we-tsi ge-se hi-a.
|
|---|
|
|---|
| And many women were there beholding afar off, which followed Jesus from Galilee, ministering unto him:
|
|---|
| ᎾᎿᎭᏃ ᎠᏂᏙᎾᎡ ᎤᏂᏣᏖ ᎠᏂᎨᏴ Ꭸ ᎢᏴᏛ ᏙᏗᏂᎧᏁᎢ, ᎾᏍᎩ ᏥᏌ ᎨᎵᎵ ᏅᏓᎬᏩᏍᏓᏩᏛᏛ ᎬᏩᏍᏕᎸᎯᏙᎸᎯ,
|
|---|
Na-hna-no a-ni-do-na-e u-ni-tsa-te a-ni-ge-yv ge i-yv-dv do-di-ni-ka-ne-i, na-s-gi Tsi-sa Ge-li-li nv-da-gv-wa-s-da-wa-dv-dv gv-wa-s-de-lv-hi-do-lv-hi,
|
|---|
|
|---|
| Among which was Mary Magdalene, and Mary the mother of James and Joses, and the mother of Zebedee's children.
|
|---|
| ᎾᎿᎭᎤᎾᏓᏑᏰ ᎺᎵ ᎹᎩᏕᎵ ᎡᎯ, ᎠᎴ ᎺᎵ ᏥᎻ ᎠᎴ ᏦᏏ ᎤᏂᏥ, ᎠᎴ ᏤᏈᏗ ᏧᏪᏥ ᎤᏂᏥ.
|
|---|
Na-hna u-na-da-su-ye Me-li Ma-gi-de-li e-hi, a-le Me-li Tsi-mi a-le Tso-si u-ni-tsi, a-le Tse-qui-di tsu-we-tsi u-ni-tsi.
|
|---|
|
|---|
| When the even was come, there came a rich man of Arimathaea, named Joseph, who also himself was Jesus' disciple:
|
|---|
| ᎤᏒᏃ ᏄᎵᏍᏔᏅ ᎤᎷᏤ ᎤᏪᎿᎭᎢ ᎠᏍᎦᏯ ᎠᎵᎹᏗᏱ ᎡᎯ ᏦᏩ ᏧᏙᎢᏛ, ᎾᏍᏉ ᎾᏍᎩ ᏥᏌ ᎤᏍᏓᏩᏗᏙᎯ ᎨᏎᎢ;
|
|---|
U-sv-no nu-li-s-ta-nv u-lu-tse u-we-hna-i a-s-ga-ya A-li-ma-di-yi e-hi Tso-wa tsu-do-i-dv, na-s-quo na-s-gi Tsi-sa u-s-da-wa-di-do-hi ge-se-i;
|
|---|
|
|---|
| He went to Pilate, and begged the body of Jesus. Then Pilate commanded the body to be delivered.
|
|---|
| ᏆᎴᏗᏱ ᎤᏪᏅᏎᎢ, ᏥᏌ ᎠᏰᎸᎢ ᏭᏔᏲᎴᎢ. ᎿᎭᏉᏃ ᏆᎴᏗ ᎤᏁᏤ ᎠᏰᎸᎢ ᏧᏂᏲᎯᏎᏗᏱ.
|
|---|
Qua-le-di-yi u-we-nv-se-i, Tsi-sa a-ye-lv-i wu-ta-yo-le-i. Hna-quo-no Qua-le-di u-ne-tse a-ye-lv-i tsu-ni-yo-hi-se-di-yi.
|
|---|
|
|---|
| And when Joseph had taken the body, he wrapped it in a clean linen cloth,
|
|---|
| ᏦᏩᏃ ᎠᏰᎸ ᎤᏁᏒ ᎤᏪᏣᏄᎶᏔᏁ ᎦᏓᎭ ᏂᎨᏒᎾ ᎠᏄᏬ ᎤᏁᎬ;
|
|---|
Tso-wa-no a-ye-lv u-ne-sv u-we-tsa-nu-lo-ta-ne ga-da-ha ni-ge-sv-na a-nu-wo u-ne-gv;
|
|---|
|
|---|
| And laid it in his own new tomb, which he had hewn out in the rock: and he rolled a great stone to the door of the sepulchre, and departed.
|
|---|
| ᎠᎴ ᎤᏅᏁ ᎤᏩᏒ ᎤᏤᎵ ᎢᏤ ᏗᏓᏂᏐᏗᏱ, ᎾᏍᎩ ᎤᏲᎯ ᎤᏔᎴᏒᎢ; ᎡᏆᏃ ᏅᏯ ᎦᎶᎯᏍᏗᏱ ᎠᏤᎵᏍᏛ ᏭᏪᏌᏆᎴᎸ ᎤᏓᏅᏎᎢ.
|
|---|
A-le u-nv-ne u-wa-sv u-tse-li i-tse di-da-ni-so-di-yi, na-s-gi u-yo-hi u-ta-le-sv-i; e-qua-no nv-ya ga-lo-hi-s-di-yi a-tse-li-s-dv wu-we-sa-qua-le-lv u-da-nv-se-i.
|
|---|
|
|---|
| And there was Mary Magdalene, and the other Mary, sitting over against the sepulchre.
|
|---|
| ᎾᎿᎭᏃ ᎢᎬᏱᏗᏢ ᏗᏓᏂᏐᏗᏱ ᏚᏃᎴ ᎺᎵ ᎹᎩᏕᎵ ᎡᎯ ᎠᎴ ᏐᎢ ᎺᎵ.
|
|---|
Na-hna-no i-gv-yi-di-tlv di-da-ni-so-di-yi du-no-le Me-li Ma-gi-de-li e-hi a-le so-i Me-li.
|
|---|
|
|---|
| Now the next day, that followed the day of the preparation, the chief priests and Pharisees came together unto Pilate,
|
|---|
| ᎠᎴ ᎤᎩᏨᏛ, ᎠᏛᏅᎢᏍᏙᏗᏱ ᎢᎦ ᎤᎶᏐᏅᎯ, ᏄᏂᎬᏫᏳᏒ ᎠᏥᎸ-ᎠᏁᎶᎯ ᎠᎴ ᎠᏂᏆᎵᏏ ᏕᎬᏩᎳᏫᏤ ᏆᎴᏗ,
|
|---|
A-le u-gi-tsv-dv, a-dv-nv-i-s-do-di-yi i-ga u-lo-so-nv-hi, nu-ni-gv-wi-yu-sv a-tsi-lv--a-ne-lo-hi a-le A-ni-qua-li-si de-gv-wa-la-wi-tse Qua-le-di,
|
|---|
|
|---|
| Saying, Sir, we remember that that deceiver said, while he was yet alive, After three days I will rise again.
|
|---|
| ᎯᎠ ᏄᏂᏪᏎᎢ; ᏣᎬᏫᏳᎯ, ᎣᎦᏅᏔ ᎾᏍᎩ Ꮎ ᎠᏓᎶᏄᎮᏍᎩ, ᎠᏏᏉ ᏥᎬᏅᎩ, ᎯᎠ ᏥᏄᏪᏒᎩ; ᏦᎢᏁᏉ ᎢᎦ ᏙᏛᎦᎴᏂ.
|
|---|
Hi-a nu-ni-we-se-i; Tsa-gv-wi-yu-hi, o-ga-nv-ta na-s-gi na a-da-lo-nu-he-s-gi, a-si-quo tsi-gv-nv-gi, hi-a tsi-nu-we-sv-gi; Tso-i-ne-quo i-ga do-dv-ga-le-ni.
|
|---|
|
|---|
| Command therefore that the sepulchre be made sure until the third day, lest his disciples come by night, and steal him away, and say unto the people, He is risen from the dead: so the last error shall be worse than the first.
|
|---|
| ᎾᏍᎩ ᎢᏳᏍᏗ ᎯᏁᎩ ᎠᏍᏓᏯ ᎢᏳᏅᏁᏗᏱ ᎠᏤᎵᏍᏛᎢ ᏦᎢᏁ ᎢᎦ ᎢᎪᎯᏛ, ᎬᏩᏍᏓᏩᏗᏙᎯᏰᏃ ᏒᏃᏱ ᏯᏂᎷᎩ ᏱᎬᏩᏃᏍᎩ, ᎯᎠᏃ ᏱᏂᏓᏂᏪᏏ ᏴᏫ; ᏧᏲᎱᏒ ᏙᎤᎴᏅ; ᎣᏂᏱᏃ ᎤᎾᏠᏄᎮᎸᎢ ᎤᏟ ᎤᏲᎢᏳ ᏱᎩ ᎡᏍᎦᏉ ᎢᎬᏱᏱ.
|
|---|
Na-s-gi i-yu-s-di hi-ne-gi a-s-da-ya i-yu-nv-ne-di-yi a-tse-li-s-dv-i tso-i-ne i-ga i-go-hi-dv, gv-wa-s-da-wa-di-do-hi-ye-no sv-no-yi ya-ni-lu-gi yi-gv-wa-no-s-gi, hi-a-no yi-ni-da-ni-we-si yv-wi; Tsu-yo-hu-sv do-u-le-nv; o-ni-yi-no u-na-tlo-nu-he-lv-i u-tli u-yo-i-yu yi-gi e-s-ga-quo i-gv-yi-yi.
|
|---|
|
|---|
| Pilate said unto them, Ye have a watch: go your way, make it as sure as ye can.
|
|---|
| ᏆᎴᏗ ᎯᎠ ᏂᏚᏪᏎᎴᎢ; ᎠᏂᏯᏫᏍᎩ ᏕᏥᎧᎭ, ᎢᏤᎾ ᎾᏍᏓᏴ ᎢᎨᏨᏁᏗ ᎨᎡ ᏫᏂᏨᎦ.
|
|---|
Qua-le-di hi-a ni-du-we-se-le-i; A-ni-ya-wi-s-gi de-tsi-ka-ha, i-tse-na na-s-da-yv i-ge-tsv-ne-di ge-e wi-ni-tsv-ga.
|
|---|
|
|---|
| So they went, and made the sepulchre sure, sealing the stone, and setting a watch.
|
|---|
| ᎰᏩᏃ ᎤᏁᏅᏎ ᎠᏍᏓᏱᏳ ᏫᏄᏅᏁᎴ ᎠᏤᎵᏍᏛᎢ, ᎤᏂᏰᎸᏔᏁ ᏅᏲᎯ, ᎠᎴ ᏚᏂᎧᏁ ᎠᏂᎦᏘᏗᏍᎩ.
|
|---|
Ho-wa-no u-ne-nv-se a-s-da-yi-yu wi-nu-nv-ne-le a-tse-li-s-dv-i, u-ni-ye-lv-ta-ne nv-yo-hi, a-le du-ni-ka-ne a-ni-ga-ti-di-s-gi.
|
|---|


Marvel at this piece of techART!
Player 1 Name:
Player 2 Name:
PLAY
NEW GAME
Player 1:
Roll the dice
Hold
Roll It:
Total Round Score:
Total Score:
Player 2:
Roll the dice
Hold
Roll It:
Total Round Score:
Total Score:


| goog.testing.MockControl |
|
$replayAll()
No description.
|
code » | |||||
|
$resetAll()
No description.
|
code » | |||||
|
$tearDown()
No description.
|
code » | |||||
|
$verifyAll()
No description.
|
code » | |||||
|
addMock(mock)
⇒
Takes control of this mock.
Arguments:
Returns:
The same mock passed in, for convenience.
|
code » | |||||
|
createConstructorMock(scope, constructorName)
⇒
Creates a controlled MethodMock for a constructor. Passes its arguments
through to the MethodMock constructor. See
goog.testing.createConstructorMock for details.
Arguments:
Returns:
The mocked method.
|
code » | |||||
|
createFunctionMock(opt_functionName)
⇒
Creates a controlled FunctionMock. Passes its arguments through to the
FunctionMock constructor.
Arguments:
Returns:
The mocked function.
|
code » | |||||
|
createGlobalFunctionMock(functionName)
⇒
Creates a controlled GlobalFunctionMock. Passes its arguments through to the
GlobalFunctionMock constructor.
Arguments:
Returns:
The mocked function.
|
code » | |||||
|
createLooseMock(objectToMock, opt_ignoreUnexpectedCalls, opt_mockStaticMethods, opt_createProxy)
⇒
Creates a controlled LooseMock. Passes its arguments through to the
LooseMock constructor.
Arguments:
Returns:
The mock object.
|
code » | |||||
|
createMethodMock(scope, functionName)
⇒
Creates a controlled MethodMock. Passes its arguments through to the
MethodMock constructor.
Arguments:
Returns:
The mocked method.
|
code » | |||||
|
createStrictMock(objectToMock, opt_mockStaticMethods, opt_createProxy)
⇒
Creates a controlled StrictMock. Passes its arguments through to the
StrictMock constructor.
Arguments:
Returns:
The mock object.
|
code » |


If x or y is a finite floating-point or complex number, the comparison x=y is treated like the everyday use of equality (that is, with a reasonable relative tolerance), yielding 1 if the difference x-y falls relatively close to zero. Tolerant comparison also applies to other relations and to floor and ceiling (<. and >.); a precise definition is given in Part III under Equal (=). An arbitrary tolerance t can be specified by using the fit conjunction (!.), as in x =!.t y . The global tolerance can be queried and set using 9!:18 and 9!:19 .


About
the
experiment
Access Mars lets you explore a 3D replica of the Martian surface, exactly as it was recorded by the Curiosity rover. As Curiosity has travelled across Mars, it’s taken digital photographs with two stereoscopic camera systems. By combining and analyzing these photographs, scientists at NASA JPL have created a 3D model used to study Mars and plan future experiments. For the first time, this same 3D model is now available here for anyone to explore in their browser using WebVR.
Mapping
the
terrain
Step 01
Image mosaics are captured with the left and right Navcam and Mastcam.
Step 02
The two mosaics are then combined together to create a stereo match.
Step 03
Using the data from the stereo match scientists are able to extract 3D mapping data.
Step 04
Using metadata from the time, location, and direction the images were taken, scientists can tile the terrain data into a composite piece of terrain.


2016-01–06
01: nhalone
- 'SN00P D0GG & P. WlLLlAMS - CH0P IT LlKE IT'S H0T [VANDELUX REMIX]' - VandeluxMusic
- 'You're Just A Baby' - Belle And Sebastian
- 'Beachstie Boys - I Get Asabotage' - Project Blastic
02: jogged
- 'San Diego' - Hinds
- 'Anaconda Action (Blur vs. Nicki Minaj vs. Will.i.am vs. Britney Spears vs. Icona Pop vs. Major Lazer vs. Ellie Goulding vs. Haddaway)' - Lobsterdust
03: spring semester
- 'Kiss The Sky Feat. Wyclef Jean' - The Knocks
- 'L0ve Yourself (Anevo remix) Free Download' - Anevo - Remixes
04: "11:"
- 'A Smalltown Monday Solution (A Copycat Mash)' - Copycat
- 'Dead Record Player' - Dr. Dog
- 'Swampedelic Pop' - Dr. Dog
-
06: ground to a half
- 'Blaze Up The Fire (feat. Chronixx)' - Major Lazer
- 'Matadora' - Sofi Tukker
- 'Second Chance' - Peter Bjorn and John
- 'Naâman Ft. Cutty Ranks - Rebel for Life' - Naâman Official
07: moving
- 'bitter sweey downsyde sbx crew song auz hip hop'
- 'The Black Keys- Howlin' For You (With Lyrics)' - TheEspath
- 'Cunninlynguists - The South' - bjornz88
- 'I Will Survive' - Cake
- 'Haze of Love' - Cake


select = sample[np.logical_and(sample >= lower, sample <= upper)]
samples[i:(i + len(select))] = select[:]
i += len(select)
n -= len(select)
if size is not None:
return np.reshape(samples, size)
else:
"Drawing samples from distributions with "
"array-valued bounds is not supported."
)
total_size = np.prod(size)
samples = []
s = 0
while s < total_size:
sample = np.atleast_1d(


This site hosts a collection of examples supporting a series of articles about WebGL for Chemistry. Each example builds on the previous one, and all make use of the PhiloGL library.
Complete source code for these examples is available under the MIT License.


Police officer and dog who patrolled royal wedding, Olympics and Champions League final to retire
PC Stewart Paine and his search dog PD Millie walked the beat together for the final time
by Katie CollingsA police officer and his beloved dog have walked the beat together for the final time as they prepare to retire together.
PC Stewart Paine and his search dog PD Millie have met royalty, war veterans and walked in the footsteps of Olympians.
Last week, they worked together for the last time paying their respects to the fallen at the Remembrance Day parade in Sunderland.
Now, nine-year-old Millie will look forward to long walks and cosy nights by the fire as she moves to a farm in Northumberland to enjoy her retirement.
Stewart, who joined the police in 1996 and will work his final shift on Christmas Eve, said his dog had helped him police a string of high profile events since he got her aged two in November 2012.
These include Prince Harry and Meghan Markle’s wedding, the 2012 London Olympic Games, Champions League final in 2017 and Portsmouth D-Day landing anniversary event.
PC Paine said: “I am so proud of Millie and the work that we have carried out together.
“We have worked at places some people can only dream of and there’s no other dog I would have wanted by my side than Millie.
“Working with Millie during my last years in the force has been amazing.
"She has been a loving companion as well as a hard working police dog.”
Millie, who is a Cocker Spaniel, worked as a specialist detection dog sniffing out drugs, weapons and cash.


Oops! There was a problem recompiling the html for the website. One moment, please! I'm sure that our lab members are working right on it...
First updated 2016/09/29. Last updated 2017/03/21.


Bootstrapped/Startup Marketing Part 2
For the second part of the series we’re going talk a bit about finding the influencers in certain industries. We’ll get to more traditional means that people think of later, and if you’ve missed our first post that dealt mostly with SEO make sure you check it out first. In most online ventures there’s a key set of influencers, often times these are blogs or podcasts. Blogs can receive a huge readership, which are often very loyal.
The first step to taking advantage of this is obviously finding the correct blogs. As a byproduct of being in the valley I spend plenty of time reading Techcrunch among many other blogs. While a post on Techcrunch might result in massive traffic spike, or some moderate feedback, its definitely not in our target demographic. If our goal was investors then Techcrunch might be viable, but here we’re talking about marketing and marketing to core users at that. The blogs for your core demographic should be pretty straight forward and you can find them through google or other basic means.
The hard part might be once you’ve found them, how do you get on them. The first thing to do is work on networking with them if at all possible. If you’re in the same area as bloggers try seeing if they typically attend certain meetups or go one step further and simply organize a meetup or tweetup yourself. Or simply network, find others in your space that can make in intro. Hands down a first person intro will work better than any other method.
If for whatever reason networking and getting directly in touch doesnt work (which can often be the case). You can always resort to cold emailing them. This can work. There’s a few keys to this approach though:
- Be brief and to the point
- Have some catch that gives them a leg up, think:
- Giveaway
- Beta Invites
- Finally, track the types of email you send and the response, analyze what works and doesnt.
The next step will bleed a bit more into the next post in this series, but here’s a small preview: Advertise to your influencers, not your users. If you have a limited ad budget, don’t advertise to your target user. Advertise to the influencer of your target user. We’ll get into more detail on this in the next post but a quick example:
If you’re building a sports site, why advertise on facebook for people who like sports when you could advertise to someone that works on espon.com. If the latter notices you and see’s interest they could potentially write you up or refer you to people that might be of interest.


There's plenty of ways to get in touch with me. You can message me on Twitter, connect with me on LinkedIn or write me an Internet letter.


IPL: Shahr Khodro moves to first place after win against Gol Gohar [VIDEO]
by Mir Farhad Ali KhanTasnim – MASHHAD, Shahr Khodro football team edged past Gol Gohar 1-0 to move top of the Iran Professional League (IPL) on Friday.
Amin Ghaseminejhad scored the sole goal of the match in the 65th minute in Mashhad’s Emam Reza Stadium.
Shahr Khodro sits top of the table with 23 points, one point ahead of second-placed Sepahan.
Persepolis is third with 19 points.


About me
Hi! I am Ke YAN, a Staff Algorithm Engineer at Alibaba DAMO Academy, Beijing, China.
From 2019 to 2021, I was a Senior Research Scientist at PAII Inc. (Ping An AI Institute), Bethesda, US.
Before that, I was a postdoc researcher in National Institutes of Health, US, mentored Dr. Ronald Summers and Dr. Le Lu.
I came from from Beijing, China. I got my Ph.D. and BS degrees both from Dept. Electronic Engineering, Tsinghua University, China. My advisor is Prof. David Zhang.
My research interests include computer vision, madical image analysis, deep learning, and machine learning.
E-mail: yankethu <at> gmail.com
My CV is here.
News
- [2022.06.29] Two papers accepted by MICCAI 2022; 5 abstracts accepted by RSNA 2022, 4 orals. Congrats to Dr. Zhou Zhuping, Dazhou, and Jiawen!
- [2021.08.20] I was awarded as one of the Top 10 Sharers/Speakers in Ping An Technology, 2021.
- [2021.07.19] Six abstracts accepted by RSNA 2021, 4 orals. Congrats to Lianyan, Fengze, Youbao, Jimmy, and Bowen!
- [2020.07.10] Invited talk on Medical Imaging Computing Seminar (MICS) (in Chinese).
- [2021.06.22] Five papers accepted by MICCAI 2021.
- [2021.02.28] One paper accepted by CVPR 2021. Congratulations to Jimmy! I am also an Outstanding Reviewer.
- [2020.12.18] One paper accepted by TMI.
- [2020.06.22] Five abstracts accepted by RSNA 2020, one Featured Paper.
- [2020.06.22] Five papers accepted by MICCAI 2020.
- [2020.05.20] Invited talk on VALSE (in Chinese).
- [2019.07.19] Three abstracts accepted by RSNA 2019, all are oral presentation.
- [2019.06.29] One paper accepted by MICCAI 2019.
- [2019.04.26] We released the semantic labels of the DeepLesion dataset here.
- [2019.03.02] My paper entered the best paper award finalist of ISBI 2019.
- [2019.03.02] One paper accepted by 2019 Conference on Computer Vision and Pattern Recognition (CVPR), oral presentation.
- [2019.03.01] Two papers accepted by 2019 IEEE 16th International Symposium on Biomedical Imaging (ISBI), one oral.
- [2018.09.17] I received the RSNA Trainee Research Prize with our submission "Relationship Learning and Organization of Significant Radiology Image Findings for Lesion Retrieval and Matching".
- [2018.09.16] Invited talk at the MICCAI 2018 Workshop of Computational Precision Medicine in Granada, Spain.
- [2018.09.13] Invited talk at the NIH Research Festival, Symposium on Computational Biology, Data Science, and Machine Learning.
- [2018.07.20] The DeepLesion dataset was released. Multi-category dataset of 32K lesions on CT images. (Details)
- [2018.07.20] Our work of DeepLesion was reported by NIH, SPIE, AuntMinnie, and other news websites.
- [2018.06.23] I was invited to give a talk at the Medical Computer Vision and Health Informatics Workshop of CVPR 2018 at Salt Lake City, US. (slides)
- [2018.04.06] Our paper "Unsupervised Body Part Regression via Spatially Self-ordering Convolutional Neural Networks" was featured in the RSIP Vision and ISBI Daily in coorperation with Computer Vision News. (link)
Recent Papers
Google ScholarConferences:
- Ke Yan, Xiaoli Yin, Yingda Xia, Fakai Wang, Shu Wang, Yuan Gao, Jiawen Yao, Chunli Li, Xiaoyu Bai, Jingren Zhou, Ling Zhang, Le Lu, Yu Shi, "Liver Tumor Screening and Diagnosis in CT with Pixel-Lesion-Patient Network," MICCAI, 2023
- Fan Bai, Ke Yan, Xiaoyu Bai, Xinyu Mao, Xiaoli Yin, Jingren Zhou, Yu Shi, Le Lu, Max Q.-H. Meng, "SLPT: Selective Labeling Meets Prompt Tuning on Data-Limited Lesion Segmentation," MICCAI, 2023
- Zi Li, Lin Tian, Tony C. W. Mok, Xiaoyu Bai, Puyang Wang, Jia Ge, Jingren Zhou, Le Lu, Xianghua Ye, Ke Yan, Dakai Jin, "SAMConvex: Fast Discrete Optimization for CT Registration using Self-supervised Anatomical Embedding and Correlation Pyramid," MICCAI, 2023
- Mingze Yuan, Yingda Xia, Hexin Dong, Zifan Chen, Jiawen Yao, Mingyan Qiu, Ke Yan, Xiaoli Yin, Yu Shi, Xin Chen, Zaiyi Liu, Bin Dong, Jingren Zhou, Le Lu, Ling Zhang, Li Zhang, "Devil is in the Queries: Advancing Mask Transformers for Real-world Medical Image Segmentation and Out-of-Distribution Localization," CVPR, 2023 (Highlight)
- Dazhou Guo, Jia Ge, Ke Yan, Puyang Wang, Zhuotun Zhu, Dandan Zheng, Xian-Sheng Hua, Le Lu, Tsung-Ying Ho, Xianghua Ye, Dakai Jin, "Thoracic Lymph Node Segmentation in CT imaging via Lymph Node Station Stratification and Size Encoding," MICCAI, 2022
- Jiawen Yao, Xianghua Ye, Yingda Xia, Jian Zhou, Yu Shi, Ke Yan, Fang Wang, Lisha Lin, Haogang Yu, Xian-Sheng Hua, Le Lu, Dakai Jin, Ling Zhang, "Effective Opportunistic Esophageal Cancer Screening using Noncontrast CT Imaging," MICCAI, 2022 (early accept)
- Ke Yan, Youbao Tang, Adam Harrison, Jinzheng Cai, Le Lu, Jingjing Lu, "Interpretable Medical Image Classification with Self-Supervised Anatomical Embedding and Prior Knowledge," MIDL (short paper), 2021 (OpenReview).
- Jinzheng Cai, Youbao Tang, Ke Yan, Adam P. Harrison, Jing Xiao, Gigin Lin, Le Lu, "Deep Lesion Tracker: Monitoring Lesions in 4D Longitudinal Imaging Studies," CVPR, 2021 (arXiv)
- Fengze Liu*, Ke Yan*, Adam Harrison, Dazhou Guo, Le Lu, Alan Yuille, Lingyun Huang, Guotong Xie, Jing Xiao, Xianghua Ye, Dakai Jin, “SAME: Deformable Image Registration based on Self-supervised Anatomical Embeddings," MICCAI, 2021 (arXiv).
- Youbao Tang, Ke Yan, Jinzheng Cai, Lingyun Huang, Guotong Xie, Jing Xiao, Jingjing Lu, Gigin Lin, Le Lu, “Lesion Segmentation and RECIST Diameter Prediction via Click-driven Attention and Dual-path Connection," MICCAI, 2021 (arXiv).
- Jie-Neng Chen, Ke Yan, Yudong Zhang, Youbao Tang, Xun Xu, Qiuping Liu, Shuwen Sun, Lingyun Huang, Jing Xiao, Alan Yuille, Ya Zhang, Le Lu, “Sequential Learning on Liver Tumor Boundary Semantics and Prognostic Biomarker Mining," MICCAI, 2021 (Student Travel Award) (arXiv).
- Bowen Li, Xinping Ren, Ke Yan, Le Lu, Lingyun Huang, Guotong Xie, Jing Xiao, Dar‐In Tai, Adam Harrison, “Learning from Subjective Ratings Using Auto-Decoded Deep Latent Embeddings," MICCAI, 2021 (oral, arXiv).
- Youbao Tang, Jinzheng Cai, Ke Yan, Lingyun Huang, Guotong Xie, Jing Xiao, Jingjing Lu, Gigin Lin, Le Lu, “Weakly-Supervised Universal Lesion Segmentation with Regional Level Set Loss," MICCAI, 2021 (Student Travel Award) (arXiv).
- Bowen Li, Ke Yan, Dar-In Tai, Yuankai Huo, Le Lu, Jing Xiao, Adam Harrison, "Reliable Liver Fibrosis Assessment from Ultrasound using Global Hetero-Image Fusion and View-Specific Parameterization," MICCAI, 2020 (arXiv)
- Jinzheng Cai, Ke Yan, Chi Tung Cheng, Jing Xiao, ChienHung Liao, Le Lu, Adam Harrison, "Deep Volumetric Universal Lesion Detection using Light-Weight Pseudo 3D Convolution and Surface Point Regression," MICCAI, 2020 (arXiv)
- Youbao Tang, Ke Yan, Jing Xiao, Ronald M.\ Summers, "One Click Lesion RECIST Measurement and Segmentation on CT Scans," MICCAI, 2020 (arXiv)
- Zhuotun Zhu, Dakai Jin, Ke Yan, Tsung-Ying Ho, Xianghua Ye, Dazhou Guo, Chun-Hung Chao, Jing Xiao, Alan Yuille, Le Lu,"Lymph Node Gross Tumor Volume Detection and Segmentation via Distance-based Gating using 3D CT/PET Imaging in Radiotherapy," MICCAI, 2020 (NIH Award) (arXiv)
- Chun-Hung Chao, Zhuotun Zhu, Ke Yan, Dazhou Guo, Tsung-Ying Ho, Jinzheng Cai, Adam Harrison, Xianghua Ye, Jing Xiao, Alan Yuille, Min Sun, Le Lu, "Lymph Node Gross Tumor Volume Detection in Oncology Imaging via Relationship Learning Using Graph Neural Network," MICCAI, 2020 (arXiv)
- Ke Yan, Youbao Tang, Yifan Peng, Veit Sandfort, Mohammadhadi Bagheri, Zhiyong Lu, Ronald M. Summers, "MULAN: Multitask Universal Lesion Analysis Network for Joint Lesion Detection, Tagging, and Segmentation," MICCAI, 2019 (arXiv, code+model).
- Ke Yan, Yifan Peng, Veit Sandfort, Mohammadhadi Bagheri, Zhiyong Lu, Ronald M. Summers, "Holistic and Comprehensive Annotation of Clinically Significant Findings on Diverse CT Images: Learning from Radiology Reports and Label Ontology," CVPR, 2019, oral presentation (arXiv, code+label).
- Yifan Peng, Ke Yan, Veit Sandfort, Ronald M. Summers, Zhiyong Lu, "A self-attention based deep learning method for lesion attribute detection from CT reports," IEEE International Conference on Healthcare Informatics (ICHI), 2019 (arXiv).
- Ke Yan, Yifan Peng, Zhiyong Lu, Ronald M. Summers, "Fine-Grained Lesion Annotation in CT Images with Knowledge Mined from Radiology Reports," IEEE International Symposium on Biomedical Imaging (ISBI), 2019, oral presentation (best paper award finalist) (arXiv).
- Youbao Tang, Ke Yan*, Yuxing Tang*, Jiamin Liu*, Jing Xiao, Ronald M. Summers, "ULDor: A Universal Lesion Detector for CT Scans with Pseudo Masks and Hard Negative Example Mining," ISBI, 2019 (arXiv).
- Ke Yan, Mohammadhadi Bagheri, Ronald M. Summers, "3D Context Enhanced Region-based Convolutional Neural Network for End-to-End Lesion Detection," International Conference on Medical Image Computing & Computer Assisted Intervention (MICCAI), Granada, Spain, 2018 (arXiv, code)
- Jinzheng Cai*, Youbao Tang*, Le Lu, Adam P. Harrison, Ke Yan, Jing Xiao, Lin Yang, Ronald M. Summers, "Accurate Weakly-Supervised Deep Lesion Segmentation using Large-Scale Clinical Annotations: Slice-Propagated 3D Mask Generation from 2D RECIST," MICCAI, 2018 (arXiv)
- Ke Yan, Xiaosong Wang, Le Lu, Ling Zhang, Mohammadhadi Bagheri, Ronald M. Summers, "DeepLesion: a Diverse and Large-scale Database of Significant Radiology Image Findings," MICCAI workshop-Large-scale Annotation of Biomedical Data and Expert Label Synthesis (LABELS), 2018.
- Youbao Tang*, Jinzheng Cai*, Le Lu, Adam P. Harrison, Ke Yan, Jing Xiao, Lin Yang, Ronald M. Summers, "CT Image Enhancement Using Stacked Generative Adversarial Networks and Transfer Learning for Lesion Segmentation Improvement," MICCAI workshop-International Conference on Machine Learning in Medical Imaging (MLMI), 2018 (arXiv)
- Ke Yan, Xiaosong Wang, Le Lu, Ling Zhang, Adam Harrison, Mohammadhadi Bagheri, Ronald M. Summers, "Deep Lesion Graphs in the Wild: Relationship Learning and Organization of Significant Radiology Image Findings in a Diverse Large-scale Lesion Database," IEEE CVPR, 2018 (arXiv, dataset)
- Ke Yan, Le Lu, Ronald M. Summers, "Unsupervised Body Part Regression via Spatially Self-ordering Convolutional Neural Networks", IEEE International Symposium on Biomedical Imaging (ISBI), oral, 2018 (arXiv, code)
- Ke Yan and David Zhang, "Blood glucose prediction by breath analysis system with feature selection and model fusion," 2014 36th Annual Intl. Conf. of the IEEE Engineering in Medicine and Biology Society (EMBC), oral presentation, Chicago, 2014.
- Ke Yan, Youbin Chen, and David Zhang, "Gabor surface feature for face recognition," 2011 First Asian Conference on Pattern Recognition (ACPR), oral presentation, 2011.
- Ke Yan*, Jinzheng Cai, Dakai Jin, Shun Miao, Dazhou Guo,Adam P. Harrison, Youbao Tang, Jing Xiao, Jingjing Lu*, Le Lu, "SAM: Self-supervised Learning of Pixel-wise Anatomical Embeddings in Radiological Images". IEEE Trans. on Medical Imaging, 2022 (pdf)
- Bowen Li, Dar-In Tai, Ke Yan, Yi-Cheng Chen, Shiu-Feng Huang, Tse-Hwa Hsu, Wan-Ting Yu, Jing Xiao, Le Lu, Adam P. Harrison, "Accurate and Generalizable Quantitative Scoring of Liver Steatosis from Ultrasound Images via Scalable Deep Learning". World Journal of Gastroenterology, 2021 (pdf)
- Veit Sandfort, Ke Yan, Peter M. Graffy, Perry J. Pickhardt, Ronald M. Summers, "Use of Variational Autoencoders with Unsupervised Learning to Detect Incorrect Organ Segmentations on CT", Radiology: Artificial Intelligence, 2021 (pdf)
- Ke Yan, Jinzheng Cai, Youjing Zheng, Adam P. Harrison, Dakai Jin, You-Bao Tang, Yu-Xing Tang, Lingyun Huang, Jing Xiao, Le Lu, "Learning from Multiple Datasets with Heterogeneous and Partial Labels for Universal Lesion Detection in CT", IEEE Transactions on Medical Imaging, Oct. 2021 (arXiv)
- Jinzheng Cai, Adam P. Harrison, Youjing Zheng, Ke Yan, Yuankai Huo, Jing Xiao, Lin Yang, Le Lu, "Lesion-Harvester: Iteratively Mining Unlabeled Lesions and Hard-Negative Examples at Scale", IEEE Transactions on Medical Imaging, Jan. 2021 (arXiv)
- Lianyan Xu, Ke Yan, Le Lu, Weihong Zhang, Xu Chen, Xiaofei Huo, Jingjing Lu, "External and Internal Validation of a Computer Assisted Diagnostic Model for Detecting Multi-Organ Mass Lesions in CT images", Chinese Medical Sciences Journal, 2021 (pdf).
- Yu-Xing Tang, Youbao Tang, Yifan Peng, Ke Yan, Mohammadhadi Bagheri, Bernadette Redd, Catherine Brandon, Zhiyong Lu, Mei Han, Jing Xiao, and Ronald Summers, "Automated abnormality classification of chest radiographs using deep convolutional neural networks", npj Digital Medicine (Nature Partner Journals), 2020.
- Veit Sandfort, Ke Yan, Perry J. Pickhardt, Ronald M. Summers, "Data augmentation using generative adversarial networks (CycleGAN) to improve generalizability in CT segmentation tasks", Scientific Reports, 2019 (paper)
- Atsushi Teramoto, Hiroshi Fujita, Tetsuya Tsukamoto, Yuka Kiriyama, Ke Yan, et al., "Automated classification of benign and malignant cells from lung cytological images using deep convolutional neural network," Informatics in Medicine Unlocked, 2019.
- Ke Yan, Xiaosong Wang, Le Lu, Ronald M. Summers, "DeepLesion: Automated Mining of Large-Scale Lesion Annotations and Universal Lesion Detection with Deep Learning", Journal of Medical Imaging, 2018 (paper)
- Ke Yan, Lu Kou, and David Zhang, "Learning Domain-Invariant Subspace Using Domain Features and Independence Maximization,” IEEE Transactions on Cybernetics. (IF=4.943), Jan., 2017
- Ke Yan, Lu Kou, and David Zhang, “Correcting Instrumental Variation and Time-Varying Drift Using Parallel and Serial Multitask Learning,” IEEE Transactions on Instrumentation and Measurement (IF=2.456), Jun., 2017.
- Ke Yan, and David Zhang, “Correcting Instrumental Variation and Time-varying Drift: A Transfer Learning Approach with Autoencoders,” IEEE Transactions on Instrumentation and Measurement (IF=1.808), Sep., 2016.
- Ke Yan, and David Zhang, “Calibration transfer and drift compensation of e-noses via coupled task learning,” Sensors and Actuators B: Chemical (IF=4.097), Mar., 2016.
- Ke Yan, and David Zhang, “Improving the transfer ability of prediction models for electronic noses,” Sensors and Actuators B: Chemical (IF=4.097), Dec., 2015.
- Ke Yan, and David Zhang, “Feature selection and analysis on correlated gas sensor data with recursive feature elimination,” Sensors and Actuators B: Chemical (IF=4.097), Jun., 2015.
- Ke Yan, David Zhang, Darong Wu, Hua Wei, and Guangming Lu, “Design of a breath analysis system for diabetes screening and blood glucose level prediction,” IEEE Transactions on Biomedical Engineering (IF=2.347), Nov., 2014.
- D Jin, AP Harrison, L Zhang, K Yan, Y Wang, J Cai, S Miao, L Lu. "Artificial intelligence in radiology", book chapter of "Artificial Intelligence in Medicine", Elsevier, 2020.
- Ke Yan et al., "Deep Lesion Graph in the Wild: Relationship Learning and Organization of Significant Radiology Image Findings in a Diverse Large-Scale Lesion Database", book chapter of "Deep Learning and Convolutional Neural Networks for Medical Imaging and Clinical Informatics", Springer, 2019.
- 闫轲，《电子鼻信号分析关键算法研究（清华大学优秀博士学位论文丛书）》，清华大学出版社，2019. (Ke Yan, "Research on Key Signal Analysis Algorithms for Electronic Noses", Outstanding Doctoral Dissertation Series of Tsinghua University, Tsinghua University Press, 2019)
- David Zhang, Dongmin Guo, and Ke Yan, “Breath Analysis for Medical Applications,” Springer, 2017.
- RSNA 2022: "Interpretable Contrast Phase Classification in CT with Self-Supervised Deep Anatomical Embedding and Prior Knowledge" (oral); "Automatic Detection of Enlarged Chest Lymph Nodes in Contrast & Non-Contrast Chest CT: An External Evaluation"; "Thoracic Lymph Node Segmentation in Chest CT Using Lymph Node Station Stratification and Size Encoding" (oral); "Automatic Lymph Node Station Labeling in chest CT via Accurate Deep Station Parsing" (oral); "Effective Opportunistic Esophageal Cancer Screening Using Non-contrast CT Imaging" (oral)
- AFSUMB: Bowen Li, Dar-In Tai*, Ke Yan, Yi-Cheng Chen, Shiu-Feng Huang, Tse-Hwa Hsu, Wan-Ting Yu, Jing Xiao, Le Lu, Adam P. Harrison*, "Accurate and Generalizable Quantitative Scoring of Liver Steatosis from Ultrasound Images via Scalable Deep Learning", Bowen got the silver winner of the Young Investigator Award of AFSUMB (Asian Federation of Societies for Ultrasound in Medicine and Biology).
- RSNA 2021: Lianyan Xu et al., "Multi-organ Universal Lesion Detection In CT Scans: An Independent External Validation" (oral); Youbao Tang et al., "Automatic RECIST Measurement In Longitudinal CT Imaging Studies", (oral), "Accurate Weakly-supervised Volumetric Universal Lesion Segmentation Using Large-scale Clinical RECIST Diameter Annotations And Regional Level Set Loss" (oral), "Automatically, Precisely, And Comprehensively Measuring Tumor Sizes With Minimal Human Effort"; Bowen Li et al., "Accurate And Reliable Liver Steatosis Assessment From Conventional Ultrasound Images Trained With Subjective Ratings" (oral); Fengze Liu et al., "SAME: Fast And Accurate Algorithm For Deformable Image Registration On CT".
- ASTRO 2021: Z Zhu et al., "Deep Learning Based Lymph Node Gross Tumor Volume Detection via Distance-guided Gating using CT and 18F-FDG PET in Esophageal Cancer Radiotherapy".
- RSNA 2020: Youbao Tang et al., "One Click Guided Automatic RECIST Lesion Measurement and Segmentation on CT Scans" (Featured Papers); Bowen Li et al., "Automatic Liver Fibrosis Assessment from Conventional Ultrasound Images Using Global Hetero Image Fusion"; Jinzheng Cai et al., "Automatic Hepatocellular Carcinoma Detection in Patients with Chronic Liver Diseases Using Dynamic Contrast-enhanced CT and Light-Weight 3D Convolutional Neural Network"; Zhuotun Zhu et al., "Lymph Node Gross Tumor Volume Detection and Segmentation via Distance-based Gating Using CT/PET Imaging in Esophageal Cancer Radiotherapy"; Yuankai Huo et al., "Identifying and Characterizing Indeterministic Liver Lesions via Deep Learning on Large-scale Dynamic Contrast Enhanced CT Imaging Data from Patients Receiving Invasive Procedures".
- RSNA 2019: Ke Yan et al., "Comprehensive Lesion Tagging on Diverse CT Images: Learning from Radiology Reports and Label Ontology" (Scientific Paper); "MULAN: Multitask Universal Lesion Analysis Network for Joint Lesion Detection, Tagging, and Segmentation in CT Images" (Scientific Paper); Veit Sandfort et al., "CT Organ Segmentation: Use of Variational Autoencoders to Detect Incorrect Segmentations in a Large Dataset (> 12,000 CT scans)" (Scientific Paper).
- RSNA 2018: Ke Yan et al., "Relationship Learning and Organization of Significant Radiology Image Findings for Lesion Retrieval and Matching" (Scientific Paper, RSNA Trainee Research Prize); "3D Context Enhanced Region-based Convolutional Neural Network for Universal Lesion Detection in a Large Database of 32,735 Manually Measured Lesions on Body CT" (Scientific Poster); Youbao Tang et al., "CT Image Enhancement for Lesion Segmentation Using Stacked Generative Adversarial Networks".
- RSNA 2017: Ke Yan*, Xiaosong Wang*, Le Lu, Ronald Summers, "Detection of Radiology Image Findings using Large-Scale Clinical Lesion Annotations", scientific poster (arXiv)
Education and working experiences
- 2021.10- now : Staff Algorithm Engineer at Alibaba DAMO Academy, Beijing, China.
- 2019.05-2021.10 : Senior Research Scientist at PAII Inc. (Ping An AI Institute), Bethesda, US.
- 2017.01-2019.05 : PostDoc in Imaging Biomarkers and Computer-Aided Diagnosis Laboratory, National Institutes of Health, US. Current research direction: lesion detection and characterization in CT images with deep learning.
- 2016.08-2016.11 : Researcher in Deephi Tech. Topic: Pedestrian detection using convolutional neural networks.
- 2011.09-2016.07 : PhD student in Dept. Electronic Engineering, Tsinghua University.
- 2015.07-2015.08 : Intern in IBM China Research Lab. Topic: Robot-based intelligent shopping assistant.
- 2013.07-2013.08 : Intern in XingKe Intelligent Tech. Co. Ltd., China. Topic: Gesture recognition based on Kinect and Unity3D.
- 2011.08-2012.08 : Research Assistant in Dept. Computing, Hong Kong Polytechnic University.
- 2010.03-2011.08 : Research topic: A face recognition system, received over 10k downloads until 2014 in Google code.
- 2006.09-2010.07 : Undergraduate student in Dept. Electronics Engineering, Tsinghua University.
Awards
- Top 10 Sharers/Speakers (最佳分享者) in Ping An Technology, 2021.
- CVPR 2021, 2022 and TMI Outstanding Reviewer;
- ISBI 2019 best paper award finalist;
- RSNA 2018 Trainee Research Prize;
- Tsinghua University Excellent Doctoral Dissertation Award (2016);
- First prize of Tsinghua Outstanding Scholarship, 2 times (2014, 2015);
- First prize of Foxconn Scholarship, 2 times (2012, 2013);
- Best Intern Demonstration in IBM China Research Lab (2015);
- Best Creativity Award in the First Photo Contest of University Town of Shenzhen.


Agbami parties invest N5.8bn on scholarships, education infrastructure
by Temisan AmoyeBy Elizabeth Uwandu
The Director, Star Deep Water Petroleum Limited, SDWPL a subsidiary of Chevron Company, Richard Kennedy, has said that Agbami parties had in the past 11years invested a total of N5.8 billion on the Agbami Medical and Engineering Scholarships, AMEPs on merit for Medical and Engineering students across the country.
ALSO READ: In Delta, opposition parties, ruling PDP not enemies, says Otuaro, dep gov
Kennedy who was represented by the Manager, Policy Government Public Affairs, Mr Tom Akagbosu, during his keynote address at the 2019 Agbami Science Technology Engineering and Mathematics, STEM symposium added that the Agbami parties that included: Famfa Oil Limited; Equinor Nigeria Limited; Petroleo Brasileiro Nigeria Limited; and Star Deep Water Petroleum Limited, have also invested N5.8 billion on education infrastructure support.
Speaking on the theme of the symposium, ” Advancing innovation and sustainable development through STEM,” Mr Kennedy called on the government to make STEM education a national priority.
ALSO READ: Boris Johnson: Nigerians are not just interested in money, we’re committed to it
His words: ” We hope that this programme will identify issues in Nigeria’s STEM education reforms and provide strategies to ensure that STEM education is elevated to a national priority. ”
The SDWPL Director also called on the Nigerian youths to upscale their capabilities in STEM to be able to provide solutions to societal issues.


Posted on April 1, 2018 by Lucas Colusso
How does a PhD student focus on doing good work without worrying about the number of papers churned out? Can we assess work in terms of the broader contributions of research and not just the impact factor of journals and conferences they are publish in? The answers to these questions is obvious, but while changes are not made, we offer you strategies to alleviate the terrifying social comparisons that permeate competitive academic environment.
Avoid socializing and sitting next to other students in your lab who work 24/7 and are able to write a "best paper" in 1 day. And even if you can do that, is that actually the life you want?
Second, use that browser extension to block Facebook during your work hours to avoid accessing Google Scholar all of the time. Do you know all of those studies saying that accessing Facebook every day makes people miserable? Accessing Google Scholar every day to check other scholars’ publication numbers makes you twice as miserable #facts.
If you are a masochist and still desire to access Google Scholar all of the time to check others’ publication numbers, only compare yourself to other people who started their academic careers at the same time as you did. However, ideally, you should compare to those who started a few years later to make up for those 2 or 3 years of grad school when publications were slow due to awful R2 comments, dysfunctional advising relationships, and adapting to an engineering-oriented department coming from your background in Media arts/psychology/anthropology/communications/ (pick one).
In interdisciplinary departments, social comparisons can be harmful and it is important to pick appropriate comparison targets (people with similar methods and contribution types, people with similar career goals, people with similar priorities for work-life balance). #micdrop