import {TimeVariable} from 'gisplay-es6-webpack/src/Gisplay/VVs/TimeVariable.js'
Constructor Summary
| Public Constructor | ||
| public |
constructor(externalName: string, internalName: string, granularity: string, timeControl: string) Creates an instance of TimeVariable. |
Member Summary
| Public Members | ||
| public |
The time granularity. |
|
| public |
The current granule index. |
|
| public |
The granules for this time variable that were processed from the file. |
|
| public |
The map with the string temporal granules and their respective index inm the sorted temporal granules array. |
|
| public |
The temporal granules sorted by Date. |
|
| public |
The map that contains the string that represents the date and the respective date (e.g. |
|
| public |
A map with each temporal granule and it's index. |
|
| public |
The time control to use. |
Method Summary
| Public Methods | ||
| public |
addTemporalGranule(temporalGranule: number): number Add temporal granule to the temporal granules set and return it's index if it does not exist. |
|
| public |
addTemporalGranuleToSet(temporalGranule: string | number) Add the given temporal granule to the set of existing temporal granules. |
|
| public |
addTemporalGranulesToSet(temporalGranules: Set<string>) Add temporal granules to the set of temporal granules. |
|
| public |
classCalculationRequired(): booelan Returns true if the temporal granule values were given, false, otherwise. |
|
| public |
createTemporalGranulesMap(values: Array<number>) Add all values to the temporal granules map. |
|
| public |
findNextTGIndex(currentTG: string | number): number Returns the index of the next temporal granule on the "timeline". |
|
| public |
findPreviousTGIndex(currentTG: string | number): number Returns the index of the previous temporal granule on the "timeline". |
|
| public |
The granularity |
|
| public |
getGranuleIndexFromStr(temporalgranuleStr: string | number): number Returns the index of the temporal granule given by the string. |
|
| public |
getRangeIndices(startTGStr: any, endTGStr: any): Array<number> Returns the indices of the temporal granules between the start and end temporal granules string representations. |
|
| public |
getSortedIndexFromStr(sortedTemporalGranule: string | number): number Returns the index of the given temporal granule string/number. |
|
| public |
Returns the sorted temporal granules. |
|
| public |
getTGMapIndex(str: string): number Returns the index of the temporal granule read from the file. |
|
| public |
Returns the temporal granules that exist on the dataset. |
|
| public |
Returns the Set of temporal granules. |
|
| public |
Returns the type of time control that should be used. |
|
| public |
Sort the temporal granules creating an array with those sorted elements. |
| Private Methods | ||
| private |
Available granularities for the time value. |
|
| private |
Get the date including the day (day month year). |
|
| private |
_getLocaleMonth(dateString: string): string Returns the locale month string. |
|
| private |
Returns the month name plus the year. |
|
| private |
Sort the temporal granules strings (read from file) to the indices of the sorted temporal granules. |
Inherited Summary
| From class DataVariable | ||
| public |
It's the external name of this variable |
|
| public |
The internal name for this variable. |
|
| public |
Returns the external name for this visual variable. |
|
| public |
Returns the internal name for this visual variable. |
Public Constructors
Public Members
public granuleIndex: number source
The current granule index. This is used to give each granule it's specific index.
public granules: Set<string|number> source
The granules for this time variable that were processed from the file.
public sortedTGsToIndexMap: Map<string|number, number> source
The map with the string temporal granules and their respective index inm the sorted temporal granules array. E.g. Map (3) {"1 January 2016" => 0, "2 January 2016" => 1, "3 January 2016" => 2, "4 January 2016" => 3 }. Used to quickly search for the index of the start and end point of the time control. A value here is an index in the sortedTemporalGranulesArr.
public sortedTemporalGranulesArr: Array<number|string> source
The temporal granules sorted by Date. If its a number (year or day or value etc) then sorted by number.
public strToTemporalGranuleMap: Map<string|number, string|number> source
The map that contains the string that represents the date and the respective date (e.g. 2016_1_1 => 1 January 2016 OR 2016 => 2016) If the date is a number (e.g. year, monthOfYear, value etc) then the key and the value are equal (2016 => 2016). A value here will be a key in the temporalGranulesMap.
Public Methods
public addTemporalGranule(temporalGranule: number): number source
Add temporal granule to the temporal granules set and return it's index if it does not exist.
Params:
| Name | Type | Attribute | Description |
| temporalGranule | number | The temporal granule to be added. |
public addTemporalGranuleToSet(temporalGranule: string | number) source
Add the given temporal granule to the set of existing temporal granules.
public addTemporalGranulesToSet(temporalGranules: Set<string>) source
Add temporal granules to the set of temporal granules.
public classCalculationRequired(): booelan source
Returns true if the temporal granule values were given, false, otherwise.
Return:
| booelan | true if the temporal granule values were given, false, otherwise. |
public createTemporalGranulesMap(values: Array<number>) source
Add all values to the temporal granules map.
public findNextTGIndex(currentTG: string | number): number source
Returns the index of the next temporal granule on the "timeline".
public findPreviousTGIndex(currentTG: string | number): number source
Returns the index of the previous temporal granule on the "timeline".
public getGranuleIndexFromStr(temporalgranuleStr: string | number): number source
Returns the index of the temporal granule given by the string.
public getRangeIndices(startTGStr: any, endTGStr: any): Array<number> source
Returns the indices of the temporal granules between the start and end temporal granules string representations.
Params:
| Name | Type | Attribute | Description |
| startTGStr | any | The string representation of the range start temporal granule. |
|
| endTGStr | any | The string representation of the range end temporal granule. |
public getSortedIndexFromStr(sortedTemporalGranule: string | number): number source
Returns the index of the given temporal granule string/number. The index is the value associated with the given key.
public getSortedTemporalGranules(): Array<string|number> source
Returns the sorted temporal granules.
public getTGMapIndex(str: string): number source
Returns the index of the temporal granule read from the file.
Params:
| Name | Type | Attribute | Description |
| str | string | The given string |
public getTemporalGranules(): Map<number, number> source
Returns the temporal granules that exist on the dataset. E.g. 2016, 2017 etc
public sortTemporalGranules(): Array<string|number> source
Sort the temporal granules creating an array with those sorted elements. If the elements are dates then order by date, if they are numbers order by number.
Private Methods
private _getAvailableGranularities(): Array<string> source
Available granularities for the time value.
private _getDay(dateString: string): string source
Get the date including the day (day month year).
Params:
| Name | Type | Attribute | Description |
| dateString | string | The date string read from the file. |
private _getLocaleMonth(dateString: string): string source
Returns the locale month string. In portugal will return 'janeiro', 'fevereiro' etc...
Params:
| Name | Type | Attribute | Description |
| dateString | string | The date string read from the file. |
private _getMonth(dateString: string): string source
Returns the month name plus the year.
Params:
| Name | Type | Attribute | Description |
| dateString | string |
private _sortTemporalGranulesMap() source
Sort the temporal granules strings (read from file) to the indices of the sorted temporal granules.


Syrex spreads some Santa Shoebox joy this festive season
Syrex staff have contributed 60 boxes to the project this year, enabling the company to ‘adopt’ an entire school in Diepsloot for Christmas.
by RubicommSyrex, a leading provider of virtualised and hybrid network infrastructures and solutions, has once again demonstrated its commitment to community upliftment and care for the underprivileged by contributing to the annual Santa Shoebox initiative.
Every year, Santa Shoebox collects and distributes personalised gifts for underprivileged children across SA and Namibia.
The Santa Shoebox Project originated in Cape Town in 2006. The shoeboxes are distributed to more than 1 000 facilities each year. When the project started out, it only sent 180 shoeboxes; today the project has donated a total number of
652 180 shoeboxes and changed many young lives.
Staff from Syrex contributed 60 boxes this year and enabled the company to ‘adopt’ an entire school in Diepsloot for Christmas.
The company sponsored the wrapping and décor for the boxes.
“We are delighted that our team have once again committed to this very special and wonderful project,” said Vivienne Herselman, Operations Director at Syrex. “While we have done this before, every year the need seems greater and the challenge to make a difference to someone’s life is that much more serious.
"We live in difficult times, unemployment is rife and consumers are stretched to the hilt. We are thrilled at our staff, who make it a priority to contribute in this way to this very worthwhile cause and perhaps turn a frown into a smile this Christmas.”


Exhibits
Jun 2015: National Maker Faire, Washington DC
May 2015: Maker Faire, Bay Area, California
Apr 2015: Science Fair, BayTech School
May 2014: Maker Faire, Bay Area, California
Apr 2014: NanoDays, "Featured Maker,”Lawrence Hall of Science museum, UC Berkeley
Nov 2013: Lawrence Hall of Science museum, UC Berkeley
QuezyLab |
Peppytides |
Molecular Foundry |
Berkeley Lab |
CS@VT |
VT|
CCT@LSU


--- layout: main title: Privacy permalink: /privacy/ theme: dark id: privacy ---
HackGT strives to be a responsible courier of your data. When you register for or attend our events, we collect information subject to the following policy.
We collect the information submitted during registration and checkin data during the event.
Registration information is used for admission and event logistics communication. Registration information is not released publicly. Your HackGT account is shared across our apps to identify you during the event. Relevant recruiting information is shared with our sponsors, and includes but is not limited to: year in school, career, resumes, and contact info. During our events, we collect statistics on attendance in talks, meals, and mini-events to gauge popularity and improve future events. We use third party services, OneSignal and Firebase Cloud Messaging, which collect device information necessary for notifications on our website and app, respectively.
We keep each year's registration information on our servers to create aggregate statistics for marketing purposes and to improve our admission processes.
If you would like to withdraw your registration, update erroneous information, or have another concern, please email hello@hack.gt.


DOUBLE JEOPARDY ** (out of five stars) A review by Jamey Hughton
Starring-Ashley Judd, Tommy Lee Jones, Bruce Greenwood and Annabeth Gish Director-Bruce Beresford Rated 14A Paramount
MOVIE VIEWS by Jamey Hughton http://Welcome.to/MovieViews
In Double Jeopardy, the stakes are high. Think of the plot as a rehash of Sleeping With the Enemy, and then rearrange the details and the gender of the stalker. The finished product, although able to maintain the viewer's attention, is a predictable and unexciting thriller with an idiotic script. `Alex, I'll take Homicide for $400...'
 One night, her husband Nick (Bruce Greenwood) takes her out for a romantic escape on a sailboat. Libby awakens in the middle of the night to find she is covered in blood and Nick has strangely disappeared.  Nick is presumed dead, and although she pleads her innocence, Libby is tried and convicted for the murder of her husband.
Now, please don't think I'm spoiling any vital plot details, because the informative trailer has already spilled most of the beans. If you haven't seen this preview, don't read any further. But seriously, the inane screenplay by Douglas Weisberg and Douglas S. Cook is so elementary that the average viewer will be two or three steps ahead of the characters. During the most vital scenes in the movie, I was anticipating every twist or `surprise' that eventually popped up on the screen. I imagine the writers presume their core audience for Double Jeopardy is a very naive group of individuals. Most, unfortunately, will be too distracted by the moronic plot to appreciate the few positive aspects of the production.
One is Tommy Lee Jones, who plays Travis Lehman, a parole officer given the tedious task of watching over Libby after she serves her sentence in prison. Jones is always wonderful as an authority figure, and he's certainly familiar with this sort of role (as he played so well in The Fugitive and US Marshals). Judd, as a likable heroin with gusto, also has a chance to flex her acting abilities. While emotionally unconvincing, the actress is tremendously fun in her juvenile role, perking up the movie like an injection of anti-depressant. The actors, and their relationship together, present the one-two punch that prevents Double Jeopardy from derailing itself entirely.
And now, back to the plot. While behind bars, Libby learns an interesting little bit of information: a person can't be convicted of the same crime twice. This law, called `double jeopardy', could be her motive for hunting down her husband... who may still be alive. Yes, you heard right. The movie degenerates into a cross-country chase, where everything you expect to happen... does. The final scenes, which could have redeemed the film, are poorly handled by director Bruce Beresford - whose previous work centers highly around drama (Driving Miss Daisy, Paradise Road). Ironically, it is those elements - like the driving force of Libby to reunite with her son - that don't quite work here.
At least Double Jeopardy is paced well enough to satisfy diehard fans of the two stars. Unfortunately, Jones lacks some of the edge that he had as Sam Gerard in The Fugitive, and the real depth of his character is only skin deep. But he and Ashley Judd are more than welcome considering the material, and both have some memorable comic moments. Judd, in particular, has a hilarious scene in which she wards off an oncoming male by explaining she has to check in with her `parole officer'. Hmmm... perhaps this would have made a good comedy.
It is disappointing, because there are the makings of a competent action film here. It's nicely shot and choreographed in downtown Vancouver, and will entertain those who aren't turned off by the woeful story-line.
(C) 1999, Jamey Hughton
* * * * * * * * * * * * * * * MOVIE VIEWS by Jamey Hughton http://Welcome.to/MovieViews <<<<<<<<<<<<<<<>>>>>>>>>>>>>>>
Contact Jamey at<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Why Is It Important to be physically fit???
People who are physically fit are also healthier, are able to maintain their most optimum weight, and are also not prone to cardiac and other health problems.
In order to maintain a relaxed state of mind, a person should be physically active.A person who is fit both physically and mentally is strong enough to face the ups and downs of life, and is not affected by drastic changes if they take place.


Massimo Ferri1
Antonella Tavaglione1
Pietro Vertechi2
Lorenzo Zuffi1
$\mathbb{X}$ triangulable manifold, $f$ continuous. $\mathbb{X}_{i} = f^{-1}\left(\left(-\infty, a_i\right]\right)$ $$ \mathbb{X}_{1} \subseteq \cdots \subseteq \mathbb{X}_{n} = \mathbb{X} $$
Is it reasonable to speak about persistence and not about homology?
How general can such a framework be?
Let $(G, f), (G^\prime, f^\prime)$ be weighted graphs and $H$ the set of isomorphisms from $G$ to $G^\prime$.
The natural pseudodistance of $(G, f)$ and $(G^\prime, f^\prime)$ is
$$ \delta\left(\left(G, f\right), \left(G', f'\right)\right) = \left\{ \begin{array}{l l} \infty & \mbox{if} \ \ \ H=\emptyset \\ \inf_{\phi\in H}\sup_{e\in E} \left|f\left(e\right) - f'\left(\phi\left(e\right)\right)\right| \ \ & \mbox{otherwise} \end{array} \right. $$
All functions $\lambda_{(G, f)}: \Delta^+ \to \mathbb{Z}$ are said to be persistence functions if
$\lambda_{(G, f)}$ is said to be stable if given an analogous pair $(G^\prime, f^\prime)$, an isomorphism $\psi:G\to G^\prime$ exists such that $$\sup_{e\in E} \left| f\left(e \right)-f^\prime\left(\psi\left(e\right)\right)\right|\le h$$ where $h>0$, then for all $(u, v)\in \Delta^+$ the inequality $$\lambda_{(G, f)}(u-h, v+h)\le \lambda_{\left(G^\prime, f^\prime\right)}(u, v)$$ holds.
For weighted graphs $\left(G, f\right), \left(G^\prime, f^\prime\right)$ as above, if $\lambda_{(G, f)}$ and $\lambda_{\left(G^\prime, f^\prime\right)}$ are stable then
$$ d\left(D\left( f \right), D\left(f^\prime\right)\right) \le \delta\left(\left(G, f\right), \left(G^\prime, f^\prime\right)\right), $$ where $d$ is the bottleneck distance.
Is the inequality described above the best one that we can obtain from persistence diagrams?
A coherent sampling $\mathcal{V}$ is the assignment to each graph $G$, where $G=\left(V, E\right)$ of a set $\mathcal{V}(G)$ of subsets of $V \cup E$, such that
A coherent sampling is stable if $\psi:G\to G^\prime$ is an isomorphism, then $\mathcal{V}\left(G^\prime\right)=\psi\left(\mathcal{V}\left(G\right)\right)$.
For each inclusion $\iota: G \to H$ let $\Lambda(\iota)$ be the number of elements of $\mathcal{V}\left(H\right)$ containing at least one element of $\mathcal{V}\left(G\right)$. For all filtering functions $f:E \to \mathbb{R}$, let $\lambda_{(G, f)}:\Delta^+ \to \mathbb{Z}$ be defined by $\lambda_{(G, f)}(u, v) = \Lambda(\iota_{(u, v)})$ where $\iota_{(u, v)}: G_u \to G_v$ is the inclusion homomorphism. Then the functions $\lambda_{(G, f)}$ are persistence functions. If the coherent sampling is stable, so are the persistence functions.
The assignment $\mathcal{C}^k$, which maps each graph $G$ to the set of its $k$-clique communities, is a stable coherent sampling.
Let $\left(G,f\right)$ be a weighted graph, with $G=(V, E)$ $F: 2^{V\cup E} \to \{true, false\}$ a property. We call $F$-set any set $A\subseteq V\cup E$ such that $F(A) = true$. $A\subseteq V\cup E$ is an $F$-set at level $w$ if it is an $F$-set of the subgraph $G_w$.
We call $A\subseteq V\cup E$ a steady $F$-set $(u, v) \in \Delta^+$ if it is an $F$-set at all levels $w$ with $u\le w \le v$. We call $A$ a ranging $F$-set at $(u, v)$ if there exist levels $w\le u$ and $w'\ge v$ at which it is an $F$-set. Let $SF_{(G, f)}(u,v)$ be the set of s-$F$-sets at $(u, v)$ and let $RF_{(G, f)}(u,v)$ be the set of r-$F$-sets at $(u, v)$.
The functions $$ \begin{array}{l l} \sigma:\Delta^+\rightarrow \mathbb{R}\\ (u,v)\mapsto \left|SF_{(G, f)}(u,v)\right| \end{array} $$ and $$ \begin{array}{l l} \rho:\Delta^+\rightarrow \mathbb{R}\\ (u,v)\mapsto \left|RF_{(G, f)}(u,v)\right| \end{array} $$ are persistence functions.
A temporary hub (t-hub) at level $u$ is a vertex of $G_u\subseteq G$ whose degree is greater than the degree of its neighbors. A steady hub (s-hub) at $(u, v)\in \Delta^+$ is a vertex which is a t-hub at all levels $w$ with $u\le w \le v$. A ranging hub (r-hub) at $(u, v)\in \Delta^+$ is a vertex such that there exist levels $w \le u$ and $w^\prime\ge v$ at which it is a t-hub.
Don't you see an interactive graph? Please reload the page (Ctrl+R or command+R on mac).
Steady hubs
Ranging hubs
Steady hubs
Ranging hubs
Steady hubs
Ranging hubs
Don't you see an interactive graph? Please reload the page (Ctrl+R or command+R on mac).
Don't you see an interactive graph? Please reload the page (Ctrl+R or command+R on mac).
Persistence-based signatures of data can be generated without auxiliary topological constructions.
Coeherent samplings and property-based filters are general recipes to create persistence functions.
We are working on a categorical extension of the theory presented here for weighted graphs.
graph = pc.WeightedGraph(graph_structure)
graph.build_graph()
graph.build_filtered_subgraphs(weight_transform=opp,
sublevel=True)
graph.get_temporary_hubs_along_filtration()
graph.ranging_hubs_persistence()
graph.plot_ranging_persistence_diagram()


Tampa Bay GM Erik Neander voted MLB Executive of the Year
SCOTTSDALE, Ariz. (AP) - Tampa Bay Rays general manager Erik Neander has been voted Major League Baseball’s Executive of the Year.
Tampa Bay was 96-66, the second-most wins in team history, despite a big league-low payroll of $66 million. The Rays beat Oakland in the AL wild-card game, then lost to Houston in a five-game Division Series.
Neander’s moves included acquiring outfielder Austin Meadows and pitcher Tyler Glasnow at the 2018 trade deadline from Pittsburgh for pitcher Chris Archer, and signing free agent pitcher Charlie Morton ahead of the 2019 season.
The 36-year-old Neander became the Rays’ general manager in November 2016 and one year later replaced Matt Silverman as the team’s top baseball official.
New York Yankees GM Brian Cashman was second in voting announced Monday night on the first day of the annual GM meetings. Oakland Athletics executive vice president of baseball operations Billy Beane and Minnesota Twins chief baseball officer Derek Falvey tied for third.
Each team has one vote for the award, which began in 2018 and was won by Beane in its initial year.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP_Sports
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


---
layout: archive
author_profile: true
classes: wide
permalink: /news/
---
- November 16, 2020 Our study on high throughput identification of antimicrobials to control
bacterial disease in potato, tomato, and citrus published in Nature communications journal
Plant hairy roots
enable high throughput identification of new antimicrobials against Candidatus Liberibacter spp.
Media coverage:
USDA NIFA |
USDA NIFA |
Texas A&M Today |
NEWS BREAK |
Fruit Grower News |
Texas A&M Research |
Texas A&M Research |
Growing Produce |
Growing Produce |
Fresh Plaza |
Seed World |
India Education Diary
- February 13, 2020 First author profile featured in
ASPB the Signal newsletter
- January 12, 2020 Talk at Plant and Animal Genome XXVIII Conference, San Diego, CA
"Genome-Wide Alternative Splicing Landscapes Modulated by Biotrophic Sugarcane Smut Pathogen"
- December 04, 2019 Paper published in Plant Direct
GenFam: A web application and database for gene
family‐based classification and functional enrichment analysis
- December 01, 2019 Paper published in Horticulture Research
Minor alleles are associated with white rust
(Albugo occidentalis) susceptibility in spinach (Spinacia oleracea)
- November 14, 2019 Invited talk at Department of Biology, The University of Texas Rio Grande Valley (UTRGV)
"Integrating Genomics and Bioinformatics Technologies in Crop Improvement"
- November 10, 2019 Paper published in Plant Breeding
Single‐marker and haplotype‐based association
analysis of anthracnose (Colletotrichum dematium) resistance in spinach (Spinacia oleracea)
- Aug 1, 2019 Paper published in The Plant Genome Journal
Developing
Growth-Associated Molecular Markers Via High-Throughput Phenotyping in
Spinach
- July 25, 2019 Paper published in American Journal of Plant Sciences
Genetic Diversity and
Population Structure of Tomato (Solanum lycopersicum) Germplasm Developed by Texas
A&M Breeding Programs
- June 20, 2019 Paper published in Scientific Reports Journal
Genome-wide alternative splicing
landscapes modulated by biotrophic sugarcane smut pathogen
- June 4, 2019 Paper published in Frontiers in Plant Science Journal
New Era in Plant Alternative
Splicing Analysis Enabled by Advances in High-Throughput Sequencing (HTS)
Technologies
- Jan 11-16, 2019 Presented project at Plant and Animal Genome (PAG) meeting:
"Characterization of Alternative Splicing Patterns Modulated by Biotrophic Smut Pathogen in
Sugarcane"
- Sept 13, 2018 Received Publons Peer Review Awards 2018 for placing in the top 1% of reviewers
- May 31, 2018 Paper published in Plant Biotechnology Journal
An Actin Depolymerizing Factor from the
Halophyte Smooth Cordgrass, Spartina alterniflora (SaADF2) is Superior to its Rice homolog
(OsADF2) in Conferring Drought and Salt Tolerance when Constitutively Overexpressed in Rice
- Mar 22, 2018 Paper published in Physiology and Molecular Biology of Plants
Identification of
candidate resistance genes of cotton against Aspergillus flavus infection using a comparative
transcriptomics approach
- Mar 13-16, 2018 Presented project at JGI user meeting:
A gene atlas of diverse grass-microbe interactions in Brachypodium and Setaria
- Feb 26, 2018 Published Web server: GenFam: A new web application
for gene family-based classification and functional enrichment analysis of plant genomes
- Jan, 2018 Published invited book chapter: Genomic Approaches to Analyze
Alternative Splicing, A Key Regulator of Transcriptome and Proteome Diversity in
Brachypodium distachyon
- Dec, 2017 Paper published in Frontiers in chemistry :
Genetic Mapping of
Quantitative Trait Loci for Grain Yield under Drought in Rice under Controlled Greenhouse Conditions
- Nov 20, 2017 Workshop: Advanced Bioinformatics Workshop at Escuela Superior Politécnica del Litoral, Guayaquil,
Ecuador (Nov 20 to Nov 23, 2017)
For detail
Click here
Media coverage:
Web page |
Twitter
- Nov 8, 2017 Paper published in ACS Chemical Biology :
Global awakening of
cryptic biosynthetic gene clusters in Burkholderia thailandensis
This project was in collaboration
with Dr. Anne Grove
- Aug 19, 2016 Paper published in BMC Genomics :
Transcriptome
Analysis of Smooth Cordgrass (Spartina alterniflora Loisel), A Monocot Halophyte, Reveals Candidate
Genes Involved in its Adaptation to Salinity
- Sept 14, 2015 Paper published in PLOS One :
Genome-wide
transcriptome analysis of cotton (Gossypium hirsutum L.) identifies candidate
gene signatures in response to aflatoxin producing fungus Aspergillus flavus
- May 1, 2015 Received Mott Award: Gerald O. Mott Meritorious Student Award from Crop Science Society of America, 2015


ISO 8601 date/time parser¶
This module implements ISO 8601 date, time and duration parsing. The implementation follows ISO8601:2004 standard, and implements only date/time representations mentioned in the standard. If something is not mentioned there, then it is treated as non existent, and not as an allowed option.
For instance, ISO8601:2004 never mentions 2 digit years. So, it is not intended by this module to support 2 digit years. (while it may still be valid as ISO date, because it is not explicitly forbidden.) Another example is, when no time zone information is given for a time, then it should be interpreted as local time, and not UTC.
As this module maps ISO 8601 dates/times to standard Python data types, like date, time, datetime and timedelta, it is not possible to convert all possible ISO 8601 dates/times. For instance, dates before 0001-01-01 are not allowed by the Python date and datetime classes. Additionally fractional seconds are limited to microseconds. That means if the parser finds for instance nanoseconds it will round it to microseconds.
Documentation¶
- Currently there are four parsing methods available.
- parse_time:
- parses an ISO 8601 time string into a time object
- parse_date:
- parses an ISO 8601 date string into a date object
- parse_datetime:
- parses an ISO 8601 date-time string into a datetime object
- parse_duration:
- parses an ISO 8601 duration string into a timedelta or Duration object.
- parse_tzinfo:
- parses the time zone info part of an ISO 8601 string into a tzinfo object.
As ISO 8601 allows to define durations in years and months, and timedelta does not handle years and months, this module provides a Duration class, which can be used almost like a timedelta object (with some limitations). However, a Duration object can be converted into a timedelta object.
There are also ISO formatting methods for all supported data types. Each xxx_isoformat method accepts a format parameter. The default format is always the ISO 8601 expanded format. This is the same format used by datetime.isoformat:
- time_isoformat:
- Intended to create ISO time strings with default format hh:mm:ssZ.
- date_isoformat:
- Intended to create ISO date strings with default format yyyy-mm-dd.
- datetime_isoformat:
- Intended to create ISO date-time strings with default format yyyy-mm-ddThh:mm:ssZ.
- duration_isoformat:
- Intended to create ISO duration strings with default format PnnYnnMnnDTnnHnnMnnS.
- tz_isoformat:
- Intended to create ISO time zone strings with default format hh:mm.
- strftime:
- A re-implementation mostly compatible with Python’s strftime, but supports only those format strings, which can also be used for dates prior 1900. This method also understands how to format datetime and Duration instances.
Installation:¶
This module can easily be installed with Python standard installation methods.
Either use python setup.py install or in case you have setuptools or distribute available, you can also use easy_install.
Limitations:¶
- The parser accepts several date/time representation which should be invalid according to ISO 8601 standard.
- for date and time together, this parser accepts a mixture of basic and extended format. e.g. the date could be in basic format, while the time is accepted in extended format. It also allows short dates and times in date-time strings.
- For incomplete dates, the first day is chosen. e.g. 19th century results in a date of 1901-01-01.
- negative Duration and timedelta value are not fully supported yet.
Further information:¶
The doc strings and unit tests should provide rather detailed information about the methods and their limitations.
The source release provides a setup.py script, which can be used to run the unit tests included.
Source code is available at http://github.com/gweis/isodate.
CHANGES¶
0.6.0 (2017-10-13)¶
- support incomplete month date (Fabien Loffredo)
- rely on duck typing when doing duration maths
- support ‘:’ as separator in fractional time zones (usrenmae)
0.5.4 (2015-08-06)¶
- Fix parsing of Periods (Fabien Bochu)
- Make Duration objects hashable (Geoffrey Fairchild)
- Add multiplication to duration (Reinoud Elhorst)
0.5.1 (2014-11-07)¶
- fixed pickling of Duration objects
- raise ISO8601Error when there is no ‘T’ separator in datetime strings (Adrian Coveney)
0.5.0 (2014-02-23)¶
- ISO8601Error are subclasses of ValueError now (Michael Hrivnak)
- improve compatibility across various python variants and versions
- raise exceptions when using fractional years and months in date maths with durations
- renamed method todatetime on Duraction objects to totimedelta
0.4.9 (2012-10-30)¶
- support pickling FixedOffset instances
- make sure parsed fractional seconds are in microseconds
- add leading zeros when formattig microseconds (Jarom Loveridge)
0.4.8 (2012-05-04)¶
- fixed incompatibility of unittests with python 2.5 and 2.6 (runs fine on 2.7 and 3.2)
0.4.7 (2012-01-26)¶
- fixed tzinfo formatting (never pass None into tzinfo.utcoffset())
0.4.6 (2012-01-06)¶
- added Python 3 compatibility via 2to3
0.4.5 (2012-01-06)¶
- made setuptools dependency optional
0.4.4 (2011-04-16)¶
- Fixed formatting of microseconds for datetime objects
0.4.3 (2010-10-29)¶
- Fixed problem with %P formating and fractions (supplied by David Brooks)
0.4.2 (2010-10-28)¶
- Implemented unary - for Duration (supplied by David Brooks)
- Output fractional seconds with ‘%P’ format. (partly supplied by David Brooks)
0.4.1 (2010-10-13)¶
- fixed bug in comparison between timedelta and Duration.
- fixed precision problem with microseconds (reported by Tommi Virtanen)
0.4.0 (2009-02-09)¶
- added method to parse ISO 8601 time zone strings
- added methods to create ISO 8601 conforming strings
0.3.0 (2009-1-05)¶
- Initial release
TODOs¶
This to do list contains some thoughts and ideas about missing features, and parts to think about, whether to implement them or not. This list is probably not complete.
Missing features:¶
- time formating does not allow to create fractional representations.
- parser for ISO intervals.
- currently microseconds are always padded to a length of 6 characters. trailing 0s should be optional
Documentation:¶
- parse_datetime:
- complete documentation to show what this function allows, but ISO forbids. and vice verse.
- support other separators between date and time than ‘T’
- parse_date:
- yeardigits should be always greater than 4
- dates before 0001-01-01 are not supported
- parse_duration:
- alternative formats are not fully supported due to parse_date restrictions
- standard duration format is fully supported but not very restrictive.
- Duration:
- support fractional years and month in calculations
- implement w3c order relation? (http://www.w3.org/TR/xmlschema-2/#duration-order)
- refactor to have duration mathematics only at one place.
- localize __str__ method (does timedelta do this?)
- when is a Duration negative?
- normalize Durations. months [00-12] and years ]-inf,+inf[


|
Mp
|
Implements a dictionary for string variables. More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
Go to the source code of this file.
Data Structures | |
| struct | dictionary |
| Dictionary object. More... | |
Functions | |
| unsigned | dictionary_hash (const char *key) |
| Compute the hash key for a string. More... | |
| dictionary * | dictionary_new (size_t size) |
| Create a new dictionary object. More... | |
| void | dictionary_del (dictionary *vd) |
| Delete a dictionary object. More... | |
| const char * | dictionary_get (const dictionary *d, const char *key, const char *def) |
| Get a value from a dictionary. More... | |
| int | dictionary_set (dictionary *vd, const char *key, const char *val) |
| Set a value in a dictionary. More... | |
| void | dictionary_unset (dictionary *d, const char *key) |
| Delete a key in a dictionary. More... | |
| void | dictionary_dump (const dictionary *d, FILE *out) |
| Dump a dictionary to an opened file pointer. More... | |
Implements a dictionary for string variables.
Definition in file dictionary.h.
| struct dictionary |
Dictionary object.
This object contains a list of string/string associations. Each association is identified by a unique string key. Looking up values in the dictionary is speeded up by the use of a (hopefully collision-free) hash function.
Definition at line 45 of file dictionary.h.
| Data Fields | ||
|---|---|---|
| unsigned * | hash |
List of string keys |
| char ** | key |
List of string values |
| int | n | |
| ssize_t | size |
Number of entries in dictionary |
| char ** | val |
Storage size |
| void dictionary_del | ( | dictionary * | d | ) |
Delete a dictionary object.
| d | dictionary object to deallocate. |
Deallocate a dictionary object and all memory associated to it.
Definition at line 177 of file dictionary.c.
| void dictionary_dump | ( | const dictionary * | d, |
| FILE * | out | ||
| ) |
Dump a dictionary to an opened file pointer.
| d | Dictionary to dump |
| f | Opened file pointer. |
Dumps a dictionary onto an opened file pointer. Key pairs are printed out as [Key]=[Value], one per line. It is Ok to provide stdout or stderr as output file pointers.
Definition at line 363 of file dictionary.c.
| const char* dictionary_get | ( | const dictionary * | d, |
| const char * | key, | ||
| const char * | def | ||
| ) |
Get a value from a dictionary.
| d | dictionary object to search. |
| key | Key to look for in the dictionary. |
| def | Default value to return if key not found. |
This function locates a key in a dictionary and returns a pointer to its value, or the passed 'def' pointer if no such key can be found in dictionary. The returned character pointer points to data internal to the dictionary object, you should not try to free it or modify it.
Definition at line 209 of file dictionary.c.
| unsigned dictionary_hash | ( | const char * | key | ) |
Compute the hash key for a string.
| key | Character string to use for key. |
This hash function has been taken from an Article in Dr Dobbs Journal. This is normally a collision-free function, distributing keys evenly. The key is stored anyway in the struct so that collision can be avoided by comparing the key itself in last resort.
Definition at line 118 of file dictionary.c.
| dictionary* dictionary_new | ( | size_t | size | ) |
Create a new dictionary object.
| size | Optional initial size of the dictionary. |
This function allocates a new dictionary object of given size and returns it. If you do not know in advance (roughly) the number of entries in the dictionary, give size=0.
Definition at line 150 of file dictionary.c.
| int dictionary_set | ( | dictionary * | d, |
| const char * | key, | ||
| const char * | val | ||
| ) |
Set a value in a dictionary.
| d | dictionary object to modify. |
| key | Key to modify or add. |
| val | Value to add. |
If the given key is found in the dictionary, the associated value is replaced by the provided one. If the key cannot be found in the dictionary, it is added to it.
It is Ok to provide a NULL value for val, but NULL values for the dictionary or the key are considered as errors: the function will return immediately in such a case.
Notice that if you dictionary_set a variable to NULL, a call to dictionary_get will return a NULL value: the variable will be found, and its value (NULL) is returned. In other words, setting the variable content to NULL is equivalent to deleting the variable from the dictionary. It is not possible (in this implementation) to have a key in the dictionary without value.
This function returns non-zero in case of failure.
Definition at line 255 of file dictionary.c.
| void dictionary_unset | ( | dictionary * | d, |
| const char * | key | ||
| ) |
Delete a key in a dictionary.
| d | dictionary object to modify. |
| key | Key to remove. |
This function deletes a key in a dictionary. Nothing is done if the key cannot be found.
Definition at line 314 of file dictionary.c.


The World's Best Secret Keeper
Welcome to The World's Best Secret Keeper, where your secrets are totally safe.
Welcome to The World's Best Secret Keeper, where your secrets are totally safe.
You have a secret, we know that. We also know you have the urge to share it to someone that won't ever tell it to somebody else.
This is when we come into place! You can completely trust us your secret and rest assured they'll die with us. Nobody will ever know about it from us.
Well, that's quite simple, really: we just don't store anything!
That's it! Your secret is safe with us now. Nobody will ever know it!


I'm a Front-End/Ruby/Rails dev with an extensive background in media production.
Below, you'll find a stream of constantly updated work.
During nocturnal hours, as curtains are drawn and streetlamps illuminate empty blocks, the ambitious hit pavement.The idyllic combination of warm nights, near-empty streets, and Balboa Park lit with colored spotlights provide an uncompromising excuse to lace up a pair of running shoes under the glow of the moon...
Coding is a journey like mastering a musical instrument, foreign language, or physical sport. Progress comes in small increments - from confidence riding the bunny slopes of HTML & CSS to building up the gravitas to juggle Ruby, Rails, Sinatra, and Swift apps in a single day.
Common advice states you never learn from the attempts you don't make. Feature films are costly, immensely time-consuming endeavours. Here's my best advice for fellow filmmakers to maximize production for budget:1. Use what you have: Locations. Cameras. Props. 2. Maintain focus on the next project: Don't put all you're eggs into one 'magnum opus' - learn from each and know when it's time to start anew...
Founder and lead instructor of a web development video series explaining the basics of coding.
Lead front-end design and development on Rails and Angular apps for California-based tech startup.
Rails projects include a Stripe-integrated app, a podcast network, clones of Twitter & Pinterest.


On 6 October 2018, 5 new articles were published in 4 journals.
Runaway Jury: An Analysis of State Laws Concerning Juror Impeachment
Note: although this article was published on 20 September 2018, the publisher only added it to the journal RSS feed on 6 October 2018, which is why it is shown in the list of articles for that date.
Perceptions and Experiences of Intrusive Behavior and Stalking Within A Culture
Note: although this article was published on 26 September 2018, the publisher only added it to the journal RSS feed on 6 October 2018, which is why it is shown in the list of articles for that date.
Target Congruence Theory and the Victim-Offender Overlap Among Male Youths


Supreme Court Justice Ruth Bader Ginsburg admitted to hospital for chills and fever
by Rich CalderSupreme Court Justice Ruth Bader Ginsburg was admitted to a hospital Friday night after experiencing chills and fever earlier in the day, a spokeswoman said Saturday.
Ginsburg, 86, was initially evaluated at Sibley Memorial Hospital in Washington, DC, before being moved to Johns Hopkins Hospital in Baltimore for further evaluation and treatment of any potential infection, said spokeswoman Kathleen Arberg.
Ginsburg’s symptoms improved after treatment with intravenous antibiotics and fluids, Arberg said.
The justice is expected to be released from the hospital as early as Sunday.
Ginsburg has recently suffered a series of health scares.
She underwent radiation treatment in August for a malignant tumor on her pancreas.
In December, Ginsburg underwent lung cancer surgery.
She was hospitalized last November after fracturing three ribs in a fall in her office at the court.


|
Women's Health
by Laura W. Allen
A number of the prints
in the collection deal with women's health, including some vivid depictions of
pregnancy. At the beginning of the Meiji era, the bunmei kaika, or "civilization and
enlightenment" movement, introduced a
more scientific outlook in many areas
of Japanese life, including attitudes toward pregnancy and childbirth. Anatomical drawings from the West, available
widely for the first time, provided models for the representation of such
themes as the stages of fetal gestation.
A diptych from 1880,
titled "Information on Pregnancy," demonstrates how those models were adapted
for the Japanese audience. In the right half of the print are ten
egg-shaped portraits of women in various stages of pregnancy. Their open robes reveal a cut-away view of
the uterus, with the fetus floating against a red background. Counted from conception forward, they are
labeled as views of the ten months of pregnancy.
In a set of five red
spheres at the left are the different presentations at delivery: at top, in a
slightly larger circle, is the typical cephalic (head-first) presentation,
followed by shoulder presentation (the arm emerges first), multiple birth
(twins), footling breech, complete breech, and the delivery of a breech
baby. Prints like these must have
created quite a sensation when they were produced, providing as they did the
latest, up-to-date scientific information.
"Pregnant women playing in summer heat
- 5 heads with 10 bodies" is the title of another, more entertaining image of
the stages of fetal development by Utagawa Kunitoshi (1847-1899). At first glance, it appears that this group
of pregnant women is performing acrobatics in the nude; with the exception of a
sash tied around the midriff of each woman, they are naked, though their
genitals and breasts are artfully concealed.
Upon closer inspection, one realizes
that each head is attached to two bodies, and that the bodies are cleverly
linked so that the lower bodies each appear to be shared by two women. Connecting these
shared heads, arms, buttocks, and legs are ten torsos, each revealing an image of a growing
fetus. The fan held by the woman at center says "five heads," and the abdomens are labeled from
the first to the tenth month. Above the women is written further information about the course of
pregnancy.
A print dating from the mid-1850s shows the internal
workings of a woman's body as a kind of Rube Goldberg apparatus operated by a
host of tiny female workers. This
imaginative rendering is titled "Dietary Advice for a Good Sex Life," and the
woman is not a housewife but a geisha in full regalia: an elaborate coiffure
spiked with a dozen large hairpins and combs, and a brilliantly patterned robe
over the requisite, provocative red undergarment.
Another
print, titled "Model for a Healthy Diet," represents a man's body in the same
manner, although male laborers occupy his gut.
 Two related prints use the same cut-away
perspective to portray a man's internal functions, as dramatized by kabuki actors.
|
|
{% include sidenav.html %}
|


figtitle
This function creates a title centered at the top of a figure. This may be used to add a title to a figure with several subplots.
Contents
Syntax
figtitle('TitleString') figtitle('TitleString','TextProperty','TextValue') h = figtitle(...)
Description
figtitle('TitleString') centers a title at the top of a figure and sets the figure name to 'TitleString'.
figtitle('TitleString','TextProperty',TextValue) formats the title with property name value pairs (e.g., 'FontSize',20)
h = figtitle(...) returns a handle h of the newly-created title.
Example 1: Simple case.
Here we use figtitle for a simple case:
x = 1:.01:7; y = sin(x); figure; subplot(2,2,1) plot(3*x,y) title('Exp. 1') subplot(2,2,2) plot(x,2*y+x) title('Exp. 2') subplot(2,2,3) plot(x,y) title('Exp. 3') subplot(2,2,4) plot(x,2*y) title('Exp. 4') figtitle('My Experimental Results');
Example 2: figtitle pairs nicely with ntitle
When using figtitle, it may be nice to also use ntitle.
x = 1:.01:7; y = sin(x); figure; subplot(2,2,1) plot(3*x,y) ntitle('experiment 1','fontsize',12) box off subplot(2,2,2) plot(x,2*y+x) ntitle('experiment 2','fontsize',12) box off subplot(2,2,3) plot(x,-y+5*x) ntitle('experiment 3','fontsize',12) box off subplot(2,2,4) plot(x,2*y-3*x) ntitle('experiment 4','fontsize',12); box off h = figtitle(' My Experimental Results');
You may want a fancy figtitle. In the example above we returned a handle h of the figtitle because now we're going to delete the figtitle we just created and make a fancier one.
delete(h) figtitle('My Experimental Results',... 'fontweight','bold',... 'fontangle','oblique',... 'edgecolor',[.007 .577 .526],... 'color','blue',... 'linewidth',5,... 'fontsize',20);
Unfortunately, the publish command in Matlab makes the figures above look pretty lousy. When you use figtitle you'll have much better results than what is shown above--particularly if you export your graphics via export_fig.
Author Info
Written by Chad A. Greene of the University of Texas at Austin Institute for Geophysics, July 2013.
Updated August 2014 to include support for invisible figures and now also sets the figure name to the title string.


Double defeat for Bristol Flyers in opening weekend of the league
A disappointing weekend for the Flyers, who couldn't replicate their recent cup form
by Joel OsborneBristol Flyers suffered back-to-back defeats against Sheffield Sharks and Surrey Scorchers in the opening weekend of the BBL regular season.
The Flyers were unable to recreate their recent Cup quarter-final performance against the Sharks on Friday night, going down 71-85, despite a 21 point performance from Fred Thomas.
In a complete role reversal from the previous weekend, Sheffield sank 45% of their shots from behind the three point line and were led by Nick Lewis, who tallied 20 points and weight rebounds, whilst Mackey McKnight had 19 points on a very efficient 7-8 from the field.
The Flyers hit the road less than 24 hours later, where they led by double-figures at half-time against the Scorchers, before the hosts made four threes in a row in the fourth to hand Bristol a 93-87 defeat.
Gentrey Thomas netted 10 of a game-high 25 points in an evenly-matched first quarter, to edge Bristol ahead by with a one point after the first ten minutes.
The Flyers went on a 15-0 run in the second, whilst holding Surrey scoreless for four straight minutes, giving Coach Kapoulas’ side their biggest lead of the game at 12.
But their poor free throw percentage haunted them, with the team making just 50% from the line to leave the door open for a Scorchers comeback.
A 15-2 run for the hosts followed and Surrey briefly took the lead before Chris Taylor beat the clock to give Flyers a one-point lead heading into the fourth.
A driving lay-up from Gentrey Thomas set up a tense finish, with the game tied at 87 points apiece in the last 30 seconds.
But a jump ball saw the Flyers turnover possession, allowing Surrey to ice the game from the foul line.
What Andreas Kapoulas said
“It’s a disappointing weekend for sure. We’re all disappointed - it’s the not the way we wanted to start the regular season.
"We knew that Sheffield were going to come into the game on Friday with a chip on their shoulder and they played a good defensive game.
"We played a decent first half against Surrey on Saturday and we secured a double digit lead heading into half-time. But they had 25 in the third and the 30 points in the fourth and we ended up paying the price.
"It’s back to the drawing board, we have a BBL Cup semi-final on Friday so we need to prepare for that"
Up next
It’s another doubleheader for the Flyers this weekend, with the team traveling to London City Royals in the first leg of the BBL Cup semi-final on Friday night, before hosting Worcester Wolves in the league on Saturday, December 14th at the SGS College Arena (7.30pm tip-off).


Head Blacksmith Noel:
What brings you to me? All the orders are backed up; it's chaos!
"I've come to get the key Mona requested."


Scripts
ZAP supports scripts that can be embedded within ZAP and can access internal ZAP data structures and classes.
These scripts allow you to dynamically enhance ZAP from within ZAP.
ZAP supports any scripting language that supports JSR 223 (http://www.jcp.org/en/jsr/detail?id=223) , including:
WARNING - scripts run with the same permissions as ZAP, so do not run any scripts that you do not trust!
Script Types
Different types of scripts are supported:
- Active Rules - these run as part of the Active Scanner and can be individually enabled
- Authentication - scripts that are invoked when authentication is performed for a Context.
To be used, they need to be selected when configuring the Script-Based Authentication Method for a Context.
- Extender - scripts which can add new functionality, including graphical elements and new API end points
- HTTP Sender - scripts that run against every request/response sent/received by ZAP. This includes the proxied messages, messages sent during active scanner, fuzzer, ...
- Input Vector - scripts for defining exactly what ZAP should attack. They can also change how any URL is represented in the Sites Tree
- Passive Rules - these run as part of the Passive Scanner and can be individually enabled
- Proxy - these run 'inline', can change every request and response and can be individually enabled. They can also trigger break points
- Session Management - scripts that define how an application manages sessions
- Stand Alone - scripts that are self contained and are only run when your start them manually
- Targeted - scripts that are invoked with a target URL and are only run when your start them manually
Note: Add-ons can add additional types of scripts, which should be described in the help of the corresponding add-on.
For more details on how to run ZAP scripts see the Script Console add-on help pages.
See also
External links
Official Videos


BlindChess
#
White
Black
Play as White
Play as Black
Your Move:
Submit
Difficulty:
Level: 1
Level: 2
Level: 3
Level: 4
Level: 5
Click here to learn about the chess notation
Show Board
© vishwas.ib@gmail.com


class: left, middle, inverse, title-slide # Reproducibility in Data Science ### Jessica Minnier, PhD
Associate Professor of Biostatistics
OHSU-PSU School of Public Health
Knight Cancer Institute Biostatistics Shared Resource
Oregon Health & Science University
### HIP 523 Data Science for Research
bit.ly/hip-repro
datapointier
--- layout: true --- # Introduction
Illustrations from the Turing Way book dashes; This image was created by Scriberia for The Turing Way community and is used under a CC-BY licence --- # Goals - Define reproducible research - Discuss current issues surrounding reproducibility - Important components of reproducibility - Relevance to data science and analysis - Introduction to version control - Introduction to literate programming in R
PhD Comics by Jorge Cham --- # What is Reproducible Research? .pull-left[
Patil, Peng, & Leek 2016 ] .pull-right[ **Reproducibility:** ability to recompute data analytic results given the data set and knowledge of the data analysis pipeline **Replicability:** the chance that an independent experiment targeting the same scientific question will produce a consistent result -- Peng (2011) "Reproducible research in computational science" and Leek and Peng (2015) "Opinion: Reproducible research can still be wrong: Adopting a prevention approach" ] ---
Illustrations from the Turing Way book dashes; This image was created by Scriberia for The Turing Way community and is used under a CC-BY licence --- # Reproducible = Replicable + Transparant Sometimes, replicable is used instead of reproducible. > Research results are **replicable** if there is sufficient information available for independent researchers to make the same findings using the same procedures. > > In **computational sciences this means**: the data and code used to make a finding are available and they are sufficient for an independent researcher to recreate the finding. > > In practice, research needs to be **easy for independent researchers to reproduce**. > -- Ball and Medeiros (2012); King (1995) from Gandrud (2013) -- > **Replicability** has been a key part of scientific inquiry from perhaps the 1200s. It has even been called the "demarcation between science and non-science." > -- Gandrud (2013) book "Reproducible Research with R and R Studio" and references therein, including [Roger Bacon's "Opera quaedam hactenus inedita Vol. 1" from 1267](https://books.google.com/books?id=wMUKAAAAYAAJ) --- # What are the different kinds of reproducibile research? > Victoria Stodden, a prominent scholar on this topic, has identified some useful distinctions in reproducible research: > **Computational reproducibility**: when detailed information is provided about code, software, hardware and implementation details. > > **Empirical reproducibility**: when detailed information is provided about non-computational empirical scientific experiments and observations. In practice this is enabled by making data freely available, as well as details of how the data was collected. > > **Statistical reproducibility**: when detailed information is provided about the choice of statistical tests, model parameters, threshold values, etc. This mostly relates to pre-registration of study design to prevent p-value hacking and other manipulations. [ROpenSci Reproducibility Guide](http://ropensci.github.io/reproducibility-guide/sections/introduction/) --- # Spectrum of Research > [Stodden et al. (2013)](http://stodden.net/icerm_report.pdf) place computational reproducibility on a spectrum with five categories that account for many typical research contexts: > > - Reviewable research: The descriptions of the research methods can be independently assessed and the results judged credible. (This includes both traditional peer review and community review, and does not necessarily imply reproducibility.) > - Replicable research: Tools are made available that would allow one to duplicate the results of the research... > - Confirmable research: ... main conclusions of the research can be attained independently without the use of software provided by the author ... > - Auditable research: Sufficient records (including data and software) have been archived ... > - Open or Reproducible research: Auditable research made openly available. This comprised well-documented and fully open code and data that are publicly available that would allow one to (a) fully audit the computational procedure, (b) replicate and also independently reproduce the results of the research, and (c) extend the results or apply the method to new problems. [ROpenSci Reproducibility Guide](http://ropensci.github.io/reproducibility-guide/sections/introduction/) --- # Reproducibility in Data Science > "Reproducibility is important because it is the **only thing that an investigator can guarantee about a study.**" > > "**a study can be reproducible and still be wrong**" > > "These days, with the complexity of data analysis and the subtlety of many claims (particularly about complex diseases), reproducibility is pretty much the only thing we can hope for. Time will tell whether we are ultimately right or wrong about any claims, but **reproducibility is something we can know right now**." > > "By using the word reproducible, I mean that the **original data (and original computer code) can be analyzed (by an independent investigator) to obtain the same results of the original study**. In essence, it is the notion that the data analysis can be successfully repeated. Reproducibility is particularly important in large computational studies where the data analysis can often play an outsized role in supporting the ultimate conclusions." -- Roger Peng's 2014 blog post on Simply Statistics ["The Real Reason Reproducible Research is Important"](http://simplystatistics.org/2014/06/06/the-real-reason-reproducible-research-is-important/) also see Peng (2011) "Reproducible research in computational science" --- class:inverse, middle, center # "Your primary collaborator is yourself 6 months from now, and your past self doesn't answer emails." -- [Software Carprentry workshops](https://software-carpentry.org/) --- # Early notions of reproducibility: "Claerbout's Principle" > An **article** about computational science in a scientific publication is not the scholarship itself, it is **merely advertising of the scholarship**. The actual scholarship is the complete software development environment and the complete set of instructions which generate the figures. > It takes **some effort to organize your research to be reproducible**. > >We found that although the effort seems to be directed to helping other people stand up on your shoulders, the principal beneficiary is generally the author herself. > >This is because time turns each one of us into another person, and by making effort to communicate with strangers, we help ourselves to communicate with our **future selves**. - Claerbout and Karrenbach (1992) "Electronic documents give reproducible research a new meaning" - Buckheit and Donoho (1995) "Wavelab and reproducible research" - Schwab, Karrenbach, and Claerbout (2000) "Making scientific computations reproducible" - De Leeuw (2001) "Reproducible research. the bottom line" > (Jon F. Claerbout is the Cecil Green Professor Emeritus of Geophysics at Stanford University. He was one of the first scientists to emphasize that computational methods threaten the reproducibility of research unless open access is provided to both the data and the software underlying a publication.) --- class: middle, center, inverse # Current Issues and Discussion --- # Nature series "Challenges in Irreproducible Research" May 25, 2016 Editorial ["Reality check on reproducibility"](http://www.nature.com/news/reality-check-on-reproducibility-1.19961) .pull-left-40[ ![](reproducibility-graphic-online1.jpg) ] .pull-right-60[ > One-third of survey respondents report that they have taken the initiative to improve reproducibility. The simple presence of another person ready to **question** whether a data point or a sample should really be excluded from analysis can help to cut down on cherry-picking, conscious or not. A couple of senior scientists have set up **workflows** that avoid having a single researcher in charge of preparing images or collecting results. Dozens of respondents reported steps to make **better use of statistics, randomization or blinding**. One described an institution-level initiative to **teach scientists computer tools so they could share and analyse data collaboratively**. Key to success was making sure that their **data-management system also saved time**. ] --- # How to Make More Published Research True Ioannidis (2014) "How to Make More Published Research True" in PLOS Medicine, the author writes a follow up to Ioannidis (2005) "Why most published research findings are false." He suggests reproducibility as one key component to the cause: > "To make more published research true, practices that have improved credibility and efficiency in specific fields may be transplanted to others which would benefit from them—possibilities include > > - the adoption of large-scale collaborative research; > - **replication culture**; > - registration; sharing; **reproducibility practices**; > - better statistical methods; > - standardization of definitions and analyses; > - more appropriate (usually more stringent) statistical thresholds; and > - improvement in study design standards, peer review, *reporting and dissemination of research*, and training of the scientific workforce." --- # Availability of code in peer-reviewed journals Stodden, Guo, and Ma (2013) "Toward Reproducible Computational Research: An Empirical Analysis of Data and Code Policy Adoption by Journals" .pull-left[ ![](jasa_repro_img.png) ] .pull-right[ - Studied change in policies between 2011-2012 - Open data and code policy adoption vs.impact factor and publisher - Higher impact journals more likely to have open data and code policies - Scientific societies more likely to have open data and code policies than commercial publishers. ] --- # Data sharing requirements in journals Vasilevsky, Minnier, Haendel, and Champieux (2017) ["Reproducible and reusable research: are journal data sharing policies meeting the mark?"](https://peerj.com/articles/3208/)  --- # Data sharing requirements in journals Vasilevsky, Minnier, Haendel, et al. (2017) ["Reproducible and reusable research: are journal data sharing policies meeting the mark?"](https://peerj.com/articles/3208/) .pull-left[  ] .pull-right[  ] --- # Data sharing requirements in journals .pull-left[ Resnik, Morales, Landrum, Shi, Minnier, Vasilevsky, and Champieux (2019) ["Effect of Impact Factor and Discipline on Journal Data Sharing Policies"](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6533124/): Stratified sampling of scientific disciplines  ] .pull-right[  ] --- # Data management: FAIR principles (Findable, Accessible, Interoperable, Reusable) .pull-left[ - Make data available in trusted data repository - Include comprehensive metadata - Store in open (non-proprietary) formats - Attach a permanent identifier (i.e. DOI) In Biomedical research, open access can be difficult/unethical. Wilkinson, Dumontier, Aalbersberg, Appleton, Axton, Baak, Blomberg, Boiten, da Silva Santos, Bourne, and et al. (2016) ] .pull-right[

Illustrations from the Turing Way book dashes; This image was created by Scriberia for The Turing Way community and is used under a CC-BY licence ] --- # NIH requirements for grants (beginning Jan 2016, updated Jan 2019) ["Enhancing Reproducibility through Rigor and Transparency"](http://grants.nih.gov/grants/guide/notice-files/NOT-OD-15-103.html) 1. *Rigor of the Prior Research* + "describe the general strengths and weaknesses of the prior research being cited by the investigator as crucial to support the application." + experimental design/power of prior studies used for hypothesis generation, weaknesses include different populations/species, unblinded, not adjusting for confounders 2. *Rigorous Experimental Design* 3. *Consideration of Sex and Other Relevant Biological Variables* + "sex is a biological variable that is frequently ignored in animal study designs and analyses" 4. *Authentication of Key Biological and/or Chemical Resources* 5. *Implementation* [NIH "Rigor and Reproducibility" Policy](http://grants.nih.gov/reproducibility/index.htm) *Note:* Most of this is in regards to the science, design of experiment, chemical and biological methods. **Essentially no language describing reproducibility of analyses or data management for data or results generated by the grant.** --- # Journals unite with NIH to encourage reproducibility - [Principles and Guidelines for Reporting Preclinical Research](http://www.nih.gov/research-training/rigor-reproducibility/principles-guidelines-reporting-preclinical-research) - NIH held a joint workshop in June 2014 with the Nature Publishing Group and Science on the issue of reproducibility and rigor of research findings - A video/slide presentation about this topic and how it applies to grant applications and peer review can be found here: [NIH Policy Rigor for Reviewers Presentation](http://grants.nih.gov/grants/policy/rigor/NIH_Policy_Rigor_For_Reviewers/presentation.html) --- # NIH [Principles and Guidelines for Reporting Preclinical Research](http://www.nih.gov/research-training/rigor-reproducibility/principles-guidelines-reporting-preclinical-research) Journals should aim to facilitate the interpretation and repetition of experiments as they have been conducted in the published study. - include policies for statistical reporting in information to authors - no limits or generous limits for methods sections - should use a **checklist** during editorial processing to ensure the reporting of key methodological and analytical information to reviewers and readers - Data and material sharing + at the minimum, data sets on which the conclusions of the paper rely must be made available upon request (where ethically appropriate) during consideration of the manuscript (by editors and reviewers) and upon reasonable request immediately upon publication. + Recommend deposition of data sets in public repositories, where available + Encourage presentation of all other data values in machine readable format + Encourage sharing of software and require at the minimum a statement in the manuscript describing if software is available and how it can be obtained. - journal assumes responsibility to consider publication of refutations of that paper - best practice guidelines for image based data and a description of biological material with enough information to uniquely identify the reagents - do not obviate need for biological replication/validation --- # Checklist: authors required to report from [NIH Guidelines](http://www.nih.gov/research-training/rigor-reproducibility/principles-guidelines-reporting-preclinical-research) & Landis, Amara, Asadullah, Austin, Blumenstein, Bradley, Crystal, Darnell, Ferrante, Fillit, and et al. (2012) ["A call for transparent reporting to optimize the predictive value of preclinical research"](https://www.nature.com/articles/nature11556) - *Standards:* community-based standards (nomenclature etc) where applicable - *Replicates:* report how often each experiment was performed, whether results were substantiated by repetition under a range of conditions. Sufficient information about sample collection must be provided to distinguish between independent biological data points & technical replicates. - *Statistics:* Require statistics to be fully reported in the paper, including statistical test used, exact value of N, definition of center, dispersion & precision measures - *Randomization:* (yes/no) & method, at a minimum for all animal experiments - *Blinding:* were experimenters blind to group assignment & outcome assessment, at a minimum for all animal experiments. - *Sample-size (SS) estimation:* was an appropriate SS computed during study design & include method; if no power analysis, how was SS determined? - *Inclusion and exclusion criteria:* criteria used for exclusion of any data or subjects. Include any similar experimental results that were omitted from reporting for any reason, esp. if results don't support main findings of study; describe any outcomes/conditions that are measured/used & not reported in results section. --- # Reproducible research and Biostatistics (the journal) > Authors should submit the following: > > 1. A “main” script which directs the overall analysis. This script may load data, other software, and call the necessary functions for conducting the analysis described in the article. > 2. Other required code files, presumably called from the “main” script file. > 3. External data or auxiliary files containing the analytic data sets or other required information. > 4. A “target” file (or files) containing the results which are to be reproduced. Such a file could consist of an ASCII text file containing numerical results or a PDF file containing a figure. This will aid in the comparison of computed results with published results. > > Although not required, authors are encouraged to use literate programming tools [...] -- Peng (2009) "Reproducible research and *Biostatistics*" >Our reproducible research policy is for papers in the journal to be kite-marked D if the data on which they are based are freely available, C if the authors' code is freely available, and R if both data and code are available, and our Associate Editor for Reproducibility is able to use these to reproduce the results in the paper. Data and code are published electronically on the journal's website as Supplementary Materials. --- # Nature series on "Challenges in Irreproducible Research" Nature has a website containing editorials, features, news, and articles on various topics related to reproducible research: [Nature special: Challenges in Irreproducible Research](http://www.nature.com/news/reproducibility-1.17552) Including - [a checklist for authors of Nature papers](http://www.nature.com/authors/policies/checklist.pdf) described in the 2013 announcement ["Announcement: Reducing our irreproducibility"](http://www.nature.com/news/announcement-reducing-our-irreproducibility-1.12852) - R Nuzzo (2014) Nature News Feature ["Scientific method: Statistical errors"](http://www.nature.com/news/scientific-method-statistical-errors-1.14700) on "P values, the 'gold standard' of statistical validity, are not as reliable as many scientists assume." --- # "Enhancing Reproducibility for Computational Methods" Stodden, McNutt, Bailey, Deelman, Gil, Hanson, Heroux, Ioannidis, and Taufer (2016) in *Science* Policy Forum - Share data, software, workflows, and details of computational environment in open trusted repositories - Persistent links, permanent identifiers for data, code, digital artifacts upon which the results depend - Enable credit for shared digital scholarly objects with citations - Adequately document to facilitate reuse - Use Open Licensing - Journals should conduct a reproducibility check - Funding agencies should instigate new research programs and pilot studies Barriers: - Human subject data or proprietary code, but creative solutions should be implemented - Journals and funders should reward reproducibility - Students need to be taught reproducible methodology - Need to make these efforts common place --- .pull-left[ ## Barriers to Reproducibility/Replicability - Selective reporting of results - Pressure to publish - Not robust results - Protocols, computer code, or reagent info insufficient or not available ## Barriers to implementing R&R - insufficient funding/time - insufficient training (and funding for training) - journals/funders do not have clear guidelines or priorities - open access not encouraged or funded ] .pull-right[

Nature Survey 2017 results, n=480 authors ] --- class: inverse, middle, center # Reproducibility in Practice --- # Data management - Write a data management plan prior to research, should cover entire project lifestyle - Follow the FAIR principles when possible - Document, document, document! (metadata, create Readme file) - For open data, attach a licence or rights waiver - DOI or Zenodo identifiers to capture open data at specific time points - For private/patient data, access should be granted based on data sharing agreement; version control and data storage principles should still be followed for internal reproducibility and traceability; code can still be shared >"The basics of RDM [Research Data Management] that should be applied to every research project include: i) storing data carefully and securely (according to the appropriate standards in the case of sensitive data), ii) backing up frequently and in at least two separate locations, and iii) using a file naming convention so that others within and outside a project can understand a file’s content." Kunzmann et al (PeerJ as preprint soon) "Realistic and Robust Reproducible Research for Biostatistics" Resources: - [DMPonline](https://dmponline.dcc.ac.uk/) by the Digital Curation Centre for writing data management plans - [FAQs for Enabling FAIR Data](http://www.copdess.org/enabling-fair-data-project/enabling-fair-data-faqs/) - LabKey, open-source specimen and data management platform --- # Software, workflow, and dependency management Problems: - Software changes, new versions are released and older code breaks. - Files are removed or moved and all the code breaks. - One file is updated but the rest of the code/files are not updated. - You forgot which files depend on which other files, or what has been changed. Solutions for Workflow: - **Automation** streamlined automation and documentation of the research process, e.g. editing files, moving input and output between different parts of your workflow, and compiling documents for publication (shell programs, `make`); in python: snakemake, in R: drake Solutions for Dependency: - **Preservation** of the environment (code, data, software) with virtualisation, i.e. Docker, VMware, VirtualBox, packrat for R package management [ROpenSci Reproducibility Guide](http://ropensci.github.io/reproducibility-guide/sections/introduction/) --- # Archiving and citability - Long-term availability of code and data - Popular repositories for data: Zenodo, Dryad, Genbank, GEO - Popular repositories for code: GitHub, bitbucket, Bioconductor, CRAN PyPI - Citability: Digital Object Identifier (DOI) for code and data
Kunzmann et al (PeerJ as preprint soon) "Realistic and Robust Reproducible Research for Biostatistics" --- # Literate Programming .pull-left[ > Literate programming is an approach to programming introduced by Donald Knuth in which a program is given as an explanation of the program logic in a natural language, such as English, interspersed with snippets of macros and traditional source code, from which a compilable source code can be generated. (Knuth, 1984) Current implementations weave code, documentation, results, and other output in the same document. Examples: [knitr](http://yihui.name/knitr/) (for R), Sweave; Jupyter notebooks (for python) [SASweave](http://homepage.cs.uiowa.edu/~rlenth/SASweave/), Statrep (for SAS); [StatWeave](http://homepage.stat.uiowa.edu/~rlenth/StatWeave/) (for STATA) ] .pull-right[ This is knitr (presentation made with knitr+RStudio): ```r library(survival) leukemia.surv <- survfit(Surv(time, status) ~ x, data = aml) plot(leukemia.surv, lty = 2:3) legend(100, .9, c("Maintenance", "No Maintenance"), lty = 2:3) title("Kaplan-Meier Curves\nfor AML Maintenance Study") ``` ![](2020_05_reproducibility_hip_files/figure-html/unnamed-chunk-1-1.png) ] --- # Version Control .pull-left[ - A system that tracks and records changes to file(s) - Allows for collaborative work on code - i.e. **git**: "a lightweight yet robust framework that is ideal for managing the full suite of research outputs such as data sets, statistical code, figures, lab notes, and manuscripts." Ram (2013) "Git can facilitate greater reproducibility and increased transparency in science." - online git repositories include: GitHub, bitbucket, GitLab - more sophisticated/lightweight than track changes in Word/google docs Resources: - [Software Carpentry "Version Control w/Git"](https://swcarpentry.github.io/git-novice/) - [Github tutorials](https://try.github.io/) - [Happy Git and GitHub for the useR - Jenny Bryan, Jim Hester](https://happygitwithr.com/) ] .pull-right[
Illustrations from the Turing Way book dashes; This image was created by Scriberia for The Turing Way community and is used under a CC-BY licence ] --- .pull-left-60[ # Why Use Version Control?
Illustrations from the Turing Way book dashes; This image was created by Scriberia for The Turing Way community and is used under a CC-BY licence ] .pull-right-40[

PhD Comics by Jorge Cham ] --- # Why Use Version Control? > Have you ever: > > - Made a change to code, realised it was a mistake and wanted to revert back? > - Lost code or had a backup that was too old? > - Had to maintain multiple versions of a product? > - Wanted to see the difference between two (or more) versions of your code? > - Wanted to prove that a particular change broke or fixed a piece of code? > - Wanted to review the history of some code? > - Wanted to submit a change to someone else's code? > - Wanted to share your code, or let other people work on your code? > - Wanted to see how much work is being done, and where, when and by whom? > - Wanted to experiment with a new feature without interfering with working code? > > In these cases, and no doubt others, **a version control system should make your life easier.** [Stack Overflow question: Why should I use version control?](http://stackoverflow.com/questions/1408450/why-should-i-use-version-control) --- class: center, middle, inverse # Make a Plan --- # Checklists for Reproducibility - ["Checklists work to improve science"](https://www.nature.com/articles/d41586-018-04590-7) - Nature editorial, April 2018 - In 2013, *Nature* announced that authors submitting manuscripts to *Nature* journals would need to complete a checklist addressing key factors underlying irreproducibility for reviewers and editors to assess during peer review - Survey of researchers who had published in a Nature journal between July 2016 and march 2017 > Of the 480 who responded, 49% thought that the checklist had improved the quality of research published in Nature (15% disagreed); 37% thought the checklist had improved quality in their field overall (20% disagreed). Checklists can be useful for computational research in general. An excellent example: [ROpenSci's Reproducibility Checklist](http://ropensci.github.io/reproducibility-guide/sections/checklist/) --- # "Ten Simple Rules for Reproducible Computational Research" - Rule 1: For Every Result, Keep Track of How It Was Produced - Rule 2: Avoid Manual Data Manipulation Steps - Rule 3: Archive the Exact Versions of All External Programs Used - Rule 4: Version Control All Custom Scripts - Rule 5: Record All Intermediate Results, When Possible in Standardized Formats - Rule 6: For Analyses That Include Randomness, Note Underlying Random Seeds - Rule 7: Always Store Raw Data behind Plots - Rule 8: Generate Hierarchical Analysis Output, Allowing Layers of Increasing Detail to Be Inspected - Rule 9: Connect Textual Statements to Underlying Results - Rule 10: Provide Public Access to Scripts, Runs, and Results Sandve, Nekrutenko, Taylor, and Hovig (2013) --- # Example ideals for a computational group - Literate programming (use R Markdown) - Agree on best practices for writing code (i.e. [ROpenSci's Reproducibility & Writing Code Guide](http://ropensci.github.io/reproducibility-guide/sections/writingCode/) and "Best Practices for Scientific Computing" Wilson, Aruliah, Brown, Hong, Davis, Guy, Haddock, Huff, Mitchell, Plumbley, and others (2014) - Agree on folder structure, naming conventions - Use html web-based output + [see Matthew Shotwell's slides](http://biostatmatt.com/uploads/shotwell-interface-2011.pdf) + nearly universal compatibility + persistent + images handled more naturally + avoid changes (i.e. in Word) - Use `make` files to rerun analyses when certain files change - Version/revision control systems such as git for all files - Version control of data, stored with backup in persistent location - Store metadata, readme files - Software/package versions need to be maintained (i.e. packrat for R) --- class:center, middle, inverse # Brief Tutorials --- # R Markdown/Knitr (literate programming) - BERD workshop "Reproducible Reports with R Markdown" slides: [bit.ly/berd_rmd](http://bit.ly/berd_rmd) and recording [link](https://echo360.org/section/aefe4e1c-c635-4a3b-bf99-ce6439184f5f/public) and other info is found on [github](https://github.com/jminnier/berd_r_courses) - Example, new git project in Rstudio - Example, cloning a github repo --- # R Markdown = `.Rmd` file = Code + text `knitr` is a package that converts `.Rmd` files containing code + markdown syntax to a plain text `.md` markdown file, and then to other formats (html, pdf, Word, etc)  `\(\Rightarrow\)`  --- # Compare the .Rmd file with its html output  --- # knitr converts `.Rmd` -> `.md` (behind the scenes) .pull-left[  ] .pull-right[  ] --- # knitr converts `.Rmd` -> `.md` -> `.html` .pull-left[  ] .pull-right[  ] --- # knitr converts `.Rmd` -> `.md` -> `.pdf` .pull-left-40[  ] .pull-right-60[  ] --- # knitr converts `.Rmd` -> `.md` -> `.doc` .pull-left[  ] .pull-right[  ] --- # Git/github (version control) - Using git in Rstudio (for more instruction, highly recommend [happygitwithr.com](https://happygitwithr.com/)) - Explore an example GitHub repo [OHSU-Library/Biomedical_Journal_Data_Sharing_Policies](https://github.com/OHSU-Library/Biomedical_Journal_Data_Sharing_Policies) --- class:center, middle, inverse # Resources --- ## Recommended Books - [Stodden, Victoria, Friedrich Leisch, and Roger D. Peng, eds. Implementing reproducible research. CRC Press, 2014.](https://www.crcpress.com/Implementing-Reproducible-Research/Stodden-Leisch-Peng/9781466561595) - [Gandrud, Christopher. Reproducible Research with R and R Studio. CRC Press, 2013.](https://www.crcpress.com/Reproducible-Research-with-R-and-R-Studio/Gandrud/9781466572843) - [Xie, Yihui. Dynamic Documents with R and knitr. Vol. 29. CRC Press, 2013.](https://www.crcpress.com/Dynamic-Documents-with-R-and-knitr/Xie/9781482203530) ## Online classes - Karl Broman's class "Tools for Reproducible Research" at UWisconsin-Madison <http://kbroman.org/Tools4RR/> - "Reproducible Research" by Johns Hopkins on Coursera (Peng, Leek, Caffo) <https://www.coursera.org/learn/reproducible-research> - Learn git: <https://try.github.io/levels/1/challenges/1> ## NIH Rigor & Reproducibility Resources - Website: <http://grants.nih.gov/reproducibility/index.htm> - FAQs: <http://grants.nih.gov/reproducibility/faqs.htm> - NIH Training Module: <https://grants.nih.gov/reproducibility/module_1/presentation.html> --- ## Websites/slides/blogs - ROpenSci's "Reproducibility in Science" [guide](http://ropensci.github.io/reproducibility-guide/) including the [reproducibility checklist](http://ropensci.github.io/reproducibility-guide/sections/checklist) - Victoria Stodden's [list of talks](http://web.stanford.edu/~vcs/Talks.html) on various topics from "Reproducibility: Breakin' it Down" to "Legal Issues in Reproducible Research" - Matthew Shotwell's slides (2011) ["Approaches and Barriers to Reproducible Practices in Biostatistics"](http://biostatmatt.com/uploads/shotwell-interface-2011.pdf) - M Shotwell and JM Álvarez' slides ["Approaches and Barriers to Reproducible Practices in Biostatistics"](http://biostatmatt.com/uploads/shotwell-interface-2011.pdf) and ["Barriers to Reproducible Research and a Web-Based Solution"](http://biostat.mc.vanderbilt.edu/wiki/pub/Main/MattShotwell/MSRetreat2013Slides.pdf) - ROpenSci's blog post ["Reproducible research is still a challenge"](https://ropensci.org/blog/2014/06/09/reproducibility/) by R. FitzJohn, M. Pennell, A. Zanne, W. Cornwell, June 9, 2014, describes the experience of running an example analysis - Stodden (2014) ["What scientific idea is ready for retirement?"](https://www.edge.org/response-detail/25340) - StackOverflow question ["Why should I use version control?"](http://stackoverflow.com/questions/1408450/why-should-i-use-version-control) - Karl Broman's class ["Tools for Reproducible Research" resource page](http://kbroman.org/Tools4RR/pages/resources.html) and ["Why Reproducibility is Hard"](https://kbroman.wordpress.com/2015/09/09/reproducibility-is-hard/) - [CRAN's task view on Reproducible Research](https://cran.r-project.org/web/views/ReproducibleResearch.html) - Frank Harrell's [wiki on statistical reporting](http://biostat.mc.vanderbilt.edu/wiki/Main/StatReport) --- # References 1 Ball, R. and N. Medeiros (2012). "Teaching Integrity in Empirical Research: A Protocol for Documenting Data Management and Analysis". In: _The Journal of Economic Education_ 43.2, pp. 182-189. Buckheit, J. B. and D. L. Donoho (1995). _Wavelab and reproducible research_. Springer. Claerbout, J. and M. Karrenbach (1992). "Electronic documents give reproducible research a new meaning". In: _Proc. 62nd Ann. Int. Meeting of the Soc. of Exploration Geophysics_. , pp. 601-604. De Leeuw, J. (2001). "Reproducible research. the bottom line". In: _Department of Statistics, UCLA_. Gandrud, C. (2013). _Reproducible Research with R and R Studio_. CRC Press. Ioannidis, J. (2005). "Why most published research findings are false". In: _PLoS Med_ 2.8, p. e124. Ioannidis, J. P. (2014). "How to make more published research true". King, G. (1995). "Replication, replication". In: _PS: Political Science & Politics_ 28.03, pp. 444-452. Knuth, D. E. (1984). "Literate programming". In: _The Computer Journal_ 27.2, pp. 97-111. --- # References 2 Landis, S. C, S. G. Amara, K. Asadullah, et al. (2012). "A call for transparent reporting to optimize the predictive value of preclinical research". In: _Nature_ 490.7419, pp. 187-191. ISSN: 1476-4687. DOI: [10.1038/nature11556](https://doi.org/10.1038%2Fnature11556). URL: [http://dx.doi.org/10.1038/nature11556](http://dx.doi.org/10.1038/nature11556). Leek, J. T. and R. D. Peng (2015). "Opinion: Reproducible research can still be wrong: Adopting a prevention approach". In: _PNAS; Proceedings of the National Academy of Sciences_ 112.6, pp. 1645-1646. Peng, R. D. (2009). "Reproducible research and Biostatistics". In: _Biostatistics_ 10.3, pp. 405-408. Peng, R. D. (2011). "Reproducible research in computational science". In: _Science (New York, Ny)_ 334.6060, p. 1226. Ram, K. (2013). "Git can facilitate greater reproducibility and increased transparency in science." In: _Source code for biology and medicine_ 8.1, p. 7. Resnik, D. B, M. Morales, R. Landrum, et al. (2019). "Effect of impact factor and discipline on journal data sharing policies". In: _Accountability in Research_ 26.3, pp. 139-156. ISSN: 1545-5815. DOI: [10.1080/08989621.2019.1591277](https://doi.org/10.1080%2F08989621.2019.1591277). URL: [http://dx.doi.org/10.1080/08989621.2019.1591277](http://dx.doi.org/10.1080/08989621.2019.1591277). Sandve, G. K, A. Nekrutenko, J. Taylor, et al. (2013). "Ten simple rules for reproducible computational research". --- # References 3 Schwab, M, M. Karrenbach, and J. Claerbout (2000). "Making scientific computations reproducible". In: _Computing in Science & Engineering_ 2.6, pp. 61-67. Stodden, V, P. Guo, and Z. Ma (2013). "Toward reproducible computational research: an empirical analysis of data and code policy adoption by journals". In: _PloS one_ 8.6, p. e67111. Stodden, V, M. McNutt, D. H. Bailey, et al. (2016). "Enhancing reproducibility for computational methods". In: _Science_ 354.6317, pp. 1240-1241. ISSN: 1095-9203. DOI: [10.1126/science.aah6168](https://doi.org/10.1126%2Fscience.aah6168). URL: [http://dx.doi.org/10.1126/science.aah6168](http://dx.doi.org/10.1126/science.aah6168). Vasilevsky, N. A, J. Minnier, M. A. Haendel, et al. (2017). "Reproducible and reusable research: are journal data sharing policies meeting the mark?" In: _PeerJ_ 5, p. e3208. ISSN: 2167-8359. DOI: [10.7717/peerj.3208](https://doi.org/10.7717%2Fpeerj.3208). URL: [http://dx.doi.org/10.7717/peerj.3208](http://dx.doi.org/10.7717/peerj.3208). Wilkinson, M. D, M. Dumontier, I. J. Aalbersberg, et al. (2016). "The FAIR Guiding Principles for scientific data management and stewardship". In: _Scientific Data_ 3.1. ISSN: 2052-4463. DOI: [10.1038/sdata.2016.18](https://doi.org/10.1038%2Fsdata.2016.18). URL: [http://dx.doi.org/10.1038/sdata.2016.18](http://dx.doi.org/10.1038/sdata.2016.18). Wilson, G, D. Aruliah, C. T. Brown, et al. (2014). "Best practices for scientific computing". In: _PLoS Biol_ 12.1, p. e1001745. --- class: left # Thank you! ## Contact info: - Jessica Minnier<EMAIL_ADDRESS>## This workshop info: - Code for these slides are on github, with links to other talks and course materials: [jminnier/talks_etc](https://github.com/jminnier/talks_etc) - The `.Rmd` file that generated the slides is on [github](https://github.com/jminnier/talks_etc/blob/master/2020_05_Reproducibility_HIP/2020_05_reproducibility_hip.Rmd), though you need to download the whole [R project](https://github.com/jminnier/talks_etc/archive/master.zip) to knit the file. ## This presentation is made with Knitr + RStudio This is an R Markdown presentation. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>. This is a document written in plain text (.Rmd file) with text and R code embedded with the special syntax. Within RStudio when you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document.


This 'view' is nested 3 levels deep and also uses a different method to bind the input element to values in the controller from the upper level. This is in fact a simpler method as our ng-model references $scope.thirdLvl (the same scope from it's parents)


Arsene Wenger pinpoints Barcelona's problem as pressure builds on Ernesto Valverde
Barcelona are top of La Liga but have lost three times this season before Tuesday night's 0-0 draw with Slavia Prague in the Champions League
by Alex SmithArsene Wenger reckons Barcelona have lost their mojo as the pressure mounts on beleaguered manager Ernesto Valverde.
The Catalan giants are top of La Liga but have lost three games this season and suffered a goalless draw with Slavia Prague in the Champions League.
That stalemate came on the back of a shock 3-1 defeat to Levante in the league at the weekend, with defeats to Athletic Bilbao and Granada also coming in the campaign.
Valverde has been in charge of Barca since May 2017 after taking over from Luis Enrique but has been placed under pressure.
He has won the Spanish title in both his seasons, along with the Copa del Rey in 2018 and has an overall record of 134 matches in charge with 90 wins and just 15 defeats.
And former Arsenal boss Wenger thinks that Barca have "lost their charisma" and their style of play is too slow and individual in the final third.
Wenger told beIN Sports: "(Despite being) leaders of La Liga and their Champions League group... they are playing like a team in crisis, because the play is too slow, without dynamism, and very individualistic in the final metres.
"When they lose the ball they could concede a goal on the counter because they aren't closing down the space for the opponent."
" Barcelona are an interesting case because they have a history of brilliant collective team play and then they also had Leo Messi who made the difference. Today it seems they play expecting something from Messi.
"Before the music was beautiful, of a fantastic team waiting for Messi to appear. Today they have lost their charisma and you have to ask how much the last two Champions League failures have affected them.
"From outside it seems they've lost their charisma."


This assignment is all my own work. I did not copy or rewrite the code from any other source except the code given in the assignment.
I have used JQuery basic functions for binding the function event calls, hide, show.I have read the implementation and used the 'var group' syntax from the first reference link. I have read from the second link and used the syntax for line and path implementation and modified as per my logic.I used the third link to understand how the iteratation of data for multiple countries works. I have even used the lecture slides for line transition. For other code syntax, I have referred to the d3 documentation.Following are the links used.
For Stacked Bar chart
For line chart
For Multi line chart
Stack Bar chart data extraction
Tickformat
Jquery Bind function


{% extends "base.html" %} {% block title %}Page Not Found{% endblock %} {% block content %}
You seem to have wandered off the beaten path. Let's get you out of here.


My Portfolio
About
Portfolio
Contact
Contact
Name
Email address
We'll never share your email with anyone else.
Message
Submit


Find Your New Ride
In the News
Grand Opening November 19, 2018! Health goth seitan church-key wolf 8-bit tilde migas. You probably haven't heard of them pabst yuccie meditation snackwave. Succulents brunch ugh vegan tousled. Flannel af waistcoat, hammock kinfolk cardigan PBR&B marfa blue bottle. Health goth seitan church-key wolf 8-bit tilde migas. You probably haven't heard of them pabst yuccie meditation snackwave. Succulents brunch ugh vegan tousled. Flannel af waistcoat, hammock kinfolk cardigan PBR&B marfa blue bottle.
The K2: A new Bike
Released October 5, 2018
Released October 5, 2018 Cardigan yr cloud bread, venmo everyday carry mlkshk freegan wolf. Hot chicken sartorial keytar tote bag, salvia DIY activated charcoal four loko neutra waistcoat twee.

Health goth seitan church-key wolf 8-bit tilde migas. You probably haven't heard of them pabst yuccie meditation snackwave. Succulents brunch ugh vegan tousled. Flannel af waistcoat, hammock kinfolk cardigan PBR&B marfa blue bottle.


White on roll, cube action?
pips White=108 Black=155
(CorrectAnswer= 0/0, ErrorScore= 0)
No redouble Player Winning Chances: 69.07% (G:19.60% B:0.43%) Opponent Winning Chances: 30.93% (G: 5.59% B:0.18%) Redouble/Take Player Winning Chances: 69.21% (G:19.76% B:0.46%) Opponent Winning Chances: 30.79% (G: 5.55% B:0.17%) Cubeless Equities: No double=+0.524 Double=+1.058 Cubeful Equities No redouble: +0.823 (-0.013) Redouble/Take: +0.836 Redouble/Pass: +1.000 (+0.164) Best Cube action: Redouble / Take


My Involvement: Front-End Development, Back-End Development, Maintenance
Project Manager: Priscilla Beal-Leuch
Front-End/Back-End: Kyle Zielinsky
Back-End: Sabrina Shaner, Sam Benedict
Maintenance: Kyle Zielinksy, Nick Meloy, Chris Jezowicz, Matt Trout, Steven Boothe, Michael Legacy
This is an on-going project that started in 2011 with the redesign and rebuild of the Sensodyne sites. There is a base shell that is used for all new builds and new additions are being added on a regular basis and rolled out to all of the different markets. There are currently 42 Sensodyne sites for different countries and regions with several more in production. Many of these 42 sites have us maintain them and build new pieces for new product launches.
One of the newest additions to this site is the Ask a Dentist video FAQ tool as well as a brand-new responsive upgrade. This is a very large account and has a very large team upgrading and maintaining it. There are currently 7 different variations to choose from for the HTML5 homepage animation that feature several different products. It was built to use a asp.Net-based Content Management System for easy maintainence but pieces are added to the system on a regular basis.
Note: Use the "Country" drop-down in the upper-right corner to view localized sites


--- layout: post status: publish published: true title: Vista RC1 on Older Laptop author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 19 wordpress_url: http://winterdom.com/2006/09/vistarc1onolderlaptop date: '2006-09-08 06:50:31 +0000' date_gmt: '2006-09-08 06:50:31 +0000' categories: - Vista tags: [] comments: - id: 20 author: Scott Hanselman author_email<EMAIL_ADDRESS>author_url: '' date: '2006-09-08 11:17:34 +0000' date_gmt: '2006-09-08 11:17:34 +0000' content: | Have you tried adding a USB Drive and using the new ReadyBoost feature? It's supposed to speed everything with intermediate memory. - id: 21 author: Tomas Restrepo author_email<EMAIL_ADDRESS>author_url: http://www.winterdom.com/weblog/ date: '2006-09-08 16:42:00 +0000' date_gmt: '2006-09-08 16:42:00 +0000' content: | Actually, I hadn't tested it before! I tried it a bit using an empty 256MB drive I had laying around (don't have any bigger) and it did seem to become a little bit more responsive. We'll see how it goes... ---
While doing some work a couple of days ago I went though the installation of the Vista RC1 build on my older laptop, a Compaq Presario 2800 (yes, an old beast). Mostly it was click, click, wait a lot, so it didn't interrupt me at all.
My installation experience was far better than Scott's, though that might have been only because I did a clean install and not an upgrade (I never do an upgrade of windows; ever). The install went fine, and was faily painless; taking about 1 hour total.
That said, Vista is pretty much horrendous on this machine. It runs, but is very slow: lots of paging and disk activity going on. Also, since it has a very old Mobility Radeon 7500 chip, which pretty much has no graphics acceleration support on Vista (heck, it will BSOD just trying to run the Performance Rating thingie), the whole UI feels fairly sluggish. That said, it's good enough to play Mahjong, which I think might just be my favorite vista feature so far :-)
Perhaps I'll get some time on the weekend to try it on my main laptop and see if at least this time video works as it is supposed to.


WITNESS LIST Revenue & Public Education Funding, Select Committee February 21, 1997-10:00A HB 4 For: Johnston, Gary (himself) Against: Hill, Forest G. (The Gray Panthers of TX) Middleton, Richard (TX School Alliance) Suelts, Tom (TX Health Care Assoc.) On: Brooks, John C. (Northwest ISD) Collyer, David C. (Northwest ISD)