brendan_oconnor_ai brendan_oconnor_ai-2009 brendan_oconnor_ai-2009-132 knowledge-graph by maker-knowledge-mining
Source: html
Introduction: Seeing a long, lavish article about R in the NEW YORK TIMES (!) really freaks me out. replicate(100, c( "OMG OMG, R is now famous?!", "People used to make fun of me for learning R since Splus is SO OLD!", "I still hear stories that SAS can do crazy tricks that make me jealous. But not enough to attempt learning it." )[ floor(runif(1, min=1,max=4)) ] ) This blog has been a long-time supporter of this both brilliant and insanely quirky statistical programming environment. Here are some graphs I’ve made in the last year or two that have R code attached: Wisdom of small crowds Simpson’s paradox via mosaic plots Dolores Labs color wheel! ( code ) Political bias SVD evaluation Presidential poll aggregation OK, we didn’t post the code, but check out our N-body trolley graph ! Learning R is hard because there’s a zillion packages, and the official documentation is reference-oriented. I’ve never looked at any of the books much. I think you ca
sentIndex sentText sentNum sentScore
1 ", "People used to make fun of me for learning R since Splus is SO OLD! [sent-5, score-0.122]
2 ", "I still hear stories that SAS can do crazy tricks that make me jealous. [sent-6, score-0.17]
3 " )[ floor(runif(1, min=1,max=4)) ] ) This blog has been a long-time supporter of this both brilliant and insanely quirky statistical programming environment. [sent-8, score-0.185]
4 Here are some graphs I’ve made in the last year or two that have R code attached: Wisdom of small crowds Simpson’s paradox via mosaic plots Dolores Labs color wheel! [sent-9, score-0.445]
5 ( code ) Political bias SVD evaluation Presidential poll aggregation OK, we didn’t post the code, but check out our N-body trolley graph ! [sent-10, score-0.465]
6 Learning R is hard because there’s a zillion packages, and the official documentation is reference-oriented. [sent-11, score-0.382]
7 I think you can get very far with exactly two websites: Quick-R – the best introduction that’s organized by topic, not overly domain-specific, and not overly biased towards the author’s pet package. [sent-13, score-0.583]
8 org – searches the documentation, package listings, and most critically, the archives of the amazing user mailing list. [sent-16, score-0.461]
9 Searching those archives alone is far more useful than any half-assed attempt at documentation — it records the expertise and advice of hundreds of statisticians solving real problems over the last 10 years. [sent-17, score-1.31]
10 I’ve stumbled upon entire new areas of statistics just by reading the R-help archives. [sent-18, score-0.1]
11 There’s horrible repetition and inconsistencies even in the standard library. [sent-22, score-0.3]
12 You have to memorize a zillion incomprehensible 3-letter-acronyms when making a final draft plot. [sent-24, score-0.338]
13 R takes one problem — programmatic single-machine data analysis — and solves it well, using a nice Scheme-like language, plus an impressive user community to boot. [sent-26, score-0.231]
wordName wordTfidf (topN-words)
[('archives', 0.23), ('omg', 0.23), ('documentation', 0.229), ('attempt', 0.161), ('code', 0.154), ('zillion', 0.153), ('overly', 0.153), ('user', 0.131), ('problems', 0.131), ('check', 0.126), ('learning', 0.122), ('far', 0.101), ('inconsistencies', 0.1), ('solves', 0.1), ('advanced', 0.1), ('searching', 0.1), ('advice', 0.1), ('trolley', 0.1), ('mosaic', 0.1), ('horrible', 0.1), ('searches', 0.1), ('attached', 0.1), ('color', 0.1), ('critically', 0.1), ('insanely', 0.1), ('memorize', 0.1), ('neal', 0.1), ('repetition', 0.1), ('replicate', 0.1), ('stumbled', 0.1), ('ve', 0.099), ('solving', 0.091), ('paradox', 0.091), ('simpson', 0.091), ('wisdom', 0.091), ('svd', 0.091), ('statisticians', 0.091), ('graphics', 0.091), ('min', 0.091), ('organized', 0.091), ('records', 0.091), ('sas', 0.091), ('poll', 0.085), ('draft', 0.085), ('websites', 0.085), ('alone', 0.085), ('brilliant', 0.085), ('tricks', 0.085), ('introduction', 0.085), ('hear', 0.085)]
simIndex simValue blogId blogTitle
same-blog 1 1.0000005 132 brendan oconnor ai-2009-01-07-Love it and hate it, R has come of age
Introduction: Seeing a long, lavish article about R in the NEW YORK TIMES (!) really freaks me out. replicate(100, c( "OMG OMG, R is now famous?!", "People used to make fun of me for learning R since Splus is SO OLD!", "I still hear stories that SAS can do crazy tricks that make me jealous. But not enough to attempt learning it." )[ floor(runif(1, min=1,max=4)) ] ) This blog has been a long-time supporter of this both brilliant and insanely quirky statistical programming environment. Here are some graphs I’ve made in the last year or two that have R code attached: Wisdom of small crowds Simpson’s paradox via mosaic plots Dolores Labs color wheel! ( code ) Political bias SVD evaluation Presidential poll aggregation OK, we didn’t post the code, but check out our N-body trolley graph ! Learning R is hard because there’s a zillion packages, and the official documentation is reference-oriented. I’ve never looked at any of the books much. I think you ca
2 0.177077 97 brendan oconnor ai-2008-03-24-Quick-R, the only decent R documentation on the internet
Introduction: For R users or wannabes… I really love R, but it has horrid documentation and a steep learning curve. Recently I was introduced to Quick-R , a really excellent documentation site. I think it’s made the system dramatically more useful for me.
3 0.11922278 135 brendan oconnor ai-2009-02-23-Comparison of data analysis packages: R, Matlab, SciPy, Excel, SAS, SPSS, Stata
Introduction: Lukas and I were trying to write a succinct comparison of the most popular packages that are typically used for data analysis. I think most people choose one based on what people around them use or what they learn in school, so I’ve found it hard to find comparative information. I’m posting the table here in hopes of useful comments. Name Advantages Disadvantages Open source? Typical users R Library support; visualization Steep learning curve Yes Finance; Statistics Matlab Elegant matrix support; visualization Expensive; incomplete statistics support No Engineering SciPy/NumPy/Matplotlib Python (general-purpose programming language) Immature Yes Engineering Excel Easy; visual; flexible Large datasets No Business SAS Large datasets Expensive; outdated programming language No Business; Government Stata Easy statistical analysis No Science SPSS Like Stata but more ex
4 0.11537906 129 brendan oconnor ai-2008-12-03-Statistics vs. Machine Learning, fight!
Introduction: 10/1/09 update — well, it’s been nearly a year, and I should say not everything in this rant is totally true, and I certainly believe much less of it now. Current take: Statistics , not machine learning, is the real deal, but unfortunately suffers from bad marketing. On the other hand, to the extent that bad marketing includes misguided undergraduate curriculums, there’s plenty of room to improve for everyone. So it’s pretty clear by now that statistics and machine learning aren’t very different fields. I was recently pointed to a very amusing comparison by the excellent statistician — and machine learning expert — Robert Tibshiriani . Reproduced here: Glossary Machine learning Statistics network, graphs model weights parameters learning fitting generalization test set performance supervised learning regression/classiﬁcation unsupervised learning density estimation, clustering large grant = $1,000,000
5 0.099746175 148 brendan oconnor ai-2009-07-23-R questions on StackOverflow
Introduction: R is notoriously hard to learn, but there was just an effort [1] [2] to populate the programming question-and-answer website StackOverflow with content for the R language . Amusingly, one of the most useful intro questions is: How to search for “R” materials? Mike Driscoll (who organized an in-person conference event to get this bootstrapped) pointed out that in many ways StackOverflow is a nicer forum for help than a mailing list. (i.e. the impressive but hard-to-approach R-help .) It’s more organized, easier to browse, and repetition and wrong answers can get downvoted. (And more thoughts from John Cook .)
6 0.095351651 115 brendan oconnor ai-2008-10-08-Blog move has landed
7 0.086263396 107 brendan oconnor ai-2008-06-18-Turker classifiers and binary classification threshold calibration
10 0.082156204 153 brendan oconnor ai-2009-09-08-Patches to Rainbow, the old text classifier that won’t go away
11 0.080877088 117 brendan oconnor ai-2008-10-11-It is accurate to determine a blog’s bias by what it links to
12 0.076841421 203 brendan oconnor ai-2014-02-19-What the ACL-2014 review scores mean
13 0.076677613 154 brendan oconnor ai-2009-09-10-Don’t MAWK AWK – the fastest and most elegant big data munging language!
14 0.074322529 111 brendan oconnor ai-2008-08-16-A better Obama vs McCain poll aggregation
15 0.072895296 131 brendan oconnor ai-2008-12-27-Facebook sentiment mining predicts presidential polls
16 0.07166329 174 brendan oconnor ai-2011-09-19-End-to-end NLP packages
17 0.070563622 179 brendan oconnor ai-2012-02-02-Histograms — matplotlib vs. R
18 0.070228279 157 brendan oconnor ai-2009-12-31-List of probabilistic model mini-language toolkits
19 0.069982938 151 brendan oconnor ai-2009-08-12-Beautiful Data book chapter
20 0.069209047 191 brendan oconnor ai-2013-02-23-Wasserman on Stats vs ML, and previous comparisons
topicId topicWeight
[(0, -0.257), (1, -0.12), (2, -0.043), (3, -0.043), (4, -0.017), (5, 0.051), (6, 0.027), (7, 0.062), (8, 0.143), (9, 0.008), (10, -0.038), (11, -0.003), (12, -0.091), (13, -0.087), (14, 0.042), (15, -0.069), (16, 0.058), (17, 0.109), (18, 0.032), (19, 0.078), (20, -0.091), (21, -0.068), (22, 0.132), (23, -0.144), (24, 0.083), (25, -0.111), (26, -0.107), (27, 0.103), (28, 0.043), (29, -0.12), (30, 0.06), (31, -0.067), (32, 0.127), (33, -0.012), (34, 0.104), (35, -0.04), (36, -0.063), (37, -0.155), (38, -0.05), (39, 0.258), (40, -0.091), (41, -0.008), (42, 0.089), (43, -0.039), (44, 0.017), (45, 0.071), (46, 0.023), (47, -0.078), (48, 0.01), (49, -0.141)]
simIndex simValue blogId blogTitle
same-blog 1 0.98596662 132 brendan oconnor ai-2009-01-07-Love it and hate it, R has come of age
Introduction: Seeing a long, lavish article about R in the NEW YORK TIMES (!) really freaks me out. replicate(100, c( "OMG OMG, R is now famous?!", "People used to make fun of me for learning R since Splus is SO OLD!", "I still hear stories that SAS can do crazy tricks that make me jealous. But not enough to attempt learning it." )[ floor(runif(1, min=1,max=4)) ] ) This blog has been a long-time supporter of this both brilliant and insanely quirky statistical programming environment. Here are some graphs I’ve made in the last year or two that have R code attached: Wisdom of small crowds Simpson’s paradox via mosaic plots Dolores Labs color wheel! ( code ) Political bias SVD evaluation Presidential poll aggregation OK, we didn’t post the code, but check out our N-body trolley graph ! Learning R is hard because there’s a zillion packages, and the official documentation is reference-oriented. I’ve never looked at any of the books much. I think you ca
2 0.72658306 97 brendan oconnor ai-2008-03-24-Quick-R, the only decent R documentation on the internet
Introduction: For R users or wannabes… I really love R, but it has horrid documentation and a steep learning curve. Recently I was introduced to Quick-R , a really excellent documentation site. I think it’s made the system dramatically more useful for me.
Introduction: Lukas and I were trying to write a succinct comparison of the most popular packages that are typically used for data analysis. I think most people choose one based on what people around them use or what they learn in school, so I’ve found it hard to find comparative information. I’m posting the table here in hopes of useful comments. Name Advantages Disadvantages Open source? Typical users R Library support; visualization Steep learning curve Yes Finance; Statistics Matlab Elegant matrix support; visualization Expensive; incomplete statistics support No Engineering SciPy/NumPy/Matplotlib Python (general-purpose programming language) Immature Yes Engineering Excel Easy; visual; flexible Large datasets No Business SAS Large datasets Expensive; outdated programming language No Business; Government Stata Easy statistical analysis No Science SPSS Like Stata but more ex
Introduction: R has a fun built-in package, datasets : a whole bunch of easy-to-use, interesting tables of data. I found the famous UC Berkeley admissions data set, from a 1970′s study of whether sex discrimination existed in graduate admissions. It’s famous for illustrating a particular statistical paradox. Thanks to R’s awesome mosaic plots interface, we can see this really easily. UCBAdmissions is a three-dimensional table (like a matrix): Admit Status x Gender x Dept, with counts for each category as the matrix’s values. R’s default printing shows the basics just fine. Here’s the data for just the first of six departments: > UCBAdmissions , , Dept = A Gender Admit Male Female Admitted 512 89 Rejected 313 19 ... Overall, women have a lower admittance rate than men : > apply(UCBAdmissions,c(1,2),sum) Gender Admit M F Admitted 1198 557 Rejected 1493 1278 This is the phenomenon that prompted a laws
5 0.45308325 153 brendan oconnor ai-2009-09-08-Patches to Rainbow, the old text classifier that won’t go away
Introduction: I’ve been reading several somewhat recent finance papers ( Antweiler and Frank 2005 , Das and Chen 2007 ) that use Rainbow , the text classification software originally written by Andrew McCallum back in 1996. The last version is from 2002 and the homepage announces he isn’t really supporting it any more. However, as far as I can tell, it might still be the easiest-to-use text classifier package out there. You don’t have to program — just invoke commandline arguments — and it can accommodate reasonably sized datasets, does tokenization, stopword filtering, etc. for you, and has some useful feature selection and other options. Based on my limited usage, it seems well-implemented. If anyone knows of a better one I’d love to hear it. I once looked at, among other things, GATE and UIMA , and they seemed too hard to use if you wanted to download something that did simple text classification; or else, maybe they didn’t have documentation on how to use them in that manner. R
6 0.43965119 107 brendan oconnor ai-2008-06-18-Turker classifiers and binary classification threshold calibration
7 0.4297978 147 brendan oconnor ai-2009-07-22-FFT: Friedman + Fortran + Tricks
8 0.40749705 154 brendan oconnor ai-2009-09-10-Don’t MAWK AWK – the fastest and most elegant big data munging language!
9 0.39926332 111 brendan oconnor ai-2008-08-16-A better Obama vs McCain poll aggregation
10 0.39274383 172 brendan oconnor ai-2011-06-26-Good linguistic semantics textbook?
11 0.39123532 139 brendan oconnor ai-2009-04-22-Performance comparison: key-value stores for language model counts
12 0.37188062 117 brendan oconnor ai-2008-10-11-It is accurate to determine a blog’s bias by what it links to
13 0.3623355 86 brendan oconnor ai-2007-12-20-Data-driven charity
14 0.35307589 90 brendan oconnor ai-2008-01-20-Moral psychology on Amazon Mechanical Turk
15 0.34581253 179 brendan oconnor ai-2012-02-02-Histograms — matplotlib vs. R
16 0.34294942 204 brendan oconnor ai-2014-04-26-Replot: departure delays vs flight time speed-up
17 0.33032563 140 brendan oconnor ai-2009-05-18-Announcing TweetMotif for summarizing twitter topics
18 0.32626995 203 brendan oconnor ai-2014-02-19-What the ACL-2014 review scores mean
19 0.31875521 103 brendan oconnor ai-2008-05-19-conplot – a console plotter
20 0.31174949 131 brendan oconnor ai-2008-12-27-Facebook sentiment mining predicts presidential polls
topicId topicWeight
[(16, 0.063), (22, 0.467), (24, 0.042), (44, 0.135), (55, 0.04), (70, 0.015), (74, 0.13), (96, 0.014)]
simIndex simValue blogId blogTitle
1 0.9746744 78 brendan oconnor ai-2007-09-26-EEG for the Wii and in your basement
Introduction: There’s a company, Emotiv , that’s building an EEG interface for the game systems. Any company with a science-fiction-y vision statement sounds like a good time to me: Communication between man and machine has always been limited to conscious interaction, with non-conscious communication — expression, intuition, perception — reserved solely for the human realm. At Emotiv, we believe that future communication between man and machine will not only be limited to the conscious communication that exists today, but non-conscious communication will play a significant part. Our mission is to create the ultimate interface for the next-generation of man-machine interaction, by evolving the interaction between human beings and electronic devices beyond the limits of conscious interface. Emotiv is creating technologies that allow machines to take both conscious and non-conscious inputs directly from your mind. They even have a cyborg-looking woman on the page. Their claim is to det
same-blog 2 0.94540244 132 brendan oconnor ai-2009-01-07-Love it and hate it, R has come of age
Introduction: Seeing a long, lavish article about R in the NEW YORK TIMES (!) really freaks me out. replicate(100, c( "OMG OMG, R is now famous?!", "People used to make fun of me for learning R since Splus is SO OLD!", "I still hear stories that SAS can do crazy tricks that make me jealous. But not enough to attempt learning it." )[ floor(runif(1, min=1,max=4)) ] ) This blog has been a long-time supporter of this both brilliant and insanely quirky statistical programming environment. Here are some graphs I’ve made in the last year or two that have R code attached: Wisdom of small crowds Simpson’s paradox via mosaic plots Dolores Labs color wheel! ( code ) Political bias SVD evaluation Presidential poll aggregation OK, we didn’t post the code, but check out our N-body trolley graph ! Learning R is hard because there’s a zillion packages, and the official documentation is reference-oriented. I’ve never looked at any of the books much. I think you ca
3 0.87861151 156 brendan oconnor ai-2009-09-26-Seeing how “art” and “pharmaceuticals” are linguistically similar in web text
Introduction: Earlier this week I asked the question, How are “art” and “pharmaceuticals” similar? People sent me lots of submissions! Some are great, some are a bit of a stretch. Overpriced by an order of magnitude. The letters of “art” are found embedded, in order, in “pharmaceuticals”. Search keywords that cost the most to advertise on? “Wyeth”: I think this means this , and this . “Romeo and Juliet” famously includes both “art” (wherefore art thou) and pharmaceuticals (poison!) Some art has been created out of pharmaceuticals. Some art has been created under the influence of pharmaceuticals. I was asking because I was playing around with a dataset of 100,000 noun phrases’ appearances on the web, from the Reading the Web project at CMU. That is, for a noun like “art”, this data has a large list of phrases in which the word “art” is used, across some 200 million web pages. For two noun concepts, we can see what they have in common and what’s different by looking at
4 0.45577323 2 brendan oconnor ai-2004-11-24-addiction & 2 problems of economics
Introduction: This is my idea based off of Bernheim and Rangel’s model of addict decision-making . It’s a really neat model; it manages to relax rationality to allow someone to do something they don’t want to do because they’re addicted to it. [Rationality assumes a nice well-ordered set of preferences; this model hypothesizes as distinction between emotional "liking" and cognitive, forward "wanting" that can conflict.] The model is mathematically tractable, it can be used for public welfare analysis, and to top it off — it’s got neuroscientific grounding! It appears to me there are two big criticisms of the economics discipline’s assumptions. One of course is rationality. The second has to do with the perfect structure of the market and environment that shapes both preferences and the ability to exercise them. One critique is about social structure: consumers are not atomistic individual units, but rather exchange information and ideas along networks of patterned social relations. (Socia
5 0.42841128 184 brendan oconnor ai-2012-07-04-The $60,000 cat: deep belief networks make less sense for language than vision
Introduction: There was an interesting ICML paper this year about very large-scale training of deep belief networks (a.k.a. neural networks) for unsupervised concept extraction from images. They ( Quoc V. Le and colleagues at Google/Stanford) have a cute example of learning very high-level features that are evoked by images of cats (from YouTube still-image training data); one is shown below. For those of us who work on machine learning and text, the question always comes up, why not DBN’s for language? Many shallow latent-space text models have been quite successful (LSI, LDA, HMM, LPCFG…); there is hope that some sort of “deeper” concepts could be learned. I think this is one of the most interesting areas for unsupervised language modeling right now. But note it’s a bad idea to directly analogize results from image analysis to language analysis. The problems have radically different levels of conceptual abstraction baked-in. Consider the problem of detecting the concept of a cat; i.e.
6 0.42621514 129 brendan oconnor ai-2008-12-03-Statistics vs. Machine Learning, fight!
7 0.41027457 176 brendan oconnor ai-2011-10-05-Be careful with dictionary-based text analysis
8 0.39200592 154 brendan oconnor ai-2009-09-10-Don’t MAWK AWK – the fastest and most elegant big data munging language!
10 0.38798052 140 brendan oconnor ai-2009-05-18-Announcing TweetMotif for summarizing twitter topics
11 0.37650549 188 brendan oconnor ai-2012-10-02-Powerset’s natural language search system
12 0.36454973 86 brendan oconnor ai-2007-12-20-Data-driven charity
13 0.35098064 198 brendan oconnor ai-2013-08-20-Some analysis of tweet shares and “predicting” election outcomes
14 0.34731695 135 brendan oconnor ai-2009-02-23-Comparison of data analysis packages: R, Matlab, SciPy, Excel, SAS, SPSS, Stata
16 0.34117785 139 brendan oconnor ai-2009-04-22-Performance comparison: key-value stores for language model counts
17 0.33572948 158 brendan oconnor ai-2010-03-31-How Facebook privacy failed me
18 0.33565462 131 brendan oconnor ai-2008-12-27-Facebook sentiment mining predicts presidential polls
19 0.33439568 138 brendan oconnor ai-2009-04-17-1 billion web page dataset from CMU


{% raw %}{% extends "base.html" %}{% endraw %} {% raw %}{% load static i18n %}{% endraw %} {% raw %}{% block title %}{% trans "Home" %}{% endblock %}{% endraw %} {% raw %}{% block content %}{% endraw %}
This might be the next unicorn. What are you waiting for? Start by editing this page at templates/pages/home.html
.
Initial setup is easy. All of the things you need are already there. Add your logo and a couple of other things.
You probably need to add your own code for people to actually subscribe to this product.
Deploying to production is easy, too. Use the production addon to get a rock solid foundation.
There are a couple of design elements you can use to your liking. Just scroll down to get an idea on what you can use to build up your landing page.
Some Street
The Arctic Ocean freezes every winter and much of the sea-ice then thaws every summer, and that process will continue whatever happens.
The Arctic Ocean freezes every winter and much of the sea-ice then thaws every summer, and that process will continue whatever happens.
The Arctic Ocean freezes every winter and much of the sea-ice then thaws every summer, and that process will continue whatever happens.
The Arctic Ocean freezes every winter and much of the sea-ice then thaws every summer, and that process will continue whatever happens.
A beautiful headline for impactful websitesThe Arctic Ocean freezes every winter and much of the sea-ice then thaws every summer, and that process will continue whatever.
The Arctic Ocean freezes every winter and much of the sea-ice then thaws every summer, and that process will continue whatever.
Learn moreThe Arctic Ocean freezes every winter and much of the sea-ice then thaws every summer, and that process will continue whatever.
Learn moreAccording to the National Oceanic and Atmospheric Administration, Ted, Scambos, NSIDClead scentist, puts the potentially record maximum.
I will be the leader of a company that ends up being worth billions of dollars, because I got the answers. I understand culture.
According to the National Oceanic and Atmospheric Administration, Ted, Scambos, NSIDClead scentist, puts the potentially record low maximum sea ice extent tihs year down to low ice.
Some quick example text to build on the card title and make up the bulk of the card's content.
Some quick example text to build on the card title and make up the bulk of the card's content.
Some quick example text to build on the card title and make up the bulk of the card's content.
Cause if you do, you are the greatest. Just check out below how many awesome companies are using our product!


Weight Converter
Weight in KG:
Weight in Grams:
Pounds:
MilliGram:
US Ton:
Ounces:
Note: You can press reset button for another conversion


JavaScript is disabled on your browser.
Skip navigation links
Package
Class
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
C
D
E
G
H
I
J
M
N
P
R
S
T
W
C
Card
- Class in
<Unnamed>
This class creates new cards template1 and helps to manipulate between different cards.
Card(int)
- Constructor for class
Card
This is an overloaded constructor for card as an array object.
Card(char, int)
- Constructor for class
Card
This is the main card constructor that provides each and every card its own respective type and number.
card1
- Variable in class
RandomCardGenerator
card2
- Variable in class
RandomCardGenerator
card3
- Variable in class
RandomCardGenerator
card4
- Variable in class
RandomCardGenerator
card5
- Variable in class
RandomCardGenerator
card6
- Variable in class
RandomCardGenerator
CardGenerator()
- Method in class
RandomCardGenerator
cardNum1
- Variable in class
RandomCardGenerator
cardNum2
- Variable in class
RandomCardGenerator
cardNum3
- Variable in class
RandomCardGenerator
cardNum4
- Variable in class
RandomCardGenerator
cardNum5
- Variable in class
RandomCardGenerator
cardNum6
- Variable in class
RandomCardGenerator
cardNumber
- Variable in class
RandomCardGenerator
cardType
- Variable in class
RandomCardGenerator
cardType1
- Variable in class
RandomCardGenerator
cardType2
- Variable in class
RandomCardGenerator
cardType3
- Variable in class
RandomCardGenerator
cardType4
- Variable in class
RandomCardGenerator
cardType5
- Variable in class
RandomCardGenerator
cardType6
- Variable in class
RandomCardGenerator
check()
- Method in class
GameLogic
checkWin(Card[], Card[])
- Method in class
Card
This is the method that checks if which among the 2 players have won ,this method is used in a loop to check the winner among all players .
clubs
- Variable in class
RandomCardGenerator
A
C
D
E
G
H
I
J
M
N
P
R
S
T
W
Skip navigation links
Package
Class
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


Last updated: 2019-08-08
Checks: 7 0
Knit directory: scRNA-seq-workshop-Fall-2019/
This reproducible R Markdown analysis was created with workflowr (version 1.4.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20190718)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility. The version displayed above was the version of the Git repository at the time these results were generated.
Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .DS_Store
Ignored: .Rhistory
Ignored: .Rproj.user/
Untracked files:
Untracked: data/pbmc10k/
Untracked: data/pbmc5k/
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
These are the previous versions of the R Markdown and HTML files. If you’ve configured a remote Git repository (see ?wflow_git_remote
), click on the hyperlinks in the table below to view them.
| File | Version | Author | Date | Message |
|---|---|---|---|---|
| Rmd | 0cf484c | Ming Tang | 2019-08-08 | wflow_publish(c(“analysis/scRNAseq_workshop_0.Rmd”, “analysis/scRNAseq_workshop_1.Rmd”, |
| html | b27f0e8 | Ming Tang | 2019-07-30 | Build site. |
| html | ac73193 | Ming Tang | 2019-07-30 | Build site. |
| html | 2388094 | Ming Tang | 2019-07-30 | Build site. |
| html | 89422b2 | Ming Tang | 2019-07-25 | Build site. |
| Rmd | bb12433 | Ming Tang | 2019-07-25 | wflow_publish(c(“analysis/index.Rmd”, “analysis/scRNAseq_workshop_1.Rmd”, |
| html | 8f4aa25 | Ming Tang | 2019-07-23 | Build site. |
| Rmd | 5821efd | Ming Tang | 2019-07-23 | wflow_publish(c(“analysis/scRNAseq_workshop_1.Rmd”, “analysis/scRNAseq_workshop_2.Rmd”)) |
| html | 7bf52d9 | Ming Tang | 2019-07-23 | Build site. |
| Rmd | 2095d3e | Ming Tang | 2019-07-23 | Publish the initial files for myproject |
In this tutorial, we are going to mainly use Seurat package with publicly available datasets. Extensive tutorials with various contexts can be found in https://satijalab.org/seurat/.
Here, in the first part, we are going to analyze a single cell RNAseq dataset product by 10X Genomics and processed through Cell Ranger(TM) pipeline, which generates barcode count matrices.
We will download the public 5k pbmc (Peripheral blood mononuclear cell) dataset from 10x genomics.
go to the Terminal
tab in your Rstudio.
cd data
mkdir pbmc5k
cd pbmc5k
wget http://cf.10xgenomics.com/samples/cell-exp/3.0.2/5k_pbmc_v3/5k_pbmc_v3_filtered_feature_bc_matrix.tar.gz
tar xvzf 5k_pbmc_v3_filtered_feature_bc_matrix.tar.gz
# remove the .gz to save space
rm 5k_pbmc_v3_filtered_feature_bc_matrix.tar.gz
now, switch back to R and install the packages we are going to use in this workshop.
install.packages("tidyverse")
install.packages("rmarkdown")
install.packages('Seurat')
load the library
library(tidyverse)
library(Seurat)
# Load the PBMC dataset
pbmc.data <- Read10X(data.dir = "data/pbmc5k/filtered_feature_bc_matrix/")
# Initialize the Seurat object with the raw (non-normalized data).
pbmc <- CreateSeuratObject(counts = pbmc.data, project = "pbmc5k", min.cells = 3, min.features = 200)
pbmc
An object of class Seurat
18791 features across 4962 samples within 1 assay
Active assay: RNA (18791 features)
## getting help
?CreateSeuratObject
if you want to know more details of the Seurat
object, you can learn at https://github.com/satijalab/seurat/wiki
Also check https://satijalab.org/seurat/essential_commands.html for all the commands you can use to interact with Seurat objects.
# Lets examine a few genes in the first thirty cells
pbmc.data[c("CD3D", "TCL1A", "MS4A1"), 1:30]
3 x 30 sparse Matrix of class "dgCMatrix"
[[ suppressing 30 column names 'AAACCCAAGCGTATGG', 'AAACCCAGTCCTACAA', 'AAACCCATCACCTCAC' ... ]]
CD3D . . . . 7 . . 16 8 . 12 . . 6 3 6 11 . 3 3 . 6 4 . 1 .  1 .
MS4A1 . . . 6 . . . . . . 1 .  8 . . . . . 3 6 . .
The .
values in the matrix represent 0s (no molecules detected). Since most values in an scRNA-seq matrix are 0, Seurat uses a sparse-matrix representation whenever possible. This results in significant memory and speed savings for Drop-seq/inDrop/10x data.
## check at metadata
<EMAIL_ADDRESS>orig.ident nCount_RNA nFeature_RNA
AAACCCAAGCGTATGG pbmc5k 13536 3502
AAACCCAGTCCTACAA pbmc5k 12667 3380
AAACCCATCACCTCAC pbmc5k 962 346
AAACGCTAGGGCATGT pbmc5k 5788 1799
AAACGCTGTAGGTACG pbmc5k 13185 2886
AAACGCTGTGTCCGGT pbmc5k 15495 3801
# The [[ operator can add columns to object metadata. This is a great place to stash QC stats
pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-")
<EMAIL_ADDRESS>%>% head()
orig.ident nCount_RNA nFeature_RNA percent.mt
AAACCCAAGCGTATGG pbmc5k 13536 3502 10.675236
AAACCCAGTCCTACAA pbmc5k 12667 3380 5.620905
AAACCCATCACCTCAC pbmc5k 962 346 53.118503
AAACGCTAGGGCATGT pbmc5k 5788 1799 10.608155
AAACGCTGTAGGTACG pbmc5k 13185 2886 7.819492
AAACGCTGTGTCCGGT pbmc5k 15495 3801 7.460471
# Visualize QC metrics as a violin plot
VlnPlot(pbmc, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
we set the cutoff based on the visualization above. The cutoff is quite subjective.
pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 5000 & percent.mt < 25)
By default, we employ a global-scaling normalization method “LogNormalize” that normalizes the feature expression measurements for each cell by the total expression, multiplies this by a scale factor (10,000 by default), and log-transforms the result. Normalized values are stored in pbmc[["RNA"]]@data
.
Now, Seurat has a new normalization method called SCTransform
. Check out the tutorial here.
pbmc <- NormalizeData(pbmc, normalization.method = "LogNormalize", scale.factor = 10000)
pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000)
# Identify the 10 most highly variable genes
top10 <- head(VariableFeatures(pbmc), 10)
# plot variable features with and without labels
plot1 <- VariableFeaturePlot(pbmc)
plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
When using repel, set xnudge and ynudge to 0 for optimal results
CombinePlots(plots = list(plot1, plot2), ncol =1)
Next, we apply a linear transformation (‘scaling’) that is a standard pre-processing step prior to dimensional reduction techniques like PCA. The ScaleData function:
Think it as standardize the data. center the mean to 0 and variance to 1. ?scale
This step gives equal weight in downstream analyses, so that highly-expressed genes do not dominate * The results of this are stored in<EMAIL_ADDRESS>library(stats)
x <- matrix(1:15, ncol = 3)
x
[,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15
## scale works in a column-wise fashion
centered.x <- scale(x, scale = FALSE)
centered.x
[,1] [,2] [,3]
[1,] -2 -2 -2
[2,] -1 -1 -1
[3,] 0 0 0
[4,] 1 1 1
[5,] 2 2 2
attr(,"scaled:center")
[1] 3 8 13
## variance is 1
centered.scaled.x <- scale(x)
cov(centered.scaled.x)
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 1 1 1
apply it to the single-cell count matrix
all.genes <- rownames(pbmc)
pbmc <- ScaleData(pbmc, features = all.genes)
Centering and scaling data matrix
This can take long for large dataset.
Let’s check the data matrix before and after scaling.
# raw counts, same as pbmc@assays$RNA@counts[1:6, 1:6]
pbmc[["RNA"]]@counts[1:6, 1:6]
6 x 6 sparse Matrix of class "dgCMatrix"
AAACCCAAGCGTATGG AAACCCAGTCCTACAA AAACGCTAGGGCATGT
AL627309.1 . . .
AL627309.3 . . .
AL669831.5 1 . 1
FAM87B . . .
LINC00115 . . .
FAM41C . . .
AAACGCTGTAGGTACG AAACGCTGTGTCCGGT AAACGCTGTGTGATGG
AL627309.1 . . .
AL627309.3 . . .
AL669831.5 . 1 .
FAM87B . . .
LINC00115 . . .
FAM41C . . .
# library size normalized and log transformed data
pbmc[["RNA"]]@data[1:6, 1:6]
6 x 6 sparse Matrix of class "dgCMatrix"
AAACCCAAGCGTATGG AAACCCAGTCCTACAA AAACGCTAGGGCATGT
AL627309.1 . . .
AL627309.3 . . .
AL669831.5 0.5531784 . 1.003463
FAM87B . . .
LINC00115 . . .
FAM41C . . .
AAACGCTGTAGGTACG AAACGCTGTGTCCGGT AAACGCTGTGTGATGG
AL627309.1 . . .
AL627309.3 . . .
AL669831.5 . 0.497965 .
FAM87B . . .
LINC00115 . . .
FAM41C . . .
# scaled data
pbmc[["RNA"]]@scale.data[1:6, 1:6]
AAACCCAAGCGTATGG AAACCCAGTCCTACAA AAACGCTAGGGCATGT
AL627309.1 -0.09340896 -0.09340896 -0.09340896
AL627309.3 -0.02057466 -0.02057466 -0.02057466
AL669831.5 2.15746090 -0.28992330 4.14962192
FAM87B -0.04240619 -0.04240619 -0.04240619
LINC00115 -0.21936495 -0.21936495 -0.21936495
FAM41C -0.18753443 -0.18753443 -0.18753443
AAACGCTGTAGGTACG AAACGCTGTGTCCGGT AAACGCTGTGTGATGG
AL627309.1 -0.09340896 -0.09340896 -0.09340896
AL627309.3 -0.02057466 -0.02057466 -0.02057466
AL669831.5 -0.28992330 1.91318454 -0.28992330
FAM87B -0.04240619 -0.04240619 -0.04240619
LINC00115 -0.21936495 -0.21936495 -0.21936495
FAM41C -0.18753443 -0.18753443 -0.18753443
Scaling is an essential step in the Seurat workflow, but only on genes that will be used as input to PCA. Therefore, the default in ScaleData is only to perform scaling on the previously identified variable features (2,000 by default). To do this, omit the features argument in the previous function call
pbmc <- ScaleData(pbmc, vars.to.regress = "percent.mt")
Regressing out percent.mt
Centering and scaling data matrix
pbmc[["RNA"]]@scale.data[1:6, 1:6]
AAACCCAAGCGTATGG AAACCCAGTCCTACAA AAACGCTAGGGCATGT
HES4 -0.2240073 -0.2669980 -0.2245779
ISG15 -0.8049725 -0.8742362 -0.8058917
TNFRSF18 -0.2681255 -0.1699170 -0.2668221
TNFRSF4 -0.2792813 -0.2248457 -0.2785588
MMP23B -0.2296682 -0.1520793 -0.2286385
NADK 2.0405297 0.6329116 -0.5408565
AAACGCTGTAGGTACG AAACGCTGTGTCCGGT AAACGCTGTGTGATGG
HES4 -0.24829747 -0.25135120 -0.2301381
ISG15 0.04326699 -0.06614065 1.4610979
TNFRSF18 -0.21263681 -0.20566084 -0.2541204
TNFRSF4 -0.24852465 -0.24465796 -0.2715184
MMP23B -0.18582978 -0.18031847 6.5839823
NADK -0.60309138 -0.61110368 1.5771045
<EMAIL_ADDRESS>[1] 2000 4595
## raw counts and log transformed matrix
dim(pbmc[["RNA"]]@counts)
[1] 18791 4595
dim(pbmc[["RNA"]]@data)
[1] 18791 4595
Principle component analysis (PCA) is a linear dimension reduction technology.
Highly recommend this 5 min video on PCA by StatQuest https://www.youtube.com/watch?v=HMOI_lkzW08 and two longer versions by the same person:
https://www.youtube.com/watch?v=_UVHneBUBW0
https://www.youtube.com/watch?v=FgakZw6K1QQ&t=674s
some blog posts I wrote on PCA:
pbmc <- RunPCA(pbmc, features = VariableFeatures(object = pbmc), verbose = FALSE)
p1<- DimPlot(pbmc, reduction = "pca")
p1
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
replicate the PCA plot ourselves by ggplot2. All the dimension reduction object (DimReduct
) are saved in reductions
slot.
# e.g.
pbmc@reductions$pca
A dimensional reduction object with key PC_
Number of dimensions: 50
Projected dimensional reduction calculated: FALSE
Jackstraw run: FALSE
Computed using assay: RNA
#the same as
pbmc[["pca"]]
A dimensional reduction object with key PC_
Number of dimensions: 50
Projected dimensional reduction calculated: FALSE
Jackstraw run: FALSE
Computed using assay: RNA
## methods that work with the DimReduct object
utils::methods(class = 'DimReduc')
[1] [ [[ Cells DefaultAssay
[5] DefaultAssay<- dim dimnames Embeddings
[9] JS JS<- Key Key<-
[13] length Loadings Loadings<- names
[17] print RenameCells RunTSNE ScoreJackStraw
[21] show Stdev subset
see '?methods' for accessing help and source code
# the same as pbmc<EMAIL_ADDRESS># the same as<EMAIL_ADDRESS>Embeddings(pbmc, reduction = "pca") %>% head()
PC_1 PC_2 PC_3 PC_4 PC_5
AAACCCAAGCGTATGG -31.749686 0.3206036 3.2316902 1.4827653 -1.7225612
AAACCCAGTCCTACAA -27.908666 -0.6308573 -0.6949682 0.0113625 0.9581979
AAACGCTAGGGCATGT 4.870671 -20.1894017 -4.7668820 2.4256455 -3.7741203
AAACGCTGTAGGTACG 11.284050 0.9103995 6.7491967 1.1663610 1.4181460
AAACGCTGTGTCCGGT -30.223838 0.6442844 0.6588781 0.1748505 0.7408780
AAACGCTGTGTGATGG 4.534149 14.6942792 -23.1932001 1.1324433 -3.1784629
PC_6 PC_7 PC_8 PC_9 PC_10
AAACCCAAGCGTATGG -7.1866345 -0.1867499 0.4895503 -1.0006664 -0.3164823
AAACCCAGTCCTACAA 4.0870951 1.7671871 0.6306350 -1.2547806 0.2369933
AAACGCTAGGGCATGT 0.8191033 2.2543990 -2.5586787 0.3368964 -4.3477827
AAACGCTGTAGGTACG 0.2487368 -0.5382114 2.1719260 -2.6107720 -0.1532170
AAACGCTGTGTCCGGT 0.3340276 3.7774882 3.7079025 1.5477937 -0.9396352
AAACGCTGTGTGATGG -2.8402285 -6.6551671 6.0846685 -0.1622600 -1.4871283
PC_11 PC_12 PC_13 PC_14 PC_15
AAACCCAAGCGTATGG -2.1493213 4.96183470 0.08345166 0.03259621 1.8707355
AAACCCAGTCCTACAA -0.8504207 -7.86946696 4.40407254 1.11051682 0.8346257
AAACGCTAGGGCATGT -3.2665381 0.02841664 2.30566753 0.08737054 0.6239217
AAACGCTGTAGGTACG -2.5508150 -1.22586296 1.42497983 1.04336412 1.0285061
AAACGCTGTGTCCGGT 0.1429822 -1.03932058 1.34592056 2.49038139 -3.8596368
AAACGCTGTGTGATGG -0.6984480 2.19378584 8.13208735 -5.58531619 -1.5305344
PC_16 PC_17 PC_18 PC_19 PC_20
AAACCCAAGCGTATGG -3.3349121 -4.8736727 0.4050456 -3.27418950 0.4253961
AAACCCAGTCCTACAA 1.2316544 -1.6176927 -0.4979777 -0.95399649 -0.1487146
AAACGCTAGGGCATGT 1.2750432 -0.3143667 -0.2387007 0.44034095 0.1070249
AAACGCTGTAGGTACG -0.4942870 0.7227728 2.6200439 -0.08299444 1.1609031
AAACGCTGTGTCCGGT 0.1689827 -4.1873678 1.3026329 -3.34110228 -1.6543379
AAACGCTGTGTGATGG -2.1043566 1.7191834 3.5031758 -3.46892800 -0.4835799
PC_21 PC_22 PC_23 PC_24 PC_25
AAACCCAAGCGTATGG 0.38826054 -0.3388280 -0.3102357 0.9225296 1.1493121
AAACCCAGTCCTACAA -2.18038292 -0.1142006 0.4071930 -2.0467116 -0.5891186
AAACGCTAGGGCATGT -0.04228991 -0.1907637 -0.7797804 -0.6903384 -0.9518594
AAACGCTGTAGGTACG -0.10282751 -0.6989734 1.0428906 -0.4114054 0.3179832
AAACGCTGTGTCCGGT 2.29995811 0.1878039 -1.1157439 0.3539011 0.6983157
AAACGCTGTGTGATGG -1.33740175 4.6367785 2.2547311 -2.3806864 2.6768123
PC_26 PC_27 PC_28 PC_29 PC_30
AAACCCAAGCGTATGG -0.4425588 0.890669 0.5351597 3.4978863 0.4321732
AAACCCAGTCCTACAA -0.6206207 0.359402 1.6197689 -0.1211780 1.1727331
AAACGCTAGGGCATGT -0.7771488 1.069164 -1.1476447 0.6790176 -3.6754527
AAACGCTGTAGGTACG -0.4084921 2.529226 -0.2994368 0.7076177 0.2165411
AAACGCTGTGTCCGGT -0.4387852 1.078763 -0.6951068 -0.5594053 0.1534528
AAACGCTGTGTGATGG -0.1878793 -2.729595 -0.1927358 3.0574628 0.3569375
PC_31 PC_32 PC_33 PC_34 PC_35
AAACCCAAGCGTATGG 2.3599874 -0.7960682 -0.1130762 -0.7351672 1.5970824
AAACCCAGTCCTACAA -0.9501188 -1.0153775 3.2736110 -1.1229799 0.8342103
AAACGCTAGGGCATGT -5.0701162 0.7809748 -0.6555875 2.2242139 -2.5146564
AAACGCTGTAGGTACG 0.4291666 -1.1757092 -0.3580585 -2.9761781 0.5126442
AAACGCTGTGTCCGGT 2.6041436 0.7491606 -1.9289241 0.5012251 -0.9122437
AAACGCTGTGTGATGG 0.4450735 0.3828157 -2.7881259 0.8745306 -3.4854203
PC_36 PC_37 PC_38 PC_39 PC_40
AAACCCAAGCGTATGG -0.31048972 -0.16548588 -0.9157047 1.9625766 0.6139102
AAACCCAGTCCTACAA -0.05712522 -0.28466122 0.8316528 -0.1601389 -2.6650656
AAACGCTAGGGCATGT 2.42056818 -0.03451399 -1.1460427 0.7833359 1.0263942
AAACGCTGTAGGTACG 1.57055203 0.36080882 0.2593557 -1.9434860 0.6268397
AAACGCTGTGTCCGGT -0.68994548 -1.00970824 0.1498123 0.6736817 -0.3685838
AAACGCTGTGTGATGG -1.13799138 0.21677362 0.7602060 0.4963482 0.8885865
PC_41 PC_42 PC_43 PC_44 PC_45
AAACCCAAGCGTATGG 2.2924768 -0.2957856 3.0658281 -1.04838959 4.2313103
AAACCCAGTCCTACAA -2.6461173 -2.5570040 -0.6854854 0.83321424 -2.5032691
AAACGCTAGGGCATGT -1.1891535 3.0783306 0.8626610 -0.05894781 -0.3569243
AAACGCTGTAGGTACG -0.9844561 0.3379814 1.2725794 0.88184031 -1.1407465
AAACGCTGTGTCCGGT -1.8434911 0.6358968 1.8239590 0.16793147 1.9540159
AAACGCTGTGTGATGG 0.2104292 -1.5236830 1.0845757 0.18224377 -0.5292818
PC_46 PC_47 PC_48 PC_49 PC_50
AAACCCAAGCGTATGG 0.8286060 0.4110526 -0.2684463 0.4881312 1.1611914
AAACCCAGTCCTACAA 4.0798398 0.7602264 -0.8053542 -2.2931836 -0.4184246
AAACGCTAGGGCATGT 0.6105477 -0.7581442 0.9540361 -1.7912117 0.6176227
AAACGCTGTAGGTACG 0.1363981 0.1479181 0.4921191 0.1698165 -1.2546990
AAACGCTGTGTCCGGT -1.3998959 0.1247547 -0.9317956 1.7330908 2.2860100
AAACGCTGTGTGATGG 1.5306216 -0.2381258 -0.8683929 0.1394903 1.8223171
p2<- Embeddings(pbmc, reduction = "pca") %>%
as.data.frame()%>%
ggplot(aes(x = PC_1, y = PC_2)) +
geom_point(color = "red", size = 0.5) +
theme_classic()
p2
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
CombinePlots(plots = list(p1, p2))
Warning in align_plots(plotlist = plots, align = align, axis = axis):
Complex graphs cannot be vertically aligned unless axis parameter is set
properly. Placing graphs unaligned.
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
To overcome the extensive technical noise in any single feature for scRNA-seq data, Seurat clusters cells based on their PCA scores, with each PC essentially representing a ‘metafeature’ that combines information across a correlated feature set. The top principal components therefore represent a robust compression of the dataset. However, how many components should we choose to include? 10? 20? 100?
In Macosko et al, we implemented a resampling test inspired by the JackStraw procedure. We randomly permute a subset of the data (1% by default) and rerun PCA, constructing a ‘null distribution’ of feature scores, and repeat this procedure. We identify ‘significant’ PCs as those who have a strong enrichment of low p-value features.
# NOTE: This process can take a long time for big datasets, comment out for expediency. More
# approximate techniques such as those implemented in ElbowPlot() can be used to reduce
# computation time, takes 10 mins for this dataset
pbmc <- JackStraw(pbmc, num.replicate = 100, dims = 50)
pbmc <- ScoreJackStraw(pbmc, dims = 1:50)
JackStrawPlot(pbmc, dims = 1:30)
An alternative heuristic method generates an ‘Elbow plot’: a ranking of principle components based on the percentage of variance explained by each one (ElbowPlot function). In this example, we can observe an ‘elbow’ around PC20-30, suggesting that the majority of true signal is captured in the first 20 PCs.
ElbowPlot(pbmc, ndims = 50)
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
hint from https://github.com/satijalab/seurat/issues/982
mat <-<EMAIL_ADDRESS>pca <- pbmc[["pca"]]
# Get the total variance:
total_variance <- sum(matrixStats::rowVars(mat))
eigValues = (pca@stdev)^2 ## EigenValues
varExplained = eigValues / total_variance
varExplained %>% enframe(name = "PC", value = "varExplained" ) %>%
ggplot(aes(x = PC, y = varExplained)) +
geom_bar(stat = "identity") +
theme_classic() +
ggtitle("scree plot")
### this is what Seurat is plotting: standard deviation
pca@stdev %>% enframe(name = "PC", value = "Standard Deviation" ) %>%
ggplot(aes(x = PC, y = `Standard Deviation`)) +
geom_point() +
theme_classic()
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
Seurat v3 applies a graph-based clustering approach, building upon initial strategies in (Macosko et al) Briefly, these methods embed cells in a graph structure - for example a K-nearest neighbor (KNN) graph, with edges drawn between cells with similar feature expression patterns, and then attempt to partition this graph into highly interconnected ‘quasi-cliques’ or ‘communities’.
As in PhenoGraph, we first construct a KNN graph based on the euclidean distance in PCA space, and refine the edge weights between any two cells based on the shared overlap in their local neighborhoods (Jaccard similarity). This step is performed using the FindNeighbors function, and takes as input the previously defined dimensionality of the dataset.
To cluster the cells, we next apply modularity optimization techniques such as the Louvain algorithm (default) or SLM [SLM, Blondel et al., Journal of Statistical Mechanics], to iteratively group cells together, with the goal of optimizing the standard modularity function. The FindClusters
function implements this procedure, and contains a resolution parameter that sets the ‘granularity’ of the downstream clustering, with increased values leading to a greater number of clusters. We find that setting this parameter between 0.4-1.2 typically returns good results for single-cell datasets of around 3K cells. Optimal resolution often increases for larger datasets
pbmc <- FindNeighbors(pbmc, dims = 1:20)
Computing nearest neighbor graph
Computing SNN
pbmc <- FindClusters(pbmc, resolution = 0.5)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
Number of nodes: 4595
Number of edges: 166042
Running Louvain algorithm...
Maximum modularity in 10 random starts: 0.8998
Number of communities: 14
Elapsed time: 0 seconds
# Look at cluster IDs of the first 5 cells
head(Idents(pbmc), 5)
AAACCCAAGCGTATGG AAACCCAGTCCTACAA AAACGCTAGGGCATGT AAACGCTGTAGGTACG
1 1 5 0
AAACGCTGTGTCCGGT
1
Levels: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Seurat offers several non-linear dimensional reduction techniques, such as tSNE and UMAP (as opposed to PCA which is a linear dimensional reduction technique), to visualize and explore these datasets. The goal of these algorithms is to learn the underlying manifold of the data in order to place similar cells together in low-dimensional space. Cells within the graph-based clusters determined above should co-localize on these dimension reduction plots. As input to the UMAP and tSNE, we suggest using the same PCs as input to the clustering analysis.
t-SNE explained by StatQuest https://www.youtube.com/watch?v=NEaUSP4YerM
pbmc <- RunUMAP(pbmc, dims = 1:20)
pbmc<- RunTSNE(pbmc, dims = 1:20)
## after we run UMAP and TSNE, there are more entries in the reduction slot
str(pbmc@reductions)
List of 3
$ pca :Formal class 'DimReduc' [package "Seurat"] with 8 slots
.. ..@ cell.embeddings : num [1:4595, 1:50] -31.75 -27.91 4.87 11.28 -30.22 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:4595] "AAACCCAAGCGTATGG" "AAACCCAGTCCTACAA" "AAACGCTAGGGCATGT" "AAACGCTGTAGGTACG" ...
.. .. .. ..$ : chr [1:50] "PC_1" "PC_2" "PC_3" "PC_4" ...
.. ..@ feature.loadings : num [1:2000, 1:50] -0.014365 -0.000161 0.005058 -0.013235 -0.058571 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:2000] "FCER1A" "PPBP" "IGLC2" "C1QA" ...
.. .. .. ..$ : chr [1:50] "PC_1" "PC_2" "PC_3" "PC_4" ...
.. ..@ feature.loadings.projected: num[0 , 0 ]
.. ..@ assay.used : chr "RNA"
.. ..@ stdev : num [1:50] 15.65 7.92 6.7 5.5 4.53 ...
.. ..@ key : chr "PC_"
.. ..@ jackstraw :Formal class 'JackStrawData' [package "Seurat"] with 4 slots
.. .. .. ..@ empirical.p.values : num[0 , 0 ]
.. .. .. ..@ fake.reduction.scores : num[0 , 0 ]
.. .. .. ..@ empirical.p.values.full: num[0 , 0 ]
.. .. .. ..@ overall.p.values : num[0 , 0 ]
.. ..@ misc :List of 1
.. .. ..$ total.variance: num 1563
$ umap:Formal class 'DimReduc' [package "Seurat"] with 8 slots
.. ..@ cell.embeddings : num [1:4595, 1:2] 15.41 17.17 21.09 3.56 15.45 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:4595] "AAACCCAAGCGTATGG" "AAACCCAGTCCTACAA" "AAACGCTAGGGCATGT" "AAACGCTGTAGGTACG" ...
.. .. .. ..$ : chr [1:2] "UMAP_1" "UMAP_2"
.. ..@ feature.loadings : num[0 , 0 ]
.. ..@ feature.loadings.projected: num[0 , 0 ]
.. ..@ assay.used : chr "RNA"
.. ..@ stdev : num(0)
.. ..@ key : chr "UMAP_"
.. ..@ jackstraw :Formal class 'JackStrawData' [package "Seurat"] with 4 slots
.. .. .. ..@ empirical.p.values : num[0 , 0 ]
.. .. .. ..@ fake.reduction.scores : num[0 , 0 ]
.. .. .. ..@ empirical.p.values.full: num[0 , 0 ]
.. .. .. ..@ overall.p.values : num[0 , 0 ]
.. ..@ misc : list()
$ tsne:Formal class 'DimReduc' [package "Seurat"] with 8 slots
.. ..@ cell.embeddings : num [1:4595, 1:2] -7.89 10.06 -32.41 -21.91 1.57 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:4595] "AAACCCAAGCGTATGG" "AAACCCAGTCCTACAA" "AAACGCTAGGGCATGT" "AAACGCTGTAGGTACG" ...
.. .. .. ..$ : chr [1:2] "tSNE_1" "tSNE_2"
.. ..@ feature.loadings : num[0 , 0 ]
.. ..@ feature.loadings.projected: num[0 , 0 ]
.. ..@ assay.used : chr "RNA"
.. ..@ stdev : num(0)
.. ..@ key : chr "tSNE_"
.. ..@ jackstraw :Formal class 'JackStrawData' [package "Seurat"] with 4 slots
.. .. .. ..@ empirical.p.values : num[0 , 0 ]
.. .. .. ..@ fake.reduction.scores : num[0 , 0 ]
.. .. .. ..@ empirical.p.values.full: num[0 , 0 ]
.. .. .. ..@ overall.p.values : num[0 , 0 ]
.. ..@ misc : list()
DimPlot(pbmc, reduction = "umap", label = TRUE)
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
## now let's visualize in the TSNE space
DimPlot(pbmc, reduction = "tsne")
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
## now let's label the clusters in the PCA space
DimPlot(pbmc, reduction = "pca")
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
Tsne/UMAP is for visualization purpose only. The clusters are defined by the graph-based clustering which was implemented by FindClusters
. We then color label the cells by the cluster id on the UMAP space.
We can reproduce the UMAP plot by ggplot ourselves.
## there are many slots for the DimReduct object
## the same as pbmc@reductions$umap
pbmc[["umap"]]
A dimensional reduction object with key UMAP_
Number of dimensions: 2
Projected dimensional reduction calculated: FALSE
Jackstraw run: FALSE
Computed using assay: RNA
## extract the cell embeddings
Embeddings(pbmc, reduction = "umap") %>% head()
UMAP_1 UMAP_2
AAACCCAAGCGTATGG 15.409229 14.386008
AAACCCAGTCCTACAA 17.171036 17.526758
AAACGCTAGGGCATGT 21.088911 1.469897
AAACGCTGTAGGTACG 3.561784 14.602443
AAACGCTGTGTCCGGT 15.452778 16.914408
AAACGCTGTGTGATGG 4.704505 -1.752043
Embeddings(pbmc, reduction = "umap") %>%
as.data.frame() %>%
ggplot(aes(x = UMAP_1, y = UMAP_2)) +
geom_point(size = 0.5) +
theme_classic(base_size = 14)
| Version | Author | Date |
|---|---|---|
| 2388094 | Ming Tang | 2019-07-30 |
## color by cluster
(umap_df<- bind_cols(seurat_clusters =<EMAIL_ADDRESS>Embeddings(pbmc, reduction = "umap") %>% as.data.frame()))
# A tibble: 4,595 x 3
seurat_clusters UMAP_1 UMAP_2
<fct> <dbl> <dbl>
1 1 15.4 14.4
2 1 17.2 17.5
3 5 21.1 1.47
4 0 3.56 14.6
5 1 15.5 16.9
6 4 4.70 -1.75
7 4 4.51 0.586
8 3 4.67 5.38
9 1 17.6 17.6
10 2 6.00 6.05
# … with 4,585 more rows
# ggplot2 to reproduce
ggplot(umap_df, aes(x = UMAP_1, y = UMAP_2)) +
geom_point(aes(color = seurat_clusters), size = 0.5) +
theme_classic(base_size = 14)
| Version | Author | Date |
|---|---|---|
| 2388094 | Ming Tang | 2019-07-30 |
Seurat can help you find markers that define clusters via differential expression. By default, it identifies positive and negative markers of a single cluster (specified in ident.1), compared to all other cells. FindAllMarkers automates this process for all clusters, but you can also test groups of clusters vs. each other, or against all cells.
# find all markers of cluster 1
cluster1.markers <- FindMarkers(pbmc, ident.1 = 1, min.pct = 0.25)
head(cluster1.markers, n = 5)
p_val avg_logFC pct.1 pct.2 p_val_adj
S100A8 0 4.143277 1.000 0.123 0
S100A9 0 4.125020 1.000 0.233 0
LYZ 0 3.202571 1.000 0.395 0
VCAN 0 2.577781 0.992 0.071 0
MNDA 0 2.564347 1.000 0.109 0
# find all markers distinguishing cluster 5 from clusters 0 and 3
cluster5.markers <- FindMarkers(pbmc, ident.1 = 5, ident.2 = c(0, 3), min.pct = 0.25)
head(cluster5.markers, n = 5)
p_val avg_logFC pct.1 pct.2 p_val_adj
CD79A 0 2.673512 1.000 0.045 0
HLA-DQA1 0 2.533452 0.993 0.012 0
MS4A1 0 2.438141 0.993 0.029 0
HLA-DQB1 0 2.118244 0.982 0.031 0
BANK1 0 1.992629 0.982 0.006 0
Finding all marker genes takes long in this step. let’s watch the PCA video while Seurat is working hard.
# find markers for every cluster compared to all remaining cells, report only the positive ones
pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
Calculating cluster 0
Calculating cluster 1
Calculating cluster 2
Calculating cluster 3
Calculating cluster 4
Calculating cluster 5
Calculating cluster 6
Calculating cluster 7
Calculating cluster 8
Calculating cluster 9
Calculating cluster 10
Calculating cluster 11
Calculating cluster 12
Calculating cluster 13
pbmc.markers %>% group_by(cluster) %>% top_n(n = 2, wt = avg_logFC)
# A tibble: 28 x 7
# Groups: cluster [14]
p_val avg_logFC pct.1 pct.2 p_val_adj cluster gene
<dbl> <dbl> <dbl> <dbl> <dbl> <fct> <chr>
1 0. 0.943 0.856 0.227 0. 0 CCR7
2 0. 0.889 0.802 0.195 0. 0 TRABD2A
3 0. 4.14 1 0.123 0. 1 S100A8
4 0. 4.13 1 0.233 0. 1 S100A9
5 1.25e-224 1.26 0.925 0.43 2.35e-220 2 IL7R
6 2.46e-198 1.23 0.644 0.146 4.62e-194 2 KLRB1
7 1.29e-269 2.00 0.988 0.209 2.42e-265 3 CCL5
8 1.20e-164 1.61 0.576 0.085 2.26e-160 3 GZMK
9 0. 3.46 0.993 0.119 0. 4 GNLY
10 1.98e-288 2.90 1 0.224 3.72e-284 4 NKG7
# … with 18 more rows
This is slow. Seurat V3.0.2 provides parallel processing for some of the steps including FindAllMarkers. read more https://satijalab.org/seurat/v3.0/future_vignette.html
# we only have 2 CPUs reserved for each one.
plan("multiprocess", workers = 2)
pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
VlnPlot (shows expression probability distributions across clusters), and FeaturePlot (visualizes feature expression on a tSNE or PCA plot) are our most commonly used visualizations. We also suggest exploring RidgePlot, CellScatter, and DotPlot as additional methods to view your dataset.
VlnPlot(pbmc, features = c("MS4A1", "CD79A"))
## understanding the matrix of data slots
pbmc[["RNA"]]@data[c("MS4A1", "CD79A"), 1:30]
2 x 30 sparse Matrix of class "dgCMatrix"
[[ suppressing 30 column names 'AAACCCAAGCGTATGG', 'AAACCCAGTCCTACAA', 'AAACGCTAGGGCATGT' ...  ]]
MS4A1 . . 6 . . . . . . 1 .  8 . . . . . 6 . . . . 15
CD79A . . 8 .  1 .  10 . . . . . 13 . . . . 27
# you can plot raw counts as well
VlnPlot(pbmc, features = c("MS4A1", "CD79A"), slot = "counts", log = TRUE)
VlnPlot(pbmc, features = c("MS4A1", "CD79A"), slot = "scale.data")
| Version | Author | Date |
|---|---|---|
| 7bf52d9 | Ming Tang | 2019-07-23 |
FeaturePlot.
plot the expression intensity overlaid on the Tsne/UMAP plot.
FeaturePlot(pbmc, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP", "CD8A"))
ggplot2 plot the data points in the order of the rows present in the dataframe. high-expressed cells can be masked by the (gray) low expressed cells.
p<- FeaturePlot(pbmc, features = "CD14")
## before reordering
p
| Version | Author | Date |
|---|---|---|
| 2388094 | Ming Tang | 2019-07-30 |
p_after<- p
### after reordering
p_after$data <- p_after$data[order(p_after$data$CD14),]
CombinePlots(plots = list(p, p_after))
There is a package to deal with this type of overplotting problem. https://github.com/SaskiaFreytag/schex
DoHeatmap
generates an expression heatmap for given cells and features. In this case, we are plotting the top 20 markers (or all markers if less than 20) for each cluster.
top10 <- pbmc.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)
DoHeatmap(pbmc, features = top10$gene) + NoLegend()
Warning in DoHeatmap(pbmc, features = top10$gene): The following features
were omitted as they were not found in the scale.data slot for the RNA
assay: NUCB2, LUC7L3, CSKMT, INTS6, NKTR, HEXIM1, MT-ND5, MALAT1, MT-CYB,
NOSIP, SARAF, TCF7, LDHB
save the Seurat object into a file
saveRDS(pbmc, "data/pbmc5k/pbmc_5k_v3.rds")
sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] Seurat_3.0.2 forcats_0.3.0 stringr_1.3.1 dplyr_<IP_ADDRESS>
[5] purrr_0.2.5 readr_1.3.1 tidyr_0.8.2 tibble_2.0.1
[9] ggplot2_3.1.0 tidyverse_1.2.1
loaded via a namespace (and not attached):
[1] Rtsne_0.15 colorspace_1.4-1 ggridges_0.5.1
[4] rprojroot_1.3-2 fs_1.2.6 rstudioapi_0.8
[7] listenv_0.7.0 npsurv_0.4-0 ggrepel_0.8.0
[10] fansi_0.4.0 lubridate_1.7.4 xml2_1.2.0
[13] codetools_0.2-16 splines_3.5.1 R.methodsS3_1.7.1
[16] lsei_1.2-0 knitr_1.21 jsonlite_1.6
[19] workflowr_1.4.0 broom_0.5.1 ica_1.0-2
[22] cluster_2.0.7-1 png_0.1-7 R.oo_1.22.0
[25] sctransform_0.2.0 compiler_3.5.1 httr_1.4.0
[28] backports_1.1.3 assertthat_0.2.0 Matrix_1.2-15
[31] lazyeval_0.2.1 cli_1.0.1 htmltools_0.3.6
[34] tools_3.5.1 rsvd_1.0.0 igraph_1.2.2
[37] gtable_0.2.0 glue_1.3.0 RANN_2.6
[40] reshape2_1.4.3 Rcpp_1.0.0 cellranger_1.1.0
[43] gdata_2.18.0 ape_5.2 nlme_3.1-137
[46] gbRd_0.4-11 lmtest_0.9-36 xfun_0.4
[49] globals_0.12.4 rvest_0.3.2 irlba_2.3.2
[52] gtools_3.8.1 future_1.10.0 MASS_7.3-51.1
[55] zoo_1.8-4 scales_1.0.0 hms_0.4.2
[58] parallel_3.5.1 RColorBrewer_1.1-2 yaml_2.2.0
[61] reticulate_1.10 pbapply_1.3-4 gridExtra_2.3
[64] stringi_1.2.4 caTools_<IP_ADDRESS> bibtex_0.4.2
[67] matrixStats_0.54.0 Rdpack_0.10-1 SDMTools_1.1-221
[70] rlang_0.3.1 pkgconfig_2.0.2 bitops_1.0-6
[73] evaluate_0.12 lattice_0.20-38 ROCR_1.0-7
[76] htmlwidgets_1.3 labeling_0.3 cowplot_0.9.3
[79] tidyselect_0.2.5 plyr_1.8.4 magrittr_1.5
[82] R6_2.3.0 gplots_3.0.1 generics_0.0.2
[85] pillar_1.3.1 haven_2.0.0 whisker_0.3-2
[88] withr_2.1.2 fitdistrplus_1.0-11 survival_2.43-3
[91] future.apply_1.0.1 tsne_0.1-3 modelr_0.1.2
[94] crayon_1.3.4 utf8_1.1.4 KernSmooth_2.23-15
[97] plotly_4.8.0 rmarkdown_1.11 grid_3.5.1
[100] readxl_1.2.0 data.table_1.11.8 git2r_0.23.0
[103] metap_1.0 digest_0.6.18 R.utils_2.7.0
[106] munsell_0.5.0 viridisLite_0.3.0


|
Panda3D
|
Functions | |
| def | copyFuncs (fromClass, toClass) |
| def | findClass (className) |
| def | rebindClass (filename) |
| def | replaceAIRFunc (replaceFuncList) |
| def | replaceCRFunc (replaceFuncList) |
| def | replaceIvalFunc (replaceFuncList) |
| def | replaceMessengerFunc (replaceFuncList) |
| def | replaceStateFunc (replaceFuncList) |
| def | replaceTaskMgrFunc (replaceFuncList) |
Contains various utility functions.
| def direct.showbase.Finder.copyFuncs | ( | fromClass, | |
| toClass | |||
| ) |
| def direct.showbase.Finder.findClass | ( | className | ) |
Look in sys.modules dictionary for a module that defines a class with this className.
| def direct.showbase.Finder.rebindClass | ( | filename | ) |
| def direct.showbase.Finder.replaceAIRFunc | ( | replaceFuncList | ) |
| def direct.showbase.Finder.replaceCRFunc | ( | replaceFuncList | ) |
| def direct.showbase.Finder.replaceIvalFunc | ( | replaceFuncList | ) |
| def direct.showbase.Finder.replaceMessengerFunc | ( | replaceFuncList | ) |
| def direct.showbase.Finder.replaceStateFunc | ( | replaceFuncList | ) |
| def direct.showbase.Finder.replaceTaskMgrFunc | ( | replaceFuncList | ) |


We at PayCr give our customers the highest priority. All the customer related data are respectively mapped and is only accessible to the intended user. All the practices and policies related to customer’s privacy is shared in detail.
While registering a merchant we request for a unique Email id, unique mobile number. A password reset link will be sent to the new email for onboarding. The email ID and Mobile number will be used to communicate the transactional, promotional and policy level updates. Update on the user credentials can be done by the user through the portal via proper authentication and notification.
We will use your personal details solely to render you the services and updates related to PayCr Services. We will not share the information to any third party for promotional purposes, nor will utilize it for any purposes not expressly consented to by you.
Whenever you choose to refer a friend, we will use the details to send a one-time communication. We post user testimonials on our website. These testimonials may include customer information which we confirm from users prior to posting these on our website. PayCr is not responsible for the Personal Information users chooses to post within their posted testimonials.
PayCr stores and maintains file, documents and other user related credentials at a secondary secured location. This is done to prevent loss of data due to system or infrastructure failure.
PayCr sends payment links to your consumers for invoices on your behalf at your trigger only.
We do not store any details of your payment except of the following:
We do not store any card information or preferences. We use third party services to process online payments.
The login device details are stored in the form of cache and cookies. This is done to enhance your experience.
Technologies such as cookies, tags and scripts etc. are used to analyze customer activities, preferences, session and other demographic data to provide contextual services. Cookies can be deleted from your browser.
Users might find external website links on the PayCr website in the form of advertisements or references or links. Any activity post landing on the third party page will be dealt under the privacy guidelines of the third party. PayCr has no role to play in it.
One can login using PayCr site using inhouse credentials. These credentials are stored in encrypted formats and are safe as per industry standards.
PayCr has the right to share user information with PayCr affiliates to inform you about related products. In case of merger and acquisition PayCr reserves the right to share the customer information for further use. Customers will be informed about the development and ensured that no misuse is done with the customer information.
Data Security is of prime concern to PayCr business and will employ standard protocols to secure the data. Cryptographic private and public key encryption is done to the passwords to ensure misuse of the platform even from a database administrator level.
Users will be sent notifications about the transaction through SMS and E-mail. They might receive email notifications for promotions, new products and updates. They will have the right to opt out of these services by clicking unsubscribe button in the email.
Our employees will have the right to access to your personal details in case we suspect a illegal or fraudulent activity on the account. In any case we will ensure that the activity is not the violation of your rights and in line with the define privacy rules of the company.
PayCr will periodically ensure that the privacy policies are implemented and practiced with utmost seriousness. Regular audit checks will be done at the organizational level to safeguard the privacy of the users.
Any change in the company policy, privacy policy or product guidelines impacting the consumer will be notified through E-mail to the user using the company Email ID.
In case of any concern related to privacy policy or product users can reach out to PayCr through care@paycr.in


Art
has always been my gateway to happiness and creativity. From pencil drawings, watercolor, copic pens, and acrylic paints; I am always eager to try out new mediums. This year I have also discovered a love digital art.
Here are a few of my pieces.


Under Construction
This website is currently under construction,
check back later!
Or if you're feeling adventurous:
view the beta


To get you up and running I will you show you a quick example how the client side of the validation functionality is build using the GWT Validation Library.
We will have a form with one TextBox widget which will be used for entering the year of birth. If the validation fails we want the TextBox to get a red border, additionally a label should be set to the corresponding error message, that tells the user what went wrong. Standard GWT stuff will be for some part ignored because the example should help you focus on the specifics of validation (Its assumed that you know standard GWT stuff).
So let's start:
We have a Dialog which we added the TextBox to. What we need
additionally is a button that will trigger the validation and a Label
that will present the validation error message, if there was one.
So we basically have something like this:
TextBox birthYearTextBox = new TextBox(); Label errorLabel = new Label(""); Button validateButton = new Button("Validate!");
We would add these components to the dialog and then we would setup the validation constraints like this:
ValidationProcessor validator = new DefaultValidationProcessor(); validator.addValidators( "birthYear", new IntegerValidator(birthYearTextBox, 1890, 2009) .addActionForFailure(new StyleAction("validationFailedBorder")) .addActionForFailure(new LabelTextAction(errorLabel)) );
We now have associated a validation constraint with a widget. We configured the IntegerValidator so that it will accept integer values in the range of [1890,2009]. We added two actions to the validator. The first action is the StyleAction which we configured to add the "validationFailedBorder" CSS-style (These styles must be defined by you in your projects CSS-file) to the validated widget (the TextBox), if it fails the validation. The second action that will be invoked if the validation fails is the LabelTextAction. It will set the text of the label to the error message that the IntegerValidator generates if its constraint is violated.
The only thing missing now, is the invocation of the validation process. Normally, before the data is send to the server we will perform client side validation and abort if it finds errors. To do this we configure the validate button to trigger validation:
validateButton.addClickListener(new ClickListener() { public void onClick(Widget sender) { boolean success = validator.validate(); if(success) { //No validation errors found. We can submit the data to the server! }else { //One (or more) validations failed. The actions will have been //already invoked by the validator.validate() call. } } });
That is essentially all you have to do to add rich client validations.
You would do this with every data input widget that you want to
validate. There is also the concept of
GroupValidator
's that are able to group certain validators and can then be used as a
single validator. For example there exists a
TrimmedStringLengthValidator
. It consists of a TrimTransformator that will trim the input of a
widget and a
StringLengthValidator
that will check if the trimmed input has a specific length.
As
with validators, transformators and actions you can freely create your
own group validators. This is part of the modular design of the GWT
Validation Library that tries to help you to follow DRY (Don't repeat
yourself) practices. So you would normally identify which kind of
validations , transformators and actions you need and develop them
once while using them throughout the application.
For more informations on these issues take a look into the resources section.


| System |
(Number Score) |
Match |
The result is shown in a table containing the name of the system and the percentage of their match
with the information you have entered. If there are no systems listed here, please try a different
combination of critical questions.


The luminance macro performs full-colour luminance filtering and produces a 1:1 size scalar result from ARGB colour byte images.
Input Ports
Name Type Description in Image_ARGB original image to be analysed Output Ports
Name Type Description out_fld 2D byte field luminance values for each pixel out_obj GDobject directly renderable output object
The luminance module computes a scalar luminance function for each pixel in an image from the red, green and blue channels of that color image. The output field is the same size of the input in each dimension. There are no parameters associated with this module, and hence no user interface.
The transfer function used to calculate the luminance is:
Luminance = (RED*0.299) + (GREEN*0.587) + (BLUE*0.114)This module is a conversion of the AVS5 "luminance" module. The module implementation is now in C++. The low-level module operates on simple byte arrays rather than fields.
in
Full colour 2D image that is to be analysed by the module. The image should be a 2D uniform grid of type Image_ARGB. The read_image module outputs data of this type.
out_fld
Uniform scalar byte field containing the calculated luminance values as unsigned bytes. The uniform field has the same dimensions as the input field.
out_obj
The GDobject version of the output, suitable for direct connection to the viewer. A 2D viewer is recommended.
The luminance macro makes use of the LuminanceCore low-level module.
The LuminanceEg example application filters an image and shows it in a viewer.
xp_comm_proj/lumi/lumimods.v contains the V definition of the LuminanceCore module.
xp_comm_proj/lumi/lumimacs.v contains the V definitions of the luminance user macro and the LuminanceEg example application.
The low-level LuminanceMods library containing the low-level LuminanceCore module does not specify a process. By default the express process will be used.
Sabreen Vig, Larry Gelberg, Ian Curington Advanced Visual Systems, Inc.
Andrew Dodd International AVS Centre
AVS5 luminance module, from which this one is derived.


The Universe began to expand at this moment. The Universe is thought to have come into existence as a singularity. Singularities are basically areas where the the pressure and temperature is so great that matter is compressed to an infinite density. This is just a basic description of a Singularity since they are not well understood and some scientists even disagree with this theory. This singularity began to expand and the universe was born.
13.8 Billion years ago
After a trillionth of a second after the Big Bang, the universe expanded quickly into a very large size and many iportant partices and elements were created. Protons were created and electrons and antielectrons. Also helium was produced from hydrogen. Also during this time many forces became distinct such as gravity. Before it was so hot and dense that the 4 forces could not be seperated.
Trillionth of a Second - 5 Minutes AfterThe density of the universe decreased and Hydrogen and helium atoms began to form. Electrons were also captured by hydrogen and helium ions to form electrically netural atoms.
380,000 Years AfterThe first galaxies begin to form around this time and this marked the end of the Dark Ages which lasted up until now. The Dark Ages were when there were no stars.
100 Million Years AfterBy this period many early galaxies and stars were likely formed and in place.
500 Million Years AfterThe Solar System begins to form around this time from a cloud of molecular dust that collapsed on itself.
9 Billion Years AfterWe are here at this current point in time and space.
The Sun will continue to increase its heat production which will cause water and life to dissappear from the earth and render it inhabitable.
1 Billion Years from NowThe core of the sun will trigger helium fusion and the sun will expand to become a red giant eventually consuming the Earth.
5 Billion Years from NowOne of the many theories of how the Universe will "end". The expansion rate will eventually increase enough to overcome forces holding atoms together and everything will "rip".
20 Billion Years from NowAnother theory of how the Universe will "end". The expansion of the Universe eventually reverses and the Universe would begin to contract. The Universe would become hot and dense again eventually leading to the Universe collapsing into a singularity.
100 Billion Years from NowThis theory is currently the most supported. The expansion of the Universe continues as it currently is and the Universe essentially becomes "worn out". Stars stop forming and burn out.
10^5 Billion Years from Now
Atoms begin to fall apart as protons and neutrons begin to decay into electrons and positrons. Eventually only Blackholes are left, but they too will dissappear as they emit Hawking Radiation.
10^34 Billion Years from Now
Black holes evaporate around this time and the Universe now only consists of subatomic particles and photons. These are seperated by large distances and nothing else would occur in the Universe from now on. There would be no new events so it would impossible to determine the past and present. This can be considered as the end of time. This is considered to be the ultimate fate of the Universe.
10^100 Billion Years from Now


include "head.html"
include "header/top-nav.html" include "header/logo-area.html" include "header/bot-nav.html"


Catholic bishops pray for Auditor-General
Photos in which some Catholic bishops are seen laying their hands on the Auditor-General, Daniel Yaw Domelevo, have gotten people talking.
Brother of the Auditor-General, Rev Brother Stephen Domelevo, a Catholic priest, shared the photos on his Facebook page with the caption, “Praying for Mr Daniel Domelevo the Auditor-General.”
In the comments section, he writes, “I am praying for my Brother for his good work.”
Among the bishops seen praying for him in the photos is the Metropolitan Archbishop of Cape Coast, Rev Charles Gabriel Palmer-Buckle.
The post on Facebook received numerous comments some of which include, “[Uncle Daniel Domelevo] we know and the scripture also made it clear to us whenever we do the right thing in front of the enemy they stand against it. The Good LORD have [seen] you through already no Matter the tribulations.
The Auditor-General has been in the news for the past few months for what some say, are calculated attacks by some influential persons for his unwavering fight against public sector corruption.
Recently, Executive Director at the Centre of Democratic Development (CDD), Henry Kwesi Prempeh, said there is a strong perception that Daniel Domelevo’s anti-graft stance was being stampeded by some government officials.
Click "Photos" for more


Server Operations
Startup
Shutdown
Cache
Clear cache
Message of the Day
Collections
Add items for specific players
Add items for all players
Add currency for specific players
Reset user password
Private games
New account registration
In game statistic tracking
Bonus abilities in casual games
For April Fools' Day and other special occasions


The PVts-β approach is implemented in R with the ForesToolboxRS package. This algorithm will allow to detect disturbances in the forests using all the available Landsat set. In fact, it can also be run with sensors such as MODIS (Moderate Resolution Imaging Spectroradiometer). In essence, the PVts-β approach is an algorithm that does not model the seasonal component in time series, instead it only requires calculating the mean and standard deviation of the time series itself to detect disturbances. Therefore, the PVts-β approach is a method: i) simple and intelligent that does not model seasonality, ii) has only one calibration parameter and iii) can be easily implemented by any standard user.
For any work you will submit, credits from this algorithm must be given to:


Welcome to SETAsurveys
Training list
{% if error_msg %}KO! We were unable to retrieve the Training list
Reason for that: {{ error_msg }}
{% elif training_set %}Training list retrieved successfully!
| Training ID | Name | Status | Number of users | Creation date (GMT) | T-score | A-score | Details | Terminate | Remove | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ item.id }} | {{ item.training_name }} | {% if item.status == 'COMPLETED' %}{{ item.status }} | {% elif item.status == 'ACTIVE' %}{{ item.status }} | {% else %}{{ item.status }} | {% endif %}{{ item.number_of_users }} | {{ item.date }} | {{ score1 }} | {{ score2 }} | +info | {% if item.status != 'COMPLETED' %}{% else %} | {% endif %} |
T-score (training score): average survey grade obtained (0,100). Only shown if % respondents greater than value as per configuration
A-score (awareness score): value (-100,100) calculated as: % respondents who passed the survey (pass grade as per configuration) - % users phished. Only shown if % respondents greater than value as per configuration, and source of users was a Phishing Campaign.
{% else %}No trainings defined yet!
{% endif%}


×
Files
Configuration
Map File
Load & Play!
Reset
×
Settings
Speed:
Progress:
MiniMAP:
×
Help
Shortcuts
Description
Key
Move the map
arrows
Edit config and video file names
e
Help information
h
Edit settings
s
Zoom Out
,
Zoom In
.
Pause
p


{% raw %}
The official URL for this profile is:
https://paciowg.github.io/functional-status-ig/StructureDefinition/pacio-dev
A device used by a Patient during a functional status assessment.
This profile builds on DeviceUseStatement.
This profile was published on Wed May 13 13:19:29 EDT 2020 as a active by Sean Mahoney.
{% endraw %}


Testing your browser for SHA-2 compatibility
If this messaage fails to change after a few seconds, your browser may be at risk.
SSL certificates signed with SHA-1 have been relied on to ensure our most important internet transactions happen in a safe place. As computer power has increased, these transactions are being put at greater and greater risk. Certificates signed with SHA-2 are significantly more secure, but come with diminished support. It's time to change that.
If a browser doesn't support SHA-2, it cannot load a page with a SHA-2 SSL certificate. At all. There's no warning message or diminished experience. There is only a browser error message along the lines of "unable to complete secure transaction".
The purpose of this tool is to help you determine if your customer base is techically ready for a SHA-2 SSL certificate. The tool can be used to count affected parties and educate them about upcoming changes. Many parts of the internet are already broken for people with bad browsers and it's only a matter of time before they're shut out of all the best parties.
Using the test is simple. Insert the script into your page and call the test with a callback. The callback will be fired with a true
or false
value indicating SHA-2 support. Use that information to track usage, issue warnings, and educate.
<script type="text/javascript" "src="sha2test.js"></script> <script type="text/javascript"> sha2test(function(sha2supported){ //if sha2supported is false, do something about it! }); </script>
It's simple, really. Once initiated, the test will attempt to load an image from a domain that has been signed with a SHA-2 SSL certificate. If the image loads successfully, the browser is SHA-2 compatibile. If it errors out, you've got a bad browser.
The script sets a cookie so that the image test only happens once per browser. If you call the function a second time, it will retrieve the value from cookie storage.
If you see some way in which this script or page can be improved, by all means pop over to the GitHub project and open a pull request. For obvious reasons, any changes must work in ancient browsers. Remember to be polite and nice in your issues and pull requests – this software was made by people.
This tool was built by Patrick Filler and Warwick Poole for Harvest. The CSS and layout are Toast.


Mandor Mountains [au25], mountain, in Mandoria, wilderness
Last updated Turn #138
Mandor Mountains [au25], mountain, in Mandoria, wilderness
------------------------------------------------------------------------
18: Osmosis [o2n], Imperial Empire, priest of the Church of Halon [157],
18: with 44 nazgul, 13 lt. xbowmen, arrived from the west,
18: accompanied by:
18: Sir Andrew [v9a], Imperial Empire, priest of the Church of
18: Halon [157], with 47 nazgul
18: Klael [d5o], Mandor Confederacy, mage, prisoner
18: Demon lord [gt0t], demon lord, refugee, prisoner
18: Lactus [u6q], Mandor Confederacy, prisoner
18: Mongoose [e6z], Mandor Confederacy, knight, prisoner
18: Lady A [x2x], Mandor Confederacy, knight, prisoner
19: Stack of savages [ig0f], savages, number: 8, arrived from Pit
19: 27 [o03].
19: Osmosis [o2n], Imperial Empire, priest of the Church of Halon [157],
19: with 44 nazgul, 13 lt. xbowmen, went east, accompanied by:
19: Sir Andrew [v9a], Imperial Empire, priest of the Church of
19: Halon [157], with 47 nazgul
19: Klael [d5o], Mandor Confederacy, mage, prisoner
19: Demon lord [gt0t], demon lord, refugee, prisoner
19: Lactus [u6q], Mandor Confederacy, prisoner
19: Mongoose [e6z], Mandor Confederacy, knight, prisoner
19: Lady A [x2x], Mandor Confederacy, knight, prisoner
20: Stack of savages [ig0f], savages, number: 8, left for Pit 27 [o03].
21: Pack of wolves [il9s], wolves, number: 7, arrived from the west.
23: Pack of wolves [il9s], wolves, number: 7, went east.
25: Stack of savages [ig0f], savages, number: 8, arrived from Pit
25: 27 [o03].
26: Stack of savages [ig0f], savages, number: 8, left for Pit 27 [o03].
28: Stack of savages [hl1s], savages, number: 18, arrived from Pit
28: 27 [o03].
29: Stack of savages [hl1s], savages, number: 18, left for Pit 27 [o03].
30: It is no longer windy.
Routes leaving Mandor Mountains:
East, mountain, to Mandor Mountains [au26], 10 days
South, plain, to Open Pampas [av25], 7 days
West, plain, to Open Pampas [au24], 7 days
Down, mine-shaft, to Pit 27 [o03], 0 days
Seen here:
Stack of centaur [ei7c], centaurs, number: 42
Stack of cyclops [dm0y], cyclops, number: 11
Stack of savages [cl7m], savages, number: 10


Monday, 3 May 2004
2:37 PM
- A fifth post.
This is the fifth post - the next post will push the first one out of the index.
Archives
2004
April
May
Weblog Index


Members
(inner) APR
Month - April. See Date.getMonth()
- Source:
(inner) AUG
Month - August. See Date.getMonth()
- Source:
(inner) CONSTRAINT_DAY_OF_MONTH
Constraint on TimeRule. Day of the month when the rule applies is
specified by the day argument. The day must be an integer between 1-31.
Date-spans will be created on the same day of every month.
- Source:
(inner) CONSTRAINT_DAY_OF_WEEK
Constraint on TimeRule. Day of the week when the rule applies is specified
by the day argument. Date-spans will be created on the same day of every
week. The day must be in the range 0-6 (Sunday-Saturday).
- Source:
(inner) CONSTRAINT_FIFTH_OF_MONTH
Constraint on TimeRule. Day of the week when the rule applies is specified
by the day argument. Date-spans will be created on the fifth occurance
of the day each month. The day must be in the range 0-6 (Sunday-Saturday).
- Source:
(inner) CONSTRAINT_FIRST_OF_MONTH
Constraint on TimeRule. Day of the week when the rule applies is specified
by the day argument. Date-spans will be created on the first occurance
of the day each month. The day must be in the range 0-6 (Sunday-Saturday).
- Source:
(inner) CONSTRAINT_FOURTH_OF_MONTH
Constraint on TimeRule. Day of the week when the rule applies is specified
by the day argument. Date-spans will be created on the fourth occurance
of the day each month. The day must be in the range 0-6 (Sunday-Saturday).
- Source:
(inner) CONSTRAINT_LAST_OF_MONTH
Constraint on TimeRule. Day of the week when the rule applies is specified
by the day argument. Date-spans will be created on the last occurance
of the day each month. The day must be in the range 0-6 (Sunday-Saturday).
- Source:
(inner) CONSTRAINT_SECOND_OF_MONTH
Constraint on TimeRule. Day of the week when the rule applies is specified
by the day argument. Date-spans will be created on the second occurance
of the day each month. The day must be in the range 0-6 (Sunday-Saturday).
- Source:
(inner) CONSTRAINT_THIRD_OF_MONTH
Constraint on TimeRule. Day of the week when the rule applies is specified
by the day argument. Date-spans will be created on the third occurance
of the day each month. The day must be in the range 0-6 (Sunday-Saturday).
- Source:
(inner) DATE_MAX
Maximum permitted day of the month
- Source:
(inner) DATE_MIN
Minimum permitted day of the month
- Source:
(inner) DAY_MAX
Minimum permitted value of day of the week
- Source:
(inner) DAY_MIN
Minimum permitted value of day of the week
- Source:
(inner) DEC
Month - DECEMBER. See Date.getMonth()
- Source:
(inner) FEB
Month - February. See Date.getMonth()
- Source:
(inner) FRIDAY
Day of the week - Sunday. See Date.getDay().
- Source:
(inner) JAN
Month - January. See Date.getMonth()
- Source:
(inner) JUL
Month - July. See Date.getMonth()
- Source:
(inner) JUN
Month - June. See Date.getMonth()
- Source:
(inner) MAR
Month - March. See Date.getMonth()
- Source:
(inner) MAX_MINS_PER_DAY
Maximum duration of a day in [minutes].
- Source:
(inner) MAY
Month - May. See Date.getMonth()
- Source:
(inner) MONDAY
Day of the week - Sunday. See Date.getDay().
- Source:
(inner) MONTH_MAX
Maximum permitted month of the year - December. see Date.getMonth().
- Source:
(inner) MONTH_MIN
Minimum permitted month of the year - January. see Date.getMonth().
- Source:
(inner) MSECS_PER_HOUR
Milliseconds per hour.
- Source:
(inner) MSECS_PER_MIN
Milliseconds per minute.
- Source:
(inner) MSECS_PER_SEC
Milliseconds per second
- Source:
(inner) NOV
Month - November. See Date.getMonth()
- Source:
(inner) OCT
Month - October. See Date.getMonth()
- Source:
(inner) SATURDAY
Day of the week - Sunday. See Date.getDay().
- Source:
(inner) SEPT
Month - February. See Date.getMonth()
- Source:
(inner) SUNDAY
Day of the week - Sunday. See Date.getDay().
- Source:
(inner) THURSDAY
Day of the week - Sunday. See Date.getDay().
- Source:
(inner) TUESDAY
Day of the week - Sunday. See Date.getDay().
- Source:
(inner) WEDNESDAY
Day of the week - Sunday. See Date.getDay().
- Source:


COACH
Sorry, your browser doesn't support this type of embedded video.
Download it instead
.
WATCH THE VIDEO


--- layout: post title: Oops, We Did It Again date: 2006-09-10 00:00:00 category: software-development ---
Oops, We Did It Again: "This may sound trivial, but think of the last time you had a project postmortem (or if you prefer a more positive term: “lessons learned” or “retrospect”) session on one of your projects. Chances are that you had some raw data in front of you, such as the number of bugs, the project plan, the different artifacts that were produced as part of the process, etc. But this raw data doesn’t tell the whole story. It doesn’t necessarily tell you what really happened."


You can reach me at hsherling @ gmail dot com or book a meeting with me through Calendly. I am on Twitter too, though I don’t check it very often!


Installing Circuit virtual machine
Prerequisites
The pir
and json
modules present, built and
installed, with prerequisites. Their source locations are
specified in config.make
and can be changed.
Configuration
The main configuration decision is whether the TTP modules will run on a 4758, or on a normal host. Please see the pir INSTALL file.
Building
$ make dep install
Installs the executables and shared objects (if used) into directory DIST_ROOT
, which is
specified in config.make
.
Subversion $Id: README.html 773 2008-03-30 12:56:38Z sasho $


I am a doctor(useless), researcher/PI & developer.
I get to spend my days tinkering with the latest developments in medical informatics, genetics, and genomics while somehow managing to make it look easy (it's not). Despite being based in Montgomery, NJ (which is a pretty cool place, I might add), I'm actually a valued member of the Columbia DBMI community, working my magic from the comfort of my home. I lead a NIH (thank you my funding agency) sponsored research project . If you are interested in the more professional side of me, you can find my CV here. Programming? Yes, of course. Please check my if you are interested.
Of course, all of this hard work doesn't come without a price - I hit the gym every night to keep my mind and body in top shape. When I'm not busy being a genius, you'll find me devouring Kōtarō Isaka's (伊坂幸太郎) latest page-turner or planning my next adventure to some far-flung corner of the globe. And I wrote a fiction in my spare time.
Oh, and did I mention that I'm a proud parent to a 3-year-old girl ? Yeah, I'm basically a superhero. But don't let all of this talent and success go to my head - I'm just your friendly researcher, trying to make the world a better place one code snippet at a time.


Follow your interests.
Hear what people are talking about.
Join the conversation.
Phone, email, or username
Password
Forgot password?
See what's happening in the world right now
Join Twitter today.
Sign up
Log in


--- layout: page status: publish published: true title: Undreground Storage Tanks author: display_name: Bert Granberg login: Bert Granberg email<EMAIL_ADDRESS>url: '' author_login: Bert Granberg author_email<EMAIL_ADDRESS>wordpress_id: 1895 wordpress_url: http://gis.utah.gov/?page_id=1895 date: '2011-08-31 23:58:01 -0600' date_gmt: '2011-09-01 05:58:01 -0600' categories: [] tags: - sgid - Data - utah - gis - map - mapping - dataset - download - agrc - layer - shapefile - geodatabase - metadata - shp - gdb - kml - lyr - digital - geographic - information - database - state - statewide ---
Roads [toggle title="More"] Description and Usage SGID93.Transportation.Roads is a multi-purpose statewide roads dataset for cartography and range based-address location. This dataset is updated every 2 months with an update focus of approximately 6 counties per cycle. Network analysis and linear referencing system datasets are derived from attributes stored within this dataset. SGID93.Transportation.Roads employs what has been referred to as the Utah Transportation Data Model. This data model is currently under active review by the UGIC Standards Committee and will likely be revised in the coming months. (detailed metadata) Update History August 3, 2011 June 1, 2011 April 14, 2011 [/toggle]


https (443)
http (80)
Show trend arrow in tray
Show alarm icon in tray
Show glucose value in tray
Minimize to tray


You have been invited to take part in a research study that requires you to judge the motion of objects
Please make sure that this window fits in your screen, and keep it at this size (or larger) throughout the experiment. You will be asked to make judgments about how objects move, so if the window is too small to see the entire field, you will not be able to complete the task. If your window is too small, please reject this HIT below.
If you have any questions about this experiment, please contact us at evullab@gmail.com


|
NANO100_BSP V3.04.001
The Board Support Package for Nano100BN Series
|
Macros | |
| #define | FMC_SET_APROM_BOOT() |
| This macro selects booting from APROM. More... | |
| #define | FMC_SET_LDROM_BOOT() |
| This macro selects booting from LDROM. More... | |
| #define | FMC_ENABLE_AP_UPDATE() |
| This macro enables APROM update function. More... | |
| #define | FMC_DISABLE_AP_UPDATE() |
| This macro disables APROM update function. More... | |
| #define | FMC_ENABLE_CFG_UPDATE() |
| This macro enables User Configuration update function. More... | |
| #define | FMC_DISABLE_CFG_UPDATE() |
| This macro disables User Configuration update function. More... | |
| #define | FMC_ENABLE_LD_UPDATE() |
| This macro enables LDROM update function. More... | |
| #define | FMC_DISABLE_LD_UPDATE() |
| This macro disables LDROM update function. More... | |
| #define | FMC_ENABLE_ISP() |
| This macro enables ISP function. More... | |
| #define | FMC_DISABLE_ISP() |
| This macro disables ISP function. More... | |
| #define | FMC_GET_FAIL_FLAG() |
| This macro gets ISP fail flag value. More... | |
| #define | FMC_CLR_FAIL_FLAG() |
| This macro clears ISP fail flag. More... | |
Functions | |
| void | FMC_Close (void) |
| Disable FMC ISP function. More... | |
| int32_t | FMC_Erase (uint32_t u32PageAddr) |
| Execute ISP command to erase a flash page. The page size is 512 bytes. More... | |
| int32_t | FMC_GetBootSource (void) |
| Get the current boot source. More... | |
| void | FMC_Open (void) |
| Enable FMC ISP function. More... | |
| uint32_t | FMC_Read (uint32_t u32Addr) |
| Execute ISP command to read a word from flash. More... | |
| uint32_t | FMC_ReadCID (void) |
| Read company ID. More... | |
| uint32_t | FMC_ReadPID (void) |
| Read product ID. More... | |
| uint32_t | FMC_ReadUCID (uint32_t u32Index) |
| This function reads one of the four UCID. More... | |
| uint32_t | FMC_ReadUID (uint32_t u32Index) |
| This function reads one of the three UID. More... | |
| uint32_t | FMC_ReadDataFlashBaseAddr (void) |
| Get the base address of Data Flash if enabled. More... | |
| void | FMC_SetVectorPageAddr (uint32_t u32PageAddr) |
| This function will force re-map assigned flash page to CPU address 0x0. More... | |
| uint32_t | FMC_GetVectorPageAddr (void) |
| Obtain the current vector page address setting. More... | |
| int32_t | FMC_Write (uint32_t u32Addr, uint32_t u32Data) |
| Execute ISP command to program a word to flash. More... | |
| int32_t | FMC_ReadConfig (uint32_t *u32Config, uint32_t u32Count) |
| Execute ISP command to read User Configuration. More... | |
| int32_t | FMC_WriteConfig (uint32_t *u32Config, uint32_t u32Count) |
| Execute ISP command to write User Configuration. More... | |
Variables | |
| int32_t | g_FMC_i32ErrCode |
| #define FMC_CLR_FAIL_FLAG | ( | ) |
| #define FMC_DISABLE_AP_UPDATE | ( | ) |
| #define FMC_DISABLE_CFG_UPDATE | ( | ) |
| #define FMC_DISABLE_ISP | ( | ) |
| #define FMC_DISABLE_LD_UPDATE | ( | ) |
| #define FMC_ENABLE_AP_UPDATE | ( | ) |
| #define FMC_ENABLE_CFG_UPDATE | ( | ) |
| #define FMC_ENABLE_ISP | ( | ) |
| #define FMC_ENABLE_LD_UPDATE | ( | ) |
| #define FMC_GET_FAIL_FLAG | ( | ) |
| #define FMC_SET_APROM_BOOT | ( | ) |
| #define FMC_SET_LDROM_BOOT | ( | ) |
| int32_t FMC_Erase | ( | uint32_t | u32PageAddr | ) |
Execute ISP command to erase a flash page. The page size is 512 bytes.
| [in] | u32PageAddr | Address of the flash page to be erased. It must be a 512-byte aligned address. |
| 0 | Success |
| -1 | Erase failed or time-out |
Definition at line 54 of file fmc.c.
| int32_t FMC_GetBootSource | ( | void | ) |
| uint32_t FMC_GetVectorPageAddr | ( | void | ) |
| uint32_t FMC_Read | ( | uint32_t | u32Addr | ) |
| uint32_t FMC_ReadCID | ( | void | ) |
| int32_t FMC_ReadConfig | ( | uint32_t * | u32Config, |
| uint32_t | u32Count | ||
| ) |
Execute ISP command to read User Configuration.
| [out] | u32Config | A two-word array. u32Config[0] holds CONFIG0, while u32Config[1] holds CONFIG1. |
| [in] | u32Count | Avaliable word count in u32Config. |
| 0 | Success. |
| -1 | Invalid parameter. |
Definition at line 296 of file fmc.c.
| uint32_t FMC_ReadDataFlashBaseAddr | ( | void | ) |
| uint32_t FMC_ReadPID | ( | void | ) |
| uint32_t FMC_ReadUCID | ( | uint32_t | u32Index | ) |
| uint32_t FMC_ReadUID | ( | uint32_t | u32Index | ) |
| void FMC_SetVectorPageAddr | ( | uint32_t | u32PageAddr | ) |
| int32_t FMC_Write | ( | uint32_t | u32Addr, |
| uint32_t | u32Data | ||
| ) |
| int32_t FMC_WriteConfig | ( | uint32_t * | u32Config, |
| uint32_t | u32Count | ||
| ) |
Execute ISP command to write User Configuration.
| [in] | u32Config | A two-word array. u32Config[0] holds CONFIG0, while u32Config[1] holds CONFIG1. |
| [in] | u32Count | Available word count in u32Config. |
| 0 | Success. |
| -1 | Invalid parameter. |
Definition at line 315 of file fmc.c.