Andrew Farmer
My interests include programming language design in general and specifically the compilation and optimization of functional languages. I am currently working on HERMIT, a GHC plugin for transforming Core Language programs. I am interested in making HERMIT useful for prototyping and debugging GHC optimizations. In the past I worked on testing and debugging tools for the Kansas Lava project.
I also created Scotty, a small framework for specifying RESTful web services.
Email: anfarmer at fb dot com
Personal webpage: http://andrewfarmer.name
Github: https://github.com/xich
Publications
A. Gill, N. Sculthorpe, J. Dawson, A. Eskilson, A. Farmer, M. Grebe, J. Rosenbluth, R. Scott, and J. Stanton, “The remote monad design pattern,” in Proceedings of the 8th ACM SIGPLAN Symposium on Haskell. New York, NY, USA: ACM, 2015, pp. 59–70.
A. Farmer, N. Sculthorpe, and A. Gill, “Reasoning with the HERMIT: Tool support for equational reasoning on GHC Core programs,” in Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, ser. Haskell 2015. New York, NY, USA: ACM, 2015, pp. 23–34.
M. D. Adams, A. Farmer, and J. P. Magalhães, “Optimizing SYB Traversals Is Easy!” Science of Computer Programming, vol. 112, Part 2, pp. 170 – 193, 2015, selected and extended papers from Partial Evaluation and Program Manipulation 2014.
A. Farmer, “HERMIT: Mechanized Reasoning during Compilation in the Glasgow Haskell Compiler,” Ph.D. dissertation, The University of Kansas, April 2015.
A. Farmer, C. Höner zu Siederdissen, and A. Gill, “The HERMIT in the Stream,” in Proceedings of the 2014 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, ser. PEPM ’14. ACM, 2014.
M. D. Adams, A. Farmer, and J. P. Magalhães, “Optimizing SYB Is Easy!” in Proceedings of the 2014 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, ser. PEPM ’14. ACM, 2014, won Best Paper Award.
A. Gill, T. Bull, A. Farmer, G. Kimmell, and E. Komp, “Types and associated type families for hardware simulation and synthesis: The internals and externals of Kansas Lava,” Journal of Higher-Order and Symbolic Computation, pp. 1–20, 2013.
N. Sculthorpe, A. Farmer, and A. Gill, “The HERMIT in the tree: Mechanizing program transformations in the GHC core language,” in Proceedings of the 24th Symposium on Implementation and Application of Functional Languages, ser. Lecture Notes in Computer Science, vol. 8241, 2013, pp. 86–103.
A. Farmer, A. Gill, E. Komp, and N. Sculthorpe, “The HERMIT in the machine: A plugin for the interactive transformation of GHC core language programs,” in Proceedings of the ACM SIGPLAN Haskell Symposium, ser. Haskell ’12. ACM, 2012, pp. 1–12.
A. Farmer and A. Gill, “Haskell DSLs for interactive web services,” in 1st International Workshop on Cross-model Language Design and Implementation, Sep 2012.
A. Gill and A. Farmer, “Deriving an efficient FPGA implementation of a low density parity check forward error corrector,” in Proceedings of the 16th ACM SIGPLAN international conference on Functional programming, ser. ICFP ’11. ACM, Sep 2011, pp. 209–220.
A. Gill, T. Bull, D. DePardo, A. Farmer, E. Komp, and E. Perrins, “Using functional programming to generate an LDPC forward error corrector,” in Proceedings of the IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines, ser. FCCM ’11. IEEE Computer Society, May 2011, pp. 133–140.
A. Gill, T. Bull, A. Farmer, G. Kimmell, and E. Komp, “Types and type families for hardware simulation and synthesis: The internals and externals of Kansas Lava,” in Post-Proceedings of Trends in Functional Programming, ser. LNCS, vol. 6546. Springer-Verlag, May 2010.
A. Farmer, G. Kimmell, and A. Gill, “What’s the matter with Kansas Lava?” in Post-Proceedings of Trends in Functional Programming. Springer-Verlag, LNCS 6546, May 2010.
Presentations
- Reasoning with the HERMIT: Tool Support for Equational Reasoning on GHC Core Programs. 2015 Haskell Symposium. Vancouver, Canada. September 2015. Slides Video
- Reasoning with the HERMIT: Tool Support for Equational Reasoning on GHC Core Programs. UNSW Programming Languages and Systems Group. Sydney, Australia. June 2015. Slides
- HERMIT: Mechanized Reasoning during Compilation in the Glasgow Haskell Compiler. Dissertation Defense. Lawrence, Kansas. April 2015. Slides
- The HERMIT in the Stream. PEPM 2014. San Diego, California. January 2014. Slides
- RESTful Web Services with Haskell. Lambda Lounge KC. Fairway, Kansas. November 2013. Slides Video
- Prototyping GHC Optimizations with HERMIT. 2013 Haskell Implementors Workshop. Boston, Massachusetts. September 2013. Slides
- A Language for Domain-Specific Optimizations in Haskell. Symposium on Trends in Functional Programming (TFP ‘13). Provo, Utah. May 2013. Slides
- Haskell DSLs for Interactive Web Services. Janrain. Portland, Oregon. April 2013. Slides
- Introducing HERMIT: A Plugin for Transforming GHC Core Language Programs. Galois Tech Talk. Portland, Oregon. April 2013. Slides
- Towards a HERMIT-based DSL for Specifying Optimizations in GHC. Portland State PL Club. Portland, Oregon. February 2013. Slides
- Introducing HERMIT: A Plugin for Transforming GHC Core Language Programs. Portland State PL Club. Portland, Oregon. January 2013. Slides
- Haskell DSLs for Interactive Web Services. First International Workshop on Cross-model Language Design and Implementation (XLDI ‘12), Copenhagen, Denmark. September 2012. Slides Video
- HERMIT: A Plugin for Transforming GHC Core Language Programs. 2012 Oregon Programming Languages Summer School, student talk session, Eugene, Oregon. July 2012. Slides
- The HERMIT Equational Reasoning Framework. ITTC Industry Advisory Board Poster Session, Lawrence, Kansas. June 2012. Winner of Student Poster Competition.
- KURE-ing Reverse. 2011 Symposium on Implementation and Application of Functional Languages, Lawrence, Kansas. October 2011.
- Kansas Lava: Using and Abusing GHC’s Type Extensions. 2010 Haskell Implementors Workshop, Baltimore, Maryland. October 2010. Slides, Video.
- Generating Implementations of Error Correcting Codes using Kansas Lava. Portland State University, Portland, Oregon. July 2010.
- Debugging the Internals of Kansas Lava. ITTC Industry Advisory Board Poster Session, Lawrence, Kansas. June 2010.
- What’s the Matter with Kansas Lava? Symposium on Trends in Functional Programming, Norman, Oklahoma. May 2010.


Auxilliary Tool:
A purely virtual class for providing the skeleton for specific features. This allows different features to be manipulated using a common set of tools.
More...
#include <Feature.h>
Public Member Functions | |
| virtual double | evaluateImagePatch (const ImagePatch *patch)=0 |
| Turn an ImagePatch into a scalar value. This is the basic job of any feature. Must be overridden in derived classes. | |
| virtual double | evaluateImagePatch (const ImagePatch &patch) |
| Turn an ImagePatch into a scalar value. This is the basic job of any feature. | |
| virtual void | filterPatchList (PatchList *patches)=0 |
| Apply the feature to a PatchList data structure. Must be overridden in derived classes. | |
| virtual void | setFeatureParameters (const cv::Mat ¶mVec)=0 |
| Basic feature initialization. Must be overridden in derived classes. | |
| virtual std::vector< Feature * > | getSimilarFeatures (int numFeatures=1) |
| Get features similar to the current feature. This is useful for searching through feature space for local optima. | |
| virtual void | getFeatureVisualization (cv::Mat &dest) |
| Get a nice visual representation of the feature. | |
| virtual std::string | debugInfo () const |
| Prints information about this feature for help debugging. By default, this prints the feature type, and its parameters. | |
| virtual | ~Feature () |
| Destructor. By default, this cleans up the parameters, valid parameter ranges, kernel image, and name. Subclasses are responsible for cleaning up extra memory. | |
| Feature * | getFeatureOfSameTypeAndSize () const |
| Get a feature with same type / dimension as this one, but random parameters. | |
| Feature * | copy () const |
| Get a feature with the same type / dimension / parameters as this one. | |
| void | evaluateImagePatches (const std::vector< ImagePatch * > &imagePatches, std::vector< double > &scalarVals) |
| Apply feature to multiple ImagePatch objects. | |
| void | evaluateImagePatches (const std::vector< ImagePatch > &imagePatches, std::vector< double > &scalarVals) |
| Apply feature to multiple ImagePatch objects. | |
| void | evaluateImagePatches (const std::vector< ImagePatch * > &imagePatches, cv::Mat &scalarVals) |
| Apply feature to multiple ImagePatch objects. | |
| void | evaluateImagePatches (const std::vector< ImagePatch > &imagePatches, cv::Mat &scalarVals) |
| Apply feature to multiple ImagePatch objects. | |
| cv::Size | getPatchSize () const |
| Get the size of patch that is "natural" for this feature. | |
Static Public Member Functions | |
| static Feature * | getFeatureOfType (std::string featureName, cv::Size patchSize) |
| Get a subclass based on its name. If you subclass Feature, you are responsible for modifying Feature.cpp to make this function aware of your feature. This function is important for saving the state of features for classifiers. | |
Friends | |
| std::ostream & | operator<< (std::ostream &ofs, Feature *feat) |
| Write to a file. | |
| std::istream & | operator>> (std::istream &ifs, Feature *&feat) |
| Read from a file. |
Auxilliary Tool:
A purely virtual class for providing the skeleton for specific features. This allows different features to be manipulated using a common set of tools.
In general, we conceive of a feature as something that takes an image patch as input, and produces a scalar output. It may be necessary at times for a feature to apply itself efficiently to multiple image patches, using the PatchList data structure. Also, it will be necessary to find features similar to this one, and may be convenient to represent a feature in a compact parameterized form. Thus, a feature should implement the following:
virtual double evaluateImagePatch(const ImagePatch* patch); virtual void filterPatchList( PatchList* patches); virtual void setFeatureParameters(const CvMat* paramVec);
Additionally, the following utilities are provided but may be overridden:
virtual vector<Feature*> getSimilarFeatures(int numFeatures); virtual IplImage* visualizeFeature(); virtual string debugInfo() const; virtual ~Feature();
NOTE ON SUBCLASSING: In order for everything to work properly, a few rules need to be followed. First, subclasses should be able to completely reinitialize their own member variables from their parameter vector. This allows us to save a parameter vector to disk and then reconstruct the feature later. Second, subclasses should set the protected "featureName" variable, which helps determine which what the actual type of a saved feature is. Third (finally), Feature.cpp's getFeatureOfType method must be modified to be aware of your feature class, by calling the correct constructor (your constructor) when a feature of your type is read from disk.
| Feature * Feature::copy | ( | ) | const |
Get a feature with the same type / dimension / parameters as this one.
| string Feature::debugInfo | ( | ) | const [virtual] |
Prints information about this feature for help debugging. By default, this prints the feature type, and its parameters.
| double Feature::evaluateImagePatch | ( | const ImagePatch & | patch ) | [virtual] |
Turn an ImagePatch into a scalar value. This is the basic job of any feature.
| patch | The image patch to evaluate. |
| virtual double Feature::evaluateImagePatch | ( | const ImagePatch * | patch ) | [pure virtual] |
Turn an ImagePatch into a scalar value. This is the basic job of any feature. Must be overridden in derived classes.
| patch | The image patch to evaluate. |
Implemented in BoxFeature.
| void Feature::evaluateImagePatches | ( | const std::vector< ImagePatch * > & | imagePatches, |
| cv::Mat & | scalarVals | ||
| ) |
Apply feature to multiple ImagePatch objects.
| imagePatches | Patches to evaluate. |
| scalarVals | Result of evaluation, in a CvMat data structure. If the provided CvMat is NULL or has inappropriate size, it will be freed and recreated. |
| void Feature::evaluateImagePatches | ( | const std::vector< ImagePatch > & | imagePatches, |
| cv::Mat & | scalarVals | ||
| ) |
Apply feature to multiple ImagePatch objects.
| imagePatches | Patches to evaluate. |
| scalarVals | Result of evaluation, in a CvMat data structure. If the provided CvMat is NULL or has inappropriate size, it will be freed and recreated. |
| void Feature::evaluateImagePatches | ( | const std::vector< ImagePatch * > & | imagePatches, |
| std::vector< double > & | scalarVals | ||
| ) |
Apply feature to multiple ImagePatch objects.
| imagePatches | Patches to evaluate. |
| scalarVals | Result of evaluation, in an STL vector data structure. |
| void Feature::evaluateImagePatches | ( | const std::vector< ImagePatch > & | imagePatches, |
| std::vector< double > & | scalarVals | ||
| ) |
Apply feature to multiple ImagePatch objects.
| imagePatches | Patches to evaluate. |
| scalarVals | Result of evaluation, in an STL vector data structure. |
| virtual void Feature::filterPatchList | ( | PatchList * | patches ) | [pure virtual] |
Apply the feature to a PatchList data structure. Must be overridden in derived classes.
This is very important for efficiently filtering a whole image. The data for the filtering operation as well as the destination are contained in that data structure. See PatchList.h for details.
| patches | Remaining patches in a large image to be filtered. |
Implemented in BoxFeature.
| Feature * Feature::getFeatureOfSameTypeAndSize | ( | ) | const |
Get a feature with same type / dimension as this one, but random parameters.
| static Feature* Feature::getFeatureOfType | ( | std::string | featureName, |
| cv::Size | patchSize | ||
| ) | [static] |
| virtual void Feature::getFeatureVisualization | ( | cv::Mat & | dest ) | [virtual] |
Get a nice visual representation of the feature.
By default, this simply returns the "kernel" protected member variable, which subclasses should set during "setFeatureParameters".
| Size Feature::getPatchSize | ( | ) | const |
Get the size of patch that is "natural" for this feature.
Generally, features have a basic size. For example, a convolution-based feature has the size of the convolution kernel. Asking the feature to filter an ImagePatch that does not match this size may result in degraded performance.
| vector< Feature * > Feature::getSimilarFeatures | ( | int | numFeatures = 1 ) |
[virtual] |
Get features similar to the current feature. This is useful for searching through feature space for local optima.
By default, this randomly mutates the elements of the feature parameter vector. Override this function if different behavior is desired.
| numFeatures | Number of nearby features to grab. |
| virtual void Feature::setFeatureParameters | ( | const cv::Mat & | paramVec ) | [pure virtual] |
Basic feature initialization. Must be overridden in derived classes.
Subclasses should be able to completely reinitialize their own member variables from their parameter vector. This allows us to save a parameter vector to disk and then reconstruct the feature later.
| paramVec | A set of values sufficient to reconstruct a feature, or to construct a new one automatically. Must have type CV_64FC1 |
Implemented in BoxFeature, and HaarFeature.


Incidence of genomic alterations at various developmental stages.
Abbreviations: CNVs-copy number variants; SNVs-single nucleotide variants.
NA-not available.
a
Recombination rates are provided as either genome wide (eggs and polar bodies ‘trios’ or for haploid genome). Refs. [77], [91]. Total eggs-PB: 77 from 13 donors.
b
MLH1 foci in spermatocytes from Ref. [155]. Meiotic recombination rates from single haploid sperm sequencing from three studies and 22 donors. Total sperms: > 35,000 Refs. [116], [117], [118]. SNV rate from [117].
c
Aneuploidies from Refs. [141], [144], [156] . Large CNV rates inferred from Refs. [140], [157].
d
Paternal and maternal recombination rates inferred from 430 preimplantation embryos (blastocysts). Refs. [91], [98]. Large CNV and aneuploidy rates from over 8000 blastocyst embryos. Ref. [23].
e
Pregnancy loss data from 1st trimester. Ref. [20].
f
Aneuploidy in 532 Stillbirths [158].
g
Live birth meiotic recombination rates computed from [159] in [117].


The project is being developed using the physical infrastructure and internal equipment of the proposing institution, as well as cloud resources from Microsoft Azure, originated of a Microsoft Research concession.
Meeting minutes and project progress reports
All the documentation referring to the Work Group can be acessed at RNP's Wiki (restricted access)Source code of the service prototype
The source code is available at git.rnp.br (restricted access). Instructions about the access can be found at http://wiki.rnp.br/display/GT/Gitlab.Links:


| 1 |
Graham_2006 |
Replication of Murine Hepatitis Virus Is Regulated by Papain-Like Proteinase 1 Processing of Nonstructural Proteins 1, 2, and 3 |
Graham, Rachel L.; Denison, Mark R. |
2006 |
2006-09-13 |
None |
N |
PMC1642617 |
16971428.0 |
10.1128/jvi.01428-06 |
cgq4szcn |
0.924240 |
Brockway_2005 |
Brockway_2005 |
| 2 |
Liu_P_2013 |
Functional analysis of the stem loop S3 and S4 structures in the coronavirus 3′UTR |
Liu, Pinghua; Yang, Dong; Carter, Kristen; Masud, Faryal; Leibowitz, Julian L. |
2013 |
2013-08-15 |
PMC |
N |
PMC3700632 |
23683838.0 |
10.1016/j.virol.2013.04.021 |
ehprox1q |
0.874974 |
|
|
| 3 |
Thackray_2005 |
Substitutions of conserved amino acids in the receptor-binding domain of the spike glycoprotein affect utilization of murine CEACAM1a by the murine coronavirus MHV-A59 |
Thackray, Larissa B.; Turner, Brian C.; Holmes, Kathryn V. |
2005 |
2005-03-30 |
PMC |
N |
PMC7111733 |
15749126.0 |
10.1016/j.virol.2005.01.016 |
vft163v0 |
0.834331 |
|
Thackray_2004 |
| 4 |
Jimenez-Guardeño_2015 |
Identification of the Mechanisms Causing Reversion to Virulence in an Attenuated SARS-CoV for the Design of a Genetically Stable Vaccine |
Jimenez-Guardeño, Jose M.; Regla-Nava, Jose A.; Nieto-Torres, Jose L.; DeDiego, Marta L.; Castaño-Rodriguez, Carlos; Fernandez-Delgado, Raul; Perlman, Stanley; Enjuanes, Luis |
2015 |
2015-10-29 |
COMM-USE |
N |
PMC4626112 |
26513244.0 |
10.1371/journal.ppat.1005215 |
7u11aj7g |
0.824542 |
Si_F_2020, Shen_2005 |
Zhao_2019, Wang_2008 |
| 5 |
Park_2009 |
The nsP3 macro domain is important for Sindbis virus replication in neurons and neurovirulence in mice |
Park, Eunhye; Griffin, Diane E. |
2009 |
2009-06-05 |
None |
N |
PMC2683903 |
19395054.0 |
10.1016/j.virol.2009.03.031 |
ikikdmjw |
0.799801 |
Brockway_2005 |
Brockway_2005 |
| 6 |
Phillips_2001 |
Multiple regions of the murine coronavirus spike glycoprotein influence neurovirulence |
Phillips, Joanna J.; Chua, MingMing; Seo, Su-hun; Weiss, Susan R. |
2001 |
2001-01-01 |
PMC |
N |
PMC7095106 |
11582514.0 |
10.1080/135502801753170273 |
bq1u3d4z |
0.782968 |
Tallmadge_2008, Si_F_2020 |
|
| 7 |
Devhare_2014 |
Analysis of helicase domain mutations in the hepatitis E virus derived from patients with fulminant hepatic failure: Effects on enzymatic activities and virus replication |
Devhare, Pradip; Sharma, Kavyanjali; Mhaindarkar, Vaibhav; Arankalle, Vidya; Lole, Kavita |
2014 |
2014-05-12 |
PMC |
N |
|
24630891.0 |
10.1016/j.virusres.2014.02.018 |
n2qfm8jg |
0.781448 |
|
|
| 8 |
Chang_2011 |
Construction and genetic analysis of murine hepatitis virus strain A59 Nsp16 temperature sensitive mutant and the revertant virus |
Chang, Guo-hui; Luo, Bao-jun; Lu, Pin; Lin, Lei; Wu, Xiao-yan; Li, Jing; Hu, Yi; Zhu, Qing-yu |
2011 |
2011-02-18 |
PMC |
N |
PMC7091325 |
21331887.0 |
10.1007/s12250-011-3145-x |
7gytw8j4 |
0.739597 |
Tallmadge_2008, Armesto_2007, Bickerton_2017, Keep_2014, Keep_2015 |
Martin_1988 |
| 9 |
de_Haan_2002 |
The Group-Specific Murine Coronavirus Genes Are Not Essential, but Their Deletion, by Reverse Genetics, Is Attenuating in the Natural Host |
de Haan, Cornelis A.M.; Masters, Paul S.; Shen, Xiaolan; Weiss, Susan; Rottier, Peter J.M. |
2002 |
2002-04-25 |
PMC |
N |
PMC7133727 |
12036329.0 |
10.1006/viro.2002.1412 |
tz2rpixt |
0.694582 |
Armesto_2007 |
|
| 10 |
Brockway_2005 |
Mutagenesis of the murine hepatitis virus nsp1-coding region identifies residues important for protein processing, viral RNA synthesis, and viral replication |
Brockway, Sarah M.; Denison, Mark R. |
2005 |
2005-09-30 |
PMC |
N |
PMC7111834 |
16051301.0 |
10.1016/j.virol.2005.06.035 |
tgpsu4qz |
0.694368 |
|
|
| 11 |
Lei_L_2013 |
Attenuation of Mouse Hepatitis Virus by Deletion of the LLRKxGxKG Region of Nsp1 |
Lei, Lin; Ying, Sun; Baojun, Luo; Yi, Yang; Xiang, He; Wenli, Su; Zounan, Sun; Deyin, Guo; Qingyu, Zhu; Jingmei, Liu; Guohui, Chang |
2013 |
2013-04-08 |
COMM-USE |
N |
PMC3620170 |
23593419.0 |
10.1371/journal.pone.0061166 |
exvngzza |
0.665291 |
Tallmadge_2008 |
|
| 12 |
Meyer_2007 |
Identification of a novel protein encoded by the latency-related gene of bovine herpesvirus 1 |
Meyer, Florencia; Perez, Sandra; Jiang, Yunquan; Zhou, You; Henderson, Gail; Jones, Clinton |
2007 |
2007-01-01 |
PMC |
N |
PMC7095411 |
18097888.0 |
10.1080/13550280701620754 |
gjm9dml1 |
0.663188 |
Tallmadge_2008, Armesto_2007 |
|
| 13 |
Kang_2007 |
Biochemical and Genetic Analyses of Murine Hepatitis Virus Nsp15 Endoribonuclease |
Kang, Hyojeung; Bhardwaj, Kanchan; Li, Yi; Palaninathan, Satheesh; Sacchettini, James; Guarino, Linda; Leibowitz, Julian L.; Kao, C. Cheng |
2007 |
2007-09-26 |
None |
N |
PMC2168834 |
17898055.0 |
10.1128/jvi.00547-07 |
8x6j2gdc |
0.661380 |
|
|
| 14 |
Kautz_2018 |
Low-fidelity Venezuelan equine encephalitis virus polymerase mutants to improve live-attenuated vaccine safety and efficacy |
Kautz, Tiffany F; Guerbois, Mathilde; Khanipov, Kamil; Patterson, Edward I; Langsjoen, Rose M; Yun, Ruimei; Warmbrod, Kelsey L; Fofanov, Yuriy; Weaver, Scott C; Forrester, Naomi L |
2018 |
2018-03-06 |
NONCOMM |
N |
PMC5841381 |
29593882.0 |
10.1093/ve/vey004 |
p83ondy8 |
0.637719 |
Tallmadge_2008 |
|
| 15 |
Züst_2007 |
Coronavirus Non-Structural Protein 1 Is a Major Pathogenicity Factor: Implications for the Rational Design of Coronavirus Vaccines |
Züst, Roland; Cervantes-Barragán, Luisa; Kuri, Thomas; Blakqori, Gjon; Weber, Friedemann; Ludewig, Burkhard; Thiel, Volker |
2007 |
2007-08-10 |
COMM-USE |
N |
PMC1941747 |
17696607.0 |
10.1371/journal.ppat.0030109 |
20los4eg |
0.589352 |
Tallmadge_2008 |
Brockway_2005, Brun_2014 |
| 16 |
Tsai_2003 |
Amino acid substitutions within the heptad repeat domain 1 of murine coronavirus spike protein restrict viral antigen spread in the central nervous system |
Tsai, Jean C; Groot, Linda de; Pinon, Josefina D; Iacono, Kathryn T; Phillips, Joanna J; Seo, Su-hun; Lavi, Ehud; Weiss, Susan R |
2003 |
2003-08-01 |
PMC |
N |
PMC7125853 |
12919742.0 |
10.1016/s0042-6822(03)00248-4 |
22kezpuq |
0.585688 |
|
Leparc-Goffart_1997 |
| 17 |
Thackray_2004 |
Amino acid substitutions and an insertion in the spike glycoprotein extend the host range of the murine coronavirus MHV-A59 |
Thackray, Larissa B; Holmes, Kathryn V |
2004 |
2004-07-01 |
PMC |
N |
PMC7127820 |
15207636.0 |
10.1016/j.virol.2004.04.005 |
zlsmf44a |
0.583670 |
Tallmadge_2008, Armesto_2007, Bickerton_2017 |
|
| 18 |
Faaberg_2010 |
In vivo growth of porcine reproductive and respiratory syndrome virus engineered nsp2 deletion mutants |
Faaberg, Kay S.; Kehrli, Marcus E.; Lager, Kelly M.; Guo, Baoqing; Han, Jun |
2010 |
2010-12-31 |
PMC |
N |
PMC7114397 |
20673840.0 |
10.1016/j.virusres.2010.07.024 |
99qg7dkk |
0.580335 |
Si_F_2020, Tallmadge_2008, Armesto_2007 |
|
| 19 |
Martin_1988 |
Temperature-sensitive mutants of mouse hepatitis virus type 3 (MHV-3): isolation, biochemical and genetic characterization |
Martin, J. -P.; Koehren, Françoise; Rannou, J. -J.; Kirn, A. |
1988 |
1988-01-01 |
PMC |
N |
PMC7086851 |
2840870.0 |
10.1007/bf01487679 |
9jso4y3a |
0.571583 |
Youn_2005, Haqshenas_2007 |
Yoshikura_1981 |
| 20 |
Shen_2004 |
A single amino acid mutation in the spike protein of coronavirus infectious bronchitis virus hampers its maturation and incorporation into virions at the nonpermissive temperature |
Shen, S; Law, Y.C; Liu, D.X |
2004 |
2004-09-01 |
PMC |
N |
PMC7126609 |
15302214.0 |
10.1016/j.virol.2004.06.016 |
krb1eidw |
0.565262 |
Shen_2005, Si_F_2020 |
Leparc-Goffart_1997 |
| 21 |
Tan_F_2011 |
Identification of non-essential regions in nucleocapsid protein of porcine reproductive and respiratory syndrome virus for replication in cell culture |
Tan, Feifei; Wei, Zuzhang; Li, Yanhua; Zhang, Rong; Zhuang, Jinshan; Sun, Zhi; Yuan, Shishan |
2011 |
2011-06-30 |
PMC |
N |
PMC7114398 |
21440019.0 |
10.1016/j.virusres.2011.03.011 |
lopcb77c |
0.564566 |
|
|
| 22 |
Sandekian_2015 |
A single amino acid substitution in the mRNA capping enzyme λ2 of a mammalian orthoreovirus mutant increases interferon sensitivity |
Sandekian, Véronique; Lemay, Guy |
2015 |
2015-09-30 |
PMC |
N |
|
25985441.0 |
10.1016/j.virol.2015.04.020 |
a1r4o6bj |
0.556886 |
Tallmadge_2008, Armesto_2007, Bickerton_2017, Keep_2015 |
|
| 23 |
de_Haan_2007 |
Manipulation of the Coronavirus Genome Using Targeted RNA Recombination with Interspecies Chimeric Coronaviruses |
de Haan, Cornelis A.M.; Haijema, Bert Jan; Masters, Paul S.; Rottier, Peter J.M. |
2007 |
2007-11-28 |
PMC |
N |
PMC7120397 |
19057874.0 |
10.1007/978-1-59745-181-9_17 |
m8jf9n6x |
0.533564 |
Tallmadge_2008, Armesto_2007, Bickerton_2017, Keep_2014 |
Brun_2014 |
| 24 |
Li_S_2020 |
Regulation of the ER Stress Response by the Ion Channel Activity of the Infectious Bronchitis Coronavirus Envelope Protein Modulates Virion Release, Apoptosis, Viral Fitness, and Pathogenesis |
Li, Shumin; Yuan, Lixia; Dai, Guo; Chen, Rui Ai; Liu, Ding Xiang; Fung, To Sing |
2020 |
2020-01-24 |
COMM-USE |
N |
PMC6992538 |
32038520.0 |
10.3389/fmicb.2019.03022 |
t52cryyz |
0.529085 |
|
|
| 25 |
Kao_C_2019 |
Investigation of the Role of the Spike Protein in Reversing the Virulence of the Highly Virulent Taiwan Porcine Epidemic Diarrhea Virus Pintung 52 Strains and Its Attenuated Counterpart |
Kao, Chi-Fei; Chang, Hui-Wen |
2019 |
2019-12-30 |
COMM-USE |
N |
PMC7019868 |
31905842.0 |
10.3390/v12010041 |
9dn5c01n |
0.513369 |
Si_F_2020 |
Kao_C_2018 |
| 26 |
Eckerle_2010 |
Infidelity of SARS-CoV Nsp14-Exonuclease Mutant Virus Replication Is Revealed by Complete Genome Sequencing |
Eckerle, Lance D.; Becker, Michelle M.; Halpin, Rebecca A.; Li, Kelvin; Venter, Eli; Lu, Xiaotao; Scherbakova, Sana; Graham, Rachel L.; Baric, Ralph S.; Stockwell, Timothy B.; Spiro, David J.; Denison, Mark R. |
2010 |
2010-05-06 |
COMM-USE |
N |
PMC2865531 |
20463816.0 |
10.1371/journal.ppat.1000896 |
6n4updwi |
0.507654 |
|
Brockway_2005 |
| 27 |
Leparc-Goffart_1997 |
Altered Pathogenesis of a Mutant of the Murine Coronavirus MHV-A59 Is Associated with a Q159L Amino Acid Substitution in the Spike Protein |
Leparc-Goffart, Isabelle; Hingley, Susan T.; Chua, Ming Ming; Jiang, Xinhe; Lavi, Ehud; Weiss, Susan R. |
1997 |
1997-12-08 |
PMC |
N |
PMC7131600 |
9426441.0 |
10.1006/viro.1997.8877 |
srb8ac7l |
0.492082 |
Tallmadge_2008, Si_F_2020 |
|
| 28 |
Das_Sarma_2002 |
Enhanced green fluorescent protein expression may be used to monitor murine coronavirus spread in vitro and in the mouse central nervous system |
Das Sarma, Jayasri; Scheen, Esther; Seo, Su-hun; Koval, Michael; Weiss, Susan R. |
2002 |
2002-01-01 |
PMC |
N |
PMC7095158 |
12402164.0 |
10.1080/13550280260422686 |
7c0so2vl |
0.485877 |
Tallmadge_2008 |
Wang_2013, Brun_2014 |
| 29 |
Plyusnina_2005 |
Recombinant Tula hantavirus shows reduced fitness but is able to survive in the presence of a parental virus: analysis of consecutive passages in a cell culture |
Plyusnina, Angelina; Plyusnin, Alexander |
2005 |
2005-02-22 |
COMM-USE |
N |
PMC552329 |
15725355.0 |
10.1186/1743-422x-2-12 |
04cuk2cn |
0.479858 |
Tallmadge_2008, Armesto_2007 |
Mittelholzer_1997, Zhao_2019, Lazouskaya_2014 |
| 30 |
McFadden_2011 |
Norovirus Regulation of the Innate Immune Response and Apoptosis Occurs via the Product of the Alternative Open Reading Frame 4 |
McFadden, Nora; Bailey, Dalan; Carrara, Guia; Benson, Alicia; Chaudhry, Yasmin; Shortland, Amita; Heeney, Jonathan; Yarovinsky, Felix; Simmonds, Peter; Macdonald, Andrew; Goodfellow, Ian |
2011 |
2011-12-08 |
COMM-USE |
N |
PMC3234229 |
22174679.0 |
10.1371/journal.ppat.1002413 |
7njgrzzb |
0.474055 |
Tallmadge_2008, Si_F_2020 |
|
| 31 |
Fan_Z_2012 |
An alternative −1/+2 open reading frame exists within viral Npro(1–19) region of bovine viral diarrhea virus SD-1 |
Fan, Zhen-Chuan; Bird, R. Curtis |
2012 |
2012-01-31 |
PMC |
N |
|
22079882.0 |
10.1016/j.virusres.2011.10.022 |
xlw4b8fy |
0.472793 |
Armesto_2007, Tallmadge_2008, Bickerton_2017 |
|
| 32 |
Fang_2007 |
An arginine-to-proline mutation in a domain with undefined functions within the helicase protein (Nsp13) is lethal to the coronavirus infectious bronchitis virus in cultured cells |
Fang, Shouguo; Chen, Bo; Tay, Felicia P.L.; Ng, Beng Sern; Liu, Ding Xing |
2007 |
2007-02-05 |
PMC |
N |
PMC7111978 |
16979681.0 |
10.1016/j.virol.2006.08.020 |
jfjrk9gy |
0.467420 |
Brockway_2005, Armesto_2007 |
Brockway_2005 |
| 33 |
Liu_S_2009 |
Altered pathogenicity, immunogenicity, tissue tropism and 3′-7kb region sequence of an avian infectious bronchitis coronavirus strain after serial passage in embryos |
Liu, Shengwang; Zhang, Xiaonan; Gong, Liyang; Yan, Baolong; Li, Chengren; Han, Zongxi; Shao, Yuhao; Li, Huixin; Kong, Xiangang |
2009 |
2009-07-23 |
PMC |
N |
PMC7115700 |
19523910.0 |
10.1016/j.vaccine.2009.05.072 |
grz0fe9l |
0.455380 |
Si_F_2020, Tallmadge_2008 |
|
| 34 |
Al-Mulla_2014 |
Competitive Fitness in Coronaviruses Is Not Correlated with Size or Number of Double-Membrane Vesicles under Reduced-Temperature Growth Conditions |
Al-Mulla, Hawaa M. N.; Turrell, Lauren; Smith, Nicola M.; Payne, Luke; Baliji, Surendranath; Züst, Roland; Thiel, Volker; Baker, Susan C.; Siddell, Stuart G.; Neuman, Benjamin W. |
2014 |
2014-04-01 |
NONCOMM |
N |
PMC3977362 |
24692638.0 |
10.1128/mbio.01107-13 |
tfuupgkg |
0.436391 |
|
|
| 35 |
Popova_2002 |
The Spike but Not the Hemagglutinin/Esterase Protein of Bovine Coronavirus Is Necessary and Sufficient for Viral Infection |
Popova, Rada; Zhang, Xuming |
2002 |
2002-03-01 |
PMC |
N |
PMC7131450 |
11886280.0 |
10.1006/viro.2001.1307 |
ii9ilvp4 |
0.430091 |
Tallmadge_2008 |
|
| 36 |
Poirier_2016 |
Low-Fidelity Polymerases of Alphaviruses Recombine at Higher Rates To Overproduce Defective Interfering Particles |
Poirier, Enzo Z.; Mounce, Bryan C.; Rozen-Gagnon, Kathryn; Hooikaas, Peter Jan; Stapleford, Kenneth A.; Moratorio, Gonzalo; Vignuzzi, Marco |
2016 |
2016-02-11 |
COMM-USE |
N |
PMC4810721 |
26676773.0 |
10.1128/jvi.02921-15 |
284g4ddc |
0.428208 |
|
|
| 37 |
Kim_S_2013 |
Mutations in the Fusion Protein Cleavage Site of Avian Paramyxovirus Serotype 4 Confer Increased Replication and Syncytium Formation In Vitro but Not Increased Replication and Pathogenicity in Chickens and Ducks |
Kim, Shin-Hee; Xiao, Sa; Shive, Heather; Collins, Peter L.; Samal, Siba K. |
2013 |
2013-01-14 |
COMM-USE |
N |
PMC3544850 |
23341874.0 |
10.1371/journal.pone.0050598 |
y24kbzy1 |
0.421966 |
Tallmadge_2008, Armesto_2007, Si_F_2020 |
Brockway_2005 |
| 38 |
DeDiego_2008 |
Pathogenicity of severe acute respiratory coronavirus deletion mutants in hACE-2 transgenic mice |
DeDiego, Marta L.; Pewe, Lecia; Alvarez, Enrique; Rejas, Maria Teresa; Perlman, Stanley; Enjuanes, Luis |
2008 |
2008-07-05 |
PMC |
N |
PMC2810402 |
18452964.0 |
10.1016/j.virol.2008.03.005 |
dj3vj4tk |
0.420257 |
Shen_2005, Tallmadge_2008 |
|
| 39 |
Ackermann_2007 |
Adaptation of Borna Disease Virus to New Host Species Attributed to Altered Regulation of Viral Polymerase Activity |
Ackermann, Andreas; Staeheli, Peter; Schneider, Urs |
2007 |
2007-05-23 |
PMC |
N |
PMC1951315 |
17522214.0 |
10.1128/jvi.00334-07 |
9xvdkmzt |
0.397270 |
|
Mittelholzer_1997 |
| 40 |
Phillips_2013 |
Comparative sequence analysis of full-length genome of FIPV at different tissue passage levels |
Phillips, J. E.; Hilt, D. A.; Jackwood, M. W. |
2013 |
2013-08-31 |
PMC |
N |
PMC7089344 |
23996606.0 |
10.1007/s11262-013-0972-5 |
5arolvc0 |
0.396258 |
Shen_2005, Tallmadge_2008, Si_F_2020 |
Ehmann_2018 |
| 41 |
Beura_2012 |
Identification of amino acid residues important for anti-IFN activity of porcine reproductive and respiratory syndrome virus non-structural protein 1 |
Beura, Lalit K.; Subramaniam, Sakthivel; Vu, Hiep L.X.; Kwon, Byungjoon; Pattnaik, Asit K.; Osorio, Fernando A. |
2012 |
2012-11-25 |
PMC |
N |
PMC7111991 |
22995188.0 |
10.1016/j.virol.2012.08.034 |
pv4l8apm |
0.395922 |
Shen_2005, Si_F_2020 |
|
| 42 |
Yu_D_2009 |
Reverse genetic manipulation of the overlapping coding regions for structural proteins of the type II porcine reproductive and respiratory syndrome virus |
Yu, Dandan; Lv, Jian; Sun, Zhi; Zheng, Haihong; Lu, Jiaqi; Yuan, Shishan |
2009 |
2009-01-05 |
PMC |
N |
|
18977502.0 |
10.1016/j.virol.2008.09.013 |
t6v85tcm |
0.395922 |
Armesto_2007, Bickerton_2017, Keep_2014, Keep_2015 |
|
| 43 |
Yamada_2009 |
Acquisition of Cell–Cell Fusion Activity by Amino Acid Substitutions in Spike Protein Determines the Infectivity of a Coronavirus in Cultured Cells |
Yamada, Yoshiyuki; Liu, Xiao Bo; Fang, Shou Guo; Tay, Felicia P. L.; Liu, Ding Xiang |
2009 |
2009-07-02 |
COMM-USE |
N |
PMC2700284 |
19572016.0 |
10.1371/journal.pone.0006130 |
gkm7i62s |
0.383175 |
Shen_2005, Si_F_2020 |
|
| 44 |
Wanitchang_2019 |
A Single V672F Substitution in the Spike Protein of Field-Isolated PEDV Promotes Cell–Cell Fusion and Replication in VeroE6 Cells |
Wanitchang, Asawin; Saenboonrueng, Janya; Kaewborisuth, Challika; Srisutthisamphan, Kanjana; Jongkaewwattana, Anan |
2019 |
2019-03-20 |
COMM-USE |
N |
PMC6466060 |
30897856.0 |
10.3390/v11030282 |
kpxdyhbo |
0.379694 |
Si_F_2020, Shen_2005 |
Bickerton_2018 |
| 45 |
Si_F_2020 |
Porcine Epidemic Diarrhea Virus (PEDV) ORF3 Enhances Viral Proliferation by Inhibiting Apoptosis of Infected Cells |
Si, Fusheng; Hu, Xiaoxia; Wang, Chenyang; Chen, Bingqing; Wang, Ruiyang; Dong, Shijuan; Yu, Ruisong; Li, Zhen |
2020 |
2020-02-14 |
COMM-USE |
N |
PMC7077256 |
32075094.0 |
10.3390/v12020214 |
3kl1ftlg |
0.379229 |
Tallmadge_2008, Armesto_2007 |
Brockway_2005 |
| 46 |
Fang_2013 |
Identification of two ATR-dependent phosphorylation sites on coronavirus nucleocapsid protein with nonessential functions in viral replication and infectivity in cultured cells |
Fang, Shouguo; Xu, Linghui; Huang, Mei; Qisheng Li, Frank; Liu, D.X. |
2013 |
2013-09-30 |
PMC |
N |
PMC7111981 |
23849791.0 |
10.1016/j.virol.2013.06.014 |
7kwkla73 |
0.366220 |
|
|
| 47 |
Pfefferle_2009 |
Reverse genetic characterization of the natural genomic deletion in SARS-Coronavirus strain Frankfurt-1 open reading frame 7b reveals an attenuating function of the 7b protein in-vitro and in-vivo |
Pfefferle, Susanne; Krähling, Verena; Ditt, Vanessa; Grywna, Klaus; Mühlberger, Elke; Drosten, Christian |
2009 |
2009-08-24 |
COMM-USE |
N |
PMC2739521 |
19698190.0 |
10.1186/1743-422x-6-131 |
i8cywew0 |
0.362133 |
Armesto_2007, Tallmadge_2008, Bickerton_2017 |
|
| 48 |
Lissenberg_2005 |
Luxury at a Cost? Recombinant Mouse Hepatitis Viruses Expressing the Accessory Hemagglutinin Esterase Protein Display Reduced Fitness In Vitro |
Lissenberg, A.; Vrolijk, M. M.; van Vliet, A. L. W.; Langereis, M. A.; de Groot-Mijnes, J. D. F.; Rottier, P. J. M.; de Groot, R. J. |
2005 |
2005-11-23 |
PMC |
N |
PMC1316008 |
16306576.0 |
10.1128/jvi.79.24.15054-15063.2005 |
1cj5nnem |
0.361216 |
|
|
| 49 |
Sunstrum_1988 |
Pathogenicity of glycoprotein C negative mutants of herpes simplex virus type 1 for the mouse central nervous system |
Sunstrum, James C.; Chrisp, Clarence E.; Levine, Myron; Glorioso, Joseph C. |
1988 |
1988-08-31 |
PMC |
N |
PMC7134065 |
2845681.0 |
10.1016/0168-1702(88)90064-0 |
kpvob8xh |
0.357860 |
Tallmadge_2008, Si_F_2020 |
Yoshikura_1981, Mittelholzer_1997 |
| 50 |
Haqshenas_2007 |
A 2a/1b full-length p7 inter-genotypic chimeric genome of hepatitis C virus is infectious in vitro |
Haqshenas, G.; Dong, X.; Ewart, G.; Bowden, S.; Gowans, E.J. |
2007 |
2007-03-30 |
PMC |
N |
PMC7103279 |
17097709.0 |
10.1016/j.virol.2006.10.014 |
oflazi3s |
0.355078 |
Tallmadge_2008, Armesto_2007 |
|
| 51 |
Dedeurwaerder_2013 |
The role of accessory proteins in the replication of feline infectious peritonitis virus in peripheral blood monocytes |
Dedeurwaerder, Annelike; Desmarets, Lowiese M.; Olyslaegers, Dominique A.J.; Vermeulen, Ben L.; Dewerchin, Hannah L.; Nauwynck, Hans J. |
2013 |
2013-03-23 |
PMC |
N |
PMC7117191 |
23182908.0 |
10.1016/j.vetmic.2012.10.032 |
5rwcne41 |
0.346998 |
Si_F_2020 |
|
| 52 |
Abraham_2020 |
Both ADP-Ribosyl-Binding and Hydrolase Activities of the Alphavirus nsP3 Macrodomain Affect Neurovirulence in Mice |
Abraham, Rachy; McPherson, Robert L.; Dasovich, Morgan; Badiee, Mohsen; Leung, Anthony K. L.; Griffin, Diane E. |
2020 |
2020-02-11 |
COMM-USE |
N |
PMC7018654 |
32047134.0 |
10.1128/mbio.03253-19 |
74xu1z5j |
0.337180 |
Tallmadge_2008 |
|
| 53 |
Konstantoulas_2015 |
Single amino acid substitution (G42E) in the receptor binding domain of mouse mammary tumour virus envelope protein facilitates infection of non-murine cells in a transferrin receptor 1-independent manner |
Konstantoulas, Constantine James; Lamp, Benjamin; Rumenapf, Tillman Hans; Indik, Stanislav |
2015 |
2015-05-16 |
COMM-USE |
N |
PMC4445801 |
25980759.0 |
10.1186/s12977-015-0168-2 |
yzrphe0x |
0.333227 |
|
|
| 54 |
Graham_2012 |
A live, impaired-fidelity coronavirus vaccine protects in an aged, immunocompromised mouse model of lethal disease |
Graham, Rachel L.; Becker, Michelle M.; Eckerle, Lance D.; Bolles, Meagan; Denison, Mark R.; Baric, Ralph S. |
2012 |
2012-11-11 |
PMC |
N |
PMC3518599 |
23142821.0 |
10.1038/nm.2972 |
1u0cwnoq |
0.333067 |
|
Kautz_2018 |
| 55 |
Schaap-Nutt_2010 |
Human parainfluenza virus type 2 V protein inhibits interferon production and signaling and is required for replication in non-human primates |
Schaap-Nutt, Anne; D'Angelo, Christopher; Scull, Margaret A.; Amaro-Carambot, Emerito; Nishio, Machiko; Pickles, Raymond J.; Collins, Peter L.; Murphy, Brian R.; Schmidt, Alexander C. |
2010 |
2010-02-20 |
None |
N |
PMC2822077 |
19969320.0 |
10.1016/j.virol.2009.11.018 |
jh65bga7 |
0.330045 |
Tallmadge_2008 |
|
| 56 |
Cruz_2011 |
Coronavirus Gene 7 Counteracts Host Defenses and Modulates Virus Virulence |
Cruz, Jazmina L. G.; Sola, Isabel; Becares, Martina; Alberca, Berta; Plana, Joan; Enjuanes, Luis; Zuñiga, Sonia |
2011 |
2011-06-09 |
COMM-USE |
N |
PMC3111541 |
21695242.0 |
10.1371/journal.ppat.1002090 |
d67qcln4 |
0.328718 |
|
|
| 57 |
Yuan_2001 |
Complete genome comparison of porcine reproductive and respiratory syndrome virus parental and attenuated strains |
Yuan, Shishan; Mickelson, Daniel; Murtaugh, Michael P.; Faaberg, Kay S. |
2001 |
2001-04-30 |
PMC |
N |
PMC7125765 |
11226578.0 |
10.1016/s0168-1702(00)00250-1 |
810jxs8q |
0.317878 |
Si_F_2020, Armesto_2007 |
Song_2011, Yuan_2001 |
| 58 |
Muth_2018 |
Attenuation of replication by a 29 nucleotide deletion in SARS-coronavirus acquired during the early stages of human-to-human transmission |
Muth, Doreen; Corman, Victor Max; Roth, Hanna; Binger, Tabea; Dijkman, Ronald; Gottula, Lina Theresa; Gloza-Rausch, Florian; Balboni, Andrea; Battilani, Mara; Rihtarič, Danijela; Toplak, Ivan; Ameneiros, Ramón Seage; Pfeifer, Alexander; Thiel, Volker; Drexler, Jan Felix; Müller, Marcel Alexander; Drosten, Christian |
2018 |
2018-10-11 |
COMM-USE |
N |
PMC6181990 |
30310104.0 |
10.1038/s41598-018-33487-8 |
khdu343s |
0.315646 |
Armesto_2007, Si_F_2020, Bickerton_2017 |
Jimenez-Guardeño_2015 |
| 59 |
Schaap-Nutt_2010 |
Growth restriction of an experimental live attenuated human parainfluenza virus type 2 vaccine in human ciliated airway epithelium in vitro parallels attenuation in African green monkeys |
Schaap-Nutt, Anne; Scull, Margaret A.; Schmidt, Alexander C.; Murphy, Brian R.; Pickles, Raymond J. |
2010 |
2010-03-24 |
None |
N |
PMC2844349 |
20139039.0 |
10.1016/j.vaccine.2010.01.050 |
hf3ke33v |
0.313740 |
Tallmadge_2008 |
|
| 60 |
Du_J_2011 |
Development of recombinant rabies viruses vectors with Gaussia luciferase reporter based on Chinese vaccine strain CTN181 |
Du, Jialiang; Tang, Qing; Huang, Ying; Rodney, Willoughby E.; Wang, Lihua; Liang, Guodong |
2011 |
2011-09-30 |
PMC |
N |
PMC7114501 |
21645562.0 |
10.1016/j.virusres.2011.05.018 |
t1fz9vrn |
0.311333 |
Tallmadge_2008, Armesto_2007, Bickerton_2017, Keep_2014, Keep_2015 |
|
| 61 |
Stohlman_1979 |
Characterization of the cold-sensitive murine hepatitis virus mutants rescued from latently infected cells by cell fusion |
Stohlman, Stephen A.; Sakaguchi, Alan Y.; Weiner, Leslie P. |
1979 |
1979-10-30 |
PMC |
N |
PMC7130992 |
228481.0 |
10.1016/0042-6822(79)90567-1 |
b6rmlpcv |
0.302407 |
Tallmadge_2008, Armesto_2007, Bickerton_2017 |
Yoshikura_1981, Mittelholzer_1997, Martin_1988 |


Call for Proposals
The Call for Proposals ends on Monday, May 16, 2016 EDT. Make sure you submit your talks before then.
Background
PyGotham 2016, New York City's annual Python conference, will take place from Saturday, July 16 through Sunday, July 17, 2016 New York, NY.
Anyone interested in speaking is encouraged to submit a proposal for talks and tutorials. There are no restrictions on topics, but we recommend they be of interest to Pythonistas. Talks will fill slots of 25 minutes and 55 minutes, including time for questions and answers.
Who Should Submit?
Everyone is encouraged to submit a proposal. We are looking for speakers of all different speaking and Python experience levels, from first-timers to experienced veterans.
The audience's experience level will be just as diverse, so feel free to cater your talk to a specific experience level.
Looking for Ideas?
One of the best ways to come up with an idea is to think about something you want to learn about. It's a great way to learn about the topic and you'll be able to share your experiences with the audience.
Another great source of topics is challenges you've recently overcome. Have you recently ported a library from Python 2 to 3? Perhaps you've recently helped your application scale to a greater number of users. Or maybe you recently learned how to use a library to simplify your data analysis. Experiences like these are usually full of great tips and tricks to share.
Still looking for ideas? Here are some topics from recent NYC Python and Flask-NYC events:
- Testing
- Performance
- Packaging
- CPython
- Data analysis
- Libraries such as Twisted, asyncio, and scikit-learn


RTS Credit Webservice Client - PHP 5 class for RTSCredit.com Broker Webservice ========================================================= This class is a set of PHP functions to access RTSCredit.com Broker Webservice Author: Musa Ulker<EMAIL_ADDRESS>Version: 1.0 License: MIT Website: http://www.musaulker.com Copyright (c) 2010 Musa Ulker Features -------- * Supports Proxy * Access all of RTSCredit Webservice Requirement ----------- * PHP 5 with Soap and SimpleXML enabled Functions & Examples -------------------- See example.php Contact ------- Please send comments and bug reports to<EMAIL_ADDRESS>Documentation generated on Sat, 28 Aug 2010 06:54:08 +0300 by phpDocumentor 1.4.1


Source code for benchbuild.utils.unionfs
import logging
import os
import subprocess
import psutil
from plumbum import local
from benchbuild import settings
from benchbuild.utils.container import in_container
LOG = logging.getLogger(__name__)
[docs]def unionfs(rw='rw', ro=None, union='union'):
"""
Decorator for the UnionFS feature.
This configures a unionfs for projects. The given base_dir and/or image_dir
are layered as follows:
image_dir=RW:base_dir=RO
All writes go to the image_dir, while base_dir delivers the (read-only)
versions of the rest of the filesystem.
The unified version will be provided in the project's builddir. Unmouting
is done as soon as the function completes.
Args:
rw: writeable storage area for the unified fuse filesystem.
ro: read-only storage area for the unified fuse filesystem.
union: mountpoint of the unified fuse filesystem.
"""
from functools import wraps
def wrap_in_union_fs(func):
"""
Function that wraps a given function inside the file system.
Args:
func: The function that needs to be wrapped inside the unions fs.
Return:
The file system with the function wrapped inside.
"""
@wraps(func)
def wrap_in_union_fs_func(project, *args, **kwargs):
"""
Wrap the func in the UnionFS mount stack.
We make sure that the mount points all exist and stack up the
directories for the unionfs. All directories outside of the default
build environment are tracked for deletion.
"""
container = project.container
if container is None or in_container():
return func(project, *args, **kwargs)
build_dir = local.path(project.builddir)
LOG.debug("UnionFS - Project builddir: %s", project.builddir)
if __unionfs_is_active(root=build_dir):
LOG.debug(
"UnionFS already active in %s, nesting not supported.",
build_dir)
return func(project, *args, **kwargs)
ro_dir = local.path(container.local)
rw_dir = build_dir / rw
un_dir = build_dir / union
LOG.debug("UnionFS - RW: %s", rw_dir)
unionfs_cmd = __unionfs_set_up(ro_dir, rw_dir, un_dir)
project_builddir_bak = project.builddir
project.builddir = un_dir
proc = unionfs_cmd.popen()
while (not __unionfs_is_active(root=un_dir)) and \
(proc.poll() is None):
pass
ret = None
if proc.poll() is None:
try:
with local.cwd(un_dir):
ret = func(project, *args, **kwargs)
finally:
project.builddir = project_builddir_bak
from signal import SIGINT
is_running = proc.poll() is None
while __unionfs_is_active(root=un_dir) and is_running:
try:
proc.send_signal(SIGINT)
proc.wait(timeout=3)
except subprocess.TimeoutExpired:
proc.kill()
is_running = False
LOG.debug("Unionfs shut down.")
if __unionfs_is_active(root=un_dir):
raise UnmountError()
return ret
return wrap_in_union_fs_func
return wrap_in_union_fs
def __update_cleanup_paths(new_path):
"""
Add the new path to the list of paths to clean up afterwards.
Args:
new_path: Path to the directory that need to be cleaned up.
"""
cleanup_dirs = settings.CFG["cleanup_paths"].value
cleanup_dirs = set(cleanup_dirs)
cleanup_dirs.add(new_path)
cleanup_dirs = list(cleanup_dirs)
settings.CFG["cleanup_paths"] = cleanup_dirs
def __is_outside_of_builddir(project, path_to_check):
"""Check if a project lies outside of its expected directory."""
bdir = project.builddir
cprefix = os.path.commonprefix([path_to_check, bdir])
return cprefix != bdir
def __unionfs_is_active(root):
real_root = os.path.realpath(root)
for part in psutil.disk_partitions(all=True):
if os.path.commonpath([part.mountpoint, real_root]) == real_root:
if part.fstype in ["fuse.unionfs", "fuse.unionfs-fuse"]:
return True
return False
def __unionfs_set_up(ro_dir, rw_dir, mount_dir):
"""
Setup a unionfs via unionfs-fuse.
Args:
ro_base: base_directory of the project
rw_image: virtual image of actual file system
mountpoint: location where ro_base and rw_image merge
"""
mount_dir.mkdir()
rw_dir.mkdir()
if not ro_dir.exists():
LOG.error("Base dir does not exist: '%s'", ro_dir)
raise ValueError("Base directory does not exist")
from benchbuild.utils.cmd import unionfs as unionfs_cmd
LOG.debug("Mounting UnionFS on %s with RO:%s RW:%s", mount_dir, ro_dir,
rw_dir)
return unionfs_cmd["-f", "-o", "auto_unmount,allow_other,cow", rw_dir +
"=RW:" + ro_dir + "=RO", mount_dir]
[docs]class UnmountError(BaseException):
pass


{% extends "static_layout.html" %}
{% block title %}Migration{% endblock %}
{% block body %}
{% endblock %}
{% block additional_block %}
In connection with the move to the new database to manually remove all your playlists to your new account.
Transfer of accounts from the old player is complicated because of the different models of hashing passwords.
So you have to log in to the old player, pass here and
click "Transfer" or copy your private key and enter in a field on the right.


{{=[[ ]]=}}
You don't need to do this to develop your own template – most people don't. However, running the server locally will mean you can work on your template with less latency than using the template editor.
Use nvm to install node v16.14.0
and npm 8.3.1. You can verify that you have installed and selected the correct verion:
$ node -v
v16.14.0
$ npm -v
8.3.1
Launch a local redis server:
$ redis-server
You can verify the redis server is running:
$ redis-cli ping
PONG
Use git to clone a copy of Blot's source code to your machine.
$ git clone https://github.com/davidmerfield/Blot
$ npm ci
$ npm run local
You should then see your blog here:
http://localhost:8081
and the dashboard to conﬁgure the settings for that blog here:
http://localhost:8080
[[={{ }}=]]


@(message: String) @Main("Eddie") {
Edward Ryon Makuahanai Aikau (Kahului, Hawaii, May 4, 1946 - March 17, 1978) was a well-known Hawaiian lifeguard and surfer. The words Makua Hanai in Eddie Aikau's full name means feeding parent, an adoptive, nurturing, fostering parent, in the Hawaiian language. As the first lifeguard at Waimea Bay on the island of Oahu, he saved many lives and became famous for surfing the big Hawaiian surf, winning several awards including the 1977 Duke Kahanamoku Invitational Surfing Championship.


| Methods |
public
|
append(array $child): void
Manage the stack in hierarchy.
Manage the stack in hierarchy.
|
#
|
public
|
empty(): bool
Check if the stack is empty.
Check if the stack is empty.
|
#
|
public
|
last(): array|bool
Return the lowest child in the stack.
Return the lowest child in the stack.
|
#
|
public
|
pop(): void
Remove the lowest layer in the group stack.
Remove the lowest layer in the group stack.
|
#
|
protected
|
addToTheStack(array $group): void
Add a new group to the stack.
Add a new group to the stack.
|
#
|
protected
|
convertShortKeys(array $options): array
Rename the short group keys to original one.
Rename the short group keys to original one.
|
#
|
protected
|
mergeGroupAttributes(array $child): array
Merge lower options with higher ones in the stack.
Merge lower options with higher ones in the stack.
|
#
|
protected
|
buildName(array $child, array $parent): string|null
Merge parent namespace with child's namespace.
Merge parent namespace with child's namespace.
|
#
|
protected
|
buildNamespace(array $child, array $parent): string|null
Merge parent namespace with child's namespace.
Merge parent namespace with child's namespace.
|
#
|
protected
|
buildPrefix(array $child, array $parent): string|null
Merge parent prefix with child's prefix.
Merge parent prefix with child's prefix.
|
#
|
protected
|
buildContext(array $child, array $parent): string|null
Merge parent prefix with child's context.
Merge parent prefix with child's context.
|
#
|
protected
|
buildScheme(array $child, array $parent): string|null
Set the route scheme.
|
#
|
protected
|
buildRegex(array $child, array $parent): array
Merge parent regexes with child's conditions.
Merge parent regexes with child's conditions.
|
#
|
protected
|
buildCondition(array $child, array $parent): array
Merge parent conditions with child's conditions.
Merge parent conditions with child's conditions.
|
#
|
protected
|
buildException(array $child, array $parent): array
Merge parent exceptions with child's exceptions.
Merge parent exceptions with child's exceptions.
|
#
|
protected
|
buildOptional(array $child, array $parent): array
Merge parent optionals with child's exceptions.
Merge parent optionals with child's exceptions.
|
#
|
protected
|
buildMiddlewares(array $child, array $parent): array
Merge parent middlewares with child's middlewares.
Merge parent middlewares with child's middlewares.
|
#
|
protected
|
filterAttributes(array $parent, array $child, string $name): array
Filter out null type attributes.
Filter out null type attributes.
|
#
|


Cool guy. Likes turtles. No Ragarts.
Cool guy. Likes trutles. No Ragarts.
Once opened for Good Charlotte in SXSW.


Drag and Drop Example
Select and Drag and Drop text 1
Select and Drag and Drop text 2
Detils of the Dragged Item
Drop Area


{% load staticfiles %} {% load notifications_extras %}
{{ SITE_META.site_name }} |
{{ SITE_META.site_desc }}
{{ SITE_META.site_name }} has updates! This email provides information about your subscriptions to council members, committee actions, committee events, bill searches, bill actions, and meetings.
{% if person_updates %}Some people have been active! This list shows all new sponsorships and legislative actions by {{ CITY_VOCAB.COUNCIL_MEMBERS }}.
{% for update in person_updates %} {% for update_type, person in update.items %}| Bill | {% if 'Sponsorship' in update_type %}Description | {% else %}Action | {% endif %}
|---|---|---|
| {{bill.identifier}} | {% if bill.action_description %} {{ bill.action_date|date:"M j, Y"}}: {{ bill.action_description }} {% else %} {{ bill.description }} {% endif %} |
Some committees have been busy! This list shows all bills with new actions, as a result of committee activitiy.
{% for bill in committee.bills %}| Date | Action |
|---|---|
| {{ action.date|date:"M j, Y" }} | {{ action.description }} |
Some committees have things on the horizon! This list shows all newly listed upcoming committee events.
{% for committee in committee_event_updates %}| Event | Date | Description |
|---|---|---|
| {{ event.name }} | {{event.start_time|date:"M j, Y fa"}} | {{ event.description }} |
Your search results have changed! This list shows new results for previous searches.
{% for search in bill_search_updates %}| Bill | Description |
|---|---|
| {{bill.identifier}} | {{ bill.description }} |
Some bills have updates! This list shows which bills have new legislative actions.
| Bill | Action |
|---|---|
| {{bill.identifier}} | {{action.date|date:"M j, Y"}}: {{action.description}} |
Mark your calendars! This list shows newly posted meetings.
| Event | Location | Time |
|---|---|---|
| {{ event.name }} | {{ event.location_name }} | {% if event.all_day %} All Day {% else %} {{ event.start_time|date:"M/j/Y fa" }} {% if event.end_time %}- {{ event.end_time|date:"M/j/Y fa" }} {% endif %} {% endif %} |
Mark your calendars! This list shows meetings, where updates have been made to the location, the time, or other details.
| Event | Location | Time |
|---|---|---|
| {{ event.name }} | {{ event.location_name }} | {% if event.all_day %} All Day {% else %} {{ event.start_time|date:"M/j/Y fa" }} {% if event.end_time %}- {{ event.end_time|date:"M/j/Y fa" }} {% endif %} {% endif %} |
Want to receive fewer or more notifications? Visit your account and manage alert preferences.


See reveal.js' website for usage
This is a fork of with DiUS styling
Trying viewing this in a tall browser, then again with a wide one
Background colours are applied to the sidebar on the left with:
data-background="#2E7DE1"
If you don't specify the colors, it uses DiUS Grey
You can also set background images with:
data-background="image.jpg"
Note missing sidebar on the left
Create a section with data-theme="dius-title"
I suggest coloring all slides of the same section similarly
Press your down button
Press "o
" or ESC to view on overview


welcome to trac!
{% if user.is_authenticated %}
You're already logged in.
Logout
My home page
{% else %}
Please log in or sign up below.
Register Here
Login Here
{% endif %}


The generation of a CAD file is one of the most important parts of any CFD simulation. CONSELF can handle multiple geometry types in order to help the user during his task. At the same time, it is recommendable to follow some basics tricks in order to be confident about the final result of the simulation and avoid geometry errors and mesh inconsistencies.
In order to run a CFD simulation you have to generate the volume of fluid. In other words you have to model the geometry occupied by the fluid and not by the solid. Compared to standard modelling, CFD usually requires the negative of the solid model. The picture shows a pump diffuser solid model (incorrect) compared against its fluid model (correct for a CFD simulation).
Remove all features and edges which are smaller than 0.1% times the maximum size of your 3D model. The picture shows a car park with particulars - flanges - which are much smaller than the volume inserted. Because of this, it is a common habits to simplify the geometry - by elimination - all the smallest elements and particulars.
Avoid narrow angles by creating fillets with a radius of, at least, 0.1% times the maximum size of your 3D model. Very often, this CFD restriction is also a structural problem when actually making the prototype.
Define colors carefully as they help you when applying boundary conditions. In the picture an example of three colors: with them it is possible to define different meshing and CFD parameters on different surfaces. CONSELF also handles different type of boundaries (based on surfaces) by selecting the appropriate option in the GEOMETRY step.
CONSELF also accepts assembly STEP files - very useful to use in case you have multiple object with the same shape or series that share boundary conditions. Remember that, also for assembly, you need to specify the fluid volume. N.B. The boolean operation (i.e. removing the jet fans volume from the room volume) is automatically performed by the GEOMETRY step.


I’m still trying to figure out what I’m passionate about, but I do know that I love learning and never want to stop being a beginner at something. My three main areas of interest are programming, marketing, and design, and I hope to be able to look back on my career someday and know that I helped people by using all three. Outside of work, you can find me hiking, road tripping, listening to Tom Petty, dancing embarrassingly at concerts, or buying candles. I also drink way too much Mountain Dew.
To me, school has always been a means to an end. And because of that, it has always been my top priority but never my only one. I like to think that if I don't spend all of my time on homework, I have more time to learn other jobs and skills. Generally, I tend to value skills and learning over GPA.
I mentored freshmen in computer science through the Engineering Mentor Program on campus, I was on the Board of Organizers for HackUTK (security club) and VolHacks (UT's annual hackathon), I competed in the Department of Energy's 2019 CyberForce Competition at Oak Ridge National Lab, and I also consistently stay up way past my bedtime.
As a rising senior in high school, I was selected from top applicants across the state to attend this program at Tennessee Tech University. It was the first time in my life where I wasn't the smartest kid in the classroom. I was quickly humbled. Thankfully, I learned that lesson before I got to college.
I learned basic programming/engineering concepts, and I worked on a research project involving cryogenics. Easily a much better use of my time than playing video games all summer.
KEC is a unique incubator / marketing agency hybrid. I got to learn about the business world firsthand and work on my interpersonal skills by meeting tons of entrepreneurs in Knoxville. My boss tried to talk me out of working here by telling me it's probably the least technical position for a computer science major to be in. I'm glad I didn't listen.
I had the opportunity to work with some of the brightest kids from all over the globe at one of the best schools in San Diego. It was sad leaving, but having a parent come up to me and tell me how much of a difference I made for her kiddo made my summer. Here's to being out of my element and feeling like a kid again.
It was here that I learned valuable life lessons I will carry with me forever, especially putting quality of life over everything else. I also worked in a floating office on the water. Best first job ever.


Build a site with Kraken? Let me know!
PAWS New England
Shift it
Benjamin Obdyke
Osasu
Nicole Burley Coaching
Poetreat
Go Make Things
Barry Zimmerman
Exis
Tony Luong Photography
Learn how to use Kraken
Kraken 2 | Kraken 3 | Kraken 4


| MATLAB 文件帮助: cv.GeneralizedHoughBallard/delete | 查看 cv.GeneralizedHoughBallard/delete 的代码 | Index |
delete Delete a handle object. The delete method deletes a handle object but does not clear the handle from the workspace.
有关 cv.GeneralizedHoughBallard/delete 的帮助继承于超类 handle
| Access | public |
| Sealed | false |
| Static | false |


Overview
Operators
Envelopes
Feedback
Operator overview and mute panel
LFO
Pitch
Effects and Main Out
ALGO is an 8-operator FM synthesizer with a fixed algorithm.
The algorithm may be divided into three sections:
Released in 1983 the Yamaha DX7 is one
of the most successful synths ever. The use of FM was a radical departure from the prevailing subtractive synths of the day.
Yamaha introduced the terms "operator" and "algorithm" to help describe this revolutionary instrument.
ALGO's 8 operators are divided into 3 carriers (1, 4 and 7) and 5 modulators (2, 3, 5, 6 and 8).
With exception of feedback parameters for operators 6 and 8 the parameters for all operators are identical.
ALGO has 9 identical ADDSR envelopes, one each for the 8 operators and a global 'Pitch' envelope.
Each envelope has an attack stage, duel decay stages, a sustain stage, and once the key has been
lifted a final release stage. The editor provides preset 'gate', 'percussion' and 'ADSR' curves,
random curve generation and cut and paste between envelopes. The envelope graph may be zoomed in or
out to any level. The horizontal guide lines stop at about 100 seconds but the display may be zoomed out
past this point. There are no hard limits for maximum length of envelope stages.
The feedback parameters for operators 6 and 8 are nearly identical. The only difference is that for OP6 LFO1 may modulate feedback amount while for OP8 LFO2 is used.
The feedback on OP6 is more complex then that on OP8. As a practical matter this means that OP6 feedback
is harder to control and more chaotic then OP8.
The HP slider sets the cutoff frequency of a high-pass filter used to block any DC component in the feedback signal.
Normally this value should be set to the maximum possible but also below any expected frequency. At cutoff values below
about 10HZ the filter takes a few milliseconds to stabilize after the input signal has changed. This may be exploited to
introduce a blip into the sound
At the bottom of each operator editor is an overview of the major parameters for all operators. The values shown
are operator frequency, bias, amplitude and mute status. Muted operators do not contribute to the final signal.
ALGO has two general purpose LFOs. A third LFO is dedicated to vibrato and found on the
pitch page. LFO1 and LFO2 are
nearly identical. They both produce continuously variable waveforms between positive-saw, triangle and negative-saw.
Frequency, amplitude and wave shape may be modulated by various sources. The only difference is a slight difference
of modulation sources. For LFO1 the pitch envelope (labeled as "ENV1") may be used to modulate amplitude or waver shape,
and for LFO2 the modulation source is LFO1
The editor Pitch page contains three elements
Algo effects consist of a duel delay line and reverb


---
layout: default
title: Beautiful analytics
headline : >-
Beautiful analytics
built with Dashkit.
description: >-
Intelligent developers use our Dashkit theme to build their internal tools and client admin applications. Save yourself time and money.
---
{%- include navbar.html -%}
{%- include welcome.html -%}
{%- include testimonials.html -%}
{%- assign d = site.data.desktop -%}
{%- include hub.html
title = d.hub.title
text = d.hub.text
image = d.hub.image
stats = d.stats -%}
{%- include img/shapes/curves/curve-3.svg -%}
{%- include customize.html -%}
{%- include img/shapes/curves/curve-6.svg -%}
{%- include support.html
title = d.scal.title
text = d.scal.text
list = d.scal.list
badge = d.scal.badge
images= d.scal.images -%}
{%- include img/shapes/curves/curve-3.svg -%}
{%- include pricing.html -%}
{%- include brands.html -%}
{%- include cta.html -%}
{%- include img/shapes/curves/curve-1.svg -%}
{%- include footer.html
class="py-8 py-md-11 bg-gray-200" -%}
{%- include scripts.html -%}


A Security SLA has been built according to your choices during the
negotiation process. Check it and submit it in order to have
it stored in your collection of negotiated SLAs. The next
steps of the SPECS Application will enable you to sign and implement
the SLA.


Welcome to web2py!
How did you get here?
- You are successfully running web2py
- You visited the url /welcome/default/index
- Which called the function index() located in the file web2py/applications/welcome/controllers/default.py
- The output of the file is a dictionary that was rendered by the view web2py/applications/welcome/views/default/index.html
- You can modify this application and adapt it to your needs


- New: Options to choose between store backgrounds and game screenshots for Steam games
- New: Optional PlayStation button prompts for fullscreen view
- New: Cover and Detail views added to Modern theme (selectable with ... button)
- New: Added sorting to fullscreen view
- Mew: Added context menu icons
- New: Fullscreen mode can be opened with "Guide" controller button.
- Fix: UI polish and improvements
- Fix: Script initialization failure if PowerShell 3+ is not installed
- Fix: Login windows don't have focus when displayed
- Fix: Genres not being set properly when downloading metadata via IGDB
- Fix: Don't use Windows ID for installation tracking


| Battle No. - 0% sorted. |
||||
Touhou Song Sort |
||||
| Click to start! | ||||
| Song here! This song's game! This song's description! |
Save Progress | Another song here! The other song's game! The other song's description! |
||
| Load Progress | ||||
(warning: may be slow on some computers!) |
||||
(uncheck to only include original songs). |
||||
|
|
If any albums/games are missing, please press CTRL+F5 first before reporting! The latest update was 14th August 2023 (Full version of Touhou 19).
This is a sorter for ZUN's Touhou (and other) songs. Pick your sources, and hit the Start button.
Click on the song you like better from the two, or tie them if you like them equally or don't know them.
If you pick a lot of sources expect to spend many hours, especially if you don't use many ties.
The original Highly Responsive to Prayers tracks are not included.
If you use Discord and play Touhou games, why not check out TouhouRPC?
It will dynamically update your Discord status with your progress in-game. Get it here!
If there are any issues, such as missing videos, you can:
- check out the github
- contact me by email or Discord (@kasha.dev)
- kasha


QA version: ${version}
Temporal SNR (median): ${tsnr}
Number of spikes detected: ${num_spikes}
Subject Motion
Temporal Drift and Spikes


Most events can be started from both the UI and chat.
Each event has settings that you can change. Quiet mode lowers the amount of event related messages sent to chat.
Each event can be disabled/enabled. You can also toggle the duration of some events.
Questions? Join our discord!
A raffle picks 1 user who entered to win a set amount of channel currency.
A raffle can be started on this page or by typing !raffle in chat. Users type !enter to join the raffle.
The results will be updated live on this page if it is open when the raffle starts. Leaving the page will remove the list, but the raffle is not affected. The winner will be announced to chat.
A Giveaway picks 1 user who entered to "win". This is different from raffles in that it does not reward any points.
A Giveaway can be started on this page or by typing !giveaway in chat. Users type !enter to join the Giveaway.
The results will be updated live on this page and the winner will be announced to chat.
Poll results are still in dev. Results posted to chat.
A poll asks a question in chat and returns the results.
A poll can be started by typing !poll question? opt1 | opt2 | etc in chat. Users respond with !vote # or !v #.
The results will be posted to chat.
A Glimrealm is a game where players enter the world of the Glimdrops and gain or lose points.
A Glimrealm can be started on this page or by typing !glimrealm in chat. Users enter with !portal.
The results will be sent to chat.
| Setting | Value |
| Duration | |
| Quiet Mode | |
| Enabled |
A BankHeist is a game where players try to rob a bank. It has various possibilities, and points are awared to successful runs.
A Bankheist can be started on this page or by typing !bankheist in chat.
The results will be sent to chat.
A Glimroyale is a game where players fight each other. The victor gains all of the points wagered.
A Glimroyale can be started on this page or by typing !Glimroyale in chat.
The results will be sent to chat.
Gamble is a way for users to win/lose points.
Start by typing !gamble wager. If they lose they lose all the wagered points. If they win they win the points based on the multiplier.
Multiplier Examples
1.0 => Gained the wager.
1.5 => Gained the wager and and extra half of it.
2.0 => Gained twice the wagered points.


Make a search query below to begin. When you are finished, log out in the upper-right corner to release system resources allocated for you and for increased security.
Search account numbers, account statuses, names, addresses, phone numbers, emails, and dates of birth.
Search account numbers, account statuses, names, addresses, phone numbers, emails, and dates of birth.
Display all of the entries in the database. This operation might take a very long time! Please confirm that you want to carry out this operation. During the operation, your web browser and the remote server may appear to hang. See the help page for more information.


# Getting Started
## Installation
> Python 3.x is required
`
$ pip install dynaconf
`
> Default installation supports .toml, .py and .json file formats and also environment variables (.env supported) - to support YAML add pip install dynaconf[yaml] or pip install dynaconf[all]
## Usage
### Accessing config variables in your Python application
In your Python program wherever you need to access a settings variable you use the canonical object from dynaconf import settings:
#### Example of program to connect to some database
```python from some.db import Client
from dynaconf import settings
- conn = Client(
username=settings.USERNAME, # attribute style access password=settings.get(‘PASSWORD’), # dict get style access port=settings[‘PORT’], # dict item style access timeout=settings.as_int(‘TIMEOUT’), # Forcing casting if needed host=settings.get(‘HOST’, ‘localhost’) # Providing defaults
)¶
### Understanding the settings
Dynaconf aims to have a flexible and usable configuration system. Your applications can be configured via a [configuration files](#the-settings-files), through [environment variables](environment_variables.html), or both. Configurations can be separated into environments: [default], [development], [staging], [testing] and [production]. The working environment is switched via an environment variable.
But this is all optional you can of course follow strictly the [12 factor app](https://12factor.net/config) guide, have your configuration coming only from environment variables and provide files only to store [default] values. (take also a look on how to add a [dynaconf validation](validation.html) file to your project).
Sensitive data like tokens, secret keys and password can be stored in .secrets.* files and/or [external storages](external_storages.html) like Redis or vault secrets server.
Besides the built-in optional support to Redis as settings storage dynaconf allows you to create [Custom Loaders](extend.html) and store the data wherever you want e.g: databases, memory storages, other file formats, nosql databases etc.
## Working environments
At any point in time, your application is operating in a given configuration environment. By default there are four such environments:
[development] (selected by default)
[staging]
[testing]
[production]
[{custom}] <– You can create named environments that you need
> There is also the pseudo-envs [default] to provide comprehensive default values and [global] to provide global values to override in any other environment.
Without any action, your applications by default run in the [development] environment. The environment can be changed via the ENV_FOR_DYNACONF environment variable. For example, to launch an application in the [staging] environment, we can run:
`bash
export ENV_FOR_DYNACONF=staging
`
or
`bash
ENV_FOR_DYNACONF=staging python yourapp.py
`
> NOTE: When using [Flask Extension](flask.html) the environment can be changed via FLASK_ENV variable and for [Django Extension](django.html) you can use DJANGO_ENV.
## Disabling Working environments
In some cases you might want to disable the layered environment separation and just load everything from a file use:
`bash
export ENVLESS_MODE_FOR_DYNACONF=true
`
or pass this setting to your own Dynaconf instance
```py from dynaconf import LazySettings
settings = LazySettings(ENVLESS_MODE=True) ```
## The settings files
> NOTE: The settings files are optional. If it is not present, only the values from environment variables and enabled external loaders are used (.env file is also supported).
Dynaconf will search for the settings files defined in SETTINGS_FILE_FOR_DYNACONF which by default is a list containing combinations of settings.{py|toml|json|ini|yaml} and .secrets.{py|toml|json|ini|yaml} and dynaconf will try to find each one of those combinations, optionally it is possible to configure it to a different set of files e.g: export SETTINGS_FILE_FOR_DYNACONF=’[“myfilename.toml”, “another.json”]’, this value contains a list of relative or absolute paths, can be a toml-like list or a comma/semicolon separated string and can be exported to envvars, write to .env file or passed directly to Dynaconf instance.
> IMPORTANT: Dynaconf by default reads settings files using utf-8 encoding, if you have settings files written in other encoding please set ENCODING_FOR_DYNACONF environment variable.
See more details in [configuration](configuration.html)
## Settings files location
To find the files defined in SETTINGS_FILE_FOR_DYNACONF the search will start at the path defined in ROOT_PATH_FOR_DYNACONF (if defined), then will recursively walk to its root and then will try the folder where the called program is located and then it will recursively try its parent directories until the root parent is reached which can be File System `/` or the current working dir then finally will try the current working directory as the last option.
> NOTE: If by any reason you need Dynaconf to first look at the current working dir you can customize the ROOT_PATH_FOR_DYNACONF via environment variable or by creating a [custom settings object](advanced_usage.html#customizing-the-settings-object)
Some people prefer to put settings in a sub-folder so for each of the paths it will also search in a relative folder called config/.
And for each file dynaconf will also try to load a .local. file, for example, if you have a settings.toml after loading it Dynaconf will also try to find a settings.local.toml if exists.
Dynaconf will stop searching on the first match for each file and if no file is found it will fail silently unless SILENT_ERRORS_FOR_DYNACONF=false is exported.
### Illustrative Example
> New in 2.0.0
If your program has the following structure:
- |_ src/
- |_ app.py
# from dynaconf import settings # print(settings.NAME) # print(settings.PASSWORD) # print(settings.FOO)
- |_ config
- |_ settings.toml
# [default] # name = “Jon Doe”
- |_ settings.local.toml
# [default] # name = “Oscar Wilde”
- |_ .env
# DYNACONF_FOO=’BAR’
- |_ .secrets.toml
# [default] # password = “Utopi@”
And you call it from myprogram working dir.
`bash
cd myprogram
python src/app.py
`
What happens is:
> NOTE: The behavior explained here is valid only for the above file structure, other arrangements are possible and depending on how folders are organized dynaconf can behave differently.
app.py:1 does from dynaconf import settings
Only the .env file will be searched, other settings are lazy evaluated.
.env will be searched starting on myprogram/src/.env
if not found then myprogram/src/config/.env
if not found then myprogram/.env actually found here so stops searching
if not found then myprogram/config/.env
It will load all values from .env to the environment variables and create the instance of settings
app.py:2 does the first access to a settings on print(settings.NAME)
Dynaconf will execute the loaders defined in CORE_LOADERS and LOADERS, it will initialize the settings object and start the file search.
settings.{py|toml|json|ini|yaml} will be searched on myprogram/src/
if not found then myprogram/src/config
if not found then myprogram/
if not found then myprogram/config settings.toml actually found here so stops searching for toml
It will load all the values defined in the settings.toml
It will continue to look all the other files e.g: settings.json, settings.ini, settings.yaml etc.
Then
It will search for .secrets.{py|toml|json|ini|yaml} on myprogram/src/
if not found then myprogram/src/config
if not found then myprogram/ .secrets.toml actually found here so stops searching for toml
if not found then myprogram/config
It will load all the values defined in .secrets.toml (if filename is *.secret.* values are hidden on logs)
It will continue to look all the other files e.g: .secrets.json, .secrets.ini, .secrets.yaml etc.
Then
It will iterate the list of loaded files containing [settings.toml, .secrets.toml] and for each of them it will also try to find a settings.local.toml (found in myprogram/settings.local.toml) and a .secrets.local.toml using the same search tree until it is found or it will skip if not found.
Then
It will execute external loaders like Redis and Vault if enabled.
It will execute custom loaders if configured.
Then finally
It will read all environment variables prefixed with DYNACONF_ and load its values, in our example it loads FOO=’BAR’ from .env file.
app.py:3 does second access to a settings on print(settings.PASSWORD)
All the loaders, loaded files, config options and vars are now cached no loading has been executed.
Only if settings.get_fresh(‘PASSWORD’) is used, dynaconf will force a re-load of everything to ensure the fresh value.
Also if settings.using_env|from_env or ENV_FOR_DYNACONF switched, e.g: from [development] to [staging], then re-load happens.
It is also possible to explicitly force a load or reload.
Complete program output is:
`bash
Oscar Wilde
Utopi@
BAR
`
## Loading order
Dynaconf loads file in a overriding cascade loading order using the predefined order:
First the environment variables (and .env file) to read for [configuration](configuration.html) options
Then the paths provided in PRELOAD_FOR_DYNACONF using all enabled loaders.
- Then the files defined in SETTINGS_FILE_FOR_DYNACONF using all enabled loaders.
Files containing .local. in its name will be loaded at the end. e.g: settings.local.yaml
Then contents of SECRETS_FOR_DYNACONF envvar filename if defined (useful for jenkins and other CI)
- Then the loaders defined in LOADERS_FOR_DYNACONF
Redis if enabled by REDIS_FOR_DYNACONF=1
Vault if enabled by Vault_FOR_DYNACONF=1
Custom loaders if any added
Environment variables loader will be the last always
If there is any DYNACONF_INCLUDE key found or INCLUDES_FOR_DYNACONF env vars this will be loaded.
The order can be changed by overriding the SETTINGS_FILE_FOR_DYNACONF the CORE_LOADERS_FOR_DYNACONF and LOADERS_FOR_DYNACONF variables.
> NOTE: Dynaconf works in an layered override mode based on the above order, so if you have multiple file formats with conflicting keys defined, the precedence will be based on the loading order. > If you dont want to have values like lists and dicts overwritten take a look on how to [merge existing values](usage.html#merging-existing-values)
## Local configuration files and merging to existing data
> New in 2.2.0
This feature is useful for maintaining a shared set of config files for a team, while still allowing for local configuration.
Any file matched by the glob *.local.* will be read at the end of file loading order. So it is possible to have local settings files that are for example not committed to the version controlled repository. (e:g add **/*.local* to your .gitignore)
So if you have settings.toml Dynaconf will load it and after all will also try to load a file named settings.local.toml if it does exist. And the same applies to all the other supported extensions settings.local.{py,json,yaml,toml,ini,cfg}
Example:
```ini # settings.toml # <– 1st loaded [default] colors = [“green”, “blue”] parameters = {enabled=true, number=42}
# .secrets.toml # <– 2nd loaded (overrides previous existing vars) [default] password = 1234
# settings.local.toml # <– 3rd loaded (overrides previous existing vars) [default] colors = [“pink”] parameters = {enabled=false} password = 9999 ```
So with above the values will be:
`python
settings.COLORS == ["pink"]
settings.PARAMETERS == {"enabled": False}
settings.PASSWORD == 9999
`
For each loaded file dynaconf will override previous existing keys so if you want to append new values to existing variables you can use 3 strategies.
### Mark the local file to be entirely merged
> New in 2.2.0
`ini
# settings.local.toml
dynaconf_merge = true
[default]
colors = ["pink"]
parameters = {enabled=false}
`
By adding dynaconf_merge to the top root of the file mark entire file to be merged.
And then the values will be updated in to existing data structures.
`python
settings.COLORS == ["pink", "green", "blue"]
settings.PARAMETERS == {"enabled": False, "number": 42}
settings.PASSWORD == 9999
`
You can also mark a single env like [development] to be merged.
`ini
# settings.local.toml
[development]
dynaconf_merge = true
colors = ["pink"]
parameters = {enabled=false}
`
### dynaconf merge token
`ini
# settings.local.toml
[default]
colors = ["pink", "dynaconf_merge"]
parameters = {enabled=false, dynaconf_merge=true}
`
By adding dynaconf_merge to a list or dict marks it as a merge candidate.
And then the values will be updated in to existing data structures.
`python
settings.COLORS == ["pink", "green", "blue"]
settings.PARAMETERS == {"enabled": False, "number": 42}
settings.PASSWORD == 9999
`
> New in 2.2.0
And it also works having dynaconf_merge as dict keys holding the value to be merged.
```ini # settings.local.toml [default.colors] dynaconf_merge = [“pink”] # <– value [“pink”] will be merged in to existing colors
[default.parameters] dynaconf_merge = {enabled=false} ```
### Dunder merging for nested structures
For nested structures the recommendation is to use dunder merging because it it easier to read and also it has no limitations in terms of nesting levels.
`ini
# settings.local.yaml
[default]
parameters__enabled = false
`
The use of __ to denote nested level will ensure the key is merged with existing values read more in [merging existing values](#merging-existing-values).
### Global merge
`bash
export MERGE_ENABLED_FOR_DYNACONF=true
`
or put it in your .env file then Dynaconf will automatically merge all existing variables.
> BEWARE: Using MERGE_ENABLED_FOR_DYNACONF can lead to unexpected results because you do not have granular control of what is being merged or overwritten so the recommendation is to use other options.
## Settings File Formats
The recommended file format is TOML but you can choose to use any of .{py|toml|json|ini|yaml}.
The file must be a series of sections, at least one for [default], optionally one for each [environment], and an optional [global] section. Each section contains key-value pairs corresponding to configuration parameters for that [environment]. If a configuration parameter is missing, the value from [default] is used. The following is a complete settings.toml file, where every standard configuration parameter is specified within the [default] section:
> NOTE: if the file format choosen is .py as it does not support sections you can create multiple files like settings.py for [default], development_settings.py, production_settings.py and global_settings.py. ATTENTION: using .py is not recommended for configuration - prefer to use static files like TOML!
```ini [default] username = “admin” port = 5000 host = “localhost” message = “default message” value = “default value”
[development] username = “devuser”
[staging] host = “staging.server.com”
[testing] host = “testing.server.com”
[production] host = “server.com”
[awesomeenv] value = “this value is set for custom [awesomeenv]”
[global] message = “This value overrides message of default and other envs” ```
The [global] pseudo-environment can be used to set and/or override configuration parameters globally. A parameter defined in a [global] section sets, or overrides if already present, that parameter in every environment.
> IMPORTANT: the environments and pseudo envs such as [global], [‘default’] affects only the current file, it means that a value in [global] will override values defined only on that file or previous loaded files, if in another file the value is reloaded then the global values is overwritten. Dynaconf supports multiple file formats but the recommendation is not to mix them, choose a format and stick with it.
For example, given the following settings.toml file, the value of address will be “<IP_ADDRESS>” in every environment:
```cfg [global] address = “<IP_ADDRESS>”
[development] address = “localhost”
[production] address = “<IP_ADDRESS>” ```
> NOTE: The [env] name and first level variables are case insensitive as internally dynaconf will always use upper case, that means [development] and [DEVELOPMENT] are equivalent and address and ADDRESS are also equivalent. But the recommendation is to `always use lower case in files` and `always use upper case in env vars and .py files` (This rule does not apply for inner data structures as dictionaries and arrays).
## Supported file formats
By default toml is the recommended format to store your configuration, however you can switch to a different supported format.
```bash # If you wish to include support for more sources pip3 install dynaconf[yaml|ini|redis|vault]
# for a complete installation pip3 install dynaconf[all] ```
Once the support is installed no extra configuration is needed to load data from those files.
If you need a different file format take a look on how to extend dynaconf writing a [custom loader](extend.html)
## Additional secrets file (for CI, jenkins etc.)
It is common to have an extra secrets file that is available only when running on specific CI environment like Jenkins, usually there will be an environment variable pointing to the file.
On Jenkins it is done on job settings by exporting the secrets information.
Dynaconf can handle this via SECRETS_FOR_DYNACONF environment variable.
ex:
`bash
export SECRETS_FOR_DYNACONF=/path/to/settings.toml{json|py|ini|yaml}
`
If that variable exists in your environment then Dynaconf will also load it.
## Including files inside files
Sometimes you have multiple fragments of settings in different files, dynaconf allow easy merging of those files via dynaconf_include.
Example:
plugin1.toml
`cfg
[development]
plugin_specific_variable = 'value for development'
`
and even mixing different formats: plugin2.yaml
plugin_specific_variable: ‘value for production’
Then it can be merged on main settings.toml file via dynaconf_include
settings.toml
`cfg
[default]
dynaconf_include = ["plugin1.toml", "plugin2.yaml"]
DEBUG = false
SERVER = "base.example.com"
PORT = 6666
`
- A settings file can include a dynaconf_include stanza, whose exact
syntax will depend on the type of settings file (json, yaml, toml, etc) being used:
`cfg [default] dynaconf_include = ["/absolute/path/to/plugin1.toml", "relative/path/to/plugin2.toml"] DEBUG = false SERVER = "www.example.com" `
When loaded, the files located at the (relative or absolute) paths in the dynaconf_include key will be parsed, in order, and override any base settings that may exist in your current configuration.
The paths can be relative to the base settings.(toml|yaml|json|ini|py) file, or can be absolute paths.
The idea here is that plugins or extensions for whatever framework or architecture you are using can provide their own configuration values when necessary.
It is also possible to specify glob-based patterns:
`cfg [default] dynaconf_include = ["configurations/*.toml"] DEBUG = false SERVER = "www.example.com" `
Currently, only a single level of includes is permitted to keep things simple and straightforward.
### Including via environment variable
It is also possible to setup includes using environment variable.
`bash
# A glob pattern
export INCLUDES_FOR_DYNACONF='/etc/myprogram/conf.d/*.toml'
# a single path
export INCLUDES_FOR_DYNACONF='/path/to/file.yaml'
# multiple files
export INCLUDES_FOR_DYNACONF='/path/to/file.yaml;/other/path/to/file.toml'
`
## Programmatically loading a settings file
`python
from dynaconf import settings
settings.load_file(path="/path/to/file.toml") # list or `;/,` separated allowed
`
> NOTE: programmatically loaded file is not persisted, once env is changed via setenv|ugin_env, or a reload or configure is invoked it will be cleaned, to persist it needs to go to INCLUDES_FOR_DYNACONF variable or you need to load it programmatically again.
## Template substitutions
Dynaconf has 2 tokens to enable string substitutions @format and @jinja.
### @format token
Dynaconf allows template substitutions for strings values, by using the @format token prefix and including placeholders accepted by Python’s str.format method Dynaconf will call it lazily upon access time.
The call will be like:
`py
"<YOURVALUE>".format(env=os.environ, this=dynaconf.settings)
`
So in your string you can refer to environment variables via env object, and also to variables defined int the settings object itself via this reference. It is lazily evaluated on access it will use the final value for a settings regardless the order of load.
Example:
`bash
export PROGRAM_NAME=calculator
`
settings.toml
```toml [default] DB_NAME = “mydb.db”
[development] DB_PATH = “@format {env[HOME]}/{this.current_env}/{env[PROGRAM_NAME]}/{this.DB_NAME}” ```
{env[HOME]} is the same as os.environ[“HOME”] or $HOME in the shell.
{this.current_env} is the same as settings.current_env
{env[PROGRAM_NAME]} is the same as os.environ[“PROGRAM_NAME”] or $PROGRAM_NAME in the shell.
{this.DB_NAME} is the same as settins.DB_NAME or settings[“DB_NAME”]
so in your program
```py from dynaconf import settings
settings.DB_PATH == ‘~/DEVELOPMENT/calculator/mydb.db’ ```
### @jinja token
If jinja2 package is installed then dynaconf will also allow the use jinja to render string values.
Example:
`bash
export PROGRAM_NAME=calculator
`
settings.toml
```toml [default] DB_NAME = “mydb.db”
[development] DB_PATH = “@jinja {{env.HOME}}/{{this.current_env | lower}}/{{env[‘PROGRAM_NAME’]}}/{{this.DB_NAME}}” ```
so in your program
```py from dynaconf import settings
settings.DB_PATH == ‘~/development/calculator/mydb.db’ ```
The main difference is that Jinja allows some Python expressions to be avaluated such as {% for, if, while %} and also supports calling methods and has lots of filters like | lower.
Jinja supports its built-in filters listed in [Builtin Filters Page](http://jinja.palletsprojects.com/en/master/templates/#builtin-filters) and Dynaconf includes aditional filters for os.path module: abspath. realpath, relpath, basename and dirname and usage is like: VALUE = “@jinja {{this.FOO | abspath}}”
## Merging existing data structures
If your settings has existing variables of types list ot dict and you want to merge instead of override then the dynaconf_merge and dynaconf_merge_unique stanzas can mark that variable as a candidate for merging.
For dict value:
Your main settings file (e.g settings.toml) has an existing DATABASE dict setting on [default] env.
Now you want to contribute to the same DATABASE key by adding new keys, so you can use dynaconf_merge at the end of your dict:
In specific [envs]
```cfg [default] database = {host=”server.com”, user=”default”}
[development] database = {user=”dev_user”, dynaconf_merge=true}
[production] database = {user=”prod_user”, dynaconf_merge=true} ```
also allowed the alternative short format
```cfg [default] database = {host=”server.com”, user=”default”}
[development.database] dynaconf_merge = {user=”dev_user”}
[production.database] dynaconf_merge = {user=”prod_user”} ```
In an environment variable:
Using @merge mark
`bash
# Toml formatted envvar
export DYNACONF_DATABASE='@merge {password=1234}'
`
or @merge mark short format
`bash
# Toml formatted envvar
export DYNACONF_DATABASE='@merge password=1234'
`
It is also possible to use nested dunder traversal like:
`bash
export DYNACONF_DATABASE__password=1234
export DYNACONF_DATABASE__user=admin
export DYNACONF_DATABASE__ARGS__timeout=30
export DYNACONF_DATABASE__ARGS__retries=5
`
Each __ is parsed as a level traversing thought dict keys. read more in [environment variables](environment_variables.html#nested-keys-in-dictionaries-via-environment-variables)
So the above will result in
`py
DATABASE = {'password': 1234, 'user': 'admin', 'ARGS': {'timeout': 30, 'retries': 5}}
`
> IMPORTANT lower case keys are respected only on *nix systems, unfortunately Windows environment variables are case insensitive and Python reads it as all upper cases, that means that if you are running on Windows the dictionary can have only upper case keys.
You can also export a toml dictionary.
`bash
# Toml formatted envvar
export DYNACONF_DATABASE='{password=1234, dynaconf_merge=true}'
`
Or in an additional file (e.g settings.yaml, .secrets.yaml, etc) by using dynaconf_merge token:
- database:
password: 1234 dynaconf_merge: true
or
- database:
- dynaconf_merge:
password: 1234
The dynaconf_merge token will mark that object to be merged with existing values (of course dynaconf_merge key will not be added to the final settings it is just a mark)
The end result will be on [development] env:
`python
settings.DATABASE == {'host': 'server.com', 'user': 'dev_user', 'password': 1234}
`
The same can be applied to lists:
settings.toml
```cfg [default] plugins = [“core”]
[development] plugins = [“debug_toolbar”, “dynaconf_merge”] ```
or
```cfg [default] plugins = [“core”]
[development.plugins] dynaconf_merge = [“debug_toolbar”] ```
And in environment variable
using @merge token
`bash
export DYNACONF_PLUGINS='@merge ["ci_plugin"]'
`
or short version
`bash
export DYNACONF_PLUGINS='@merge ci_plugin'
`
comma separated values also supported:
`bash
export DYNACONF_PLUGINS='@merge ci_plugin,other_plugin'
`
or explicitly
`bash
export DYNACONF_PLUGINS='["ci_plugin", "dynaconf_merge"]'
`
Then the end result on [development] is:
`python
settings.PLUGINS == ["ci_plugin", "debug_toolbar", "core"]
`
If your value is a dictionary:
```bash export DYNACONF_DATA=”@merge {foo=’bar’}”
# or the short
export DYNACONF_DATA=”@merge foo=bar” ```
### Avoiding duplications on lists
The dynaconf_merge_unique is the token for when you want to avoid duplications in a list.
Example:
```cfg [default] scripts = [‘install.sh’, ‘deploy.sh’]
[development] scripts = [‘dev.sh’, ‘test.sh’, ‘deploy.sh’, ‘dynaconf_merge_unique’] ```
`bash
export DYNACONF_SCRIPTS='["deploy.sh", "run.sh", "dynaconf_merge_unique"]'
`
The end result for [development] will be:
`python
settings.SCRIPTS == ['install.sh', 'dev.sh', 'test.sh', 'deploy.sh', 'run.sh']
`
> Note that deploy.sh is set 3 times but it is not repeated in the final settings.
### Known caveats
The dynaconf_merge and @merge functionalities works only for the first level keys, it will not merge subdicts or nested lists (yet).
For deeper nested objects use [dunder merge](environment_variables.html#nested-keys-in-dictionaries-via-environment-variables).
### Global merge
`bash
export MERGE_ENABLED_FOR_DYNACONF=true
`
or put it in your .env file then Dynaconf will automatically merge all existing variables.
> BEWARE: Using MERGE_ENABLED_FOR_DYNACONF can lead to unexpected results because you do not have granular control of what is being merged or overwritten so the recommendation is to use other options.
## More examples
Take a look at the [example](https://github.com/rochacbruno/dynaconf/tree/master/example) folder to see some examples of use with different file formats and features.