An Introduction to Global Sequence Alignment Dynamic Programming
- 格式:ppt
- 大小:228.50 KB
- 文档页数:64
BRIG0.95ManualNabil AlikhanJune27,2011/projects/brig/1CONTENTS2 Contents1Introduction3 2Licence9 3Installation93.1Installing BLAST (9)4Warning when using BLAST114.1Low complexityfiltering (11)4.2Expected values(e-values)and bit scores (11)5Visualising whole genome comparisons135.1Step1:Load in sequences (13)5.2Step2:Configure rings (14)5.3Step3:Review and submit (16)6Working with a Multi-FASTA reference186.1Step1:Load in sequences (18)6.2Step2:Configure rings,annotations and spacer value (19)6.3Step3:Configure image settings and submit (23)7Visualising graphs and genome assemblies257.1Walkthrough for visualising SAMfile mapping coverage (26)7.2Walk through for visualising acefile assembly coverage (31)8Walkthroughs on creating custom annotations398.1Adding custom annotations from a tab-delimitedfile,GenBank orEMBLfile (39)8.1.1Step1:Load in sequences (39)8.1.2Step2:Configure rings (40)8.1.3Step3:Adding annotations (41)8.1.4Step4:Review and submit (43)8.2How to create tab-delimitedfiles for BRIG (45)9Configuration options469.1Saving and reopening your work (46)9.2BLAST options (46)9.3Setting BRIG options (48)9.4Setting Image options (50)9.5Loading a preset image template (52)1INTRODUCTION3 1IntroductionThe BLAST Ring Image Generator(BRIG)is a cross-platform desktop applica-tion written in Java1.6.It uses CGView[5]for image rendering and the Basic Local Alignment Search Tool(BLAST)for genome comparisons.It has a graph-ical user interface programmed on the Swing framework,which takes the user step-by-step through the configuration of a circular image generation.Figure1is an example of an image BRIG can create.Figure1:BRIG example output image of a simulated draft E.coli O157:H7 genome.Thefigure show BLAST comparisons against28published E.coli and Salmonella genomes against the simulated draft genome.1INTRODUCTION4 Figure2shows a magnified view of the same example image showing similar-ity between a central reference genome in the centre against other query sequences as a set of concentric rings,where colour indicates a BLAST match of a particular percentage identity.BRIG does not represent sequences that are not present in the reference genome The image shows:•GC skew,•GC content,•Genome coverage and contig boundaries(calculated from an assemblyfile),•Genome alignment results,customs annotations.Figure2:A magnified view of BRIG example image1INTRODUCTION5 How to use this manualThis manual contains a set of detailed walk throughs where readers are taken step by step through a worked example.Each walkthrough highlights different features of BRIG and users should work through each one.If you are interested in a particular aspect of BRIG,please turn to the relevant walkthrough:•Whole genome comparisons,including how to load in coverage graphs,e.g.Figures1&3,see Section5on page13.•Using a user-defined list of genes as a reference(in Multi-FASTA),e.g Fig-ure4,see Section6on page18.•Creating and visualising graphs generated from assembly(.ace)or read mapping coverage(.SAM),e.g Figure5,see Section7on page25.•Labeling images with information from GenBank,Tab-delimited or Multi-FASTAfiles,like those seen in Figure3,4&5,see Section8on page39.The manual also has detailed instructions for how to install and configure BRIG:•For instructions on how to install BRIG,see Section3on page9.•For instructions on how to configure BRIG and save BRIG settings,see Section9on46.1INTRODUCTION6Figure3:Reference:Published E.coli O157:H7Sakai genome.Query:Com-plete genome sequences of related strains,listed in the key.The prophage regions from the Sakai genome are marked in alternating black&blue.To make an image like this please refer to Section5on page13.1INTRODUCTION7Figure4:Reference:A list of translated genes that make up the Locus of Entero-cyte Effacement(LEE),which encodes a Type III secretion system.Query:Raw sequencing reads simulated from several complete LEE+published genomes(nu-cleotide sequence)and E.coli K12,(negative control;LEE-).You can clearly see gene presence/absence,and divergence(the colour represents sequence identity on a sliding scale,the greyer it gets;the lower the percentage identity).To make an image like this please refer to Section6on page18.1INTRODUCTION8Figure5:Reference:Published E.coli O157:H7Sakai genome.Query:Read mapping coverage of sequencing reads simulated from complete genomes,indi-cated in the key.Simulated sequencing reads were mapped onto the published complete Sakai genome using BWA.The read coverage for each genome was generated from the resulting SAMfipare this with Figure3,which is based on the original published genome sequences.To make an image like this please refer to Section7on page25.2LICENCE9 2LicenceThis program is free software:you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foun-dation,either version3of the License,or(at your option)any later version.This program is distributed in the hope that it will be useful,but without any warranty;without even the implied warranty of merchantability orfitness for a particular purpose.See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along with this program.If not,see</licenses/>.Please note that these restrictions do not apply to the third party libraries bundled with this software.3InstallationThere’s no real”Installation”process for BRIG itself.However,BLAST+[2]or BLAST legacy[1]must already be installed and BRIG needs to be able to locate the BLAST executables(See Section3.1).To run BRIG users need to:1.Download the latest version(BRIG-x.xx-dist.zip)from/projects/brig/2.Unzip BRIG-x.xx-dist.zip to a desired location.3.Run BRIG.jar,by double clicking.Users who wish to run BRIG from the command-line need to:1.Navigate to the unpacked BRIG folder in a command-line interface(termi-nal,console,command prompt).2.Run“java-Xmx1500M-jar BRIG.jar”.Where-Xmx specifies the amountof memory allocated to BRIG.3.1Installing BLASTThe latest version of BLAST+[2]can be downloaded from:ftp:///blast/executables/blast+/LATEST/ BLAST+offers a number of improvements on the original BLAST implementa-tion and comes as a bundled installer,which will walk users through the installa-tion process.Please read the published paper on BLAST+:3INSTALLATION10 Camacho,C.,G.Coulouris,et al.(2009).“BLAST+:architecture and appli-cations.”BMC Bioinformatics10(1):421Available online at:http://www. /1471-2105/10/421The latest version of BLAST legacy[1]can be downloaded from:ftp:///blast/executables/release/LATEST/ BLAST legacy comes as a compressed package,which will unzip the BLAST binaries where ever the package is.We advise users tofirst create a BLAST direc-tory(in either the home or applications directory),copy the downloaded BLAST package to that directory and unzip the package.BRIG supports both BLAST+&BLAST ers can specify the loca-tion of their BLAST installation in the BRIG options menu which is: Main window>Preferences>BRIG options.The window is shown in Figure6.If BRIG cannotfind BLAST it will prompt users at runtime.PRO TIP1:BRIG uses BLAST,do not use wwwblast or netblast with BRIG. PRO TIP2:If BOTH BLAST+and legacy versions are in the same location, BRIG will prefer BLAST+.Figure6:You can change where BRIG looks for BLAST in the BRIG options window.For more information about BRIG options see Section9.2on page48.4W ARNING WHEN USING BLAST11 4Warning when using BLASTBRIG relies on the Basic Local Alignment Search Tool(BLAST)for genome comparisons.BLAST has a number of behaviours that may seem counterintuitive and we encourage users to learn about local alignment and the BLAST algorithm to fully understand the images that BRIG produces.There are a few concepts to keep in mind when using BRIG:4.1Low complexityfilteringPRO TIP3:BLASTfilters may cause gaps in alignments,which will show up as blank regions in BRIG images.BLASTfilters(BLAST legacy-Fflag or BLAST+-dust/-seg noflag)filter the query sequence for low-complexity sequences by default.This includes sequences that are highly repetitive or contain the same nucleotide for long lengths of the sequences.Low-complexityfiltering is generally a good idea,but it may break long matches into several smaller matches.This is often shown in BRIG images as truncations or gaps in alignments,it is particularly obvious in very small reference sequences where alignments are shown on a gene-by-gene level.To prevent this,either turn offfiltering or use soft masking.4.2Expected values(e-values)and bit scoresPRO TIP4:BLAST’s bitscorefiltering may cause different results in BRIG if users swap the query and reference sequences,particularly if these are very different sizes.BLAST uses statistical thresholds tofilter out“bad alignments”;alignment matches that appear random to BLAST.One of these thresholds is the e-value,which is the probability of the alignment occurring by chance,given the complexity of the match,sequence composition and the size of the database.It is more likely in a larger sequence that an alignment could occur by chance,so BLAST is more critical of these matches.This can create different expected values if BLAST is used with the same reference sequence against databases of different sizes and may potentiallyfilter out significant matches or include poor scoring ones.4W ARNING WHEN USING BLAST12 Because of this,users might notice different results in BRIG images if they swap the order of the database and reference sequences around in the BLAST, especially if the two sequences are quite different in size.The differences are often due to a few very low-scoring hits.Users should consider what an appropriate e-value threshold is for the compar-isons that they run.Remember,that BLAST runs with an e-value of10by default, we recommend that users change this ers can set thefinal threshold (e-value)with the-eflag in BLAST legacy or-evalueflag in BLAST+.PRO TIP5:BLAST does not handle spaces infilenames,BRIG will prompt users if they have spaces infile locations.5VISUALISING WHOLE GENOME COMPARISONS135Visualising whole genome comparisonsIn this section we will walk through the basics of generating an image.This walk through will be comparing an E.coli genome withfive other E.coli genomes and mapping the read coverage from the underlying genome assembly onto the same image.For this walk through,users will need BRIG examples.zip,which is avail-able from the BRIG website(/projects/brig/ files/).This contains all the genomes andfiles needed to follow along with this walk through.Unzip it somewhere easily accessible,like the home directory or desktop.About the reference genomeThe reference genome used in this walk through is a simulated E.coli genome assembly.We took the published E.coli O157:H7Sakai genome(Accession num-ber BA000007)sequence and had assembly reads simulated by METASIM[4]and then assembled these using Newbler version2.3.The resulting contiguous se-quences were ordered using Mauve[3]against the published Sakai genome.This simulated E.coli is useful for illustrating some of BRIG’s graphing features for assembly read coverage.Enterohemorrhagic E.coli are gram-negative,enteric bacterial pathogens.They can cause diarrhea,hemorrhagic colitis,and hemolytic uremic syndrome.This particular genome we are using in this example was based on an E.coli O157:H7 isolated from the Sakai,Japan outbreak.5.1Step1:Load in sequencesThe walk through will work out of the unzipped BRIG examples.zip in the Chap-ter568wholeGenomeExamples folder.The walk through and relatedfigureswill use C:\BRIG examples\Chapter568wholeGenomeExamples as that loca-tion.To keep thefinal image consistent with the walk through,please open”Exam-pleProfile.xml”from the Chapter568wholeGenomeExamples folder.Thisfile configures BRIG to the same image settings in the walk through.1.First,set BRIGExample.fna as the reference sequence.2.Set<unzipped BRIG examples folder>\Chapter568wholeGenomeExamplesas the query sequence folder.3.Press“add to data pool”,this should load several items into the pool list,there should be ninefiles.5VISUALISING WHOLE GENOME COMPARISONS144.Set the Chapter568wholeGenomeExamples as the output folder.5.The BLAST options box should be left blank.6.Click nextPRO TIP6:Users can add individualfiles to the data pool too.5.2Step2:Configure ringsThe next step is to configure what information is shown on each of the concentric rings in BRIG.Create six rings,for each ring:1.Set the legend text for each ring2.Select the required sequences from the data pool and click on“add data”toadd to the ring list.3.Choose a colour4.Set the upper(90)and lower(70)identity threshold.5VISUALISING WHOLE GENOME COMPARISONS155.Click on“add new ring”and repeat steps for each new ring required.The values required for each ring are detailed in the table below.Notice that thatsequences can be collated into a single ring,like the example of K12&HS.The ring will show BLAST matches from both HS and K12.Legend text Required sequences ColourGC Content GC Content IgnoreGC Skew GC Skew IgnoreCoverage BRIGExample.graph153,0,0O157:H7E coli O157H7Sakai.gbk0,0,153HS and K12E coli HS.fna0,153,0E coli K12MG1655.fnaCFT073and UTI89E coli CFT073.fna153,0,153E coli UTI89.fna5VISUALISING WHOLE GENOME COMPARISONS16 PRO TIP7:Rings can be reordered by dragging them in the Ring List pane. PRO TIP8:You can set default threshold values in“BRIG options”.See section9.2(page48)for more details.PRO TIP9:When using a Genbank/EMBLfile as a reference,users can choose whether to use the protein or nucleotide sequence.5.3Step3:Review and submitThe last window allows us to change the BLAST options,the location of the imagefile and set the image title,which will appear in the centre of the ring.For the walkthrough configure the third window as:1.Set the image title as“BRIG example image”.2.Hit submit.3.The image will be created in the specified output directory and should looksomething like Figure7.BRIG will format Genbankfiles,run BLAST,parse the results and render the im-age.Thefinal image(Figure7)shows GC Content and Skew,the Genome cover-age,contig boundaries,and the BLAST results against the other E.coli genomes. The results for HS and K12have been collated into a single ring,likewise for UTI89and CFT073.5VISUALISING WHOLE GENOME COMPARISONS17Figure7:Thefinal BRIG imagePRO TIP10:Image settings,like size,fonts,etc can be configured in:Main window>Preferences>Image options..6WORKING WITH A MULTI-FASTA REFERENCE186Working with a Multi-FASTA reference6.1Step1:Load in sequencesThis section is a walk through of how to use BRIG to generate an image using a listof genes in Multi-FASTA format as a reference.The multi-FASTAfile in this ex-ample is a number of virulence genes from enterohemorrhagic and uropathogenic E.coli,which includes EHEC polarfimbraie(ecpA to ecpR),EHEC Locus of En-terocyte Effacement(espF to espG)and the UPEC F1C Fimbraie(focA to focI), which will be compared against the whole genome seqeuences of E.coli strainsO157:H7Sakai,K12MG1665,O126:H7and CFT073.Start a new session in BRIG and load in thefiles from the Chapter568wholeGenomeExamples folderin the unzipped BRIG-Example folder:1.Set the reference sequence as“Ecoli vir.fna”.Users can use the browsebutton to traverse thefile system.2.Set<unzipped BRIG examples folder>/Chapter568wholeGenomeExamplesas the query sequence folder.3.Press“add to data pool”,this should load several items into the pool list.4.Set the output folder as unzipped BRIG-Example folder.5.Make sure the BLAST options box is blank.6.Click“Next”.6WORKING WITH A MULTI-FASTA REFERENCE196.2Step2:Configure rings,annotations and spacer valueThe next step is to configure what information is shown on each concentric ring in BRIG.Figure8is an example of how one of the windows should be set up.There should befive rings.Do the follow for each ring,according to the table below:1.Set legend text for each ring.2.Select the required sequences from the data pool and click“add data”toadd.3.Choose a colour4.Set upper(90)and lower(70)identity thresholds.5.Click“add new ring”and repeat these steps for each new ring.Legend text Required sequences ColourO157:H7E coli O157H7Sakai.gbk172,14,225O126:H7E coli O126.fna255,0,51CFT073E coli CFT073.fna0,0,102K12E coli K12MG1655.fna161,221,231null none ignoreAfter each ring is configured,users need to make the following changes:1.Set the spacerfield to50base pairs.2.Set the ring size of ring5as“2”.PRO TIP11:The Spacerfield determines the number of base pairs to leave between FASTA sequences.The next step is to add the gene annotations,which will be fetched from the Multi-FASTA headers:1.Click Add custom features in the second BRIG window to bring up customannotation window(Figure9).2.Double click“Ring5”.3.Set“input data”as Multi-FASTA.4.Set“colour”as alternating red-blue5.Click add.6WORKING WITH A MULTI-FASTA REFERENCE20Figure8:Ring set-up for Multi-FASTAfile6WORKING WITH A MULTI-FASTA REFERENCE21Figure9:Custom annotation window-adding gene annotations6WORKING WITH A MULTI-FASTA REFERENCE22 This step colours the gaps between FASTA entries,the gaps are calculated from the Multi-FASTAfile(Figure10).For each genome ring,do the following:1.Set“input data”as Multi-FASTA.2.Set“colour”as black3.Check“load gaps only”.4.Click add.The results should be similar to Figure10in the left hand pane.Close the window when this is done.PRO TIP12:A spacer value can be set when using protein sequences from a Genbank/EMBLfile.Figure10:Custom annotation window-adding spacers6WORKING WITH A MULTI-FASTA REFERENCE236.3Step3:Configure image settings and submitThere are a few more steps to complete and then the image isfinished.In the customize ring window:1.Make the following changes in Preferences>Image options(a)Set“show shading”in“Global settings”as false.(b)Set“featureSlot”spacing in“Feature settings”as x-small.2.Return to customize ring window,click“Next”to go to thefinal BRIGconfirmation window3.Set the image title as“Various E.coli virulence genes”and press submit. The output image should be something like Figure11.The alternating red-blue op-tion has automatically alternated the red and blue colours for the gene labels.This option is available whenever a multi-FASTAfile is used as a reference sequence. This same option could be used to show contig or genome scaffold boundaries. This image shows some real biological information very clearly.1.CFT073(UPEC)and K12MG1655(Commensal)do not carry the Locus ofEnterocyte Effacement.These virulence factors are specific to EHEC and EPEC.2.All E.coli shown carry the common pilus(ecpA-R).3.Only CFT073carries the F1Cfimbriae.PRO TIP13:You use protein sequences as a multi-FASTA reference and use blastx to improve alignment accuracy for divergent sequences.6WORKING WITH A MULTI-FASTA REFERENCE24Figure11:Output image from Multi-FASTA walkthrough.This was generated using BLAST+[2],BLAST legacy[1]will produce slightly different results.7VISUALISING GRAPHS AND GENOME ASSEMBLIES25 7Visualising graphs and genome assembliesBRIG can produce any user-specified graph e.g coverage,read mapping,expres-sion data etc.For example,the coverage graph in Figure2was produced from a tab-delimited textfile,with a start,stop and value for that range.BRIG supports.acefiles(produced by Newbler,454/Roche’s propriety as-sembler,and used by PHRAP/Consed)or SAMfiles(used for read mapping and some de-novo assemblers).BRIG has a number of modules for handling assembly information.These tools are:•Contig mapping:BRIG will use BLAST to try and map contigs from an .ace or Multi-FASTAfile onto a reference genome and produce a.graphfile that can show frequency of BLAST hits and the best BLAST hit position of contigs.It will then produce a.graphfile of the frequency of BLAST hits and the best BLAST hit position of contigs and another.graphfile,with the suffix”rep.graph”showing all the other BLAST hits.•Coverage graph:BRIG requires an.ace or.samfile and an output loca-tion(Figure7.1).BRIG will calculate coverage values over a user-defined window and produce a.graphfile in the output folder.This will create a tab-delimited.graphfile,which can be loaded into back BRIG.•Convert graph:A draft genome is usually modified post assembly;adding spacers,reordering contigs,etc.These changes are often not reflected in the original.acefiles BRIG uses to generate coverage graphs.BRIG can use BLAST to align the original assembly output with the newer sequence and map the coverage information to the new sequence.BRIG requires:–Original454AllContigs.fna produced by Newbler.–Graphfile created by BRIG’s“Coverage graph”module,based onNewbler’s acefile.–The modified sequence or another suitable reference genome.BRIG will produce a new.graphfile in the output folder,using thefilename of the originalfile,with“new.graph”appended to the end.To create work with graphfiles:Main window>Modules>Create graphfiles Using graphfiles in BRIG images.graphfiles should visible when users load a directory into the query sequence pool(Figure7.1).Graphs can be treated like any other sequencefile in BRIG;the example from Figure7.1shows a graphfile loaded into thefirst ring of a particular BRIG session.7VISUALISING GRAPHS AND GENOME ASSEMBLIES26 PRO TIP14:Graphfiles cannot be shown on same ring as sequencefiles (protein or nucleotide).7.1Walkthrough for visualising SAMfile mapping coverage. This section will give a worked example of producing a BRIG image show-ing mapping reads coverage from a SAM inputfile.Thefinal image will look like Figure12.This walkthrough requires BRIG examples.zip from the BRIG website(/projects/brig/files/).Unzip this somewhere convenient.The general procedure is tofirst generate the graphfiles from the SAMfile,add additionalfiles to data pool,edit the rings and annotation, then render the image.1.Open a new BRIG session.2.Create the graphfile from the graphfiles modules:Main window>Mod-ules>Create graphfiles.(a)Set drop down to coverage graph,fill infields(Figure7.1).(b)Set Assemblyfile as“Mu50.sam”from the BRIG examples/Chapter7-sam-examples folder.(c)Set Output folder as the location of the Chapter7-sam-examples folder.(d)Window size as“1”..(e)Click Create Graph.This will add the graphfile to the data pool whenit hasfinished.7VISUALISING GRAPHS AND GENOME ASSEMBLIES27Close the coverage graph window and return to thefirst main window.1.Set referencefile as“S.aureus.Mu50-plasmid-AP003367.gbk”from the Chapter7-sam-examples ers can use the browse button to traverse thefilesystem.2.Set<unzipped BRIG examples folder>/Chapter7-sam-examples as the querysequence folder.3.Press“add to data pool”,this should load several items into the pool list.4.Set the output folder as unzipped Chapter7-sam-examples folder.5.Make sure the BLAST options box is blank.Click next to move to the next window to configure the rings and add in annota-tions.1.Create4rings,name them“Mapping Coverage”,“pSK57”,“SAP014A”,“CDS”.2.Ring1Settings:(a)Add“Mu50.sam.graph”from data pool to Ring1.(b)Set graph maximum value as“10”.(c)Set colour as rgb(204,0,0).(d)Set legend title as“Mapping coverage”.(e)Check show red/blue.7VISUALISING GRAPHS AND GENOME ASSEMBLIES283.Ring2Settings:(a)Add“S.aureus.pSK57-plasmid-GQ900493.gbk”from data pool to Ring2.(b)Set colour as rgb(0,0,102).(c)Set legend title as“pSK57”.4.Ring3Settings:(a)Add“S.aureus.SAP014A-plasmid-GQ900379”from data pool to Ring3.(b)Set colour as rgb(102,0,102).(c)Set legend title as“SAP014A”.5.Ring4Settings:(a)Set colour as rgb(0,0,0).(b)Set legend title as“CDS”.7VISUALISING GRAPHS AND GENOME ASSEMBLIES29Click“Add Custom features”.1.Double-click Ring4.2.Set Input data to“Genbank”.3.Set colour to“black”.4.Set Draw feature as“default”.5.Set Genbankfile location to the location of“S.aureus.Mu50-plasmid-AP003367.gbk”.6.Set Feature as“CDS”7.Click add.This will load all the coding sequences from the Genbankfile.These annotations will be drawn as arrows,indicating orientation.Close this window and click next on the second window.1.Set title as“S.aureus Mu50plasmid”.2.Click Submit.This will generate thefinal image,it should look like Figure12.7VISUALISING GRAPHS AND GENOME ASSEMBLIES30Figure12:S.aureus Mu50plasmid,showing read mapping from simulated454 reads,CDSs,and genome comparisons to other S.aureus plasmids,pSK57& SAP014A.Alignments were performed with BLAST+7VISUALISING GRAPHS AND GENOME ASSEMBLIES317.2Walk through for visualising acefile assembly coverage. This section will give a worked example of producing a BRIG image showing assembly coverage read from an acefile.Thefinal image will look like Fig-ure13.This walk through requires BRIG examples.zip from the BRIG website (/projects/brig/files/).Unzip this some-where convenient.The general procedure is tofirst generate the graphfiles from the acefile,con-vert the coverage information to reference sequence if necessary,add additional files to data pool,edit rings and annotation,then render the image.Draft genome sequences are often modified to be consistant with other infor-mation(e.g genome scaffolding,PCR sequencing of gaps)after being initially assembled.This may change the order and size of thefinal genome sequence compared to the original assembly.To show the read coverage from the assembly on thefinal sequence correctly the“Convert graph”module within BRIG can be used to map the coverage infor-mation from the acefile onto the new sequence.This module can also be used to map read coverage from an assembly onto a closely-related reference genome.7VISUALISING GRAPHS AND GENOME ASSEMBLIES32First,produce the coverage graphfile based off the assembly(acefile):1.Open a new BRIG session.2.Create the graphfile from the graphfiles module:Main window>Modules>Create graphfiles.3.Set drop down to coverage graph,fill infields(Figure7.2).(a)Set Assemblyfile as“454-S.aureus.Mu30.ace”from the BRIGEXAMPLE2-ace folder.(b)Set Output folder as the location of the BRIGEXAMPLE2-ace folder.(c)Set window size as“1”.4.Click“Create Graph”.This will add the graphfile to the data pool when ithasfinished.7VISUALISING GRAPHS AND GENOME ASSEMBLIES33 Next,map the coverage generated in the previous graphfile to the modified genome sequence.1.Remain in the“Create custom graph”window:Main window>Modules>Create graphfiles.2.Set drop down to convert graph,fill infields as below.(a)Set Original sequence as“454AllContigs-S.aureus.Mu50.fna”.(b)Set New sequence as“S.aureus.Mu50-plasmid-AP003367.fna”.(c)Set graphfile as“454-S.aureus.Mu50.ace.graph”.(d)Set Output folder as the location of the BRIGEXAMPLE2-ace folder.(e)Window size as“1”.3.Click“Create Graph”.This will add the graphfile to the data pool when ishasfinished.7VISUALISING GRAPHS AND GENOME ASSEMBLIES34Close the“Create custom graph”window and return to the main window.1.Set referencefile as“S.aureus.Mu50-plasmid-AP003367.gbk”from theBRIGEXAMPLE2-ace ers can use the browse button to traverse thefile system.2.Set<unzipped BRIGEXAMPLE2-ace folder>/genomes as the query se-quence folder.3.Press“add to data pool”,this should load several items into the pool list.4.Set the output folder as unzipped BRIGEXAMPLE2-ace folder.5.Make sure the BLAST options box is blank.。
Clue Deduction:an introduction to satisfiability reasoningTodd W.Neller∗,Zdravko Markov,Ingrid RussellAugust10,20051IntroductionClue R 1is a mystery-themed game of deduction.The goal of the game is to be thefirst player to correctly name the contents of a casefile:the murder suspect,the weapon used,and the room the murder took place in.There are6possible suspects,6possible weapons,and9possible rooms,each of which are pictured on a card.One card of each type is chosen randomly and placed in a“casefile”envelope without being revealed to any player.All other cards are dealt out face-down to the players. Each player takes on the identity of one of the suspects.Each player thus begins with private knowledge that their dealt cards are not in the casefile.As the game proceeds,players suggest possible suspect,weapon,and room combinations,and other players refute these suggestions by privately revealing such cards to the suggester.This type of game is called a knowledge game[10],and the basic knowledge of the game may be expressed using propositional logic.In this project,we will study:•Propositional logic syntax(structure)and semantics(meaning),•Conjunctive normal form(CNF),•Resolution theorem proving,and•Application of a SAT solver to Clue.The result will be a reasoning engine which yields“expert”deductions for the play of Clue.Ad-ditionally,we will discuss deductive learning,inductive learning,knowledge acquisition,and possible advanced projects.2Propositional LogicIn this section,we give a brief overview of propositional logic(a.k.a.Boolean logic and sentential logic).For a more complete introduction,we recommend[7,Ch.7].Propositional logic is a simple logic based upon the Boolean values true and false.Many program-mers willfind propositional logic intuitive from exposure to Boolean types and logical operators which occur frequently in programming.In discussing a logic,one needs to address both the syntax(structure)and the semantics(mean-ing)of the language.Just as the syntax of a programming language defines rules for what constitutes a∗Corresponding author:tneller@,Gettysburg College,Department of Computer Science,Campus Box 402,Gettysburg,PA17325-14861A.k.a.Cluedo R in other parts of the worldwell-formed program,the syntax of a logical language defines rules for what constitutes a well-formed sentence of the logic.Just as programming language specifications help the programmer understand the expected behavior of a program,the semantics of a logical language define the meaning of well-formed sentences of the logic.We will present the syntax and semantics of propositional logic one simple piece at a time.The atomic sentence is the simplest fundamental unit of the language.The syntax of an atomic sentence is either the constant true,the constant false,or a symbol.Each symbol is associated with a statement which can be true or false.For example,pi wh may symbolize the statement that“The Mrs. White player is holding the Lead Pipe card.”This statement may be true or false.In general,c p will symbolize the statement“The card c is in place p.”Often,the symbols used for atomic sentences are capital alphabetic characters A,B,C,...,Z,but we are free to choose whichever symbols are convenient.However,just as with commenting variables in a program,it is important to attach meanings to these symbols to ground them in the reality they represent.Example Problem:Suppose that liars always speak what is false,and truth-tellers always speak what is true.Further suppose that Amy,Bob,and Cal are each either a liaror truth-teller.Amy says,“Bob is a liar.”Bob says,“Cal is a liar.”Cal says,“Amy andBob are liars.”Which,if any,of these people are truth-tellers?The atomic sentences for this problem are as follows:•A-Amy is a truth-teller.•B-Bob is a truth-teller.•C-Cal is a truth-teller.Negation(¬,“not”):More complex sentences may be built from these.The negation of A, denoted¬A(read“not”A),means the opposite of A,and thus means“Amy is not a truth-teller.”Given our constraint that Amy is either a truth-teller or liar,this also means“Amy is a liar.”The negation operator¬operates on a single sentence,negating its meaning.Thus for propositional logic sentence s,¬s has the opposite truth value.We may thus express the semantics of¬in a truth table:s¬sfalse truetrue falseA literal is an atomic sentence or its negation.For example,A,¬A,B,¬B,C,and¬C are all literals.Conjunction(∧“and”):We have seen how“Amy is a liar.”can be represented as¬A.Similarly,“Bob is a liar.”can be represented as¬B.To say“Amy and Bob are liars.”is to say that both¬A and¬B are true.We denote this conjunction of sentences as¬A∧¬B(read“not A and not B”).If either or both of the two subsentences¬A or¬B are false,then the conjunction is false as well.The semantics of∧for sentences s1and s2are thus expressed in this truth table:s1s2s1∧s2false false falsefalse true falsetrue false falsetrue true trueDisjunction(∨“or”):Suppose that you are playing Miss Scarlet and Mrs.White suggests that Colonel Mustard committed the murder with the knife in the hall.Mr.Green refutes this suggestion by privately showing one of the cards Mustard,Knife,or Hall privately to Mrs.White.You hold the Mustard card.Thus you know that Mr.Green has either the Knife card or the Hall card.We may represent this knowledge as the disjunction kn gr∨ha gr(read“kn gr or ha gr”).If either or both of the two subsentences¬A or¬B are true,then the disjunction is true as well.The semantics of∨for sentences s1and s2are thus expressed in this truth table:s1s2s1∨s2false false falsefalse true truetrue false truetrue true trueConditional(⇒“implies”):In our truth-teller and liar example,Amy says“Bob is a liar.”.If Amy is a truth-teller(A),then we know that Bob is a liar(¬B).We may represent this knowledge as the conditional(a.k.a.implication)A⇒¬B(read“A implies not B”).If thefirst subsentence s1,the antecedent,is true,and the second subsentence s2,the consequent,is false,then the conditional is false.Otherwise,it is true.The semantics of⇒for sentences s1and s2are thus expressed in this truth table:s1s2s1⇒s2false false truefalse true truetrue false falsetrue true trueBiconditional(⇔“if and only if”):In the previous example,A⇒¬B is not the only fact we represent from Amy saying that Bob is a liar.We also know that if wefind that Bob is,in fact, a liar,then Amy must be a truth-teller.That is¬B⇒bining these facts in a conjunction, we fully represent the knowledge as(A⇒¬B)∧(¬B⇒A).This conjunction of two conditionals with antecedents and consequents reversed has a more compact representation as the biconditional A⇔¬B.If thefirst subsentence s1and the second subsentence s2have the same truth value,the biconditional is true.Otherwise,it is false.The semantics of⇔for sentences s1and s2are thus expressed in this truth table:s1s2s1⇔s2false false truefalse true falsetrue false falsetrue true trueAs with arithmetic expressions,there is an order of precedence of the operators.The negation operator(¬)has highest precedence,followed by∧,∨,⇒,and⇔.Thus,¬A∧B means(¬A)∧BA∨B⇔C means(A∨B)⇔C¬A∨B∧C means(¬A)∨(B∧C)etc.Here,we’ve used parentheses to clarify operator grouping,but parentheses may also be used to group operations as desired(e.g.¬(A∧B)),or improve readability(e.g.(A∧B)∨(C∧D)∨(E∧F)).This is whole of the syntax and semantics may thus be summarized with the following Backus-Naur Form(BNF)grammar,where the Symbol set is chosen and defined by the logician:Sentence→Atomic Sentence|Complex SentenceAtomic Sentence→true|false|SymbolComplex Sentence→¬Sentence|Sentence∧Sentence|Sentence∨Sentence|Sentence⇒Sentence|Sentence⇔Sentence Above,the BNF“→”roughly means“is a”and the BNF“|”means“or”,so that thefirst syntax rule(or production)means“A sentence is either an atomic sentence or a complex sentence.”The set of sentences that represent our knowledge is called our knowledge base.For example,the knowledge base for our liars and truth-tellers problem is:{A⇔¬B,B⇔¬C,C⇔¬A∧¬B}Note that these sentences could all be combined with conjunction in a single sentence which expresses all knowledge of the knowledge base:(A⇔¬B)∧(B⇔¬C)∧(C⇔¬A∧¬B)If we think of our atomic sentence symbols as boolean variables,then an assignment to all variables would be called a truth assignment.A truth assignment which makes a sentence s true is said to satisfy s.This satisfying truth assignment is also called a model of s.Another way to think about it is that each truth assignment is a“world”,and that the models of s are“possible worlds”.If and only if s has a model,s is said to be satisfiable.If and only if s has no model,s is said to be unsatisfiable. If and only if every truth assignment is a model of s,then s is said to be valid or a tautology.Now let us consider two sentences s1and s2.We say that s1entails s2,denoted s1|=s2,if and only if every model of s1is also a model of s2.Sometimes this is expressed by saying that“s2logically follows from s1”.Two sentences s1and s2are logically equivalent if and only if s1|=s2and s2|=s1. 3Conjunctive Normal Form(CNF)Propositional knowledge which is expressed as a conjunction of disjunctions of literals is said to be in conjunctive normal form(CNF).Recall that a literal is an atomic sentence or a negated atomic sentence.A disjunction(or)of literals is often referred to as a clause.Conjunctive normal form is a conjunction(and)of such clauses.Any sentence can be converted to CNF.We will describe the steps of this process and show how the liar and truth-teller example knowledge base may be converted to CNF.1.Eliminate⇔.Replace each occurrence of s1⇔s2with the equivalent(s1⇒s2)∧(s2⇒s1).Thus,the knowledge base{A⇔¬B,B⇔¬C,C⇔¬A∧¬B}may be rewritten as{(A⇒¬B)∧(¬B⇒A),(B⇒¬C)∧(¬C⇒B),(C⇒¬A∧¬B)∧(¬A∧¬B⇒C)} We noted before that the set of knowledge base sentences could all be combined with conjunction in a single equivalent sentence.At any time,we can use this equivalence in the opposite direction to separate conjunctions into separate sentences of the knowledge base:{A⇒¬B,¬B⇒A,B⇒¬C,¬C⇒B,C⇒¬A∧¬B,¬A∧¬B⇒C}2.Eliminate⇒.Replace each occurrence of s1⇒s2with the equivalent¬s1∨s2.With suchreplacements,our knowledge base becomes:{¬A∨¬B,¬¬B∨A,¬B∨¬C,¬¬C∨B,¬C∨¬A∧¬B,¬(¬A∧¬B)∨C}3.Move¬inward.In CNF,negation(¬)only occurs in literals before atomic sentence symbols.All occurrences of¬can either be negated or“moved”inward towards the atomic sentences using three equivalences:de Morgan’s law¬(s1∧s2)≡¬s1∨¬s2¬(s1∨s2)≡¬s1∧¬s2double¬elimination¬¬s≡sUsing these equivalences,our knowledge base is rewritten:{¬A∨¬B,B∨A,¬B∨¬C,C∨B,¬C∨¬A∧¬B,A∨B∨C} The last sentence was rewritten in multiple steps:¬(¬A∧¬B)∨C≡(¬¬A∨¬¬B)∨C≡(A∨¬¬B)∨C≡(A∨B)∨C≡A∨B∨C4.Distribute∨over∧.That is,move disjunction(∨)inward while moving conjunction(∧)outward to form a conjunction of disjunctions.This is accomplished through distributivity of∨:s1∨(s2∧s3)≡(s1∨s2)∧(s1∨s3)(s1∧s2)∨s3≡(s1∨s3)∧(s2∨s3)Thus we can rewrite our knowledge base:{¬A∨¬B,B∨A,¬B∨¬C,C∨B,(¬C∨¬A)∧(¬C∨¬B),A∨B∨C} or{¬A∨¬B,B∨A,¬B∨¬C,C∨B,¬C∨¬A,¬C∨¬B,A∨B∨C} This is sometimes more compactly expressed as a set of a set of literals,where the sets of literals are implicitly understood as clauses(disjunctions)and the set of these is implicitly understood as the knowledge base,a conjunction of known sentences:{{¬A,¬B},{B,A},{¬B,¬C},{C,B},{¬C,¬A},{¬C,¬B},{A,B,C}}It is important to note that a model in CNF is a truth assignment that makes at least one literal in each clause true.4Resolution Theorem ProvingConsider the two clauses{B,A}and{¬B,¬C}of our example CNF knowledge base.Thefirst reads,“Bob is a truth-teller or Amy is a truth-teller.”The second reads,“Bob is not a truth-teller or Cal is not a truth-teller.”Consider what happens according to Bob’s truthfulness:•Bob is not a truth-teller.The second clause is satisfied.Thefirst clause is satisfied if and only if Amy is a truth-teller.•Bob is a truth-teller.Thefirst clause is satisfied.The second clause is satisfied if and only if Cal is not a truth-teller.Since one case or the other holds,we know in any model of both clauses that Amy is a truth-teller or Cal is not a truth-teller.In other words,from clauses{B,A}and{¬B,¬C},we can derive the clause {A,¬C}and add it to our knowledge base.This is a specific application of the resolution rule.In general,we can express the resolution rule as follows:Given a clause{l1,l2,...,l i,A}and {¬A,l i+1,l i+2,...,l n},we can derive the clause{l1,l2,...,l n}.If A is false,one of the otherfirst clause literals must be true.If A is true,one of the other second clause literals must be true.Since A must be either true or false,then at least one of all the other n literals must be true.Not all possible resolution rule derivations are useful.Consider what happens when we apply the resolution rule to thefirst two clauses of our example knowledge base.From{¬A,¬B}and{B,A},we can derive either{¬A,A}or{¬B,B}depending on which atomic sentence we use for the resolution. In either case,we derive a tautology.The clause{¬A,A}is always true.It reads“Amy is not a truth-teller or Amy is a truth-teller.”In order to direct our derivations towards a simple goal,we will perform proof by contradiction2. The basis of this style of proof is the fact that s1|=s2if and only if(s1∧¬s2)is unsatisfiable.Put another way,every truth assignment that makes s1true also makes s2true if and only if there exists no truth assignment where s1is true and s2is false.The application of this principle is simple.Suppose that sentence s1represents our knowledge base,and that we wish to wish to prove that sentence s2follows from s1.We simply add¬s2to our knowledge base and seek to derive a contradiction.We take what we believe must follow,and prove it by showing that the opposite causes a contradiction.This approach is not only effective in human argument,but is important for automated theorem proving as well.Let us use this approach to prove that Cal is a liar(¬C).In addition to the knowledge base,we assume the negation of what we wish to prove(¬¬C,that is C).We will number our clauses to the left.To the right,we will list the clause numbers used to derive the clause by resolution.(1){¬A,¬B}Knowledge base(2){B,A}(3){¬B,¬C}(4){C,B}(5){¬C,¬A}(6){¬C,¬B}(7){A,B,C}(8){C}Assumed negation(9){¬A}(5),(8)Derived clauses(10){B}(2),(9)(11){¬C}(3),(10)(12){}(8),(11)Contradiction!2a.k.a.reductio ad absurdumRecall that at least one literal of each clause must be true for a truth assignment to be a model. This last empty clause has no literals at all and represents a clear contradiction.To see why,consider the resolution that led to it.In(10)and(11)we declare a fact and its negation to be true.The resolution rule leaves us no literals to be made true to satisfy these clauses.A clause with no literals is thus logically equivalent to false.Since we hold each clause to be true,we have in effect shown that false is true.This is a contradiction.Thus it cannot be the case that{C}is true as we had assumed. Thus{¬C}logically follows from our knowledge base.It should be noted that an unsatisfiable knowledge base will derive an empty clause without any need of assumption.One can thus prove any sentence using proof by contradiction and starting with a contradictory knowledge base.If one cannot derive a contradiction in this manner,then there is a satisfying truth assignment for the knowledge base and the assumed negation of the hypothesis one sought to prove.For practice,the reader should perform two resolution proofs by contradiction that•Amy is a liar,and•Bob is a truth-teller.When we derive a sentence s2from sentence s1,we denote it s1 s2.A proof procedure that derives only what is entailed is called sound.A proof procedure that can derive anything that is entailed is called complete.Resolution theorem proving is both sound and complete.5DIMACS CNF FormatResolution theorem proving seeks to answer the question“Is the knowledge base plus the negated hypothesis satisfiable?”There is an intense research effort underway for high-performance satisfiability solvers.Each year,there is a satisfiability software competition.The most common problem input format is the DIMACS CNF Format.We introduce the DIMACS CNF Format by example.Clauses(1)-(8)of the previous proof might be encoded as follows:c Truth-teller and liar problemc1:Amy is a truth-teller.c2:Bob is a truth-teller.c3:Cal is a truth-teller.cp cnf38-1-20210-2-30320-3-10-3-20123030According to the2004SAT competition documentation3,Thefile can start with comments,that is,lines beginning with the character c.3See URL /SATCompetition/2004/format-benchmarks2004.html.Right after the comments,there is the line p cnf nbvar nbclauses indicating that theinstance is in CNF format;nbvar is an upper bound on the largest index of a variableappearing in thefile;nbclauses is the exact number of clauses contained in thefile.Then the clauses follow.Each clause is a sequence of distinct non-null numbers between-nbvar and nbvar ending with0on the same line;it cannot contain the opposite literalsi and-i simultaneously.Positive numbers denote the corresponding variables.Negativenumbers denote the negations of the corresponding variables.Each atomic sentence(called a variable above)is associated with a positive integer.Thus,literals are represented by integers other than0,which is used to terminate clauses.The output when running the SAT solver zChaff4on our example is as follows:Z-Chaff Version:Chaff IISolving f......CONFLICT during preprocessInstance UnsatisfiableRandom Seed Used0Max Decision Level0Num.of Decisions0(Stack+Vsids+Shrinking Decisions)0+0+0Original Num Variables3Original Num Clauses8Original Num Literals16Added Conflict Clauses0Num of Shrinkings0Deleted Conflict Clauses0Deleted Clauses0Added Conflict Literals0Deleted(Total)Literals0Number of Implication3Total Run Time0RESULT:UNSATThe contradiction was found quickly during the preprocessing stage of the solver and it reports that the clauses are unsatisfiable(UNSAT).6SATSolverIn order to aid Java programmers in working with zChaff(written in C++)we have created a simple class called SATSolver,described in this section.We begin by creating and initializing ArrayList s5to hold clauses which are represented as int arrays.Each int array is a clause,a sequence of non-zero integers much like the DIMACS CNF format clause lines,but without0termination.We divide the clauses into two lists:clauses and queryClauses.The reason is that our expected usage is to have a monotonically growing knowledge base alongside a temporary and often changing 4See URL /%7Echaff/zchaff.html.5Java1.5styleset of query clauses.Initializefield variables ≡public ArrayList<int[]>clauses=new ArrayList<int[]>();public ArrayList<int[]>queryClauses=new ArrayList<int[]>();We thus have simple methods to allow the user to add single clauses or remove all clauses from either list.Side note:This format of presenting code in chunks is called literate programming and is due to Donald Knuth.Code will be presented in named chunks that will appear inserted within other chunk definitions.The source document is used not only to generate the output you are now reading,but also to generate the example code.In this way,the code presented is both consistent with the example code,and has been tested for correctness.Methods to add/clear clauses ≡public void addClause(int[]clause){clauses.add((int[])clause.clone());}public void clearClauses(){clauses.clear();}public void addQueryClause(int[]clause){queryClauses.add((int[])clause.clone());}public void clearQueryClauses(){queryClauses.clear();}When making a query to test the satisfiability of the clauses and queryClauses combined,we compute the number of variables6and clauses,write a DIMACS CNF queryfile,and execute zChaffas an external process.The result returned will be true if the combined clauses are satisfiable,and false otherwise. Query zChafffor satisfiability ≡public boolean makeQuery(){try{Compute max query variableWrite DIMACS CNF format queryfileExecute external zChaffprocess and scan result}catch(Exception e){System.out.println(e);}return false;}6Actually,we compute the maximum absolute index.Here we build the list allClauses which has both the knowledge base clauses and query clauses combined.We iterate through these lists7,and compute the maximum absolute value of a literal.Compute max query variable ≡int maxVar=0;ArrayList<int[]>allClauses=new ArrayList<int[]>(clauses);allClauses.addAll(queryClauses);for(int[]clause:allClauses)for(int literal:clause)maxVar=Math.max(Math.abs(literal),maxVar);Next,we write allClauses out to afile f in DIMACS CNF format.Write DIMACS CNF format queryfile ≡PrintStream out=new PrintStream(new File("f"));out.println("c This DIMACS format CNF file was generated by SatSolver.java");out.println("c Do not edit.");out.println("p cnf"+maxVar+""+allClauses.size());for(int[]clause:allClauses){for(int literal:clause)out.print(literal+"");out.println("0");}out.close();Finally,we use Java’s Runtime environment to execute zChaff.Scanning the input stream8,we skip to the RESULT,and return whether or not the clauses were satisfiable.Execute external zChaffprocess and scan result ≡Process process=Runtime.getRuntime().exec("zchaff f");Scanner sc=new Scanner(process.getInputStream());sc.findWithinHorizon("RESULT:",0);String result=sc.next();sc.close();process.waitFor();return result.equals("SAT");Often,the user will simply want to know at a given point if a literal can be proved true/false or not. For this,we define constants as return codes...Define constants ≡public static final int FALSE=-1;public static final int UNKNOWN=0;public static final int TRUE=1;...and provide code which performs the queries necessary to test a given literal.7Java1.5style8using Java1.5’s Scanner classTest a single literal ≡public int testLiteral(int literal){int result=UNKNOWN;clearQueryClauses();int[]clauseT={literal};addQueryClause(clauseT);if(!makeQuery())result=FALSE;else{clearQueryClauses();int[]clauseF={-literal};addQueryClause(clauseF);if(!makeQuery())result=TRUE;}clearQueryClauses();return result;}Here we provide a test case in which we take our liar and truth-teller example and apply the SATSolver.Test case ≡public static void main(String[]args){//Liar and truth-teller example test code:int[][]clauses={{-1,-2},{2,1},{-2,-3},{3,2},{-3,-1},{-3,-2},{1,2,3}};SATSolver s=new SATSolver();for(int i=0;i<clauses.length;i++)s.addClause(clauses[i]);System.out.println("Knowledge base is satisfiable:"+s.makeQuery());System.out.print("Is Cal a truth-teller?");int result=s.testLiteral(3);if(result==FALSE)System.out.println("No.");else if(result==TRUE)System.out.println("Yes.");elseSystem.out.println("Unknown.");}Putting all these parts together,the entire SATSolver.java is as follows:SATSolver.java ≡import java.io.*;import java.util.*;public class SATSolver{Define constantsInitializefield variablesMethods to add/clear clausesQuery zChafffor satisfiabilityTest a single literalTest case}This code may be used to efficiently solve the exercises of the next section.7ExercisesFor each of the following problems,there are four exercises:(a)Express all relevant problem facts as a propositional logic knowledge base.Clearly explain themeaning of your propositional symbols.(b)Convert the propositional logic knowledge base to CNF.(c)Use resolution theorem proving to solve the problem.(d)Solve the problem computationally with a SAT solver.Exercise(a)should precede(b)which should in turn precede(c)and(d).Problems:1.Horn Clauses:(from[7,Exercise7.9])If the unicorn is mythical,then it is immortal,but ifit is not mythical,then it is a mortal mammal.If the unicorn is either immortal or a mammal, then it is horned.The unicorn is magical if it is horned.(a)Can we prove that the unicorn is mythical?(b)Can we prove that the unicorn is magical?(c)Can we prove that the unicorn is horned?2.Liars and Truth-tellers1:(adapted from OSSMB982-12)Three people,Amy,Bob,and Cal,are each either a liar or a truth-teller.Assume that liars always lie,and truth-tellers always tell the truth.•Amy says,“Cal and I are truthful.”•Bob says,“Cal is a liar.”•Cal says,“Bob speaks the truth or Amy lies.”What can you conclude about the truthfulness of each?9Ontario Secondary School Mathematics Bulletin3.Liars and Truth-tellers2:(adapted from OSSMB83-11)Three people,Amy,Bob,and Cal,are each either a liar or a truth-teller.Assume that liars always lie,and truth-tellers always tell the truth.•Amy says,“Cal is not honest.”•Bob says,“Amy and Cal never lie.”•Cal says,“Bob is correct.”What can you conclude about the truthfulness of each?4.Robbery and a Salt:(from OMG1022.1.1)The salt has been stolen!Well,it was found thatthe culprit was either the Caterpillar,Bill the Lizard or the Cheshire Cat.The three were tried and made the following statements in court:CATERPILLAR:Bill the Lizard ate the salt.BILL THE LIZARD:That is true!CHESHIRE CAT:I never ate the salt.As it happened,at least one of them lied and at least one told the truth.Who ate the salt?5.Multiple Choice:(adapted from CRUX11357)In a certain multiple-choice test,one of thequestions was illegible,but the choice of answers was clearly printed.(a)All of the below.(b)None of the below.(c)All of the above.(d)One of the above.(e)None of the above.(f)None of the above.Assuming that more than one answer may be true,divide answers into three groups:•those that are necessarily true,•those that are necessarily false,and•those that could be true or false.How many different possible ways are there to consistently circle true subset(s)of answers?List the subset(s).6.A Sanctum for the Good En-doors-ment:(from CRUX357)There are four doors X,Y,Zand W leading out of the Middle Sanctum.At least one of them leads to the Inner Sanctum.If you enter a wrong door,you will be devoured by afierce dragon.Well,there were eight priests A,B,C,D,E,F,G and H,each of whom is either a knight or a knave.(Knights always tell the truth and knaves always lie.)They made the following statements to the philosopher:A:X is a good door.B:At least one of the doors Y or Z is good.C:A and B are both knights.D:X and Y are both good doors.10Ontario Mathematical Gazette11Crux Mathematicorum。
英语作文里的逻辑如何体现Logic is an essential component of writing an effective and persuasive essay. It is the backbone of a well-structured essay that presents a clear and concise argument. In this essay, I will discuss how logic is reflected in English writing and provide a high-quality imitation of the most downloaded essay online.Firstly, logic is reflected in the structure of an essay. A well-structured essay follows a logical sequenceof ideas that leads the reader from the introduction to the conclusion. The introduction should provide background information and set the tone for the essay. The body paragraphs should be organized in a logical order that supports the thesis statement. Each paragraph shouldcontain a topic sentence that introduces the main idea and evidence that supports it. The conclusion should summarize the main points and restate the thesis statement.Secondly, logic is reflected in the use of evidence. Apersuasive essay should provide evidence that supports the argument. The evidence should be relevant, reliable, and presented in a logical manner. The writer should use facts, statistics, and examples to support their argument. The evidence should be presented in a logical order that supports the thesis statement.Thirdly, logic is reflected in the use of language. The language used in an essay should be clear, concise, and precise. The writer should avoid using vague or ambiguous language that can confuse the reader. The writer should use words and phrases that are appropriate for the audience and the purpose of the essay. The writer should also use transitional words and phrases to connect ideas and create a logical flow.Now, let me provide a high-quality imitation of the most downloaded essay online, reflecting the use of logicin English writing.The topic of my essay is the importance of exercise for a healthy lifestyle. The essay will follow a logicalstructure that includes an introduction, body paragraphs, and a conclusion. The body paragraphs will provide evidence that supports the argument that exercise is essential for a healthy lifestyle.Introduction:Exercise is an essential component of a healthy lifestyle. It has numerous benefits that include weight loss, improved cardiovascular health, and increased energy levels. In this essay, I will discuss the importance of exercise for a healthy lifestyle.Body Paragraph 1:Exercise is an effective way to maintain a healthy weight. It burns calories and increases metabolism, which helps to reduce body fat. In addition, exercise can help to prevent obesity, which is a major risk factor for many chronic diseases.Body Paragraph 2:Exercise improves cardiovascular health. It strengthens the heart and improves blood flow, which reduces the risk of heart disease and stroke. Regular exercise can also lower blood pressure and cholesterol levels, which are other risk factors for cardiovascular disease.Body Paragraph 3:Exercise increases energy levels and improves mood. It releases endorphins, which are natural mood boosters. Regular exercise can also improve sleep quality, which is essential for overall health and wellbeing.Conclusion:In conclusion, exercise is essential for a healthy lifestyle. It has numerous benefits that include weight loss, improved cardiovascular health, and increased energy levels. By incorporating exercise into our daily routine, we can improve our overall health and wellbeing.。
java英⽂参考⽂献java英⽂参考⽂献汇编 导语:Java是⼀门⾯向对象编程语⾔,不仅吸收了C++语⾔的各种优点,还摒弃了C++⾥难以理解的多继承、指针等概念,因此Java语⾔具有功能强⼤和简单易⽤两个特征。
下⾯⼩编为⼤家带来java英⽂参考⽂献,供各位阅读和参考。
java英⽂参考⽂献⼀: [1]Irene Córdoba-Sánchez,Juan de Lara. Ann: A domain-specific language for the effective design and validation of Java annotations[J]. Computer Languages, Systems & Structures,2016,:. [2]Marcelo M. Eler,Andre T. Endo,Vinicius H.S. Durelli. An Empirical Study to Quantify the Characteristics of Java Programs that May Influence Symbolic Execution from a Unit Testing Perspective[J]. The Journal of Systems & Software,2016,:. [3]Kebo Zhang,Hailing Xiong. A new version of code Java for 3D simulation of the CCA model[J]. Computer Physics Communications,2016,:. [4]S. Vidal,A. Bergel,J.A. Díaz-Pace,C. Marcos. Over-exposed classes in Java: An empirical study[J]. Computer Languages, Systems & Structures,2016,:. [5]Zeinab Iranmanesh,Mehran S. Fallah. Specification and Static Enforcement of Scheduler-Independent Noninterference in a Middleweight Java[J]. Computer Languages, Systems & Structures,2016,:. [6]George Gabriel Mendes Dourado,Paulo S Lopes De Souza,Rafael R. Prado,Raphael Negrisoli Batista,Simone R.S. Souza,Julio C. Estrella,Sarita M. Bruschi,Joao Lourenco. A Suite of Java Message-Passing Benchmarks to Support the Validation of Testing Models, Criteria and Tools[J]. Procedia Computer Science,2016,80:. [7]Kebo Zhang,Junsen Zuo,Yifeng Dou,Chao Li,Hailing Xiong. Version 3.0 of code Java for 3D simulation of the CCA model[J]. Computer Physics Communications,2016,:. [8]Simone Hanazumi,Ana C.~V. de Melo. A Formal Approach to Implement Java Exceptions in Cooperative Systems[J]. The Journal of Systems & Software,2016,:. [9]Lorenzo Bettini,Ferruccio Damiani. Xtraitj : Traits for the Java Platform[J]. The Journal of Systems & Software,2016,:. [10]Oscar Vega-Gisbert,Jose E. Roman,Jeffrey M. Squyres. Design and implementation of Java bindings in OpenMPI[J]. Parallel Computing,2016,:. [11]Stefan Bosse. Structural Monitoring with Distributed-Regional and Event-based NN-Decision Tree Learning Using Mobile Multi-Agent Systems and Common Java Script Platforms[J]. Procedia Technology,2016,26:. [12]Pablo Piedrahita-Quintero,Carlos Trujillo,Jorge Garcia-Sucerquia. JDiffraction : A GPGPU-accelerated JAVA library for numerical propagation of scalar wave fields[J]. Computer Physics Communications,2016,:. [13]Abdelhak Mesbah,Jean-Louis Lanet,Mohamed Mezghiche. Reverse engineering a Java Card memory management algorithm[J]. Computers & Security,2017,66:. [14]G. Bacci,M. Bazzicalupo,A. Benedetti,A. Mengoni. StreamingTrim 1.0: a Java software for dynamic trimming of 16S rRNA sequence data from metagenetic studies[J]. Mol Ecol Resour,2014,14(2):. [15]Qing‐Wei Xu,Johannes Griss,Rui Wang,Andrew R. Jones,Henning Hermjakob,Juan Antonio Vizcaíno. jmzTab: A Java interface to the mzTab data standard[J]. Proteomics,2014,14(11):. [16]Rody W. J. Kersten,Bernard E. Gastel,Olha Shkaravska,Manuel Montenegro,Marko C. J. D. Eekelen. ResAna: a resource analysis toolset for (real‐time) JAVA[J]. Concurrency Computat.: Pract. Exper.,2014,26(14):. [17]Stephan E. Korsholm,Hans S?ndergaard,Anders P. Ravn. A real‐time Java tool chain for resource constrained platforms[J]. Concurrency Computat.: Pract. Exper.,2014,26(14):. [18]M. Teresa Higuera‐Toledano,Andy Wellings. Introduction to the Special Issue on Java Technologies for Real‐Time and Embedded Systems: JTRES 2012[J]. Concurrency Computat.: Pract. Exper.,2014,26(14):. [19]Mostafa Mohammadpourfard,Mohammad Ali Doostari,Mohammad Bagher Ghaznavi Ghoushchi,Nafiseh Shakiba. Anew secure Internet voting protocol using Java Card 3 technology and Java information flow concept[J]. Security Comm. Networks,2015,8(2):. [20]Cédric Teyton,Jean‐Rémy Falleri,Marc Palyart,Xavier Blanc. A study of library migrations in Java[J]. J. Softw. Evol. and Proc.,2014,26(11):. [21]Sabela Ramos,Guillermo L. Taboada,Roberto R. Expósito,Juan Touri?o. Nonblocking collectives for scalable Java communications[J]. Concurrency Computat.: Pract. Exper.,2015,27(5):. [22]Dusan Jovanovic,Slobodan Jovanovic. An adaptive e‐learning system for Java programming course, based on Dokeos LE[J]. Comput Appl Eng Educ,2015,23(3):. [23]Yu Lin,Danny Dig. A study and toolkit of CHECK‐THEN‐ACT idioms of Java concurrent collections[J]. Softw. Test. Verif. Reliab.,2015,25(4):. [24]Jonathan Passerat?Palmbach,Claude Mazel,David R. C. Hill. TaskLocalRandom: a statistically sound substitute to pseudorandom number generation in parallel java tasks frameworks[J]. Concurrency Computat.: Pract.Exper.,2015,27(13):. [25]Da Qi,Huaizhong Zhang,Jun Fan,Simon Perkins,Addolorata Pisconti,Deborah M. Simpson,Conrad Bessant,Simon Hubbard,Andrew R. Jones. The mzqLibrary – An open source Java library supporting the HUPO‐PSI quantitative proteomics standard[J]. Proteomics,2015,15(18):. [26]Xiaoyan Zhu,E. James Whitehead,Caitlin Sadowski,Qinbao Song. An analysis of programming language statement frequency in C, C++, and Java source code[J]. Softw. Pract. Exper.,2015,45(11):. [27]Roberto R. Expósito,Guillermo L. Taboada,Sabela Ramos,Juan Touri?o,Ramón Doallo. Low‐latency Java communication devices on RDMA‐enabled networks[J]. Concurrency Computat.: Pract. Exper.,2015,27(17):. [28]V. Serbanescu,K. Azadbakht,F. Boer,C. Nagarajagowda,B. Nobakht. A design pattern for optimizations in data intensive applications using ABS and JAVA 8[J]. Concurrency Computat.: Pract. Exper.,2016,28(2):. [29]E. Tsakalos,J. Christodoulakis,L. Charalambous. The Dose Rate Calculator (DRc) for Luminescence and ESR Dating-a Java Application for Dose Rate and Age Determination[J]. Archaeometry,2016,58(2):. [30]Ronald A. Olsson,Todd Williamson. RJ: a Java package providing JR‐like concurrent programming[J]. Softw. Pract. Exper.,2016,46(5):. java英⽂参考⽂献⼆: [31]Seong‐Won Lee,Soo‐Mook Moon,Seong‐Moo Kim. Flow‐sensitive runtime estimation: an enhanced hot spot detection heuristics for embedded Java just‐in‐time compilers [J]. Softw. Pract. Exper.,2016,46(6):. [32]Davy Landman,Alexander Serebrenik,Eric Bouwers,Jurgen J. Vinju. Empirical analysis of the relationship between CC and SLOC in a large corpus of Java methods and C functions[J]. J. Softw. Evol. and Proc.,2016,28(7):. [33]Renaud Pawlak,Martin Monperrus,Nicolas Petitprez,Carlos Noguera,Lionel Seinturier. SPOON : A library for implementing analyses and transformations of Java source code[J]. Softw. Pract. Exper.,2016,46(9):. [34]Musa Ata?. Open Cezeri Library: A novel java based matrix and computer vision framework[J]. Comput Appl Eng Educ,2016,24(5):. [35]A. Omar Portillo‐Dominguez,Philip Perry,Damien Magoni,Miao Wang,John Murphy. TRINI: an adaptive load balancing strategy based on garbage collection for clustered Java systems[J]. Softw. Pract. Exper.,2016,46(12):. [36]Kim T. Briggs,Baoguo Zhou,Gerhard W. Dueck. Cold object identification in the Java virtual machine[J]. Softw. Pract. Exper.,2017,47(1):. [37]S. Jayaraman,B. Jayaraman,D. Lessa. Compact visualization of Java program execution[J]. Softw. Pract. Exper.,2017,47(2):. [38]Geoffrey Fox. Java Technologies for Real‐Time and Embedded Systems (JTRES2013)[J]. Concurrency Computat.: Pract. Exper.,2017,29(6):. [39]Tórur Biskopst? Str?m,Wolfgang Puffitsch,Martin Schoeberl. Hardware locks for a real‐time Java chip multiprocessor[J]. Concurrency Computat.: Pract. Exper.,2017,29(6):. [40]Serdar Yegulalp. JetBrains' Kotlin JVM language appeals to the Java faithful[J]. ,2016,:. [41]Ortin, Francisco,Conde, Patricia,Fernandez-Lanvin, Daniel,Izquierdo, Raul. The Runtime Performance of invokedynamic: An Evaluation with a Java Library[J]. IEEE Software,2014,31(4):. [42]Johnson, Richard A. JAVA DATABASE CONNECTIVITY USING SQLITE: A TUTORIAL[J]. Allied Academies International Conference. Academy of Information and Management Sciences. Proceedings,2014,18(1):. [43]Trent, Rod. SQL Server Gets PHP Support, Java Support on the Way[J]. SQL Server Pro,2014,:. [44]Foket, C,De Sutter, B,De Bosschere, K. Pushing Java Type Obfuscation to the Limit[J]. IEEE Transactions on Dependable and Secure Computing,2014,11(6):. [45]Parshall, Jon. Rising Sun, Falling Skies: The Disastrous Java Sea Campaign of World War II[J]. United States Naval Institute. Proceedings,2015,141(1):. [46]Brunner, Grant. Java now pollutes your Mac with adware - here's how to uninstall it[J]. ,2015,:. [47]Bell, Jonathan,Melski, Eric,Dattatreya, Mohan,Kaiser, Gail E. Vroom: Faster Build Processes for Java[J]. IEEE Software,2015,32(2):. [48]Chaikalis, T,Chatzigeorgiou, A. Forecasting Java Software Evolution Trends Employing Network Models[J]. IEEE Transactions on Software Engineering,2015,41(6):. [49]Lu, Quan,Liu, Gao,Chen, Jing. Integrating PDF interface into Java application[J]. Library Hi Tech,2014,32(3):. [50]Rashid, Fahmida Y. Oracle fixes critical flaws in Database Server, MySQL, Java[J]. ,2015,:. [51]Rashid, Fahmida Y. Library misuse exposes leading Java platforms to attack[J]. ,2015,:. [52]Rashid, Fahmida Y. Serious bug in widely used Java app library patched[J]. ,2015,:. [53]Odeghero, P,Liu, C,McBurney, PW,McMillan, C. An Eye-Tracking Study of Java Programmers and Application to Source Code Summarization[J]. IEEE Transactions on Software Engineering,2015,41(11):. [54]Greene, Tim. Oracle settles FTC dispute over Java updates[J]. Network World (Online) [55]Rashid, Fahmida Y. FTC ruling against Oracle shows why it's time to dump Java[J]. ,2015,:. [56]Whitwam, Ryan. Google plans to remove Oracle's Java APIs from Android N[J]. ,2015,:. [57]Saher Manaseer,Warif Manasir,Mohammad Alshraideh,Nabil Abu Hashish,Omar Adwan. Automatic Test Data Generation for Java Card Applications Using Genetic Algorithm[J]. Journal of Software Engineering andApplications,2015,8(12):. [58]Paul Venezia. Prepare now for the death of Flash and Java plug-ins[J]. ,2016,:. [59]PW McBurney,C McMillan. Automatic Source Code Summarization of Context for Java Methods[J]. IEEE Transactions on Software Engineering,2016,42(2):. java英⽂参考⽂献三: [61]Serdar Yegulalp,Serdar Yegulalp. Sputnik automates code review for Java projects on GitHub[J].,2016,:. [62]Fahmida Y Rashid,Fahmida Y Rashid. Oracle security includes Java, MySQL, Oracle Database fixes[J]. ,2016,:. [63]H M Chavez,W Shen,R B France,B A Mechling. An Approach to Checking Consistency between UML Class Model and Its Java Implementation[J]. IEEE Transactions on Software Engineering,2016,42(4):. [64]Serdar Yegulalp,Serdar Yegulalp. Unikernel power comes to Java, Node.js, Go, and Python apps[J]. ,2016,:. [65]Yudi Zheng,Stephen Kell,Lubomír Bulej,Haiyang Sun. Comprehensive Multiplatform Dynamic Program Analysis for Java and Android[J]. IEEE Software,2016,33(4):. [66]Fahmida Y Rashid,Fahmida Y Rashid. Oracle's monster security fixes Java, database bugs[J]. ,2016,:. [67]Damian Wolf,Damian Wolf. The top 5 Java 8 features for developers[J]. ,2016,:. [68]Jifeng Xuan,Matias Martinez,Favio DeMarco,Maxime Clément,Sebastian Lamelas Marcote,Thomas Durieux,Daniel LeBerre. Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs[J]. IEEE Transactions on Software Engineering,2017,43(1):. [69]Loo Kang Wee,Hwee Tiang Ning. Vernier caliper and micrometer computer models using Easy Java Simulation and its pedagogical design features-ideas for augmenting learning with real instruments[J]. Physics Education,2014,49(5):. [70]Loo Kang Wee,Tat Leong Lee,Charles Chew,Darren Wong,Samuel Tan. Understanding resonance graphs using Easy Java Simulations (EJS) and why we use EJS[J]. Physics Education,2015,50(2):.【java英⽂参考⽂献汇编】相关⽂章:1.2.3.4.5.6.7.8.。
嘲}|{|;㈨刚㈣蟛|{;}|㈣㈨劁㈨㈣臻鳓引㈦㈦鳓;川㈦鲻嘲㈦燃嘲l i|}f引嘲㈤|j l}|㈣黝;|iil嘲髑獭i;{};㈦瞩㈣}ij l|强{!|{{i}{ij㈣||!}|黝j}il{嬲劐;DOI:10.3969/j.issn.1003-1154.2015.02.043消费者亲环境行为的影响因素和干预策略——发达国家的相关文献述评口王建明王丛丛(浙江财经大学工商管理学院,浙江杭州310018)[摘要】环境质量的好坏很大程度上取决于消费者的行为模式。
通过亲环境行为的认定、亲环境行为的影响因素,以及干预策略三个方面,对发达国家已有的亲环境行为研究文献进行系统述评,总结现有研究存在的不足,提出未来的研究建议。
[关键词】亲环境行为;环境友好;消费者;环境[中图分类号]F063.2;X196[文献标识码】A[文章编号】1003-1154(2015)02-0127--03一、亲环境行为的认定二、亲环境行为的影响因素亲环境行为又被称之为环境友好行为,不同的消费者的亲环境行为受到多种复杂因素的作学者对此有不同的理解。
Hines等认为亲环境行为用。
从经济人假设出发,消费者受到成本和收益等个人是一种有意识的行为,它以个人责任感和价值观为利益所调节;从社会人假设出发,消费者还受到社会规基础,目的在于避免或解决各种环境问题;Sivek和范、价值观和态度等因素的影响。
从20世纪90年代开始,Hungerford心】将亲环境行为定义为,对自然资源进行可国外学者们主要是从动机因素、情境因素和惯性因素持续地或有节制地开发、使用的个人或组织行为;Stem 这三个角度来研究亲环境行为的影响因素。
口坨人为,以保护环境或者阻止环境恶化所表现或塑造的(一)动机因素人类行为或活动是亲环境行为。
本文认为,亲环境行为1.成本和收益是指消费者在日常生活实践中所表现出来的对环境产对环境行为的研究都基于同一个假说——消费生积极作用并与环境直接相关的友好行为。
abol=to do away with废除abolish废除ab-sum=not present离开absent不在abyssys=bottom底abyss深渊ac=an oak栎属植物acorn橡树子acer=a field原野acre英亩acer=sharp尖锐的acerbity酸acidus=sour发酸acid酸acu=sharpen削尖acumen敏锐aedes=a house住宅edifice屋宇aequus=equal相等的equal平等的aer=air空气aerate充气aer=before以前ere在…之前aesth=feel发觉aesthete审美家aestimo=to value估价esteem尊重aeternus=of endless duration永久的eternity永恒aevum=age年龄coeval同年代的afen=evening晚上eve黄昏afre=always永远ever永远ag=act行动agency力量agan=to own承认owe感谢aggelos=a messenger通信员angel天使agger=heap堆积exaggerate夸大ago=lead引导pedagog教师ago=to do做agile敏捷的agon=contest争夺agonal濒死agr=field原野agrarian土地的aither=burn烧ether太空alb=white白的alb白长袍ali=another又一alias别名alo=to nourish营养aliment食物alt=high高的alter祭坛alter=the other of tow两者的另外一个alter改变ambio=I go round about我在周围到处走ambition抱负ambulo=I walk我步行preamble序言amo=I love我爱amiable可亲的ampl=wide广大ample广大的an=one一个any什么ancestre=one who goes before走在先前的人ancestor祖宗ancien=old古代的ancient古代的anemos=wind风enemograph风速计angl=a corner角angle角ango=to choke呛anguish苦恼anim=breath呼吸animal动物anism=mind心animosity敌意ann=year年annual周年的answer=to declare in opposition回答answer up应对迅速anth=flower花anthology选集anthropos=man人anthropocentric以人类为宇宙中心的antiqunus=ancient古代的antic古怪的apell=call by name叫appeal要求aper=open打开aperture口apt=fit配合apt合适的aqu=water水aqua水ar=plow犁arable耕地arbiter=a judge法官arbitrate仲裁arbor=a tree树arbor棚架arc=a bow弯曲arc弧ardeo=I burn我烧ardent热心的are=circle环circular环形的area=vacant place空地area地面arena=sound活动场所argent=silver银argent银arguo=I prove我证明argue证明arid=dry干旱的arid干旱的arktos=bear熊星arctician北极探险者arm=arms兵器arms兵器ars=art艺术art艺术asketikos=ascetic修士ascetic苦行的aspectus=look外表aspect样子asper=rough粗asperate使粗糙asthmamatos=asthma喘息asthma气喘astigmamatosic=astigmatic散光的astigmatic散光的asulon=refuge庇护asylum收容所athletes=athlete运动员athlete运动员atmos=air气atmograph呼吸气息计atrox=savage野蛮的atrocious凶恶的aud=hear听闻audible可闻的audax=bold大胆的audacious大胆的augeo=increase增加augment增加aur=gold金auriferous含金的austeros=austere严厉的austere严厉的av=bird鸟aviary鸟屋ax=axle轴axial轴的sacer=sacred神圣的sacred神的sagax=wise明智的sage贤明的sal=salt盐saline咸的salio=to leap跳跃salient突出的salus=safety安全salute行礼salvus=safe平安的save救sanctus=holy神圣的saint圣者sanguis=blood血sanguine乐观的sanus=sound结实sane健全的sarc=flesh肉sarcasm讽刺satis=enough足够satisfy满足scadan=to divide分开divide分scando=I climb我攀登scan细看sceadu=shade荫shadow阴影scealu=scale or shell壳shell壳sceofan=to shove推shove推sceotan=to throw投throw投sceran=to cut切cut切schema=form概念schema纲要scindo=to cut砍rescind取消scio=I know我知道science科学scribo=I write我写scribe作家scrutor=I search into我调查scrutiny细看seco=to cut切section切断sedeo=to sit坐sedentary坐着的seism=earthquake地震seism地震selen=moon月Selene塞勒涅semen=seed种子seminal精液的senex=old老senile年老的sentio=to feel感觉sense意识seothan=to boil汽化sod草皮sequor=to follow跟随sequence连续sero=to set in row排成行series丛书servio=I serve我为…服务serf农奴servo=I keep我保持conservative保存的settan=to sit坐sit坐落severus=severe严厉的severe严肃的signum=a mark sign符号similes=like相似的similar相似的sinico=China中国Sinology汉学sinus=a bend弯道sinuous曲折的sisto=I stop我停止assist援助sitio=food食物sitology食物学skandalon=snare圈套scandal丑事skene=tent舞台scene舞台skeptikos=thoughtful思考的sceptic怀疑论者skeptron=staff杖sceptre君主的节杖skhisma=split分裂schism分裂skhole=leisure空闲school学校skopeo=I see我看见scope眼界slagan=slay杀害slay杀害slawian=to become slow变得慢的slow缓慢的sleac=lax宽松的loose松sledge=sledgehammer重大的slipan=to slip外衣slip失足snake蛇snail蜗牛snican=to creep爬行sneak潜行socius=a companion伙伴social社会的sol=the sun太阳solar太阳的solidus=firm坚定的solid固定solor=I comfort我安慰solace安慰solus=alone单独的sole单独的solvo=to loosen放松solve解决somnus=sleep睡眠somnolent想睡的sono=I sound我发声sonorous响亮的sophos=wise有智慧的sophism诡辩spargo=to spread扩散sparsely稀少地specio=to look看spectacle景象spell=a story消息spell拼字spero=I hope我希望despair绝望spiro=I breathe我呼吸respire呼吸splendeo=I shine我把…弄光亮splendour光辉spondeo=to promise许诺respond回答statuo=I set up我建立statue雕像stearc=stiff硬的stark严格的stede=place地方stead替代stella=a star星stellar星的stello=send forth送出apostle使徒steoran=to steer驾驶steerer驾驶者stereo=solid坚固的stere立方米sterno=to strew撒播prostrate俯卧stician=to stick刺stick枝条stigan=to climb登stair楼梯stilla=a drop一滴distil蒸馏stinguo=to quench扑灭distinguish区别stizein=to prick扎stigma烙印sto=to stand立stable稳定的stomato=mouth口的stomatic口的stow=a place地方stow收藏strategema=army军队stratagem计策strican=to strike打strike camp开拔stringo=I bind我捆紧stringent严格的strophe=I turn我转strophe节struo=I build我建造structure结构studeo=I am eager我渴望study学习stupeo=I am struck senseless我被打昏了stupid愚蠢的suadeo=I advise我忠告persuade说服suavis=sweet甜的suave温和的summus=highest最高的sum总数sumo=I take我取拿assume假定sundrian=to part一部分sunder分开surgo=to rise升起surge汹涌swapan=to sweep扫swoop攫取swerian=to declare宣布declare宣布swettan=to die死die to shame恬不知耻tabula=a board木板table桌子taceo=I am silent我沉默tacit缄默taecan=to show显示show显示tango=to touch摸tact机智tardus=slow慢的tardy慢的taxis=arrangement排列syntax句法techne=art技术technic技术的tego=to cover掩盖integument覆盖物tellan=to tell告诉tell说temncin=to cut切anatomic解剖的tempero=I combine properly我恰当地联合. temper锻炼tempus=time时间temporal暂时的tendo=to stretch延伸tension紧张teneo=to hold保持tenable可防守的tento=I try我试试tempt引诱tenuis=thin瘦的tenuity纤细teohan=to draw拉draw接terminus=a boundary边界term期teroI rub我擦去trite用坏了的terra=the earth地球terrestrial地球上的terreo=I frighten我施加威胁terror恐怖testis=a witness证明test试验texo=to weave编织text原文thaec=a roof车顶the roof of heaven天穹the=a god神theocracy神权政治theatron=behold见到theatre戏院thencan=to think想think思索therm=warm温thermae温泉thesis=put提出thesis论题thincan=to seem似乎methinks我想thrall=a slave奴隶slave奴隶thuma=a thumb拇指thumbs down糟糕thyrel=an opening开nostril鼻孔942 time. o=I fear我害怕timid胆怯的tingo=to wet弄湿tinge风味tome=section切开tome册ton=tone音tonal音调的tonos=stretch伸展tone音topazos=a precious stone宝石topazolite黄榴石topika=place地区topic局部的torero=to dry烘干torrid热情的torpeo=I am numb我感到麻木torpor麻木torqueo=to twist扭曲torment痛苦tox=poison毒toxaemia毒血病traho=to draw抽取traction拖tredan=to walk走tread踩tremo=I tremble我发抖tremor激动treowe=true真的true真的tribuo=I give我给与tribute礼物trope=turn旋转tropic回归线trudo=to thrust刺intrude打扰tumeo=I swell我变得膨胀了tumour肿块tundo=to beat打contuse打伤tupos=type类型type类型turba=confusion混淆turbulent骚动twa=tow二twin孪生的umbra=a shade影子umbrella雨伞unda=a wave波浪undulation波动unguo=to anoint涂油于unguent药膏unus=one一unit单位urbs=a city城市urban城市的urgeo=I press on我强使接受urge推进utor=to use使用use使用vaco=I am idle我闲着vacant空的vado=to go去invade侵入vagor=I wander我漫游vagrant流浪者valeo=I am strong我有力valour勇猛vanus=empty空的vain空虚的varius=different不同的various各种各样的vas=a vessel器具vase瓶veho=to carry搬运vehicle车辆velum=a veil面纱veil面纱venio=to come来advent到来verbum=a word词verbal词语的vergo=I incline我屈身verge边缘verto=to turn转动advert提及verus=true真实的veracity诚实vestis=a garment外衣vest背心vetus=old老的veteran老手via=a way道路via路经vices=change改革vicissitude变化video=to see看见visage面容vinco=to conquer征服victorious胜利的vindex=a judge法官vindicate维护vir=a man男人virile男性的viridis=green绿色的verdant生疏的vita=life生命vital生命的vitium=a fault错误vice罪恶vitrium=glass玻璃vitreous玻璃的vivo=to live生活vivid生动的voco=to call呼唤vocal有声的volo=I fly我飞volatile飞行的volo=I will我一定要volition意志volvo=I roll我滚动revolve细想voro=I devour我吞食voracious贪婪的voveo=I vow我宣誓vote选举vox=the voice声音voice意见vulgus=the people人民vulgar粗俗的vulnus=a wound伤口vulnerable易受伤的wacan=to watch看watch观看wadan=to go走wade跋涉waer=cautious细心的ware当心wagian=to carry运送carry运送wain=wag on四轮运货马车wag摇wana=a deficiency缺少wan苍白的wanhope=despair绝望weardian=to guard守卫guard守卫wefan=to weave编织weave织wela=weal福利weal and woe祸福wenan=to think思think about考虑were=war战争war战争wif=wife妻woman成年女子wilde=wild野生的be wild with joy欣喜若狂witan=to know知道know知道wraestan=to wrest拧wrest拧wrecan=to drive out逐出wreak泄wringan=to force强迫wring拧writhan=to twist拈writhe扭曲wunian=to dwell住wont惯于wyrcan=to work工作work工作wyrt=plant植物herb香草xanth=yellow黄色xanthate黄原酸盐xeno=strange异xenodiagnosis异体接种诊断法xer=dry干燥xeric干旱的xyl=wood木xylocarp硬木质果zelos=zeal热心zeal热心zephyrous=west wind西风zephyr西风Zeus宙斯Zeus宙斯zodiakos=animal动物zodiac黄道带bac=back后backer支持者bacan=to bake烘batch一批bacteri=bacteri细菌bacterium细菌balaution=baluster栏杆baluster栏杆柱balig=bag袋belly胃ball=dance跳舞会ball跳舞会ballo=throw投emblem象征bana=death死bane祸害baptein=bathe给…洗澡baptism洗礼barba=a beard须barb倒钩barbaros=rude原始barbarian野蛮baros=weight重barodynamics重力学bas=short短的base低级的basis=step步base基础bat=beat打abate减少beacnian=to nod点头beckon召唤beam=a tree树干beam光线beatan=beat击beat打beatus=blessed神圣的beatific赐福的bed=a prayer祈祷bead水珠bel=fair美丽beldam老太婆bell=war战争bellicose好战的bene=well好benediction祝福beodan=to proclaim宣布bid吩咐beorgan=to protect保护burgh自治市beran=to bear生bear负担betan=to amend改正better改善biblia=book书biblical《圣经》的bibo=I drink我饮bib常常喝bindan=to bin捆bind装订bio=life生命biochemistry生物化学bitan=to bite咬bite咬断blanc=white白blanch漂白blasan=to blow吹blast一阵blawan=to blow吹bladder囊blowan=to bloom开花blow开bodian=to announce宣布bode预兆bodig=body身体body身体bon=good好bonus奖金botone=plant植物botanic植物的brad=broad广阔的broad宽阔的brecan=to brak打破brake刹车breowon=to brew酿造broth肉汤brev=short短breve短间符号bronch=tow main divisions of windpipe支气管bronchus支气管buan=to till耕种boor农民bucan=to use用brook容忍buffalo=ox水牛buffalo野牛bugan=to bend使弯曲bay湾burs=purse钱包bursar掌管财务者cad=to fall降落cad抑扬caed=cut切caesura休止camer=vault地下室camera暗箱camp=field原野camp营cancellare=lattice栏杆cancel取消cancer=a crab癌canker口疮candeo=I shine我发光candid公正的canis=a dog狗canine狗的canistrum=a basket篮cano=to sing唱cant假话cap=to take拿capable有能力的capit=head头capital主要的capr (capere)=goat山羊caper跳跃carcer=a prison监狱incarcerate监禁carn (car, carnis)=flesh肉carnage屠杀carta=card纸chart海图carus=dear亲爱的caress爱抚castigo=I correct修正chasten惩戒castus=pure纯chaste纯洁的causa=a cause原因cause原因cautum=to take care留意caution当心cav=hollow穴cave洞ceald=cold冷cool凉的ceapan=to form形成form形成ceapian=to buy买keep保持cearcian=to crack劈啪地响crack裂开cearu=care关心care小心ced=go行cede让步celer=swift快celerity迅速cennan=to produce生产produce出产censeo=I judge我审判censor检查员cent=hundred百cent分center=center中心center中央ceowan=to chew嚼cheek面颊cern=separate区别concern关系certus=fixed一定的certain确实的character=character性格character性质charte=papyruscard海图chart海图chasma=an opening开chasm陷窟cheer=a state高兴cheer高兴cheir=hand手chirognomy相手术chem.=belonging化学的chemical化学的cheval=horse马chevalier骑士chil=lip唇chilognatha唇颚类chlor=green绿chloral氯醛chole=bile怒cholesystectomy胆囊切除术choros=chorus合唱choir歌唱队christos=anoint抹油于chrism圣油chromato=colour颜色chromatic色彩的chron=time时间chronic长期的chrys=gold金chrysalid蝶蛹cine=movement运动cinecamera电影摄影机cing=bind束pre-cinct境界cito=summon叫cite引用civ=citizen公民civic城市的clam=a bond契约clamp夹子clamo=cry out乞求claim要求clarus=clear光明clarify澄清claud=close关闭clause分句clemens=mild温和的clement温和的cleofan, cleovan=to split劈开cleft裂缝clifian=to adhere粘附clay泥土clin=bend弯incline低eac=also也eage=an eye眼睛eye眼睛eaid=old年老的older较老earian=to plough犁ear穗earnian=reap收获earn赚得echo=a sound声echo回声efese=eaves屋檐eavesdrop檐水ego=I我egotist利己主义者eidolon=an image偶像idol偶像eidolon=an image像idol偶像eidolon=idol偶像idol偶像eidos=form形状cyclorama圆形画景eikon=an image像icon人像eikon=icon像iconic人像eiron=a dissembler伪君子ironic讽刺的elao=draw out引长elastic弹性的electron=amber琥珀electric电的emo=to buy买redeem买回eo=to go去exit退场equus=a horse马equine马的eremos=solitary孤独的hermit隐士ergon=work工作erg尔格erro=I wander我漫游err犯错误esse=to be存在essence本质ethnos=race种族ethnocentrism种族优越感的ethos=a custom风俗ethic伦理etymos=true真的etym词源eu=well美好eulogist颂扬者exemelum=example范例example例子expedio=I set free我给予释放expedition远征gabban=to mock嘲笑mocker嘲笑者galan=to sing唱yell叫喊gamos=merriage婚姻monogamy一夫一妻制gangan=to go去gone过去的gast=breath呼吸ghost鬼ge=earth地geochemistry地球化学geapan=to gape张口gap缺口geard=a yard院子garden园gelu=frost霜冻congeal冻结gen=produce生产generate产生gens=a race种族gentle文雅的genus=a kind种general一般的gero=to bear搬运gerund动名词gifan=to give给given赠送的gildan=to pay支付guilt内疚glacies=ice冰glacier冰河gloria=glory光荣glory光荣gloss=tongue语言gloss注解gnagan=to bite叮nag唠唠叨叨地责骂god=good好gospel真理Gospel=God’s spell喜讯gradior=I walk我行走gradus=a step一步grade等级grafan=to dig挖digger挖掘者gram=a letter字gramophone留声机grands=great伟大的grand重大的granum=seed种子grain谷物grapho=write写graph图grapian=to handle弄handler处理者gratus=pleasing使人愉快的grace优美gravis=heavy重的grave坟墓grex=a flock群aggregation总计gripan=to seige逮捕grasp掌握gymnazo=to exercise naked裸体锻炼gymnast体育教师gyn=woman妇女gynaeceum闺房cliv=slope坡acclivity斜坡cnawan=to know知道ken眼界cniht=a youth青春youth男青年cnotta=a knot结knotty有节的cnytta=to knit编织knot结cogn=know知道cognition认识col=to till耕耘colony殖民地color=heat热caloric热commod=fit合适的commodity物品communis=common普通的common公共的cone=peak高峰cone锥形物coquo=to boil烧cook煮cor=heart心core核心corn=horn角corn鸡眼corona=a crown王位corona冠corp=body体corporal肉体的cosmos=world世界cosmic宇宙的cranio=skull头脑craniology骨头学creed=believe相信credence介绍信creo=I create我创造create创造cresc=grow增长crescent新月状的crimen=a crime犯罪crime罪crux=a cross交叉crucial决定性的cryo=frost寒冷cryobiology低温生物这crystallo=ice水晶crystal水晶cubi=cube立方体cube立方体cubo=I lie down我躺下incubate孵culp=fault错culpable有罪的cumbrous=heap积累cumber麻烦cunnan=to know知道can能cur=care注意cure纠正curr=to run跑current通用的cwellan=to kill杀kill杀死cwethan=to say说quoth说过cwic=alive活着的quick快的cyclo=a circle圆周cycle周期cyno=cynic狗cynic玩世不恭的cyst=bladder囊cyst胞cyt细胞cytochemistry细胞化学daeg=day日dawn黎明daelan=to divide分deal分配daemon=spirit鬼demon恶棍damno=I condem谴责damn攻击deare=dear亲爱的dear亲爱的debeo=to owe欠debt债务decem=ten十decimal十进的decens=becoming合适的decent正派的deman=to judge裁判deem认为demos=people人民democracy民主dens=a tooth牙齿dent齿densus=thick厚的dense密集的derma=skin皮derma真皮deus=a god神deify当作神明dexter=right hand右手dexterity灵巧diaita=way of living生活方式diet饮食dico=to say说出dictation命令die=ditch沟dig挖dies=a day一天diary日记dignus=worthy有价值的dignity高贵dioikeo=to manage管理diocesan主教do=to give给date日期doceo=to teach教docile驯良的dokeo=think想dogma教条doleo=I grieve我感到悲痛condole慰问dominus=a lord主人dominant支配的domus=a house房子domestic家里的don=to do做don披上dono=I give我给与donor赠与人dormio=I sleep我睡觉dormitory集体寝室dragan=to drag drag拖drao=act行为drama戏曲drifan=to drive驱drive驱使drincan=to drink喝drink喝酒dripan, drypan=to drip湿透drip湿透dromas=a running跑dromos=a course进行dromos竞走场drygan=to dry干涸dry干旱的duco=to lead领导duke公爵duo=two二duplicate复制的durus=hard坚硬的endure持久dwal, dol=foolish笨的fool蠢人dynamis=power力dynameter扩度计dyne=a noise杂音din闹音faber=a workman工人fabric布facies=the face脸face脸facilis=easy容易的facile易做到的facio=I do我制作fact事实fadus=a treaty条约federal联邦的fallo=to deceive欺骗false假的fama=a report报告fame名声fans=speaking说infant婴儿fanum=a temple庙宇fane教堂faran=to go or to travel去或旅行fare行走fast=fast紧的fasten扎牢fattus=silly愚蠢fatuous愚昧的fatus=spoken口语的fate命运fedan=to feed喂food食物felicis=happy幸福的felicity幸福femina=a woman女人feminine女性的fendo=I strike我进行反击fender防御物fengan=to catch捉fang尖牙feower=four四firkin小桶fero=to bear承担confer授予ferox=fierce凶猛ferocity残忍festus=I boil我煮开水fervent炽热的festus=pertaining to holidays关于假日的festal节日的fibula=a story故事fable寓言fidelis=faithful忠诚的fidelity忠诚fido=I trust我信赖confide信托figo=I fix我把…固定下来fix牢记figura=a form形式figure外形filius=a son儿子filial子女的fillan=to fill装满fill占满filum=a thread线file档案findan=to find找到find发现findo=to cleave劈开fissile裂变的fingo=to form形成feign假装finis=an end终端finite有限的firmus=firm坚强firm结实的flagro=I burn我燃烧flagrant公然的flamma=a flame火焰flame火焰flecto=to bend弯曲flexible可变通的fleogan=to flee逃flee逃避fleotan=to float漂浮fleet海军fligo=to dash猛撞afflict折磨flos=a flower花flower花flowan=to flow流动floe浮冰块fluo=to flow流动fluid流动的foda=food食物fodder饲料fola=foal驹filly小雌马folium=a leaf树叶foil叶形饰forma=a form形状form形态fortis=strong强壮的fort堡垒fot=foot足foot跳舞frango=I break我弄破fragile脆的frater=a brother弟兄fraternal友好的fraus=deceit欺诈fraud欺骗freon=to love爱freond=friend朋友Friday星期五frigus=cold冷frigid寒冷的frons=the forehead前额front前面fruor=to enjoy享受fructify结实fugio=I flee我逃跑fugitive逃亡者ful=foul难闻的filth污秽fumus=smoke烟fume烟fundo=to pour倾倒found铸造fundus=the bottom底部foundation创办habban=to have有haft柄habeo=to have有habit习惯habito=I dwell我居住在… inhabit居住于haem=blood血hemal血液的haereo=to stick黏着adhere坚持haeres=an heir后裔inherit继承hairesis=a choice选择heresy异教hal, hael=to heal医治hale强壮的half=bread面包loaf一只面包halig=holy神圣的hallow圣徒healdan=to hold握住uphold举起hebban=to raise举起heave举起hekaton=a hundred一百hecatomb大祭祀helios=the sun日helicopter直升飞机hentan=to seize逮捕hint暗示here=an army军队harbor港口heros=a demi-god半神半人hero英雄hieros=holy神圣的hierarch祭司长hilaros=gay快乐的hilarious狂欢的hippos=a horse马hippocampus海马historia=a narrative记事history历史hlot=a lot签lottery抽彩给奖法hodos=a way道路method方法holos=all完全holocaust燔祭homo=a man男人human人类的homos=same同homogeneous同类的horizo=bounding界限horizon地平horo=hour小时horologe日出horreo=I bristle我发抖horror恐怖hospes=a guest客人hospitable好客的hostis=an enemy敌人hostile敌意的humeo=to be moist变潮湿humid湿的hus=a house房子husband丈夫ichno=track足迹ichnography平面图ichthy=fish鱼ichthyoid鱼形的idein=idea思想idea思想idio=one’s own私有的idiocrasy特质ignis=fire火ignite着火imago=a likeness相似image肖像imitor=I copy我抄写imitate模仿impero=I command我下命令imperative迫切的indico=I point out我指出index索引insula=an island岛屿isle小岛integer=whole全的entire完全的ira=anger生气ire爱尔兰iso=equal等于isobar等压线iter=a journey旅行itinerant巡回的jacio=to throw投掷abject凄惨的jocus=a jest玩笑joke笑话judex=a judge法官judge法官judume=a joke轭conjugate结合jungo=to join结合junction连结juro=I swear我发誓jury陪审团jus=right权利jurisdiction司法kaio=capable of burning侵蚀caustic苛性的kalos=beautiful美的calligraphy笔迹kanna=a reed芦苇canister罐kanon=a rule法则canon教规kastanea=chestnut chestnut栗子kata=down open降下cataract瀑布kate=sound声音catechism审问kedros=cedar雪松cedarn雪松kenotophion=tomb空墓cenotaph衣冠墓kentron=a sharp point点central中心的kerasos=cherry樱桃cherry樱桃树khaos=disorder混乱chaos混乱khilias=chiliad一千chiliad一千khimaira=chimera怪物chimera怪物kichore=succory菊苣chicory菊苣kilma=a slope坡度climate气候kisia=chest胸chest箱子klerikos=a lot一分clerical牧师的klimax-akos=ladder梯子climax顶点koimeterion=cemetery公墓kolikos=pained in the bowels腹疼colic腹痛kolon=limb肢colon冒号kolossos=colosus巨像colosus巨像komma=clause小句comma逗号komoidia=comedy喜剧comedy喜剧konops=gnat小昆虫canopy华盖kophinos=basket篮coffer资产kratos=rule统治aristocarcy贵族统治kriterion=criterion标准criterion标准kritikos=critic批评critic批评家krokodeilos=a large amphibious reptile爬虫crocodile鳄krokos=yellow桔黄色crocus桔黄色krypt=conceal隐瞒crypt地窟。
求职与面试1找工作终极分类词广告ad [ed]寻找hunt [hant]全职的full-time[fol] [tam]兼职的part-time [pa:t] [taum]空缺vacancy ['verkonsi]雇佣engage [rn'gerd3]雇佣employ [Im'pl)1]雇佣hire ['hara(t)]雇佣employment [Im'plbimant]合同contract ['kontraekt]雇员employee [tm'plbri:]雇用者employer [um'plbro(t)]以前的former ['fo:ma(t)]高薪的well-paid[wel] [perd]需要need [ni:d]空缺opening['aopnn]经典影视句Three infractions of any kind, and your employment is terminated.不管什么样的错,犯三次,你就会丢了饭碗。
《歌舞青春2》Several female employees at the empire are suing me for sexualharassment.有几个在酒店工作的女员工要告我性骚扰。
《绯闻女孩》Well, your timing is impeccable, because it just so happens that we have an opening right on.你们来得太巧了,现在正好有一个名额。
《绝望的主妇》词汇大拓展1 infraction [in'fraek n] n.违反2 terminate['t3:minert] vt.终止3 female ['fi:merl] adj.女性的4 empire ['emparo(r)]n.大企业组织5 sue [su:] vt.控诉6 sexual ['sek ual] adj.性的7 harassment ['haerosmant]n.骚扰8 timing ['tamrg] n.时机9 impeccable [Im'pekabl] adj.完美的2简历终极分类词简历resume [re'zju:mer]简历curriculum vitae ka'rrkjalom] ['vi:tar]培训training ['trernn]主修major ['merd3o(r)]出生日期birth date [bs:0] [dert]出生地点birth place [bs:0] [plers]籍贯native place ['nertrv] [pleIs]目前地址current address ['kAront] [a 'dres]永久地址permanent address['ps:manant] [a'dres]住宅电话home phone [haom] [faon]男性的male [mer]]女性的female ['fi:mer]]健康状况health condition [hel0] [kon‘drjn]可到职时间date of availability [dert] [bv] [a verla'brlati]婚姻状况marital status['merrtl]['stertas]经典影视句I must say, Jenny, this is a very impressive resume, especially for someone so young.詹妮,我不得不说这份简历让人印象相当深刻,特别对一个这么年轻的人来说。