|
| Local Properties | Local Methods | |
| Managed Object Types | Data Object Types | All Properties | All Methods |
Performance Counters
Each
performance providerthe instrumented device or entityhas its own
set of counters that provides
metadata about its available metrics. Each counter has a unique key, referred to as the counterId. The
actual performance metrics generated at runtime are identified by this
counterId. Counters are organized by
groups of finite system
resources, such as memory, CPU, disk, and
so on. The links in this list contain documentation for performance
counters, by group. Each
page contains a table that includes data extracted from instances of the
PerfCounterInfo data object, including the counter
name, its Label, Unit, StatsType, RollupType, and Level:
Other performance-counter groups, in addition to those listed here, exist on the system. However, only the counter groups listed are considered of possible interest to third-party developers.
Obtaining Metadata and Metrics
This interface provides these
query operations:
Product and Version Specifics
Some differences between ESX
and vCenter Server implementations of this interface include:
See the Programming Guide for more information about using PerformanceManager.
Properties
| Name | Type | Description |
|---|---|---|
| description P | PerformanceDescription |
The static description strings.
|
| historicalInterval* P | PerfInterval[] |
A list of intervals configured on the
system.
|
| perfCounter* P | PerfCounterInfo[] |
A list of all supported performance counters in the system.
|
Methods
| Methods defined in this Managed Object |
|---|
| CreatePerfInterval, QueryAvailablePerfMetric, QueryPerf, QueryPerfComposite, QueryPerfCounter, QueryPerfCounterByLevel, QueryPerfProviderSummary, RemovePerfInterval, ResetCounterLevelMapping, UpdateCounterLevelMapping, UpdatePerfInterval |
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| intervalId | PerfInterval |
A custom interval, specified as the number of seconds to hold data in the
database, a user-specified unique name, and a sampling period (in
seconds).
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the set of arguments passed to the function is not specified correctly. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| entity | ManagedObjectReference |
The managed object that
provides performance metrics.
|
| beginTime* | xsd:dateTime |
Starting time (server time) for a period of time from which to return
available metrics. If not specified, defaults to oldest available metric
for the specified entity.
|
| endTime* | xsd:dateTime |
Ending time (server time) for a period of time from which to return
available performance metrics. If not specified, defaults to the most
recently generated metric for the specified entity.
|
| intervalId* | xsd:int |
Period of time from which to retrieve metrics, defined by intervalId
(rather than beginTime or endTime). Valid intervalIds include:
|
Return Value
| Type | Description |
|---|---|
| PerfMetricId[] | An array of metrics, each of which comprises a counterId and an name. |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the set of arguments passed to the function is not specified correctly. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Query Performance for VirtualCenter Server
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| querySpec | PerfQuerySpec[] |
An array of PerfQuerySpec objects. Each PerfQuerySpec object specifies a managed object reference
for an entity, plus optional criteria for filtering results. Only metrics
for entities that can be resolved and that are valid performance providers are returned in
any result.
Each PerfQuerySpec object in the array submitted in this operation can query for different metrics. Or, select all types of statistics for a single managed entity. Raw data feed workaround: Normally, QueryPerf will return performance
statistics stored in the VirtualCenter database. However this may not be
suitable for certain applications. For example, applications that treat
VirtualCenter as a raw data source, query for performance statistics
regularly (say every 5 minutes) and extract the data for external
archival and reporting. Such applications need better query performance.
These applications should query statistics using QueryPerf for the base
historical interval (5 minutes by default) having a start and end time
range within 30 minutes from the current VirtualCenter server system
time. These QueryPerf calls will have better performance than other
QueryPerf calls.
|
Return Value
| Type | Description |
|---|---|
| PerfEntityMetricBase[] | The metric values for the specified entity or entities. |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the set of arguments passed to the function is not specified correctly. |
| RestrictedByAdministrator | Thrown if the number of inventory objects needed to execute the request exceeds a predefined limit. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Use this operation to obtain statistics for a host and its associated virtual machines, for example.
Requires system.read privilege for every virtual machine on the target host, or the query fails with the NoPermission fault. Suported for HostSystem managed entities only.
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| querySpec | PerfQuerySpec |
A PerfQuerySpec object specifying the query
parameters. This PerfQuerySpec object specifies a
managed object for which composite statistics should be retrieved, with
specific optional criteria for filtering the results.
This PerfQuerySpec requires a valid metricId property that specifies a metric
that is available, in common, to the entity and its children. If the
specified metricId is not available to the entity and its children, it is
ignored.
|
Return Value
| Type | Description |
|---|---|
| PerfCompositeMetric | The metric values for the specified entity and its associated entities for a single interval. |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the set of arguments passed to the function is not specified correctly. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| counterId | xsd:int[] |
An array of one or more counterIds representing performance counters for which information is
being retrieved.
|
Return Value
| Type | Description |
|---|---|
| PerfCounterInfo[] | An array consisting of performance counter information for the specified counterIds. |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the set of arguments passed to the function is not specified correctly. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| level | xsd:int |
A number between 1 and 4 that specifies the collection level.
|
Return Value
| Type | Description |
|---|---|
| PerfCounterInfo[] | An array of PerfCounterInfo objects that define the set of counters having the specified level number available for the entity. |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if an invalid level is specified. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| entity | ManagedObjectReference |
Reference to a managed object that provides performance data. If the
entity specified by managed object reference is not a performance
provider, an "InvalidArgument" exception is thrown.
|
Return Value
| Type | Description |
|---|---|
| PerfProviderSummary | A data object containing metadata about the entity as a performance provider, such as the type of metrics (real-time, summary, or both) it generates and the refreshRate. |
Faults
| Type | Description |
|---|---|
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| samplePeriod | xsd:int |
The sampling period, in seconds, for the specified interval being
removed.
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the set of arguments passed to the function is not specified correctly. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| counters | xsd:int[] |
An array of counter ids.
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the passed in counterId is invalid. |
| NotSupported | Thrown if called directly on a host. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Important:
Consider the performance and storage consequences of using this method. You may cause a significant increase in data collection and storage, along with a corresponding decrease in performance. vCenter Server performance and database storage requirements depend on the collection levels defined for the performance intervals (PerformanceManager.historicalInterval) and the collection levels specified for individual performance counters (PerfCounterInfo.level).
Performance Counter Data Collection
vSphere defines four levels of data collection for performance counters. Each performance counter specifies a level for collection. The historical performance intervals (PerformanceManager.historicalInterval) define the sampling period and length for a particular collection level.
The amount of data collected for a performance counter depends on the performance interval and on the type of entity for which the counter is defined. For example, a datastore counter such as datastoreIops (the aggregate number of IO operations on the datastore) will generate a data set that corresponds to the number of datastores on a host. If a vCenter Server manages a large number of hosts with a large number of datastores, the Server will collect a large amount of data.
There are other counters for which the vCenter Server collects a relatively smaller amount of data. For example, memory counters are collected as a single counter per virtual machine and a single counter per host.
Performance Counter Data Storage
The performance interval collection level defines the set of counters for which the vCenter Server stores performance data. The Server will store data for counters at the specified level and for counters at all lower levels.
By default, all the performance intervals specify collection level one. Using these defaults, the vCenter Server stores performance counter data in the vCenter database for all counters that specify collection level one. It does not store data for counters that specify collection levels two through four.
Performance Manager Method Interaction
You can use the UpdateCounterLevelMapping method to change the collection level for individual counters. You can also use the UpdatePerfInterval method to change the collection level for the system-defined performance intervals. These methods can cause a significant increase in the amount of data collected and stored in the vCenter database.
You may cause a significant increase in data collection and storage along with a corresponding decrease in performance under the following conditions:
To restore counter levels to default settings use the ResetCounterLevelMapping method.
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| counterLevelMap | PerformanceManagerCounterLevelMapping[] |
An array of PerformanceManagerCounterLevelMapping objects. The
levels for the counters passed in are changed to the passed in values. If
the optional aggregateLevel field is left unset then only the
perDeviceLevel is configured. If the optional perDeviceLevel is left
unset then only the aggregateLevel is configured. If there are multiple
entries in the passed in array for the same counterId being updated then
the last entry containing the counterId takes effect.
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the passed in counterId is invalid or if both the aggregateLevel and perDeviceLevel are unset or if the aggregateLevel field is not between 1-4 (valid values). |
| NotSupported | Thrown if called directly on a host. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
Supported Modifications
| key | samplingPeriod | length | name | level [1] | enabled [2] |
|---|---|---|---|---|---|
| 1 | 300 [3] | 86400 [4] | Past day | 1 | true |
| 2 | 1800 | 604800 | Past week | 1 | true |
| 3 | 7200 | 2592000 | Past month | 1 | true |
| 4 | 86400 | 31536000 [5] | Past year | 1 | true |
[1] The collection level for the historical intervals can be changed. However,
the level specified for a lower-numbered interval cannot be smaller
than that of a larger interval.
[2] An interval can be disabled. By default, all four
intervals are enabled. Disabling an interval disables all higher
intervals. For example, disabling interval 3 (Past month)
also disables interval 4 (Past year).
[3] Can reduce this intervals samplingPeriod from 5 minutes to 1, 2, or 3
minutes.
[4] Can increase this intervals length from 1 day to 2 or 3 days.
[5] Can increase intervals length from 1 year to 2 or 3 years.
See PerfInterval for information about the four default intervals for VirtualCenter Server.
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the PerformanceManager used to make the method call. |
| interval | PerfInterval |
The historical interval being modified, a
complete data object comprising values for enabled, interval ID,
length of time to maintain statistics for this
interval in the database, level, name, and samplingPeriod
properties.
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| InvalidArgument | Thrown if the set of arguments passed to the function is not specified correctly or if the update does not conform to the rules mentioned above. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
| Top of page | Local Properties | Local Methods | |
| Managed Object Types | Data Object Types | All Properties | All Methods |


Ethan made this Edit
Kirchhoff's Current Law
Total current going into a circuit board junction must equal the total current leaving the junction.
Fix this page or the connected image by cloning the repository at
https://github.com/hpssjellis/crowd-curriculum-robotics/blob/master/robotics/kirchhoff.html
and making a pull request (PR) to it.
in your pull request commit make an active [link] (https://blade2255.github.io/crowd-curriculum-robotics/robotics/kirchhoff.html) to your Edit.


UPDATE on official repos – http://blog.phusion.nl/2013/09/11/debian-and-ubuntu-packages-for-phusion-passenger/
When you are getting started in the world of Ruby web dev, one of the best things you can do is deploy to Heroku. However, if you find yourself having to deploy to a VPS, one of next best things you can do is use Phusion Passenger. It is an incredibly low friction application server for rack apps (and other things).
Magic Strings of Wonderful Glory
After you get your feet under you, you might find yourself needing to use more than the base modules that come with the nginx inside Passenger. As I would go to install or update Passenger, I would end up having to run something like this:
gem install passenger
passenger-install-nginx-module --nginx-source-dir=/usr/src/nginx-1.5.3 ---with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with --without-http_scgi_module --without-http_uwsgi_module --without-http_fastcgi_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_realip_module --add-module=/opt/nginxmodules/headers-more
This creates a few issues. Issue #1: I have to keep wget’ing new versions of source when I need to update.
Issue #2: I have a completely different workflow/scripts for managing a passenger nginx instance than I do for a unicorn/puma instance. This variance drives me nuts and be a source of script churn.
Antacids
I kept thinking there had to be a better way. Then the sky hash parted and a beam of light shown directly on a ppa from the brightbox team. This package uses a traditional installation of nginx, which means that I can easily install the nginx-extras package and get all my extra modules I need for load balancing and nginx_status. Here is how I do it:
sudo apt-get install -y python-software-properties curl git-core
sudo apt-add-repository -y ppa:brightbox/passenger-experimental
sudo apt-get update
sudo apt-get install -y nginx-full
sudo apt-get install -y nginx-extras #extras headers and stuff
\curl -L https://get.rvm.io | bash
source ~/.profile
rvm install 2.0.0-p247
rvm --default use 2.0.0-p247
sudo service nginx restart
Most of how to do this is covered at:
http://www.modrails.com/documentation/Users%20guide%20Nginx.html#rubygems_generic_install


About Pulser
This application was created to help you monitor and supervise someone who deals with mobility issues and other ailments and needs your help.
{% if current_user.is_anonymous() %}
If you need our tool, please register an account with us!
{% endif %}
{% endblock %}


James Bradley - Clade
James Bradley 2015. Clade. Australia: Penguin. 239 pp.
Dysfunctional personal relationships, increasingly severe climate change disasters on a global scale, illnesses and deaths first among main characters then as global epidemic, deaths of species, refugee movement from ecological disasters on vast scales, near collapse of human civilisation. Readers who delight in these things and such all-to-believable near future scenarios should dive right in. Only in the last 20 pages do some traces of hard sf, and hope, intrude. You have been warned.
Most of all, not imaginative enough to consider satisfying sf. Its very plausibility - no original ideas, everything here is already in the mind of many a conservationist - is the downfall of this well written novel. Not a bad book, if you like that sort of thing.


Seeking to explore new dimensions
I am Deepan K S , currently doing second year btech in NITK.
this is the brand
Areas of interest → Data analytics , ML , AI
Looking out for some cool projects
Projects
Experience
Places from where I learn new stuff
- 3blue1brown
- numberphile
- mathologer
- GitHub


{# Alternate version with select elements #} {%- macro formDateSelect(name, label, yearsFrom, yearsTo) -%}


-
developer_boardFirst BoxPressure Box1more_vertCard Titleclose
Here is some more information about Pressure.
Temperature Box1more_vertCard TitlecloseHere is some more information about Temperature.
Humidity Box1more_vert
-
filter_dramaPeriphery
-
developer_boardSecond BoxPressure Box2more_vertCard Titleclose
Here is some more information about Pressure.
Temperature Box2more_vertCard TitlecloseHere is some more information about Temperature.
Humidity Box2more_vert


--- layout: post title: Another Vibram Sizing Tip date: 2009-12-01 10:16:14.000000000 +00:00 tags: - Vibram - sizing - fit type: post published: true ---
Last year I provided a tip on sizing Vibram Five Fingers based on my own experience. I've now found another useful tip...
So how should they fit? I was told directly (in person) by a Vibram Five Fingers corporate rep to fit the toes just BEHIND THE TOE CAPS or right in that area—obviously with different toe lengths there is going to be some fudging here! That means there is a decent amount of room between the toes and the end (close to 1/2″) and there may be some bagginess in places depending on your foot volume. Keep in mind that your foot will swell while you are running so any snugness you feel in the store should be a red flag.
Of course this tip is only useful if you can find a shop that sells Vibrams before you shell out your cash or you have them in your hand. That said, my less-hands-on approach seems to have resulted in a similar fit as that suggested here.


We aggregate solutions!
- streamline plug-and-play methodologies
- engage 24/365 channels
- repurpose back-end supply-chains
- seize web-enabled experiences
- visualize revolutionary users
- seize viral functionalities
- drive cross-media networks
- syndicate world-class vortals
- empower granular technologies
- iterate world-class infrastructures
- transition leading-edge functionalities


A revolutionary platform aiming at increasing energy efficiency by allowing everyone to participate and benefit from worldwide energy efficiency projects.
Efforce is the first platform that allows contributors to benefit from the energy savings generated by energy efficiency projects worldwide
Contributors can participate in energy efficiency projects by acquiring tokenized future savings.
Companies benefit from energy efficiency improvements at no cost and the resulting savings are written in real time on the blockchain.
A smart contract redistributes the resulting savings to token holders and the companies without intermediaries based on exact consumption/savings data.


Athena Camps
Inspiring girls to build courage, wisdom, and confidence through sports and self-expression.
learn more
All Girls. All Day.
Discover a camp where creativity thrives, where girls are encouraged to color outside the lines, where they cooperate rather than compete, and where they lift each other up. Welcome to Athena Camps.
Why you don’t want to miss out on camp:
At Athena Camps, we create unique experiences that support girls in building friendships, learning sports, expressing creativity, and having girl-powered fun.
"I just wanted you to know Athena Camps are the best camps I've ever been to! And that I've already made 10 new friends. You do all my favorite things.
"I just wanted you to know Athena Camps are the best camps I've ever been to! And that I've already made 10 new friends. You do all my favorite things.
Countdown to Camp!
JS plugin here


I’m a researcher at Spellbrush, building niji・journey. I have been engaged in researching the power of AI technologies in the area of Japanese Anime/Game for over 6 years. My long-term goal is to revolutionize the Japanese Anime/Game industry. Meanwhile, as an entrepreneur, I founded Crypko.AI in 2017, which was acquired by Preferred Networks in late 2018.
Email: yanghuajin94 [at] gmail [dot] com
Academic Publications
Surrogate Gradient Field for Latent Space Manipulation
IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 2021
Minjun Li*, Yanghua Jin*, Huachun Zhu (* Equal Contribution)
[paper]
Amortized Nesterov’s Momentum: Robust and Lightweight Momentum for Deep Learning
The Conference on Uncertainty in Artificial Intelligence (UAI) 2020
Kaiwen Zhou, Yanghua Jin, Qinghua Ding, James Cheng
[paper][supp][code]
Fast Soft Color Segmentation
IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 2020
Naofumi Akimoto, Huachun Zhu, Yanghua Jin, Yoshimitsu Aoki
[paper][github]
Towards the Automatic Anime Characters Creation with Generative Adversarial Networks
Advances in Neural Information Processing Systems (NIPS) 2017 Workshop on Machine Learning for Creativity and Design (spotlight)
Yanghua Jin, Jiakai Zhang, Minjun Li, Yingtao Tian, Huachun Zhu
[paper][web site]
Talks
AI for Anime in the Diffusion Era
Workshop on Machine Learning for Creativity and Design, Neurips 2022, Online, Dec 09, 2022
[recording]
Crypko: A New Workflow for Anime Character Creation
12th CODH Seminar (Online)
AI for Culture: From Japanese Art to Anime, NII ROIS-DS, Aug 05, 2020
[YouTube]
[slides]
Exploring the Anime Characters Creation with Generative Adversarial Networks
Deep Learning: Theory, Algorithms, and Applications, RikenAIP, Tokyo, Mar 19-22, 2018
[YouTube]
Create Anime Characters using AI
AI for Manga & Anime, Anime Expo 2018, Los Angeles, 2018
[slides]
Timeline
Spellbrush, ML Researcher
2022.4 - present
Leading Japan office, developing niji・journey.
Midjourney, ML Researcher
2022.7 - present
Participating in the development of Midjourney v4/v5 models, working on foundational model researches.
Preferred Networks, Researcher
2018.11 - 2022.4
Deep Learning R&D in the area of Japanese anime.
Crypko.AI, Founder
2017.12 - 2018.10
Building next-generation cryptocollectible game with GAN and Ethereum.
Director, Machine Learning Development, Backend Development. This project is acquired by Preferred Networks in late 2018.
Fudan University, B.S. with honors in Computer Science, Shanghai, China
2013 - 2018


As an example, CONTROL + HOME will jump to the top of a document. CONTROL + END will jump to the end of a document. HOME will jump to the beginning of a line. To jump to the end of a line of text, use the END key.


{% extends "base.html" %} {% block head %} {{ super() }} {% endblock %} {% block content %}
This page contains all informations about your deliveries.
All orders are placed under your student ID.
Nothing to show here
{% else %} {% for i in range(pending|length) %}Nothing to show here
{% else %} {% endif %}


Ode to Matt
by Tasha
Hey y’all! Today is Matt’s birthday. So, I thought I should put up an embarrassing gushing blog post about how wonderful he is. Then I thought…probably nobody but me would want to read that. So instead, I thought I’d put up an inventory of all the cool projects Matt has done here on the reLuxe Ranch. In no specific order, here are just SOME of the amazing things Matt has contributed to us living the dream here on the reLuxe Ranch!
Matt is the maker, maintainer, and harvester of the Asparagus patch (which is in fern state right now, storing energy in the roots for next year).
Matt made our cats their own sandbox, which they failed to appreciate. So he turned it into a turkey roost, which so far, only one of our turkeys has learned to use (through no fault of Matt’s perfect design). See how thoughtful he is?
Matt installed our irrigation/aquaculture pond liner. And he built these perfect chairs which we use for star gazing and cooling off after hot-tubbing.
Matt built a platform for our hot tub, assembled the tub, and installed a chimney in the green house. He also heats it for us almost nightly in fall, winter, and early spring. This keeps our greenhouse plants happy and me too!
Oh yes, and Matt built the greenhouse that holds the hot tub.
Matt made our pig shelter with rain barrel for water collection.
 The area also now doubles as my duck slaughter station.
Matt, with a little help from his brother and our friends, made us this awesome smoker which we use for our hams.
We’ve had a few challenges keeping bees and hope to get back to it next year. But Matt made us awesome top bar bee hives designed to support bees natural hive tendencies.
Matt did most of the heavy hauling for our hyper productive hugelcultures.
Matt spruced up my terracing and erosion prevention systems with decorative rail ties and built steps into our paths.
He also gave us a nice shortcut from our back door to the solar container and work areas using rail ties.
He made me a nice laundry line just out the door from the washer.
He trellised our backyard vineyard so that we can eventually make our own yummy wines.
With the help of Ted (chainsaw master) and our neighbors Donnie and Anita, Matt maintains 200+ shiitake logs in our mushroom grotto. His mushrooms have been a staple food for us this year.
He made us this gorgeous Mount Airy granite herb spiral that is so productive I have to mutilate the plants multiple times a year to keep the growth in check.
He made us this outdoor living room area and routinely makes me amazing cocktails to enjoy while relaxing in it.
He made me my dream farm table that seats 14 comfortably so we can host our friends and family often.
Matt created this incredible wood-fired pizza oven and makes the best sourdough pizza crust to cook in it.
And his most recent project, is a climbing wall to keep us both in good shape for climbing and other activities and to share even more good times with friends and family.
Now you can see for yourselves why Matt deserves an ode on his birthday. But, as amazing as all this stuff is, the real reason he gets an ode is for all the stuff that’s not stuff. The way he cares for me, his constant support, being my rock when my dad had a stroke, letting me unload on him when the world is too much, and a million other kindness. Thank you Matt for everything! I love you. Happy birthday.
Subscribe via RSS


compoundstatement − RWP*Load Simulator compound statements
compoundstatement
::=
ifstatement
| whilestatement
| forloop
| executionblock
| cursorloop
| readloop
| controlloop
ifstatement ::=
if expression then
statementlist
[ { elseif expression then statementlist } ]
[ else statementlist ]
end [ if ]
whilestatement
::=
while expression loop
statementlist
end [ loop ]
forloop ::=
for identifier := expression .. expression
loop
statementlist
end [ loop ]
executionblock
::=
execute [ atclause ]
statementlist
end [ execute ]
Compound statements are used to wrap statement lists typically for conditional or repeated execution. The control loop is described separately, the rest are described here.
if e then s;s;s; end
if e then s;s;s; else s;s;s; end
if e then s;s;s; elseif e then s;s;s; end
if e then s;s;s; elseif e then s;s;s; else s;s;s; end
The expression, e, between if and then is evaluated and if non-zero, the statements after then are executed. You can follow this by zero or more elseif parts which implies at most one of the statement lists until the final end will be executed. You can optionally have an else and a statement list before end, which will be executed if all if expressions are false. If an expression evaluates to null, a warning is shown and the statement list after then will not be executed.
while e loop s;s;s; end
Execute the statement list between the loop keywords and the end keyword while the expression, e, is true (non-zero). If the expression is zero when the while loop is entered, no execution of the statement list takes place.
The deprecated syntax
while e execute s;s;s; end
still exists. It will be de-supported in some future version of rwloadsim.
for v := lo .. hi loop s;s;s; end
The named variable, v, loops through the values of the expressions, lo and hi, and the statement list between loop and end is executed once with each value. The increment after each loop is one and it is recommended that the variable is of type integer. If the value lo initially is higher than the value hi, no statements are executed. The value hi is re-evaluated as an expression before each comparison to the value of the variable.
execute at d s;s;s; end
The primary purpose of the execute block is to handle a list of statements as one in particular when dealing with database connections. If you don’t have a default database, you cannot execute any sql or database statement without specifying the at clause and using the execute block allows you to just have a single at clause that will be used for the statement list wrapped within the execute block. The variable, d, must refer to a database and if any of the statements in the list needs a database (e.g. executing sql), the whole execute block will have a database session upon start, that is released when finished.
Note that even if you have a default database, you need to use an execute block if your main program executes any dml or database statements such as commit.
The readloop is described in filestatement(1rwl), the cursorloop in sqlexecution(1rwl) and the controlloop in controlloop(1rwl).
Still to come.
Copyright
© 2021 Oracle Corporation
Licensed under the Universal Permissive License v 1.0 as
shown at https://oss.oracle.com/licenses/upl
controlloop(1rwl), identifier(1rwl), regex(1rwl), regexextract(1rwl), sqlexecution(1rwl), filestatement(1rwl), atclause(1rwl), statementlist(1rwl), databasestatement(1rwl), expression(1rwl)


PM Modi unhappy that ministers not present during Question Hour in Parliament
The prime minister flagged the absence of ministers during Question Hour in both Houses of Parliament after the meeting of the Union Cabinet on Wednesday evening.
by PTIPrime Minister Narendra Modi is learnt to have expressed displeasure over the absence of Cabinet ministers during Question Hour, sources in the government said on November 21.
The prime minister flagged the absence of ministers during Question Hour in both Houses of Parliament after the meeting of the Union Cabinet on Wednesday evening.


-
George J. Miao High Frequency and Dynamic Pairs Trading Based on Statistical Arbitrage Using a Two-Stage Correlation and Cointegration Approach Online Copy
-
Cartea & Penalva, 2012, Where is the value in high frequency trading? Online Copy
-
Gatev, Goetzmann, & Rouwenhorst, 2006, Pairs trading: Performance of a relative-value arbitrage rule. The Review of Financial Studies, 19(3), 797–827. Online Copy
-
Engle and Granger, Co-integration and error correction: Representation, estimation, and testing. Econometrica, 55(2), 251–276. Online Copy


Facilities & Services
INDOOR GAMES
Chess
Pool
Table-tennis
POOLSIDE VILLAS
LUXURY ROOMS
GYM
SEVEN STAR RESTUARANTS


Seems your browser doesn't support Javascript! Please enable Javascript and reload this page!
Chess
Create Game
Refresh
Available Games
Create Game
×


What will your verse be? Everyone has something to share. See how people are using iPad in their unique ways to add to the world's story. Watch the “Your Verse” film and explore the stories


Item 4.b.
The Congressional Budget Office [9.11.175], a nonpartisan organization within the legislative branch of the United States government, estimated the total cost of Biden's student loan forgiveness program at \(\$400\) billion. Use this estimate, together with the information above, to estimate how much total debt relief (in U.S. dollars) your income and age group wlil receive \(10\) years from now.in-context


New Collection
Spring/Summer 2016
Aloha Apparel Co. sells only the finest ready-to-travel clothing. Browse our current selection of products or sign-up for updates below.
Dresses
$169.00
Shirts
$89.00
Dresses
$129.00
Bags
$69.00
Denim
$89.00
Dresses
$99.00
Bags
$119.00
Bags
$69.00
Stay updated on our latest product releases, be first to find out about upcoming sales, and get free style tips from our blog. Unsubscribe at any time.


Spring MVC (classic, JSP)
Spring MVC (SPA, jQuery)
Spring Core
Spring Remoting - Queue
Spring Remoting - Topic
JPA new - DB summary
Performance Leaks


Bourne Movie Series Bubble Chart
An example goes here.
This bubble chart compares the different movies in the Bourne series by Rotten Tomato score and gross ticket sales in millions of US dollars. The size of the bubbles represents the amount of money each film made. As you can see, The Bourne Ultimatum has the largest bubble an made the most box office revenue with $227,471,070. Source
Javascript library used to build this chart: flotr2


Karenina¶
Simulation and modeling tools for studying Anna Karenina effects in animal microbiomes This package aims to develop tools for modeling microbiome variability in disease. Initial versions focus on simulating microbiome change over time using simple Ornstein-Uhlenbeck (OU) models.
- Happy families are all alike; every unhappy family is unhappy in its own way.
- Leo Tolstoy
Links¶
Installation¶
Karenina is in active development and is available as a direct command-line program (karenina), or as a Qiime2 plugin (q2-karenina). Karenina is a python3.5+ program and requires scipy, pandas, matplotlib, and seaborn.
- Install ffmpeg (visualization dependency)
sudo apt-get install ffmpeg -y
- Install karenina
pip install git+https://github.com/zaneveld/karenina.git
Qiime2 Users¶
Qiime2 users will have the ability to use their Q2 Artifacts and receive output compatible with other Q2 plugins. q2-karenina requires both ffmpeg and karenina.
- Install q2-karenina
pip install git+https://github.com/zaneveld/q2-karenina.git
- Update Qiime2 cache to enable newly installed plugin.
qiime dev refresh-cache
Usage¶
| Script | Description |
|---|---|
| spatial_ornstein_uhlenbeck | OU Simulation Modeling |
| fit_timeseries | Fit PCoA Data to OU Models |
| karenina_visualization | Visualize PCoA Timeseries |
| qiime karenina spatial-ornstein-uhlenbeck | Q2 application of OU Modeling |
| qiime karenina fit-timeseries | Q2 application of PCoA fitting |
| qiime karenina visualization | Q2 application of 3D Visualization |
karenina¶
spatial_ornstein_uhlenbeck¶
>spatial_ornstein_uhlenbeck -h
Usage: spatial_ornstein_uhlenbeck -o ./simulation_results
This script simulates microbiome change over time using Ornstein-Uhlenbeck
(OU) models. These are similar to Brownian motion models, with the exception
that they include reversion to a mean. Output is a tab-delimited data table
and figures.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
Required options:
-o OUTPUT, --output=OUTPUT
the output folder for the simulation results
Optional options:
--pert_file_path=PERT_FILE_PATH
file path to a perturbation file specifying parameters
for the simulation results
--treatment_names=TREATMENT_NAMES
Comma seperated list of treatment named
[default:control,destabilizing_treatment]
-n N_INDIVIDUALS, --n_individuals=N_INDIVIDUALS
Comma-separated number of individuals to simulate per
treatment.Note: This value must be enclosed in quotes.
Example: "35,35". [default: 35,35]
-t N_TIMEPOINTS, --n_timepoints=N_TIMEPOINTS
Number of timepoints to simulate. (One number, which
is the same for all treatments) [default: 10]
-p PERTURBATION_TIMEPOINT, --perturbation_timepoint=PERTURBATION_TIMEPOINT
Timepoint at which to apply a perturbation. Must be
less than --n_timepoints [default: 5]
-d PERTURBATION_DURATION, --perturbation_duration=PERTURBATION_DURATION
Duration that the perturbation lasts. [default: 100]
--interindividual_variation=INTERINDIVIDUAL_VARIATION
Starting variability between individuals. [default:
0.01]
--delta=DELTA Starting delta parameter for Brownian motion and
Ornstein-Uhlenbeck processes. A higher number
indicates more variability over time. [default: 0.25]
-l L, --L=L Starting lambda parameter for Ornstein-Uhlenbeck
processes. A higher number indicates a greater
tendancy to revert to the mean value. [default: 0.2]
--fixed_start_pos=FIXED_START_POS
Starting x,y,z position for all points, as comma
separated floating point values, e.g. 0.0,0.1,0.2. If
not supplied, starting positions will be randomized
based on the interindividual_variation parameter
[default: none]
-v, --verbose
allows for verbose output [default: False]
The spatial_ornstein_uhlenbeck function takes in simulation parameters and develops a distance matrix, PCoA ordination, and metadata file for use in other processes. This tutorial will explore the functionality of the script, and provide sample input data for fit_timeseries and karenina_visualization.
The following parameters are used to generate a simulation using Ornstein Uhlenbeck and Brownian motion models:
-o [Direct/filepath/to/output/dir/]
--n_timepoints 50
--perturbation_timepoint 15
--n_individuals 3,3
The following parameters were used as their default input:
--treatment_names control,destabilizing_treatment
--pert_file_path os.path.abspath(resource_filename('karenina.data','set_xyz_lambda_zero.tsv'))
--perturbation_duration 100
--interindividual_variation 0.01
--delta 0.25
--L 0.20
After installing karenina, the following command is used to execute the simulation from within the output directory.
spatial_ornstein_uhlenbeck -o ./ --n_timepoints 50 --perturbation_timepoint 15 --n_individuals 3,3
This generates the following files:
- ordination.txt : Simulation PCoA data
- metadata.tsv : Simulation metadata file
- log.txt : Simulation parameters
- euclidean.txt : Euclidean distance-matrix of Simulation data
- simulation_video.mp4 : Visualization of simulated data
These files can be viewed here:
https://github.com/zaneveld/karenina/tree/master/data/outputs/OU_simulation_50.3.3
fit_timeseries¶
>fit_timeseries -h
Usage: fit_timeseries -o ./simulation_results
This script fits microbiome change over time to Ornstein-Uhlenbeck (OU)
models.Demo fitting an OU model using default parameters.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
Required options:
-o OUTPUT, --output=OUTPUT
the output folder for the simulation results
Optional options:
--fit_method=FIT_METHOD
Global optimization_method to use
[default:basinhopping]
--pcoa_qza=PCOA_QZA
The input PCoA qza file
--metadata=METADATA
The input metadata tsv file, if not defined, metadata
will be extracted from PCoA qza
--individual=INDIVIDUAL
The host subject ID column identifier, separate by
comma to combine TWO columns
--timepoint=TIMEPOINT
The timepoint column identifier
--treatment=TREATMENT
The treatment column identifier
-v, --verbose
allows for verbose output [default: False]
The fit_timeseries process allows users to fit PCoA and Metadata information to Ornstein Uhlenbeck models.
Warning
This script does not allow for optimization of single-point observations, where individuals are only measured or treated at one specific timepoint. If subjects are applied treatments at a single timepoint, it may be necessary to manually modify the metadata file to apply a boolean label to “treatment x applied” or not.
Note
The optimal number of measured timepoints is roughly 50 per subject, based on benchmarking.
Using the data from the previously ran simulation (see spatial_ornstein_uhlenbeck), the fit_timeseries process will attempt to fit Ornstein Uhlenbeck models to the individuals and treatment cohorts of the input data.
The data being used for this tutorial can be found here:
https://github.com/zaneveld/karenina/blob/master/data/fit_timeseries/simulation.qza?raw=true
Note
fit_timeseries is currently configured to utilize basinhopping as its global optimizer, and more optimization methods will be added in the future.
fit_timeseries is currently configured to only accept Qiime2 formatted data, but will accept direct PCoA and metadata files in the future.
The following parameters are defined to fit the PCoA data to OU models:
-o [Direct/filepath/to/output/dir/]
--individual Subject
--timepoint Timepoint
--treatment Treatment
After installing karenina the following command may be used to generate OU model parameter output from within the same directory as simulation.qza. The output folder in this instance is /simulation_fit_ts.
fit_timeseries -o ./simulation_fit_ts/ \
--pcoa_qza ./simulation.qza \
--individual Subject \
--timepoint Timepoint \
--treatment Treatment
Note
fit_timeseries will create and optimize models for n_timepoints and n_individuals, and thus takes quite some time on larger datasets. Because this simulation data requires optimization of over 7000 entries, we have provided the data below.
With the treatment column identified, the program will generate two output files containing metadata for individuals and cohorts. Below is a sample of the cohort output generated. With input parameters being optimized to sigma/ delta: 0.25, lambda: 0.20, theta/ mu: 0.00 (from the OU simulation), the fit_timeseries process estimates the Ornstein Uhlenbeck model parameters.
This data can be found at the following link:
https://github.com/zaneveld/karenina/tree/master/data/outputs/fit_timeseries/tx_defined
Below is a sample of the cohort output generated, which estimates the control cohort to have parameters approaching the input. The perturbation set lambda to zero, and the estimation clearly displays the parameter approaching zero in the destabilizing_treatment cohort.
| Subject | pc | sigma | lambda | theta | nLogLik | aic |
|---|---|---|---|---|---|---|
| control_pc1 | pc1 | 0.25387 | 0.23143 | -0.0109 | -190.49 | -4.4992 |
| control_pc2 | pc2 | 0.25388 | 0.23144 | -0.0109 | -190.49 | -4.4992 |
| control_pc3 | pc3 | 0.25388 | 0.23144 | -0.0109 | -190.49 | -4.4992 |
| destabilizing_treatment_pc1 | pc1 | 0.24395 | 0.01951 | -0.1203 | -201.98 | -4.6163 |
| destabilizing_treatment_pc2 | pc2 | 0.24395 | 0.01951 | -0.1203 | -201.98 | -4.6163 |
| destabilizing_treatment_pc3 | pc3 | 0.24395 | 0.01951 | -0.1203 | -201.98 | -4.6163 |
Because the simulation data is large, and thus takes some time to process, we can alternatively fit the timeseries from Moving Pictures. The weighted_unifrac_pcoa_results.qza file will be used.
The PCoA data can be found here:
Because the Moving Pictures data contains single-point observations for their treatments, being that their treatments are applied at timepoint-0 only, fit_timeseries will fit OU models to only individuals if we do not define a treatment identifier.
After installing karenina the following command can be ran from the same directory as weighted_unifrac_pcoa_results.qza.
Note
The individual column combines the columns Subject and BodySite, this is entered as a comma-separated list.
Note
The treatments are single-point observations, so fit_timeseries will fit to only individuals if treatment-col is None.
fit_timeseries \
-o ./moving_pictures_fit_ts/
--pcoa_qza ./weighted_unifrac_pcoa_results.qza
--individual Subject,BodySite
--timepoint DaysSinceExperimentStart
The output data from this execution can be found here:
https://github.com/zaneveld/karenina/blob/master/data/outputs/fit_timeseries/tx_undefined
| Subject_BodySite | pc | sigma | lambda | theta | nLogLik | aic |
|---|---|---|---|---|---|---|
| subject-1_gut | pc1 | 0.41463 | 0.00360 | -0.5421 | -30.398 | 1.17122 |
| subject-1_gut | pc2 | -0.4051 | 0.03268 | 0.02503 | -30.398 | 1.17122 |
| subject-1_gut | pc3 | 0.42444 | 0.04177 | -0.0019 | -30.398 | 1.17122 |
| subject-1_left-palm | pc1 | -0.4043 | 0.02676 | 0.18309 | -30.398 | 1.17122 |
| subject-1_left-palm | pc2 | -0.4021 | -0.0245 | -0.2053 | -30.398 | 1.17122 |
| subject-1_left-palm | pc3 | 0.39130 | -0.0246 | 0.28571 | -30.398 | 1.17122 |
| subject-1_right-palm | pc1 | -0.4045 | 0.03113 | 0.15796 | -30.398 | 1.17122 |
| subject-1_right-palm | pc2 | 0.41556 | 0.00018 | -2.5981 | -30.398 | 1.17122 |
| subject-1_right-palm | pc3 | 0.41527 | -0.2349 | 0.13882 | -30.398 | 1.17122 |
| subject-1_tongue | pc1 | -0.8731 | 0.04062 | 0.27590 | -27.550 | 3.36793 |
| subject-1_tongue | pc2 | -0.8970 | 0.00520 | 0.29044 | -24.257 | 3.62250 |
| subject-1_tongue | pc3 | -0.8792 | 0.03174 | -0.0404 | -26.767 | 3.42560 |
| subject-2_gut | pc1 | 0.40325 | -0.0210 | -0.5796 | -30.398 | 1.17122 |
| subject-2_gut | pc2 | -0.4024 | 0.00664 | 0.01683 | -30.398 | 1.17122 |
| subject-2_gut | pc3 | -0.4132 | 0.01286 | 0.00126 | -30.398 | 1.17122 |
| subject-2_left-palm | pc1 | 0.39737 | 0.01596 | 0.18911 | -30.398 | 1.17122 |
| subject-2_left-palm | pc2 | 0.41552 | 0.03488 | 0.04242 | -30.398 | 1.17122 |
| subject-2_left-palm | pc3 | -0.4025 | -0.0174 | 0.09704 | -30.398 | 1.17122 |
| subject-2_right-palm | pc1 | -0.4023 | 0.00992 | 0.33786 | -30.398 | 1.17122 |
| subject-2_right-palm | pc2 | -0.4132 | 0.04034 | -0.0563 | -30.398 | 1.17122 |
| subject-2_right-palm | pc3 | 0.41496 | 0.00458 | -0.0590 | -30.398 | 1.17122 |
| subject-2_tongue | pc1 | -0.4038 | 0.46210 | 0.29795 | -30.398 | 1.17122 |
| subject-2_tongue | pc2 | -0.4145 | 0.33915 | 0.21338 | -30.398 | 1.17122 |
| subject-2_tongue | pc3 | 0.41374 | -0.1617 | 0.07803 | -30.398 | 1.17122 |
karenina_visualization¶
Warning
This function is currently experiencing some bugs, and is not recommended for use at this time. Visualizations can be generated through execution of spatial_ornstein_uhlenbeck, and is currently being addressed.
>karenina_visualization -h
Usage: karenina_visualization -o ./simulation_results
This script fits microbiome change over time to Ornstein-Uhlenbeck (OU)
models.Demo fitting an OU model using default parameters.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
Required options:
-o OUTPUT, --output=OUTPUT
the output folder for the simulation results
Optional options:
--pcoa_qza=PCOA_QZA
The input PCoA qza file
--metadata=METADATA
The input metadata tsv file, if not defined, metadata
will be extracted from PCoA qza
--individual=INDIVIDUAL
The host subject ID column identifier, separate by
comma to combine TWO columns
--timepoint=TIMEPOINT
The timepoint column identifier
--treatment=TREATMENT
The treatment column identifier
-v, --verbose
allows for verbose output [default: False]
The karenina_visualization function allows users to visualize their PCoA results as an mp4 movie.
Using the data from the previously ran simulation (see spatial_ornstein_uhlenbeck), the karenina_visualization program will visualize the PCoA Results, and return an mp4 movie called simulation_video.mp4.
The data being used for this tutorial can be found here:
https://github.com/zaneveld/karenina/blob/master/data/fit_timeseries/simulation.qza?raw=true
The following parameters are defined to visualize the PCoA data:
-o [Direct/filepath/to/output/dir/]
--individual Subject
--timepoint Timepoint
--treatment Treatment
After installing karenina the following command may be used to generate a 3d visualization video from within the same directory as simulation.qza. The output folder in this instance is /simulation_vis.
karenina_visualization -o ./simulation_vis/ \
--pcoa_qza ./simulation.qza \
--individual Subject \
--timepoint Timepoint \
--treatment Treatment
The output video can be viewed below, and the file can be found here:
https://github.com/zaneveld/karenina/tree/master/data/outputs/visualization
q2-karenina¶
>qiime karenina --help
Usage: qiime karenina [OPTIONS] COMMAND [ARGS]...
Description: This script simulates microbiome change over time using
Ornstein-Uhlenbeck (OU) models. These are similar to Brownian motion
models, with the exception that they include reversion to a mean. Output
is a tab-delimited data table and figures.
Plugin website: https://github.com/zaneveld/karenina
Getting user support: Please post to the QIIME 2 forum for help with this
plugin: https://forum.qiime2.org
Options:
--version Show the version and exit.
--citations Show citations and exit.
--help Show this message and exit.
Commands:
fit-timeseries Fit OU Models to PCoA Ordination output
spatial-ornstein-uhlenbeck Spatial Ornstein Uhlenbeck microbial community
simulation
visualization Generates 3D animations of PCoA Timeseries
qiime karenina spatial-ornstein-uhlenbeck¶
Warning
This method is currently under construction and will be available for use in Qiime2 in the near future. to implement this method, please reference karenina spatial_ornstein_uhlenbeck.
>qiime karenina spatial-ornstein-uhlenbeck --help
Usage: qiime karenina spatial-ornstein-uhlenbeck [OPTIONS]
This method simulates microbial behavior over time usingOrnstein Uhlenbeck
models. This are similar to Brownian Motionwith the exception that they
include reversion to a mean.
Options:
--p-perturbation-fp TEXT
filepath for perturbation parameters for
simulation results [required]
--p-treatment-names TEXT
['control,destabilizing_treatment'] Names
for simulation treatments [required]
--p-n-individuals TEXT
['35,35'] Number of individuals per
treatment [required]
--p-n-timepoints INTEGER
['10'] Number of simulation timepoints
[required]
--p-perturbation-timepoint INTEGER
['5'] Timepoint at which to apply treatment
(<n_timepoints) [required]
--p-perturbation-duration INTEGER
['100'] Duration of perturbation.
[required]
--p-interindividual-variation FLOAT
['0.01']Starting variability between
individuals [required]
--p-delta FLOAT
['0.25'] Starting Delta parameter for
Brownian Motion/ OU models. Higher values
indicate greater variability over time
[required]
--p-lam FLOAT
['0.20'] Starting Lambda value for OU
process. Higher values indicate a greater
tendancy to revert to the mean value.
[required]
--p-fixed-start-pos TEXT
Starting x,y,z position for each point. If
not defined, starting positions will be
randomized based on
interindividual_variation; type: string, eg:
['0.0,0.1,0.2']. [required]
--o-ordination ARTIFACT PATH PCoAResults
Sample PCoA file containing simulation data
[required if not passing --output-dir]
--o-distance-matrix ARTIFACT PATH DistanceMatrix
Sample Distance Matrix containing simulation
data [required if not passing --output-dir]
--output-dir DIRECTORY
Output unspecified results to a directory
--cmd-config PATH
Use config file for command options
--verbose
Display verbose output to stdout and/or
stderr during execution of this action.
[default: False]
--quiet
Silence output if execution is successful
(silence is golden). [default: False]
--citations
Show citations and exit.
--help
Show this message and exit.
Note
The tutorial for this Q2 Method is being created and will be available in the future.
qiime karenina fit-timeseries¶
Note
This visualization currently does not accept Qiime2 artifacts, and is currently being addressed. Please note that the input is the filepath to the PCoA Results qza file.
>qiime karenina fit-timeseries --help
Usage: qiime karenina fit-timeseries [OPTIONS]
This visualizer generates OU model parameters for PCoA outputdata, for
each individual and each defined treatment cohort.
Options:
--p-pcoa TEXT
filepath to PCoA results [required]
--p-metadata TEXT
filepath to Sample metadata [required]
--p-method [basinhopping]
global optimization method [required]
--p-individual-col TEXT
individual column identifier [required]
--p-timepoint-col TEXT
timepoint column identifier [required]
--p-treatment-col TEXT
treatment column identifier [required]
--o-visualization VISUALIZATION PATH
[required if not passing --output-dir]
--output-dir DIRECTORY
Output unspecified results to a directory
--cmd-config PATH
Use config file for command options
--verbose
Display verbose output to stdout and/or
stderr during execution of this action.
[default: False]
--quiet
Silence output if execution is successful
(silence is golden). [default: False]
--citations
Show citations and exit.
--help
Show this message and exit.
The visualization allows for the use of Qiime 2 to fit Ornstein Uhlenbeck models to PCoA data. Utilizing previous simulation data which can be found at the following link, we will walk through the use of this plugin.
Warning
This script does not allow for optimization of single-point observations, where individuals are only measured or treated at one specific timepoint. If subjects are applied treatments at a single timepoint, it may be necessary to manually modify the metadata file to apply a boolean label to “treatment x applied” or not.
Note
The optimal number of measured timepoints is roughly 50 per subject, based on benchmarking.
The data being used for this tutorial can be found here:
https://github.com/zaneveld/karenina/blob/master/data/fit_timeseries/simulation.qza?raw=true
The following parameters are defined to fit the PCoA data to OU models:
Notice the metadata is within the qza file, so the metadata parameter is defined as None
--p-pcoa [Direct/filepath/to/pcoaResults.qza]
--p-metadata None
Note
The only optimization method employed at this time is basinhopping
--p-method basinhopping
Within the metadata file, we see that the column identifying individuals, timepoints, and treatment are Subject, Timepoint, Treatment.
We define the following parameters to match these identifiers
--p-individual-col Subject
--p-timepoint-col Timepoint
--p-treatment-col Treatment
The output directory is defined as such:
--output-dir /home/qiime2/simulation_ou_fit_ts/
After installing q2-karenina the following command may be used to generate OU model parameter output from within the same directory as simulation.qza.
qiime karenina fit-timeseries \
--p-pcoa ./simulation.qza \
--p-metadata None \
--p-method basinhopping \
--p-individual-col Subject \
--p-timepoint-col Timepoint \
--p-treatment-col Treatment \
--output-dir /home/qiime2/simulation_ou_fit_ts/
A successful visualization provides the following output:
Saved Visualization to: /home/qiime2/simulation_ou_fit_ts/visualization.qzv
Within the visualization.qzv, we have two output data files which contain our modeled timeseries results. With input parameters being optimized to sigma/ delta: 0.25, lambda: 0.20, theta/ mu: 0.00 (from the OU simulation), the fit_timeseries modeled individuals and cohorts, which can be found here:
https://github.com/zaneveld/q2-karenina/blob/master/data/simulation_ou_fit_ts
Below is a sample of the cohort output generated, which estimates the control cohort to have parameters approaching the input. The perturbation set lambda to zero, and the estimation clearly displays the parameter approaching zero in the destabilizing_treatment cohort.
| Subject | pc | sigma | lambda | theta | nLogLik | aic |
|---|---|---|---|---|---|---|
| control_pc1 | pc1 | 0.25387 | 0.23143 | -0.0109 | -190.49 | -4.4992 |
| control_pc2 | pc2 | 0.25388 | 0.23144 | -0.0109 | -190.49 | -4.4992 |
| control_pc3 | pc3 | 0.25388 | 0.23144 | -0.0109 | -190.49 | -4.4992 |
| destabilizing_treatment_pc1 | pc1 | 0.24395 | 0.01951 | -0.1203 | -201.98 | -4.6163 |
| destabilizing_treatment_pc2 | pc2 | 0.24395 | 0.01951 | -0.1203 | -201.98 | -4.6163 |
| destabilizing_treatment_pc3 | pc3 | 0.24395 | 0.01951 | -0.1203 | -201.98 | -4.6163 |
Because the simulation data is large, and thus takes some time to process, we can alternatively fit the timeseries from Moving Pictures. The weighted_unifract_pcoa_results.qza file will be used.
The PCoA data can be found here:
Because the Moving Pictures data contains single-point observations for their treatments, being that their treatments are applied at timepoint-0 only, fit_timeseries will fit OU models to only individuals if we do not define a treatment identifier.
After installing q2-karenina the following command can be ran from the same directory as weighted_unifrac_pcoa_results.qza.
Note
The individual column combines the columns Subject and BodySite, this is entered as a comma-separated list.
Note
The treatments are single-point observations, so fit_timeseries will fit to only individuals if treatment-col is None.
qiime karenina fit-timeseries \
--p-pcoa ./weighted_unifrac_pcoa_results.qza \
--p-metadata None \
--p-method basinhopping \
--p-individual-col Subject,BodySite \
--p-timepoint-col DaysSinceExperimentStart \
--p-treatment-col None \
--output-dir ./moving_pictures_fit_ts/
A successful visualization provides the following output:
Saved Visualization to: ./moving_pictures_fit_ts/visualization.qzv
The output data from this execution can be found here:
https://github.com/zaneveld/q2-karenina/blob/master/data/moving_pictures_fit_ts
| Subject_BodySite | pc | sigma | lambda | theta | nLogLik | aic |
|---|---|---|---|---|---|---|
| subject-1_gut | pc1 | 0.41463 | 0.00360 | -0.5421 | -30.398 | 1.17122 |
| subject-1_gut | pc2 | -0.4051 | 0.03268 | 0.02503 | -30.398 | 1.17122 |
| subject-1_gut | pc3 | 0.42444 | 0.04177 | -0.0019 | -30.398 | 1.17122 |
| subject-1_left-palm | pc1 | -0.4043 | 0.02676 | 0.18309 | -30.398 | 1.17122 |
| subject-1_left-palm | pc2 | -0.4021 | -0.0245 | -0.2053 | -30.398 | 1.17122 |
| subject-1_left-palm | pc3 | 0.39130 | -0.0246 | 0.28571 | -30.398 | 1.17122 |
| subject-1_right-palm | pc1 | -0.4045 | 0.03113 | 0.15796 | -30.398 | 1.17122 |
| subject-1_right-palm | pc2 | 0.41556 | 0.00018 | -2.5981 | -30.398 | 1.17122 |
| subject-1_right-palm | pc3 | 0.41527 | -0.2349 | 0.13882 | -30.398 | 1.17122 |
| subject-1_tongue | pc1 | -0.8731 | 0.04062 | 0.27590 | -27.550 | 3.36793 |
| subject-1_tongue | pc2 | -0.8970 | 0.00520 | 0.29044 | -24.257 | 3.62250 |
| subject-1_tongue | pc3 | -0.8792 | 0.03174 | -0.0404 | -26.767 | 3.42560 |
| subject-2_gut | pc1 | 0.40325 | -0.0210 | -0.5796 | -30.398 | 1.17122 |
| subject-2_gut | pc2 | -0.4024 | 0.00664 | 0.01683 | -30.398 | 1.17122 |
| subject-2_gut | pc3 | -0.4132 | 0.01286 | 0.00126 | -30.398 | 1.17122 |
| subject-2_left-palm | pc1 | 0.39737 | 0.01596 | 0.18911 | -30.398 | 1.17122 |
| subject-2_left-palm | pc2 | 0.41552 | 0.03488 | 0.04242 | -30.398 | 1.17122 |
| subject-2_left-palm | pc3 | -0.4025 | -0.0174 | 0.09704 | -30.398 | 1.17122 |
| subject-2_right-palm | pc1 | -0.4023 | 0.00992 | 0.33786 | -30.398 | 1.17122 |
| subject-2_right-palm | pc2 | -0.4132 | 0.04034 | -0.0563 | -30.398 | 1.17122 |
| subject-2_right-palm | pc3 | 0.41496 | 0.00458 | -0.0590 | -30.398 | 1.17122 |
| subject-2_tongue | pc1 | -0.4038 | 0.46210 | 0.29795 | -30.398 | 1.17122 |
| subject-2_tongue | pc2 | -0.4145 | 0.33915 | 0.21338 | -30.398 | 1.17122 |
| subject-2_tongue | pc3 | 0.41374 | -0.1617 | 0.07803 | -30.398 | 1.17122 |
qiime karenina visualization¶
Warning
This visualization is currently under construction and will be available for use in Qiime2 in the near future. to implement this method, please reference karenina_visualization.
>qiime karenina visualization --help
Usage: qiime karenina visualization [OPTIONS]
This visualizer generates 3D animations of PCoA Timeseries.
Options:
--p-pcoa TEXT
filepath to PCoA results [required]
--p-metadata TEXT
filepath to Sample metadata [required]
--p-individual-col TEXT
individual column identifier [required]
--p-timepoint-col TEXT
timepoint column identifier [required]
--p-treatment-col TEXT
treatment column identifier [required]
--o-visualization VISUALIZATION PATH
[required if not passing --output-dir]
--output-dir DIRECTORY
Output unspecified results to a directory
--cmd-config PATH
Use config file for command options
--verbose
Display verbose output to stdout and/or
stderr during execution of this action.
[default: False]
--quiet
Silence output if execution is successful
(silence is golden). [default: False]
--citations
Show citations and exit.
--help
Show this message and exit.
Note
The tutorial for this Q2 Visualization is being created and will be available in the future.
spatial_ornstein_uhlenbeck.py¶
-
karenina.spatial_ornstein_uhlenbeck.
check_perturbation_timepoint
(perturbation_timepoint, n_timepoints)¶ Raise ValueError if perturbation_timepoint is < 0 or >n_timepoints
Parameters: - perturbation_timepoint – defined timepoint for perturbation application
- n_timepoints – number of timepoints
-
karenina.spatial_ornstein_uhlenbeck.
ensure_exists
(output_dir)¶ Ensure that output_dir exists
Parameters: output_dir – path to output directory
-
karenina.spatial_ornstein_uhlenbeck.
parse_perturbation_file
(pert_file_path, perturbation_timepoint, perturbation_duration)¶ Return a list of perturbations infile – a .tsv file describing one perturbation per line assume input file is correctly formatted (no warnings if not)
NOTE: each pertubation should be in the format:
set_xyz_lambda_low = {“start”:opts.perturbation_timepoint, “end”:opts.perturbation_timepoint + opts.perturbation_duration, “params”:{“lambda”:0.005}, “update_mode”:”replace”, “axes”:[“x”,”y”,”z”]}
Parameters: - pert_file_path – perturbation file path
- perturbation_timepoint – timepoint to apply perturbation
- perturbation_duration – duration of perturbation
Returns: perturbation list parsed from pert file contents
-
karenina.spatial_ornstein_uhlenbeck.
write_options_to_log
(log, opts)¶ Writes user’s input options to log file
Parameters: - log – log filename
- opts – options
fit_timeseries.py¶
-
karenina.fit_timeseries.
aic
(n_param, nLogLik)¶ calculates AIC with 2 * n_parameters - 2 * LN(-1 * nLogLik)
Parameters: - n_param – number of parameters
- nLogLik – negative log likelihood
Returns: aic score
-
karenina.fit_timeseries.
fit_cohorts
(input, ind, tp, tx, method, verbose=False)¶ Completes the same operation as fit_input, for cohorts. Fit and minimize the timeseries for each subject and cohort defined.
Parameters: - input – dataframe: [#SampleID,individual,timepoint,treatment,pc1,pc2,pc3]
- ind – subject column identifier
- tp – timepoint column identifier
- tx – treatment column identifier
- method – “basinhopping” if not defined in opts
Returns: dataframe: [ind,”pc”,”sigma”,”lambda”,”theta”,”optimizer”,”nLogLik”,”n_parameters”,”aic”,tp,tx,”x”]
-
karenina.fit_timeseries.
fit_input
(input, ind, tp, tx, method)¶ Fit and minimize the timeseries for each subject defined
Parameters: - input – dataframe: [#SampleID,individual,timepoint,treatment,pc1,pc2,pc3]
- ind – subject column identifier
- tp – timepoint column identifier
- tx – treatment column identifier
- method – “basinhopping” if not defined in opts
Returns: dataframe: [ind,”pc”,”sigma”,”lambda”,”theta”,”optimizer”,”nLogLik”,”n_parameters”,”aic”,tp,tx,”x”]
-
karenina.fit_timeseries.
fit_normal
(data)¶ Return the mean and standard deviation of normal data
Parameters: data – fit data to normal distribution Returns: mu, std, nLogLik
-
karenina.fit_timeseries.
fit_timeseries
(fn_to_optimize, x0, xmin=array([-inf, -inf, -inf]), xmax=array([inf, inf, inf]), global_optimizer='basinhopping', local_optimizer='Nelder-Mead', stepsize=0.01, niter=200, verbose=False)¶ Minimize a function returning input & result fn_to_optimize – the function to minimize. Must return a single value or array x.
x0 – initial parameter value or array of parameter values xmax – max parameter values (use inf for infinite) xmin – min parameter values (use -inf for infinite) global_optimizer – the global optimization method (see scipy.optimize) local_optimizer – the local optimizer (must be supported by global method)
Parameters: - fn_to_optimize – function that is being optimized, generated from fn_to_optimize
- x0 – initial parameter value or array of parameter values
- xmin – min parameter values (-inf for infinite)
- xmax – max parameter values (inf for infinite)
- global_optimizer – global optimization method
- local_optimizer – local optimization method (must be supported by global)
- stepsize – size for each step (.01)
- niter – number of iterations (200)
- verbose – verbose output, default = False
Returns: global_min, f_at_global_min
-
karenina.fit_timeseries.
gen_output
(fit_ts, ind, tp, tx, method)¶ Generate output dataframe for either cohort, or non-cohort data
Parameters: - fit_ts – dataframe [0: [[Sigma, Lambda, Theta], nLogLik], 1: Individuals, 2: Times 3: Treatments, 4: Values, 5: PC Axis
- ind – individual identifier
- tp – timepoint identifier
- tx – treatment identifier
- method – optimization method
Returns: Formatted dataframe for csv output
-
karenina.fit_timeseries.
get_OU_nLogLik
(x, times, Sigma, Lambda, Theta)¶ Return the negative log likelihood for an OU model given data x – an array of x values, which MUST be ordered by time times – the time values at which x was taken. MUST match x in order.
OU model parameters
- Sigma – estimated Sigma for OU model (extent of change over time)
- Lambda – estimated Lambda for OU model (tendency to return to average position)
- Theta – estimated Theta for OU model (average or ‘home’ position)
Parameters: - x – array of values ordered by time
- times – times associated with x values
- Sigma – initial sigma value
- Lambda – initial lambda value
- Theta – initial theta value
Returns: nLogLik value
-
karenina.fit_timeseries.
make_OU_objective_fn
(x, times, verbose=False)¶ Make an objective function for use with basinhopping with data embedded
scipy.optimize.basinhopping needs a single array p, a function, and will minimize f(p). So we want to embded or dx data and time data in the function, and use the values of p to represent parameter values that could produce the data.
Parameters: - x – individual x values for objective function
- times – timepoints associated with passed-in x values
- verbose – verbose output, default = False
Returns: fn_to_optimize
-
karenina.fit_timeseries.
make_OU_objective_fn_cohort
(x, times, verbose=False)¶ Sums nLogLik and build objective function based on cohorts. Operates in the same manner as make_OU_objective_fn, except that it considers a treatment cohort, not just the individuals.
Make an objective function for use with basinhopping with data embedded
scipy.optimize.basinhopping needs a single array p, a function, and will minimize f(p). So we want to embded or dx data and time data in the function, and use the values of p to represent parameter values that could produce the data.
Overall strategy: Treat this exactly like the per-individual fitting, BUT within the objective function loop over all individuals in a given treatment (not just one) to get nLogLiklihoods. The nLogLiklihood for the individuals in the treatment is then just the sum of the individual nLogLikelihoods for each individuals timeseries.
data – a dict of {“individual1”: (fixed_x,fixed_times)}
Parameters: - x – x values for cohort objective function
- times – times associated with x values from cohort
- verbose – verbose output, default = False
Returns: fn_to_optimize
-
karenina.fit_timeseries.
parse_metadata
(metadata, individual, timepoint, treatment, site)¶ Parse relevant contents from metadata file to complete input dataframe
Parameters: - metadata – tsv file location
- individual – subject column identifier
- timepoint – timepoint column identifier
- treatment – treatment column identifier
- site – [subjectID, x1, x2, x3]
Returns: input dataframe: [#SampleID,individual,timepoint,treatment,pc1,pc2,pc3]
-
karenina.fit_timeseries.
parse_pcoa
(pcoa_qza, individual, timepoint, treatment, metadata)¶ Load data from PCoA output in Qiime2 Format
Parameters: - pcoa_qza – Location of PCoA file
- individual – Subject column identifier(s) [ex: Subject; Subject,BodySite]
- timepoint – Timepoint column identifier
- treatment – Treatment column identifier
- metadata – optionally defined metadata file location, if not defined, will use metadata from PCoA.qza
Returns: input dataframe, tsv filepath location
benchmark.py¶
-
karenina.benchmark.
benchmark_simulated_dataset
(n_timepoints, verbose=False, simulation_type='Ornstein-Uhlenbeck', simulation_params={'delta': 0.25, 'lambda': 0.12, 'mu': 0.5}, local_optimizer=['L-BFGS-B'], local_optimizer_niter=[5], local_optimizer_stepsize=0.005, log=[], dt=0.1)¶
-
karenina.benchmark.
benchmark_simulated_datasets
(max_timepoints=300, output_dir=None, simulation_type='Ornstein-Uhlenbeck', simulation_params={'delta': 0.25, 'lambda': 0.12, 'mu': 0.5}, local_optimizer=['L-BFGS-B'], niter=[5], verbose=False)¶ Test the ability of fit_timeseries to recover correct OU model params
Parameters: - output – location for output log
- max_timepoints – maximum timepoints to test. The benchmark will test every number of timepoints up to this number. So specifying max_timpoints = 50 will test all numbers of timepoints between 2 and 50.
- simulation_type – string describing the model for the simulation (passed to a Process object)
- simulation_params – dict of parameters for the simulation (these will be passed on to the Process object).
- local_optimizer – list of names of local optimizers to use
- niter – list of niter values to try. This parameter controls the number of independent restarts for global optimizer
- verbose – verbosity
Returns: output dataframe of benchmarked data
-
karenina.benchmark.
calculate_errors
(observed, expected, parameter_names=None)¶ Return per-parameter absolute and squared errors to results
Parameters: - names (parameter) – list of strings describing parameter names (in order)
- observed – an array of observed values
- expected – an array of expected values
-
karenina.benchmark.
graph_absolute_errors
(df, output_dir, model_name_col='model')¶ Graph absolute error in simulated datasets with varying numbers of tested timepoints
Parameters: - df – Dataframe containing model, timepoints, and list of errors
- output_dir – output directory
- model_name_col – column of the datafram that has the name of each model/benchmark
-
karenina.benchmark.
log_lines_from_result_dict
(results)¶ Return a list of result lines
Parameters: results – a dict of results (all values must be able to be converted to strings)
-
karenina.benchmark.
make_scatterplot
(x_col, y_col, data, hue, palette=['firebrick'], title='', outfile='./results_scatter.png')¶
-
karenina.benchmark.
write_logfile
(output_fp, log_lines)¶ Write logfile lines to output filepath
Parameters: - output_fp – a filepath (as string) for the output log file
- log_lines – lines of the logfile (linebreaks will be appended)
visualization.py¶
-
karenina.visualization.
get_timeseries_data
(individuals, axes=['x', 'y', 'z'])¶ Provides timeseries data from list of individuals.
Parameters: - individuals – array of individual objects
- axes – [x,y,z] axes to return
Returns: array of timeseries data
-
karenina.visualization.
save_simulation_data
(data, ids, output)¶ Saves simulation output data in PCoA format
Parameters: - data – data to save
- ids – Sample_IDs
- output – output filepath
-
karenina.visualization.
save_simulation_figure
(individuals, output_folder, n_individuals, n_timepoints, perturbation_timepoint)¶ Save a .pdf image of the simulated PCoA plot
Parameters: - individuals – array of individuals
- output_folder – output filepath
- n_individuals – number of individuals
- n_timepoints – number of timepoints
- perturbation_timepoint – timepoint of perturbation application
-
karenina.visualization.
save_simulation_movie
(individuals, output_folder, n_individuals, n_timepoints, black_background=True, data_o=False, verbose=False)¶ Save an .ffmpg move of the simulated community change
Parameters: - individuals – array of individuals to visualize
- output_folder – output directory filepath
- n_individuals – number of individuals
- n_timepoints – number of timepoints
- black_background – T/F, default = True
- verbose – verbose output, default = False
-
karenina.visualization.
update_3d_plot
(end_t, timeseries_data, ax, lines, points=None, start_t=0)¶ Updates visualization 3d plot
Parameters: - end_t – end timepoint
- timeseries_data – data from timeseries
- ax – visualization ax
- lines – lines of data
- points – values to update
- start_t – start timepoint (0)
experiment.py¶
-
class
karenina.experiment.
Experiment
(treatment_names, n_individuals, n_timepoints, individual_base_params, treatment_params, interindividual_variation, verbose)¶ Bases:
object
This class has responsibility for simulating an experimental design for simulation.
A fixed number of individuals are simulated across experimental conditions called ‘treatments’ Each treatment can have different numbers of individuals. All treatment must have the same number of timepoints.
Each treatment can be associated with the imposition of one or more Perturbations. Each perturbation is inserted or removed from all individuals at a fixed time-point.
-
check_n_timepoints_is_int
(n_timepoints)¶ Raise a ValueError if n_timepoints can’t be cast as an int
Parameters: n_timepoints – number of timepoints
-
check_variable_specified_per_treatment
(v, verbose=False)¶ Raise a ValueError if v is not the same length as the number of treatments
Parameters: - v – variable
- verbose – verbose output, default = False
-
q2_data
()¶ generate output data from object’s self for Qiime2
Returns: data, ids
-
run
()¶ Run the experiment, simulating timesteps; saves the simulation figure and movie
-
simulate_timestep
(t)¶ Simulate timestep t of the experiemnt
Approach:
- First apply any perturbations that should be active but aren’t yet
- Second, simulate the timestep
- Third, remove any perturbations that should be off
NOTE: this means that a perturbation that starts and ends at t=1 will be active at t=1 That is, the start and end times are inclusive.
Parameters: t – timestep
-
simulate_timesteps
(t_start, t_end, verbose=False)¶ Simulate multiple timesteps
Parameters: - t_start – start timepoint
- t_end – end timepoint
- verbose – verbose output, default = False
-
write_to_movie_file
(output_folder, verbose=False)¶ Write an MPG movie to output folder
Parameters: - output_folder – output directory
- verbose – verbose output, default = False
-
individual.py¶
-
class
karenina.individual.
Individual
(subject_id, coords=['x', 'y', 'z'], metadata={}, params={}, interindividual_variation=0.01, verbose=False)¶ Bases:
object
Generates an individual for OU simulation
-
apply_perturbation
(perturbation)¶ Apply a perturbation to the appropriate axes
Parameters: perturbation – perturbation to apply
-
apply_perturbation_to_axis
(axis, perturbation)¶ Apply a perturbation to a Processes objects
Parameters: - axis – Axis to apply perturbation to
- perturbation – perturbation to apply
-
check_identity
(verbose=False)¶ Check identity of movement process
Parameters: verbose – verbose output, default = False Returns: True if processes are equivalent, False if not
-
get_data
(n_timepoints)¶ get data from movement processes
Parameters: n_timepoints – number of timepoints to gather data for Returns: data for timepoints
-
remove_perturbation
(perturbation)¶ Remove a perturbation from the appropriate axes
Parameters: perturbation – perturbation to remove
-
remove_perturbation_from_axis
(axis, perturbation)¶ Remove a perturbation from one or more Process objects
Parameters: - axis – axis to remove perturbation from
- perturbation – perturbation to remove from axis
-
simulate_movement
(n_timepoints, params=None)¶ Simulate movement over timepoints
Parameters: - n_timepoints – number of timepoints to simulate
- params – parameters to change from baseparams
-
-
karenina.individual.
random
() → x in the interval [0, 1).¶
perturbation.py¶
-
class
karenina.perturbation.
Perturbation
(start, end, params, update_mode='replace', axes=['x', 'y', 'z'])¶ Bases:
object
Alter a simulation to impose a press disturbance, shifting the microbiome torwards a new configuration
start –inclusive timepoint to start perturbation. Note that this is read at the Experiment level, not by underlying Process objects.
end – inclusive timepoint to end perturbation. Note that this is read at the Experiment level, not by underlying Process objects.
params – dict of parameter values altered by the disturbance
- ‘mode’ – how the perturbation updates parameter values.
- ‘replace’ – replace old value with new one
- ‘add’ – add new value to old one
- ‘multiply’ – multiply the two values
axes – axes to which the perturbation applies. Like Start and End this is a ‘dumb’ value, read externally by the Experiment object
-
is_active
(t)¶ determines if timepoint is active
Parameters: t – timepoint Returns: True if timepoint is active, False if not
-
update_by_addition
(curr_param, perturbation_param)¶ Update parameters by addition
Parameters: - curr_param – current parameter
- perturbation_param – new parameter
Returns: curr_param + perturbation_param
-
update_by_multiplication
(curr_param, perturbation_param)¶ Update parameters by multiplication
Parameters: - curr_param – current parameter
- perturbation_param – new parameter
Returns: curr_param * perturbation_param
-
update_by_replacement
(curr_param, perturbation_param)¶ Update parameters by replacement
Parameters: - curr_param – current parameter
- perturbation_param – new parameter
Returns: perturbation_param
-
update_params
(params)¶ Update baseparams
Parameters: params – params to update Returns: new_params
process.py¶
-
class
karenina.process.
Process
(start_coord, motion='Ornstein-Uhlenbeck', history=None, params={'L': 0.2, 'delta': 0.25})¶ Bases:
object
Represents a 1d process in a Euclidean space
-
bm_change
(dt, delta)¶ Change the Brownian motion process
Parameters: - dt – time elapsed since last update
- delta – delta value to adjust
Returns: change
-
bm_update
(dt, delta)¶ Update the Brownian motion process
Parameters: - dt – time elapsed since last update
- delta – delta value to adjust
Returns: change
-
ou_change
(dt, mu, L, delta)¶ Change the Ornstein Uhlenbeck motion process
The Ornstein Uhlenbeck process is modelled as:
ds = lambda * (mu - s) * dt + dW
ds – change in our process from the last timepoint L – lambda, the speed of reversion to mean (NOTE: lambda is a reserved keyword in Python so I use L) mu – mean position s – current position dt – how much time has elapsed since last update dW – the Weiner Process (basic Brownian motion)
This says we update as usual for Brownian motion, but add in a term that reverts us to some mean position (mu) over time (dt) at some speed (lambda)
Parameters: - dt – time elapsed since last update
- delta – delta value to adjust
Returns: change in process since last timepoint
-
ou_update
(dt, mu, L, delta, min_bound=-1.0, max_bound=1.0)¶ Update the Brownian motion process
Parameters: - dt – time elapsed since last update
- mu – mean position
- L – speed of reversion to the mean
- delta – variance from the mean
- min_bound – minimum bound
- max_bound – maximum bound
-
update
(dt)¶ Update the process
Parameters: dt – time elapsed since last update
-


This service is the one managing battle for FyS Online (MMORPG).
More information on the [documentation part].
TODO
- Create the internal (interprocess) zmq communication channel (even without threading pool) to read from the FightingPit
- Implement a first fighting version without multiple without multiple battles.
- Make one Arena Worker by default.
- Implement chai scripting
- Minimum script call possible in a first place. Monster will have their script fully loaded and have a "executeAction" function that will be called from the cpp
- Players will have to launch chai script to execute actions (no c++ hard coded action)
- Each chai scripts need to be tested unitarly by a cpp test case which has to be developped in a way that it will be reusable.
- When scripting are done and tested, create a repository to store those scripts (and all the upcoming ones). And link them to the repository FyS via a submodule.
- Check if it is faster to return a cpp function from chaiscript and execute it compared to executing the code in chaiscript.
- Unit test the fighting mechanism with mocked scripting
- Test external authentication/implement messaging of notifications to players
- Implement thread pool into each worker to enable multiple fightingPit per service


| Path: | README.txt |
| Last Update: | Mon May 14 10:50:30 -0700 2012 |
Win32::Console has been deprecated in favor of an external tool named ANSICON:
This project is left here for history purposes but no further development will be done.
Win32::Console allows controling the windows command line terminal thru an OO-interface. This allows you to query the terminal (find its size, characters, attributes, etc). The interface and functionality should be identical to Perl‘s counterpart.
A port of Perl‘s Win32::Console and Win32::Console::ANSI modules.
This gem packages Gonzalo Garramuno‘s Win32::Console project, and includes a compiled binary for speed. The Win32::Console project‘s home can be found at:
http://rubyforge.org/projects/win32console
Win32::Console::ANSI is a class derived from IO that seamlessly translates ANSI Esc control character codes into Windows’ command.exe or cmd.exe equivalents.
To ease usage, you can use in combination with term-ansicolor gem and avoid writing ANSI codes manually.
To output a simple bolded string, try this script:
require 'rubygems' require 'win32console' include Win32::Console::ANSI include Term::ANSIColor puts bold << "bolded text" << clear << " and no longer bold."
To install from rubygems, simple run:
gem install win32console
To install from source, make sure you have the Ruby development kit from RubyInstaller on your Windows host, install the following gems:
* rake * hoe * rake-compiler
Then run the following:
rake gem gem install pkg\win32console-1.3.0.gem
After checking out the source, run:
$ rake newb
This task will install any missing dependencies, run the tests/specs, and generate the RDoc.
This program is FREE; you can redistribute, modify, disassemble, or even reverse engineer this software at your will. Keep in mind, however, that NOTHING IS GUARANTEED to work and everything you do is AT YOUR OWN RISK - I will not take responsibility for any damage, loss of money and/or health that may arise from the use of this program!
This is distributed under the terms of Larry Wall‘s Artistic License.


|
adapt_list()
|
Adapt the path of class url |
|
basic_issues_info()
|
Extract the basic key information of the issues |
|
basic_jql_fields()
|
Returns default JQL fields used |
|
choose_field_function()
|
Function to choose for the right field parser function |
|
conc()
|
Concatenates multiple strings |
|
get_jira_credentials()
|
Retrieves the previously saved JIRA credentials |
|
get_jira_dashboards()
|
Retrieves all dashboards a data.frame |
|
get_jira_groups()
|
Get JIRA server groups data.frame |
|
get_jira_issues()
|
Retrieves all issues of a JIRA query as a data.frame |
|
get_jira_permissions()
|
Get all the JIRA server permissions as a data.frame |
|
get_jira_projects()
|
Retrieves all projects as a data.frame |
|
get_jira_server_info()
|
Get the JIRA server information as a data.frame |
|
parse_issue()
|
Extract the extensive fields of a single issue |
|
remove_jira_credentials()
|
Removes previously saved JIRA credentials |
|
save_jira_credentials()
|
Saves domain and the domain's credentials in the environment |
|
supported_jql_fields()
|
Returns the supported JQL fields |
|
to_date()
|
Transforms JIRA date character to POSIXlt format |
|
unnest_df()
|
Unnest a nested data.frame |


the and HPV HIV with was women (.) for were {background among genotypes cervical margin study this The are human {border-style that px;} #ffffff;} []. rate from risk infection papillomavirus viral other positivity vs. cancer HR-HPV higher status which (%) Total age those (.% HPV-infection Human all compared could most population virus (/) .%, This associated genotype have not performed prevalence px; {font-family CIRCB Disponible [cité also burden different font-size immunodeficiency load oncogenic sur: than these very women, (Table According HIV-infection HIV-negative HIV-seropositive P-value Table [], according cancers double; genotyping high infected more obtained sexual significantly their using where Commons Creative HIV- HIV-infected International RNA acquiring al. analysis border-color border-width divorced evidence factor immune living median national others participants p = .), screening sexually similar single solid; status, {font-style {font-weight Abbott Cameroon Centre Ethics For HIV-positive Interestingly, PLoS Ref Yaoundé, [Internet]. anal been bold clinical co-infection considered copies/ml courier; data detection due em; enrolled following found has high-risk https://www.ncbi.nlm.nih.gov/pmc/articles/PMC/. increasing infections likely marital molecular normal only our papilloma papillomavirus, pt;} p = .). reported samples sept systematic therefore times vaccine viremia


W3
Portfolio
HTML
CSS
JS
WordPress
Drupal
Posted at 16:20 pm on 11Feb2018 by Farid
Back
Project Title
what this project is about


Classes and more classes
Classes are a big concept in the sense that they give you a lot of control and scalability in your work. Everything in Ruby is an object and classes are not an exception. I've started thinking of classes as categories. So for example, you might want to create an Dog class. Each dog can have specfic characteristics such as: breed, name, weight, and gender. Within the class there are instance variables, class variables, and local variables. As you form your class you will want to start it (initialize it) with instance variables.  So if you wanted to have all of the charactersitics of a dog discussed earlier be variables then you would include the following: @breed, @name, @weight, @gender. The @ sign in front of the variable name notes that these are instance variables.
If the variables of name, weight, and gender, were included in a specific method, then these variables would be local variables and only accessible to the specific method in which it is contained. As you can imagine when you are writing a class, it is preferable to have some variables that can traverse across all methods within the class.
The final variable type is the class variable. The class variable is accessible to all members of a class. The scope of the class variable is wider than the instance variable, which has a wider scope than the local variable. The class variable is signified by @@. So if we follow the Dog example we can create a class variable called number_of_eyes and this would be coded as @@number_of_eyes.
One final thought, is that classes can have parents and children classes. It's kind of like taxonomy. If I wanted to write software for an pet store, I could create a superclass of Animal of which Dog would be a subclass. Dog would inheirit all behaviors (methods) of its parent class.


Helping people grow ideas
into sustainable companies.
It takes more than a great technology idea to build a great company. An
idea is a catalyst, but great companies turn that idea into a sustainable
business model. Sustainable companies focus on revenue from day one, they
aspire to delight customers, grow in a controlled way, and improve
economies long term. We think sustainable companies are a great place to
invest our time and money, so that's what we do.
Ask Boundless
Where do I start with an app idea?
Mar 17, 2017
What do you think about my revolutionary idea?
Jun 15, 2017
What exactly is an MVP?
Feb 4, 2017


Included Style Examples:
Sub-header example
This is regular text, which is aligned to the left by default. You can easily change the alignment using the classes .textcenter and .textright on each paragraph.
This is an important note!This is a link. This is strong text.
This is small text.
- Unordered list option 1
- Unordered list option 2
- Ordered list option 1
- Ordered list option 2
About The Designer
My name is Andreas Viklund, and I am a 25-year old professional designer living in Jokkmokk, northern Sweden. If you are interested in more advanced templates or custom design services, don't hesitate to contact me for more information!
Open Source Template
This is an open source template, which means that you are free to use it in any way you want to without any obligations. If you decide to use this template, I kindly ask you to leave the "Design by Andreas Viklund" link in the footer. I am also interested in seeing how many templates are used, so feel free to send me an e-mail with a link to your page. Of you want more templates to choose from, check out the sites in the "Favourite links" menu to the right!


How Google Works
I just read How Google Works, a book about how to run and build a company in the internet age, written by Jonathan Rosenberg, former SVP of Products and former CEO Eric Schmidt.
I enjoyed the book and wanted to share some of the key points here.
The Intenet
Most companies that are built and run today are largely out of date. They are a relic of a pre-internet world, where information transfer was slow and products were still being ‘manufactured’ (in the traditional sense).
Historically, information was hoarded by whoever had it (usually at the top). Manufacturing products was a slow & expensive process — meaning the cost of failure was high. This forced companies to design processes around a few key decison makers in order to slow things down and mitigate risk. Meaning companies were designed to be slow.
But with the advent of the internet, the world has changed. Information moves around freely & quickly, so there is no value in hoarding it. The value is instead what you do with the information. Building products is now faster & cheaper, so we have far more products today and they are better than ever.
Companies were designed to move slowly, but the world today is fast. So the way we build and run companies must adapt to this new world.
Good Products
Historically, consumers had very little choice when it came to products. Because it was expensive & slow to build products, there were a limited supply of things being produced. So consumers didn’t have a ton of choice — they just took whatever they got.
Not only were consumers limited by choice, but there was no easy way of getting info & reviews on products. So consumer education on products largely came from word of mouth and/or sales & marketing. The power was in the company’s hands, and consumers could be fooled by poor products with good sales/marketing. So there was very little pressure on companies to create better products (outside of desire to beat the competition).
Nowadays with review sites for nearly everything, consumers can quickly learn and make educated decisions on which products are good/bad. And with more products to choose from, the cost of switching is low & there’s always a new competitor out to deliver a better serivce.
 So every company must focus on making really good products.
Building Good Products
The best products do one thing better than anyone else.
In general, people do things either in house (internally) or outsource it (externally). People do things externally when the transaction cost of doing it internally is greater than it is to do it externally.
With the internet (cheaper & better products), transaction costs for doing things externally continues to get lower. Meaning people are increasingly outsourcing more and more of their lives.
With more services in our lives, each of them just has to be really good at one thing. The best products focus on doing one thing exceptionally well and better than everyone else. Small & really good services are better than large & mediocre ones.
To do one thing really well, companies need to deeply understand the problem they’re trying to solve and always put the product & end user first. Everything should be secondary to the needs of the end user. A quote I really liked was
“You should never be able to reverse engineer a company’s organizational chart from the design of its product.”
Now to build the best product, there are 3 important things —
- Make sure the product is built on a unique technical insight
- Optimize for growth, not revenue
- Understand the competition, but don’t follow
And again, in an age where products are cheap to build, there is a shift away from heavy planning & careful development to rapid iteration. Companies can learn much faster by continually building & iterating than by trying to plan & guess. Meaning those who build things are now much more important than those who plan things.
On People
The key to building great products is to find ‘smart creatives’. These are people who can combine business, art, and science to build great products.
Smart creatives crave working with others smart creatives and solving difficult problems. So make sure that you’re tackling sufficiently ambitious problems and hire other smart creatives to help.
Ultimately, smart creatives want to get things done. So make sure that they have the freedom to do so. Put them in small teams to limit politics and favor getting things done. Align them around principles as opposed to tactics and let them do the rest. They’ll do a far better job than you could.
You Might Also Like
- High Output Management
- Trust in a Consumer Business
- Goodbye Google Reader
- BrightEyes Fireside Chat
- Take Out Steps


Before
After
{% if difference_isEmpty %}
{% endif %}
Learn more about {{ country.name }} on Wikipedia →
0
km
2
area added to the map
0
people added to the map
0
people without clear water
0
people without mobile subscription
0
new hospitals put on map
0
new schools put on map
{% for node in ways_old %} {% endfor %} {% for node in ways_updated %} {% endfor %}