diff --git a/caitlin-about-me.Rmd b/caitlin-about-me.Rmd new file mode 100644 index 0000000..9dd7578 --- /dev/null +++ b/caitlin-about-me.Rmd @@ -0,0 +1,209 @@ +--- +title: "About Me" +author: "Caitlin V. Miller" +output: + pdf_document: + toc: yes + word_document: + toc: yes + html_document: + toc: yes +bibliography: references.bib +--- + +# Who I am and where I came from + +I grew up in San Jose, California. On a whim during high school, I decided to do my required volunteer hours as a teaching assistant at San Francisco Zoo. And it was great to talk to people about animals! + +I went to [San Francisco State University](https://sfsu.edu/) and continued volunteering at the zoo, thinking I would be a veterinarian. I ended up doing research as an undergraduate in the [Swei Lab](https://www.sweilab.com/) studying disease ecology and being a conservation intern at the San Francisco Zoo. Both were super interesting, but I was still convinced I was going to be a veterinarian. + +I moved to Washington to live with my sister once I graduated from SFSU and finally got some veterinarian experience, but it was not to my liking. So I served some pizza for awhile and then ended up at University of Washington in the [Doherty Lab](http://depts.washington.edu/joubert/). There I learned a lot about bioinformatics, but I missed thinking about conservation. So I packed it up and came to graduate school! + +When I am not working I have a variety of hobbies. My top four things to do are: + +1. Running, +1. Playing video games online with friends from all over, +1. Bouldering at the gym- I'm terrible but it is so fun, +1. Gardeing + +Here is a picture of me releasing a frog as a conservation intern! + +```{r me_pic, echo=FALSE, out.width="500px"} +knitr::include_graphics("/Users/caitlinmiller/Downloads/DSC_6291.jpg", auto_pdf = TRUE) +``` + +# Research Interests + +Climate change, conservation, and genetics are my primary research interests. As species deal with climate change- how do they change(or not) genetically? And how can we help conserve species better with this information? + +## Influential papers + +One of the reasons I ended up at CSU was finding @bay2018genomic which described an approach to use current genetic variation to predict population success at adapting to future climate changes. I was blown away! Here was an intersection of my research interests. + +Another influential paper to how I approach climate and conservation is @thurman_persist_2020. Aside from the snappy title, it lays out the most basic responses that species can have to environmental change aside from extinction. Then the paper details a framework for assessing adaptive capacity that seems broadly relevant when thinking about conservation management. + + +## Mathematics behind my research + +Currently, my grasp on the math behind my research is not complete. Though I took and appreciated biostatistics classes as a researcher at UW. + +My favorite statistical distribution is the Poisson distribution! +$$ +P(\mathrm{X}=x) = \frac{\lambda^x e^{-\lambda}}{x!} +$$ + +## My computing experience + +My primary computing experience has included the basics of Java and Python, with a 'learned-on-the-job' bunch of shell scripting. And a bunch of using bioinformatics tools. + +Here is a silly program from a course in Java that makes a cheating hangman program: +```java +// Class HangmanMain is the driver program for the Hangman program. It reads a +// dictionary of words to be used during the game and then plays a game with +// the user. This is a cheating version of hangman that delays picking a word +// to keep its options open. You can change the setting for SHOW_COUNT to see +// how many options are still left on each turn. + +import java.util.*; +import java.io.*; + +public class HangmanMain { + public static final String DICTIONARY_FILE = "dictionary.txt"; + public static final boolean SHOW_COUNT = true; // show # of choices left + + public static void main(String[] args) throws FileNotFoundException { + System.out.println("Welcome to the cse143 hangman game."); + System.out.println(); + + // open the dictionary file and read dictionary into an ArrayList + Scanner input = new Scanner(new File(DICTIONARY_FILE)); + List dictionary = new ArrayList(); + while (input.hasNext()) + dictionary.add(input.next().toLowerCase()); + + // set basic parameters + Scanner console = new Scanner(System.in); + System.out.print("What length word do you want to use? "); + int length = console.nextInt(); + System.out.print("How many wrong answers allowed? "); + int max = console.nextInt(); + System.out.println(); + + // set up the HangmanManager and start the game + List dictionary2 = Collections.unmodifiableList(dictionary); + HangmanManager hangman = new HangmanManager2(dictionary2, length, max); + if (hangman.words().isEmpty()) { + System.out.println("No words of that length in the dictionary."); + } else { + playGame(console, hangman); + showResults(hangman); + } + } + + // Plays one game with the user + public static void playGame(Scanner console, HangmanManager hangman) { + while (hangman.guessesLeft() > 0 && hangman.pattern().contains("-")) { + System.out.println("guesses : " + hangman.guessesLeft()); + if (SHOW_COUNT) { + System.out.println("words : " + hangman.words().size()); + } + System.out.println("guessed : " + hangman.guesses()); + System.out.println("current : " + hangman.pattern()); + System.out.print("Your guess? "); + char ch = console.next().toLowerCase().charAt(0); + if (hangman.guesses().contains(ch)) { + System.out.println("You already guessed that"); + } else { + int count = hangman.record(ch); + if (count == 0) { + System.out.println("Sorry, there are no " + ch + "'s"); + hangman.words(); + } else if (count == 1) { + System.out.println("Yes, there is one " + ch); + hangman.words(); + } else { + System.out.println("Yes, there are " + count + " " + ch + + "'s"); + } + } + System.out.println(); + } + } + + // reports the results of the game, including showing the answer + public static void showResults(HangmanManager hangman) { + // if the game is over, the answer is the first word in the list + // of words, so we use an iterator to get it + String answer = hangman.words().iterator().next(); + System.out.println("answer = " + answer); + if (hangman.guessesLeft() > 0) { + System.out.println("You beat me"); + } else { + System.out.println("Sorry, you lose"); + } + } +} +``` + +And here is a short bit of code to read a temperature and CO2 sensor attached to a raspberry pi that I was fiddling with in an attempt to monitor an incubator: + +```Python +#Python app to run a K-30 Sensor +import serial +import time +ser = serial.Serial("/dev/ttyAMA0") +print "Serial Connected!" +ser.flushInput() +time.sleep(1) + +while True: + ser.write("\xFE\x44\x00\x08\x02\x9F\x25") + time.sleep(.01) + resp = ser.read(7) + high = ord(resp[3]) + low = ord(resp[4]) + co2 = (high*256) + low + print "" + print "" + print "Co2 = " + str(co2) + time.sleep(1) +``` + +## What I hope to get out of this class + +* Translate my previously learned bioinformatics skills to a new cluster operating system and new species/set of questions. +* Learn how to keep code and figures in easily reproducible bundles. +* Make some pretty figures! + +# Evaluating some R code + +I just like the aesthetics of this graph. + + +```{r, echo=FALSE, warning=FALSE, message=FALSE} +library(ggridges) +library(ggplot2) +library(viridis) +library(hrbrthemes) + +# Plot +ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = `Month`, fill = ..x..)) + + geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) + + scale_fill_viridis(name = "Temp. [F]", option = "C") + + labs(title = 'Temperatures in Lincoln NE in 2016') + + theme_ipsum() + + theme( + legend.position="none", + panel.spacing = unit(0.1, "lines"), + strip.text.x = element_text(size = 8) + ) + +``` + + +# Citations + + + + + diff --git a/caitlin-about-me.docx b/caitlin-about-me.docx new file mode 100644 index 0000000..9a69268 Binary files /dev/null and b/caitlin-about-me.docx differ diff --git a/caitlin-about-me.html b/caitlin-about-me.html new file mode 100644 index 0000000..9389ec6 --- /dev/null +++ b/caitlin-about-me.html @@ -0,0 +1,596 @@ + + + + + + + + + + + + + + +About Me + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

Who I am and where I came from

+

I grew up in San Jose, California. On a whim during high school, I decided to do my required volunteer hours as a teaching assistant at San Francisco Zoo. And it was great to talk to people about animals!

+

I went to San Francisco State University and continued volunteering at the zoo, thinking I would be a veterinarian. I ended up doing research as an undergraduate in the Swei Lab studying disease ecology and being a conservation intern at the San Francisco Zoo. Both were super interesting, but I was still convinced I was going to be a veterinarian.

+

I moved to Washington to live with my sister once I graduated from SFSU and finally got some veterinarian experience, but it was not to my liking. So I served some pizza for awhile and then ended up at University of Washington in the Doherty Lab. There I learned a lot about bioinformatics, but I missed thinking about conservation. So I packed it up and came to graduate school!

+

When I am not working I have a variety of hobbies. My top four things to do are:

+
    +
  1. Running,
  2. +
  3. Playing video games online with friends from all over,
  4. +
  5. Bouldering at the gym- I’m terrible but it is so fun,
  6. +
  7. Gardeing
  8. +
+

Here is a picture of me releasing a frog as a conservation intern!

+

+
+
+

Research Interests

+

Climate change, conservation, and genetics are my primary research interests. As species deal with climate change- how do they change(or not) genetically? And how can we help conserve species better with this information?

+
+

Influential papers

+

One of the reasons I ended up at CSU was finding Bay et al. (2018) which described an approach to use current genetic variation to predict population success at adapting to future climate changes. I was blown away! Here was an intersection of my research interests.

+

Another influential paper to how I approach climate and conservation is Thurman et al. (2020). Aside from the snappy title, it lays out the most basic responses that species can have to environmental change aside from extinction. Then the paper details a framework for assessing adaptive capacity that seems broadly relevant when thinking about conservation management.

+
+
+

Mathematics behind my research

+

Currently, my grasp on the math behind my research is not complete. Though I took and appreciated biostatistics classes as a researcher at UW.

+

My favorite statistical distribution is the Poisson distribution! \[ +P(\mathrm{X}=x) = \frac{\lambda^x e^{-\lambda}}{x!} +\]

+
+
+

My computing experience

+

My primary computing experience has included the basics of Java and Python, with a ‘learned-on-the-job’ bunch of shell scripting. And a bunch of using bioinformatics tools.

+

Here is a silly program from a course in Java that makes a cheating hangman program:

+
// Class HangmanMain is the driver program for the Hangman program.  It reads a
+// dictionary of words to be used during the game and then plays a game with
+// the user.  This is a cheating version of hangman that delays picking a word
+// to keep its options open.  You can change the setting for SHOW_COUNT to see
+// how many options are still left on each turn.
+
+import java.util.*;
+import java.io.*;
+
+public class HangmanMain  {
+    public static final String DICTIONARY_FILE = "dictionary.txt";
+    public static final boolean SHOW_COUNT = true;  // show # of choices left
+
+    public static void main(String[] args) throws FileNotFoundException {
+        System.out.println("Welcome to the cse143 hangman game.");
+        System.out.println();
+
+        // open the dictionary file and read dictionary into an ArrayList
+        Scanner input = new Scanner(new File(DICTIONARY_FILE));
+        List<String> dictionary = new ArrayList<String>();
+        while (input.hasNext())
+            dictionary.add(input.next().toLowerCase());
+
+        // set basic parameters
+        Scanner console = new Scanner(System.in);
+        System.out.print("What length word do you want to use? ");
+        int length = console.nextInt();
+        System.out.print("How many wrong answers allowed? ");
+        int max = console.nextInt();
+        System.out.println();
+
+        // set up the HangmanManager and start the game
+        List<String> dictionary2 = Collections.unmodifiableList(dictionary);
+        HangmanManager hangman = new HangmanManager2(dictionary2, length, max);
+        if (hangman.words().isEmpty()) {
+            System.out.println("No words of that length in the dictionary.");
+        } else {
+            playGame(console, hangman);
+            showResults(hangman);
+        }
+    }
+
+    // Plays one game with the user
+    public static void playGame(Scanner console, HangmanManager hangman) {
+        while (hangman.guessesLeft() > 0 && hangman.pattern().contains("-")) {
+            System.out.println("guesses : " + hangman.guessesLeft());
+            if (SHOW_COUNT) {
+                System.out.println("words   : " + hangman.words().size());
+            }
+            System.out.println("guessed : " + hangman.guesses());
+            System.out.println("current : " + hangman.pattern());
+            System.out.print("Your guess? ");
+            char ch = console.next().toLowerCase().charAt(0);
+            if (hangman.guesses().contains(ch)) {
+                System.out.println("You already guessed that");
+            } else {
+                int count = hangman.record(ch);
+                if (count == 0) {
+                    System.out.println("Sorry, there are no " + ch + "'s");
+                    hangman.words();
+                } else if (count == 1) {
+                    System.out.println("Yes, there is one " + ch);
+                    hangman.words();
+                } else {
+                    System.out.println("Yes, there are " + count + " " + ch +
+                                       "'s");
+                }
+            }
+            System.out.println();
+        }
+    }
+
+    // reports the results of the game, including showing the answer
+    public static void showResults(HangmanManager hangman) {
+        // if the game is over, the answer is the first word in the list
+        // of words, so we use an iterator to get it
+        String answer = hangman.words().iterator().next();
+        System.out.println("answer = " + answer);
+        if (hangman.guessesLeft() > 0) {
+            System.out.println("You beat me");
+        } else {
+            System.out.println("Sorry, you lose");
+        }
+    }
+}
+

And here is a short bit of code to read a temperature and CO2 sensor attached to a raspberry pi that I was fiddling with in an attempt to monitor an incubator:

+
#Python app to run a K-30 Sensor
+import serial
+import time
+ser = serial.Serial("/dev/ttyAMA0")
+print "Serial Connected!"
+ser.flushInput()
+time.sleep(1)
+
+while True:
+    ser.write("\xFE\x44\x00\x08\x02\x9F\x25")
+    time.sleep(.01)
+    resp = ser.read(7)
+    high = ord(resp[3])
+    low = ord(resp[4])
+    co2 = (high*256) + low
+    print ""
+    print ""
+    print "Co2 = " + str(co2)
+    time.sleep(1)
+
+
+

What I hope to get out of this class

+
    +
  • Translate my previously learned bioinformatics skills to a new cluster operating system and new species/set of questions.
  • +
  • Learn how to keep code and figures in easily reproducible bundles.
  • +
  • Make some pretty figures!
  • +
+
+
+
+

Evaluating some R code

+

I just like the aesthetics of this graph.

+

+
+
+

Citations

+
+
+

Bay, Rachael A, Ryan J Harrigan, Vinh Le Underwood, H Lisle Gibbs, Thomas B Smith, and Kristen Ruegg. 2018. “Genomic Signals of Selection Predict Climate-Driven Population Declines in a Migratory Bird.” Science 359 (6371): 83–86.

+
+
+

Thurman, Lindsey L., Bruce A. Stein, Erik A. Beever, Wendy Foden, Sonya R. Geange, Nancy Green, John E. Gross, et al. 2020. “Persist in Place or Shift in Space? Evaluating the Adaptive Capacity of Species to Climate Change.” Frontiers in Ecology and the Environment. https://doi.org/10.1002/fee.2253.

+
+
+
+ + + + +
+ + + + + + + + + + + + + + + diff --git a/caitlin-about-me_files/figure-latex/unnamed-chunk-1-1.pdf b/caitlin-about-me_files/figure-latex/unnamed-chunk-1-1.pdf new file mode 100644 index 0000000..d8c498b Binary files /dev/null and b/caitlin-about-me_files/figure-latex/unnamed-chunk-1-1.pdf differ diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..5762d60 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,2 @@ +theme: jekyll-theme-modernist +title: "Welcome to Caitlin's about me" \ No newline at end of file diff --git a/docs/caitlin-about-me.html b/docs/caitlin-about-me.html new file mode 100644 index 0000000..9389ec6 --- /dev/null +++ b/docs/caitlin-about-me.html @@ -0,0 +1,596 @@ + + + + + + + + + + + + + + +About Me + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

Who I am and where I came from

+

I grew up in San Jose, California. On a whim during high school, I decided to do my required volunteer hours as a teaching assistant at San Francisco Zoo. And it was great to talk to people about animals!

+

I went to San Francisco State University and continued volunteering at the zoo, thinking I would be a veterinarian. I ended up doing research as an undergraduate in the Swei Lab studying disease ecology and being a conservation intern at the San Francisco Zoo. Both were super interesting, but I was still convinced I was going to be a veterinarian.

+

I moved to Washington to live with my sister once I graduated from SFSU and finally got some veterinarian experience, but it was not to my liking. So I served some pizza for awhile and then ended up at University of Washington in the Doherty Lab. There I learned a lot about bioinformatics, but I missed thinking about conservation. So I packed it up and came to graduate school!

+

When I am not working I have a variety of hobbies. My top four things to do are:

+
    +
  1. Running,
  2. +
  3. Playing video games online with friends from all over,
  4. +
  5. Bouldering at the gym- I’m terrible but it is so fun,
  6. +
  7. Gardeing
  8. +
+

Here is a picture of me releasing a frog as a conservation intern!

+

+
+
+

Research Interests

+

Climate change, conservation, and genetics are my primary research interests. As species deal with climate change- how do they change(or not) genetically? And how can we help conserve species better with this information?

+
+

Influential papers

+

One of the reasons I ended up at CSU was finding Bay et al. (2018) which described an approach to use current genetic variation to predict population success at adapting to future climate changes. I was blown away! Here was an intersection of my research interests.

+

Another influential paper to how I approach climate and conservation is Thurman et al. (2020). Aside from the snappy title, it lays out the most basic responses that species can have to environmental change aside from extinction. Then the paper details a framework for assessing adaptive capacity that seems broadly relevant when thinking about conservation management.

+
+
+

Mathematics behind my research

+

Currently, my grasp on the math behind my research is not complete. Though I took and appreciated biostatistics classes as a researcher at UW.

+

My favorite statistical distribution is the Poisson distribution! \[ +P(\mathrm{X}=x) = \frac{\lambda^x e^{-\lambda}}{x!} +\]

+
+
+

My computing experience

+

My primary computing experience has included the basics of Java and Python, with a ‘learned-on-the-job’ bunch of shell scripting. And a bunch of using bioinformatics tools.

+

Here is a silly program from a course in Java that makes a cheating hangman program:

+
// Class HangmanMain is the driver program for the Hangman program.  It reads a
+// dictionary of words to be used during the game and then plays a game with
+// the user.  This is a cheating version of hangman that delays picking a word
+// to keep its options open.  You can change the setting for SHOW_COUNT to see
+// how many options are still left on each turn.
+
+import java.util.*;
+import java.io.*;
+
+public class HangmanMain  {
+    public static final String DICTIONARY_FILE = "dictionary.txt";
+    public static final boolean SHOW_COUNT = true;  // show # of choices left
+
+    public static void main(String[] args) throws FileNotFoundException {
+        System.out.println("Welcome to the cse143 hangman game.");
+        System.out.println();
+
+        // open the dictionary file and read dictionary into an ArrayList
+        Scanner input = new Scanner(new File(DICTIONARY_FILE));
+        List<String> dictionary = new ArrayList<String>();
+        while (input.hasNext())
+            dictionary.add(input.next().toLowerCase());
+
+        // set basic parameters
+        Scanner console = new Scanner(System.in);
+        System.out.print("What length word do you want to use? ");
+        int length = console.nextInt();
+        System.out.print("How many wrong answers allowed? ");
+        int max = console.nextInt();
+        System.out.println();
+
+        // set up the HangmanManager and start the game
+        List<String> dictionary2 = Collections.unmodifiableList(dictionary);
+        HangmanManager hangman = new HangmanManager2(dictionary2, length, max);
+        if (hangman.words().isEmpty()) {
+            System.out.println("No words of that length in the dictionary.");
+        } else {
+            playGame(console, hangman);
+            showResults(hangman);
+        }
+    }
+
+    // Plays one game with the user
+    public static void playGame(Scanner console, HangmanManager hangman) {
+        while (hangman.guessesLeft() > 0 && hangman.pattern().contains("-")) {
+            System.out.println("guesses : " + hangman.guessesLeft());
+            if (SHOW_COUNT) {
+                System.out.println("words   : " + hangman.words().size());
+            }
+            System.out.println("guessed : " + hangman.guesses());
+            System.out.println("current : " + hangman.pattern());
+            System.out.print("Your guess? ");
+            char ch = console.next().toLowerCase().charAt(0);
+            if (hangman.guesses().contains(ch)) {
+                System.out.println("You already guessed that");
+            } else {
+                int count = hangman.record(ch);
+                if (count == 0) {
+                    System.out.println("Sorry, there are no " + ch + "'s");
+                    hangman.words();
+                } else if (count == 1) {
+                    System.out.println("Yes, there is one " + ch);
+                    hangman.words();
+                } else {
+                    System.out.println("Yes, there are " + count + " " + ch +
+                                       "'s");
+                }
+            }
+            System.out.println();
+        }
+    }
+
+    // reports the results of the game, including showing the answer
+    public static void showResults(HangmanManager hangman) {
+        // if the game is over, the answer is the first word in the list
+        // of words, so we use an iterator to get it
+        String answer = hangman.words().iterator().next();
+        System.out.println("answer = " + answer);
+        if (hangman.guessesLeft() > 0) {
+            System.out.println("You beat me");
+        } else {
+            System.out.println("Sorry, you lose");
+        }
+    }
+}
+

And here is a short bit of code to read a temperature and CO2 sensor attached to a raspberry pi that I was fiddling with in an attempt to monitor an incubator:

+
#Python app to run a K-30 Sensor
+import serial
+import time
+ser = serial.Serial("/dev/ttyAMA0")
+print "Serial Connected!"
+ser.flushInput()
+time.sleep(1)
+
+while True:
+    ser.write("\xFE\x44\x00\x08\x02\x9F\x25")
+    time.sleep(.01)
+    resp = ser.read(7)
+    high = ord(resp[3])
+    low = ord(resp[4])
+    co2 = (high*256) + low
+    print ""
+    print ""
+    print "Co2 = " + str(co2)
+    time.sleep(1)
+
+
+

What I hope to get out of this class

+
    +
  • Translate my previously learned bioinformatics skills to a new cluster operating system and new species/set of questions.
  • +
  • Learn how to keep code and figures in easily reproducible bundles.
  • +
  • Make some pretty figures!
  • +
+
+
+
+

Evaluating some R code

+

I just like the aesthetics of this graph.

+

+
+
+

Citations

+
+
+

Bay, Rachael A, Ryan J Harrigan, Vinh Le Underwood, H Lisle Gibbs, Thomas B Smith, and Kristen Ruegg. 2018. “Genomic Signals of Selection Predict Climate-Driven Population Declines in a Migratory Bird.” Science 359 (6371): 83–86.

+
+
+

Thurman, Lindsey L., Bruce A. Stein, Erik A. Beever, Wendy Foden, Sonya R. Geange, Nancy Green, John E. Gross, et al. 2020. “Persist in Place or Shift in Space? Evaluating the Adaptive Capacity of Species to Climate Change.” Frontiers in Ecology and the Environment. https://doi.org/10.1002/fee.2253.

+
+
+
+ + + + +
+ + + + + + + + + + + + + + + diff --git a/references.bib b/references.bib index bd6b9e0..a41af63 100644 --- a/references.bib +++ b/references.bib @@ -1,28 +1,20 @@ -@article{richardson1997bayesian, - title={On Bayesian analysis of mixtures with an unknown number of components (with discussion)}, - author={Richardson, Sylvia and Green, Peter J}, - journal={Journal of the Royal Statistical Society: series B (statistical methodology)}, - volume={59}, - number={4}, - pages={731--792}, - year={1997}, - publisher={Wiley Online Library} +@article{bay2018genomic, + title={Genomic signals of selection predict climate-driven population declines in a migratory bird}, + author={Bay, Rachael A and Harrigan, Ryan J and Le Underwood, Vinh and Gibbs, H Lisle and Smith, Thomas B and Ruegg, Kristen}, + journal={Science}, + volume={359}, + number={6371}, + pages={83--86}, + year={2018}, + publisher={American Association for the Advancement of Science} } -@article{anderson2016bayesian, - title={Bayesian pedigree inference with small numbers of single nucleotide polymorphisms via a factor-graph representation}, - author={Anderson, Eric C and Ng, Thomas C}, - journal={Theoretical population biology}, - volume={107}, - pages={39--51}, - year={2016}, - publisher={Elsevier} + +@article{thurman_persist_2020, + title = {Persist in place or shift in space? {Evaluating} the adaptive capacity of species to climate change}, + url = {https://esajournals.onlinelibrary.wiley.com/doi/abs/10.1002/fee.2253}, + doi = {10.1002/fee.2253}, + urldate = {2020-10-05}, + year={2020}, + journal = {Frontiers in Ecology and the Environment}, + author = {Thurman, Lindsey L. and Stein, Bruce A. and Beever, Erik A. and Foden, Wendy and Geange, Sonya R. and Green, Nancy and Gross, John E. and Lawrence, David J. and LeDee, Olivia and Olden, Julian D. and Thompson, Laura M. and Young, Bruce E.}, } -@article{kschischang2001factor, - title={Factor graphs and the sum-product algorithm}, - author={Kschischang, Frank R and Frey, Brendan J and Loeliger, Hans-Andrea and others}, - journal={IEEE Transactions on information theory}, - volume={47}, - number={2}, - pages={498--519}, - year={2001} -} \ No newline at end of file