esl-ssdraw(1)
๐ esl-ssdraw ๐
straight outta the Easel Manual, section 1, bestie. this is the glow-up your RNA diagrams have been waiting for ๐ฆ
โจ NAME โจ
esl-ssdraw โ create postscript secondary structure diagrams. that's it, that's the job, and she slays at it ๐
๐ SYNOPSIS ๐
esl-ssdraw [options] msafile postscript_template postscript_output_file
three files in, one gorgeous postscript out. iconic behavior, honestly.
๐ DESCRIPTION ๐
okay so here's the vibe: esl-ssdraw reads an existing template consensus secondary structure diagram from postscript_template, and then makes brand new postscript diagrams that include that same template structure โ but with the positions colored differently based on alignment statistics. like, frequency of gaps per position, average posterior probability per position, information content per position, that whole situation. custom color story, same skeleton.
and that's not even all of it: all or some of the aligned sequences can be drawn separately too, with nucleotides or posterior probabilities mapped onto the corresponding positions of the consensus structure. ๐ซถ
some ground rules, no cap:
- the alignment must be in Stockholm format with per-column reference annotation (
#=GC RF) - the sequences in the alignment must be RNA or DNA sequences
- the
postscript_templatefile must contain one page that includes<rflen>consensus nucleotides (positions), where<rflen>is the number of nongap characters in the reference (RF) annotation of the first alignment inmsafile - the exact format required in
postscript_templateis described below in the INPUT section - postscript diagrams will only be created for the first alignment in
msafileโ so don't come to her with a whole stacked alignment and expect a sequel, she does one and she does it well ๐
๐ฅ OUTPUT ๐ฅ
the default situation (zero options, zero notes, all vibes)
run her with zero command line options and esl-ssdraw creates a six or seven page postscript_output_file, where every page shows off a different alignment statistic. main character energy per page, fr fr. those pages display:
- the alignment consensus sequence
- information content per position
- mutual information per position
- frequency of inserts per position
- average length of inserts per position
- frequency of deletions (gaps) per position
- average posterior probability per position (only if posterior probabilities exist in the alignment)
if -d is enabled, you get all of those pages plus extra ones โ things like individual sequences (see the whole --indi discussion below). so like, the deluxe package. ๐
you can also pick and choose which pages get drawn by using these command line options individually:
--cons--info--mutinfo--ifreq--iavglen--dall--prob
the calculation of the statistics for each of these options is discussed below, in the description for each option. so keep scrolling, bestie, the receipts are down there.
important, and I mean it: only so-called 'consensus' positions of the alignment will be drawn. a consensus position is one that is a nongap nucleotide in the'reference'annotation of the Stockholm alignment (#=GC RF) read frommsafile. gap positions simply do not get an invite to this party. ๐
the consensus sequence
by default, a consensus sequence for the input alignment gets calculated and displayed on the alignment statistic diagrams. the consensus sequence is defined as the most common nucleotide at each consensus position of the alignment.
it will not be displayed if the --no-cnt option is used. and the --cthresh, --cambig, and --athresh options all affect the definition of the consensus sequence, as explained below in the descriptions for those options. (yes, all three. they're a trio. a girl group. ๐)
--tabfile <f> โ the spreadsheet moment
if you use the --tabfile <f> option, a tab-delimited text file <f> gets created that includes per-position lists of the numerical values for each of the calculated statistics that were drawn to postscript_output_file.
comment lines in <f> are prefixed with a '#' character, and they explain the meaning of each of the tab-delimited columns and how each of the statistics was calculated. so it's self-documenting, which is honestly so thoughtful of her. โจ
--indi โ one sequence per page, the solo era
if --indi is used, esl-ssdraw creates diagrams showing each sequence in the alignment on a separate page, with aligned nucleotides sitting in their corresponding position in the structure diagram. every sequence gets her own page. every single one. periodt.
by default, basepaired nucleotides will be colored based on their basepair type:
- Watson-Crick (
A:U,U:A,C:G, orG:C) G:UorU:G- non-canonical (the other ten possible basepairs)
this coloring can be turned off with the --no-bp option. ๐
also by default, nucleotides that differ from the most common nucleotide at each aligned consensus position will be outlined. and if the most common nucleotide occurs in more than 75% of sequences that do not have a gap at that position, the outline will be bold. (bold outline = the consensus really said "I'm built different." ๐ )
outlining can be turned off with the --no-ol option.
posterior probability pages
with --indi, if the alignment contains posterior probability annotation (#=GR PP), then postscript_output_file will contain an additional page for each sequence drawn with positions colored by the posterior probability of each aligned nucleotide. so many pages. so much data. obsessed. ๐ญ
no posterior probability pages will be drawn if the --no-pp option is used.
mask diagrams ๐ญ
esl-ssdraw can also be used to draw 'mask' diagrams, which color positions of the structure one of two colors depending on if they are included or excluded by a mask.
this is enabled with the --mask-col <f> option. here's the fine print:
<f>must contain a single line of<rflen>characters, where<rflen>is the number of nongap RF characters in the alignment- the line must contain only
'0'and'1'characters - a
'0'at position<x>of the string indicates position<x>is excluded from the mask - a
'1'at position<x>indicates position<x>is included by the mask
and if you use the --mask-diff <f2> option, a page comparing the overlap of the <f> mask from --mask-col and another mask in <f2> will be created. two masks, one page, drama incoming. ๐ง
--mask <f> โ drawing the excluded ones differently
if the --mask <f> option is used, positions excluded by the mask in <f> will be drawn differently (as open circles by default) than positions included by the mask.
you can customize the style of the masked positions with the --mask-u, --mask-x, and --mask-a options. make it yours. ๐ธ
and finally, the customizers
two different types of input files can be used to customize output diagrams, using the --dfile and --efile options, as described below. (yes, below below. we're getting there. ๐)
๐ฅ INPUT ๐ฅ
okay bestie, listen up, because the postscript_template_file is that girl with very specific demands ๐
. It has to be in a super particular format for esl-ssdraw to even look at it. And heads up โ the specifics of this format, all described below, are likely to change in future versions of esl-ssdraw. Also, plot twist: the postscript_output_file files that esl-ssdraw spits out will not be valid postscript_template_file format. So no, you literally cannot take an output file from esl-ssdraw and feed it back in as a postscript_template_file in a later run of the program. It's giving "one-way street," and we respect it ๐.
There's an example postscript_template_file called trna-ssdraw.ps shipped right there with the Easel distribution, chillin' in the testsuite/ subdirectory of the top-level easel directory. Iconic reference material, go look at it โจ.
So the postscript_template_file is a valid postscript file. It's got postscript commands for drawing a secondary structure, and those commands specify x and y coordinates for placing each nucleotide on the page. It might also have commands for drawing lines connecting basepaired positions and tick marks indicating every tenth position โ but those two are not required, as we'll get into below.
If postscript is not your moment and you've never met it before, here's the tea ๐ซ: a postscript page is, by default, 612 points wide and 792 points tall. The (0,0) coordinate of a postscript file is at the bottom left corner of the page. (0,792) is the top left, (612,0) is the bottom right, and (612,792) is the top right. esl-ssdraw uses 8 point by 8 point cells for drawing positions of the consensus secondary structure. The scale section of the postscript_template_file lets you do different "zoom levels," which we'll explain below. And super important: postscript lines beginning with % are treated as comments and do not include postscript commands. Periodt.
An esl-ssdraw postscript_template_file contains n >= 1 pages, each one specifying a consensus secondary structure diagram. Every page is delimited by a showpage line sitting in an ignore section (explained below). esl-ssdraw reads all pages of the postscript_template_file and then picks the appropriate one that corresponds with the alignment in msafile, based on the consensus (nongap RF) length of the alignment. So for an alignment of consensus length <rflen>, the first page of postscript_template_file that has a structure diagram with consensus length <rflen> will be used as the template structure for the alignment. Slay, matching algorithm ๐.
Each page of postscript_template_file contains blocks of text organized into seven different possible sections. Each section must begin with a single line % begin <sectionname> and end with a single line % end <sectionname>, and have n >= 1 lines in between. On the begin and end lines, there must be at least one space between the % and the begin or end. And <sectionname> has to be one of these:
modelnamelegendscaleregurgitateignoretext positiontexttext nucleotideslines positiontickslines bpconnects
The n >= 1 lines in between the begin and end lines of each section have to be in a specific format that differs for each section, and we're about to break every single one of them down. No skipping, bestie, this is the whole syllabus ๐.
Also โ big deal, don't miss this โ every page must end with an ignore section that includes a single line showpage between the begin and end lines. That's how esl-ssdraw knows a page has ended and another one might follow. It's the page's little "and that's a wrap" ๐ฌ.
โจ modelname โจ
Every page of a postscript_template_file must include a single modelname section. This section must include exactly one line between its begin and end lines. That line must begin with a % character followed by a single space. The remainder of the line gets parsed as the model name, and it will appear on each page of postscript_output_file in the header section. If the name is more than 16 characters, it will be truncated in the output. So keep it cute and keep it short ๐.
โจ legend โจ
Every page of a postscript_template_file must include a single legend section. This section must include exactly one line between its begin and end lines. That line must be formatted as:
% <d1> <f1> <f2> <d2> <f3>
where the pieces go like this:
- <d1> โ an integer specifying the consensus position with relation to which the legend will be placed
- <f1> and <f2> โ the x and y axis offsets for the top left corner of the legend relative to the x and y position of consensus position <d1>
- <d2> โ the size of a cell in the legend
- <f3> โ how many extra points should be between the right hand edge of the legend and the end of the page (the offset of the right hand end of the legend)
For example, the line % 34 -40. -30. 12 0. specifies that the legend be placed 40 points to the left and 30 points below the 34th consensus position, that cells appearing in the legend be squares of size 12 points by 12 points, and that the right hand side of the legend be flush against the right hand edge of the printable page. chef's kiss placement, fr fr ๐
.
โจ scale โจ
Every page of a postscript_template_file must include a single scale section. This section must include exactly one line between its begin and end lines. That line must be formatted as:
<f1> <f2> scale
where <f1> and <f2> are both positive real numbers that are identical. So for example 1.7 1.7 scale is valid, but 1.7 2.7 scale is not. This line is a valid postscript command which specifies the scale or zoom level on the pages in the output.
If <f1> and <f2> are 1.0, the default scale is used, for which the total size of the page is 612 points wide and 792 points tall. A scale of 2.0 will reduce this to 306 points wide by 396 points tall. A scale of 0.5 will increase it to 1224 points wide by 1584 points tall. A single cell corresponding to one position of the secondary structure is 8 points by 8 points.
For larger RNAs, a scale of less than 1.0 is appropriate โ for example, SSU rRNA models (about 1500 nt) use a scale of about 0.6. And for smaller RNAs, a scale of more than 1.0 might be desirable โ tRNA (about 70 nt) uses a scale of 1.7. The best way to determine the exact scale to use is trial and error. Vibes-based science, honestly, and we support it ๐ฆ.
โจ regurgitate โจ
Each page of a postscript_template_file can include n >= 0 regurgitate sections. These sections can include any number of lines. The text in this section will not be parsed by esl-ssdraw, but it will be included in each page of postscript_output_file. So the format of the lines in this section must therefore be valid postscript commands.
An example of content that might live in a regurgitate section: commands to draw lines and text annotating the anticodon on a tRNA secondary structure diagram. Cute little extra annotations, love that for us ๐ซถ.
โจ ignore โจ
Each page of a postscript_template_file must include at least 1 ignore section. One of these sections must include a single line that reads showpage. This section should be placed at the end of each page of the template file. Other ignore sections can include any number of lines. The text in these sections will not be parsed by esl-ssdraw, and it will not be included in each page of postscript_output_file.
An ignore section can contain comments, or postscript commands that draw features of the postscript_template_file that are unwanted in the postscript_output_file. It's the "behind the scenes, don't look at me" section ๐.
โจ text nucleotides โจ
Each page of a postscript_template_file must include a single text nucleotides section. This section must include exactly <rflen> lines, indicating that the consensus secondary structure has exactly <rflen> nucleotide positions. Each line must be of the format:
(<c>) <x> <y> moveto show
where <c> is a nucleotide (this can be any character actually), and <x> and <y> are the coordinates specifying the location of the nucleotide on the page โ they should be positive real numbers.
The best way to determine what these coordinates should be is manually, by trial and error, by inspecting the resulting structure as you add each nucleotide. And note: esl-ssdraw will color an 8 point by 8 point cell for each position, so nucleotides should be placed about 8 points apart from each other. Give them space, bestie, they need room to breathe ๐.
โจ text positiontext โจ
Each page of a postscript_template_file may or may not include a single text positiontext section. This section can include n >= 1 lines, each specifying text to be placed next to specific positions of the structure โ for example, to number them. Each line must be of the format:
(<s>) <x> <y> moveto show
where <s> is a string of text to place at coordinates (<x>,<y>) of the postscript page. Currently, the best way to determine what these coordinates are is manually, by trial and error, by inspecting the resulting diagram as you add each line.
โจ lines positionticks โจ
Each page of a postscript_template_file may or may not include a single lines positionticks section. This section can include n >= 1 lines, each specifying the location of a tick mark on the diagram. Each line must be of the format:
<x1> <y1> <x2> <y2> moveto show
A tick mark (line of width 2.0) will be drawn from point (<x1>,<y1>) to point (<x2>,<y2>) on each page of postscript_output_file. Currently, the best way to determine what these coordinates should be is manually, by trial and error, by inspecting the resulting diagram as you add each line.
โจ lines bpconnects โจ
Each page of a postscript_template_file may or may not include a single lines bpconnects section. This section must include <nbp> lines, where <nbp> is the number of basepairs in the consensus structure of the input msafile annotated as #=GC SS_cons. Each line should connect two basepaired positions in the consensus structure diagram. Each line must be of the format:
<x1> <y1> <x2> <y2> moveto show
A line will be drawn from point (<x1>,<y1>) to point (<x2>,<y2>) on each page of postscript_output_file. Currently, the best way to determine what these coordinates should be is manually, by trial and error, by inspecting the resulting diagram as you add each line.
๐ง REQUIRED MEMORY ๐ง
okay so memory-wise, esl-ssdraw is actually pretty chill. The memory required will be equal to roughly the larger of 2 Mb and the size of the first alignment in msafile. Lowkey nothing ๐.
But if you use the --small option, the memory required will be independent of the alignment size. Tiny queen behavior. Just one catch: to use --small the alignment must be in Pfam format, which is a non-interleaved (1 line/seq) version of Stockholm format.
โ ๏ธ And now the plot twist, and you need to hear this one: if you use the--indioption, the required memory may exceed the size of the alignment by up to ten-fold, and the outputpostscript_output_filemay be up to 50 times larger than the msafile. Fifty. Times. Plan accordingly, bestie, your disk said ๐ญ.
โจ OPTIONS โจ
okay bestie, this is the big one, the main character section, the one you actually came here for ๐ every single flag lives here, so grab a strawberry drink and let's go ๐
-hโ prints a lil baby help message for you ๐ผ it's got the version number AND a rundown of every single option, even the expert ones (yes, even the ones that are giving "you're not supposed to touch this" energy).-dโ draws the default set of alignment summary diagrams, aka the whole starter pack: consensus sequence, information content, mutual information, insert frequency, average insert length, deletion frequency, and average posterior probability (but only if the alignment actually has posterior probability annotation, no cap ๐งข). now here's the tea: these diagrams get drawn anyway if you pass zero command line options, but using-dis how you add extra pages on top, like individual aligned sequences with--indi. so it's less "please draw" and more "yes and" ๐--mask <f>โ reads the mask from file<f>, and then draws positions differently inpostscript_output_filedepending on whether the mask includes or excludes them ๐.<f>has to contain a single line of length<rflen>with only'0'and'1'characters, that's it, that's the whole file.<rflen>is the number of nongap characters in the reference (#=GC RF) annotation of the first alignment inmsafile. a'0'at position<x>of the mask means position<x>is excluded by the mask, and a'1'means position<x>is included by the mask โจ--smallโ memory saving mode, the "my laptop is fighting for its life" option ๐ญ without--indi, the required RAM will be independent of the size of the alignment inmsafile(slay). with--indi, the required RAM will be roughly ten times the size of the alignment inmsafile. and for--smallto work at all, the alignment must be in Pfam Stockholm (non-interleaved 1 line/seq) format, no exceptions bestie ๐ซถ--rfโ adds a page topostscript_output_fileshowing the reference sequence from the#=GC RFannotation inmsafile๐ by default, basepaired nucleotides get colored based on what type of basepair they are. want that off? use--no-bp. this page is drawn by default if you use zero command-line options ๐--infoโ adds a page topostscript_output_filewith consensus (nongap RF) positions colored based on their information content from the alignment ๐ information content is calculated as2.0 - H, whereH = sum_x p_x log_2 p_xfor x in{A,C,G,U}. this page is drawn by default if you use zero command-line options โจ--mutinfoโ adds a page topostscript_output_filewith basepaired consensus (nongap RF) positions colored based on how much mutual information they have in the alignment ๐ซ mutual information issum_{x,y} p_{x,y} log_2 ((p_x * p_y) / p_{x,y}, where x and y are the four possible basesA,C,G,U.p_xis the fraction of aligned sequences that have nucleotide x in the left half (5' half) of the basepair.p_yis the fraction of aligned sequences that have nucleotide y in the position corresponding to the right half (3' half) of the basepair. andp_{x,y}is the fraction of aligned sequences that have basepairx:y. for allp_x,p_yandp{x,y}, only sequences that have a nongap nucleotide at both the left and right half of the basepair are counted. this page is drawn by default if you use zero command-line options ๐--ifreqโ adds a page topostscript_output_filewith each consensus (nongap RF) position colored based on the fraction of sequences that span each position that have at least 1 inserted nucleotide after the position ๐ฆ here's the definition, keep up: a sequence s spans consensus position x that is actual alignment position a if s has at least one nongap nucleotide aligned to a positionb <= aand at least one nongap nucleotide aligned to a consensus positionc >= a. this page is drawn by default if you use zero command-line options ๐--iavglenโ adds a page topostscript_output_filewith each consensus (nongap RF) position colored based on the average length of insertions that occur after it ๐ the average is calculated as the total number of inserted nucleotides after position x, divided by the number of sequences that have at least 1 inserted nucleotide after position x (so the minimum possible average insert length is1.0, just so you know). ngl that's a lot of math but it's giving precise ๐--dallโ adds a page topostscript_output_filewith each consensus (nongap RF) position colored based on the fraction of sequences that have a gap (delete) at the position ๐ณ๏ธ this page is drawn by default if you use zero command-line options ๐ธ--dintโ adds a page topostscript_output_filewith each consensus (nongap RF) position colored based on the fraction of sequences that have an internal gap (delete) at the position. an internal gap in a sequence is one that occurs after (5' of) the sequence's first aligned nucleotide and after (3' of) the sequence's final aligned nucleotide ๐ง this page is drawn by default if you use zero command-line options โญ--probโ adds a page topostscript_output_filewith positions colored based on average posterior probability (PP) ๐ฅ the alignment must contain#=GR PPannotation for all sequences, periodt. PP annotation gets converted to numerical PP values like this:'*' = 0.975,'9' = 0.90,'8' = 0.80,'7' = 0.70,'6' = 0.60,'5' = 0.50,'4' = 0.40,'3' = 0.30,'2' = 0.20,'1' = 0.10,'0' = 0.025. this page is drawn by default if you use zero command-line options ๐--spanโ adds a page topostscript_output_filewith consensus (nongap RF) positions colored based on the fraction of sequences that 'span' the position ๐ and again the definition: a sequence s spans consensus position x that is actual alignment position a if s has at least one nongap nucleotide aligned to a positionb <= aand at least one nongap nucleotide aligned to a consensus positionc >= a. this page is drawn by default if you use zero command-line options ๐
๐ฆ OPTIONS FOR DRAWING INDIVIDUAL ALIGNED SEQUENCES ๐ฆ
--indiโ adds a page displaying the aligned nucleotides in their corresponding consensus positions of the structure diagram, for every aligned sequence in the alignment ๐ by default, basepaired nucleotides get colored based on what type of basepair they are. want that off? use--no-bp. and if posterior probability information (#=GR PP) exists in the alignment, one extra page per sequence gets drawn displaying the posterior probabilities. so many pages, so little time ๐ญ-fโ with--indi, forcesesl-ssdrawto create a diagram even if it's predicted to be large (> 100 Mb) ๐ by default, if the predicted size exceeds100 Mb,esl-ssdrawwill fail with a warning. so-fis the "I know what I'm doing, let me cook" flag ๐ฅ
๐ธ OPTIONS FOR OMITTING PARTS OF THE DIAGRAMS ๐ธ
--no-legโ omits the legend on all pages ofpostscript_output_file๐ โโ๏ธ--no-headโ omits the header on all pages ofpostscript_output_file๐--no-footโ omits the footer on all pages ofpostscript_output_file๐ โโ๏ธ
๐ OPTIONS FOR SIMPLE TWO-COLOR MASK DIAGRAMS ๐
--mask-colโ with--mask,postscript_output_filewill contain exactly 1 page showing positions included by the mask as black squares, and positions excluded as pink squares ๐ค๐ฉท (pink squares?? the aesthetic, we love to see it)--mask-diff <f>โ with--mask <f2>andmask-col,postscript_output_filewill contain one additional page comparing the mask from<f>and the mask from<f2>๐ positions get colored based on whether they are included by one mask and not the other, excluded by both masks, and included by both masks. a whole comparison arc, iconic โจ
๐ EXPERT OPTIONS FOR CONTROLLING INDIVIDUAL SEQUENCE DIAGRAMS ๐
--no-ppโ when used in combination with--indi, do not draw posterior probability structure diagrams for each sequence, even if the alignment has PP annotation ๐ซ--no-bpโ do not color basepaired nucleotides based on their basepair type ๐ซ--no-olโ when used in combination with--indi, do not outline nucleotides that differ from the majority rule consensus nucleotide given the alignment โ๏ธ--no-ntppโ when used in combination with--indi, do not draw nucleotides on the individual sequence posterior probability diagrams ๐ซ
๐ง EXPERT OPTIONS RELATED TO CONSENSUS SEQUENCE DEFINITION ๐ง
--no-cntโ do not draw consensus nucleotides on alignment statistic diagrams (like information content diagrams, for example) ๐ซ so by default, the consensus nucleotide is defined as the most frequent nucleotide in the alignment at the corresponding position. consensus nucleotides that occur in at least<x>fraction of the aligned sequences (that don't contain a gap at the position) are capitalized. by default<x>is0.75, but you can change it with the--cthresh <x>option ๐--cthresh <x>โ specify the threshold for capitalizing consensus nucleotides defined by the majority rule (i.e. when--cambigis not enabled) as<x>โจ--cambigโ changes how consensus nucleotides are calculated, from majority rule to the least ambiguous IUPAC nucleotide that represents at least<x>fraction of the nongap nucleotides at each consensus position ๐งฌ by default<x>is0.9, but you can change it with the--athresh <x>option ๐--athresh <x>โ with--cambig, specify the threshold for defining consensus nucleotides as the least ambiguous IUPAC nucleotide that represents at least<x>fraction of the nongap nucleotides at each position ๐
๐ EXPERT OPTIONS CONTROLLING STYLE OF MASKING POSITIONS ๐
--mask-uโ with--mask, changes the style of masked columns to squares โฌ--mask-xโ with--mask, changes the style of masked columns to x's โ--mask-aโ with--maskand--mask-uor--mask-x, draws the alternative style of square or'x'masks ๐
โจ EXPERT OPTIONS RELATED TO INPUT FILES โจ
okay bestie these are the file-reading ones, and they're lowkey the most powerful and highkey the most fiddly ๐ read carefully fr fr
--dfile <f>โ read the 'draw file'<f>which hands over numerical values for each consensus position in one or more postscript pages. For each page, the draw file has to include<rflen>+3 lines (and<rflen>is defined back up in the DESCRIPTION section, go look ๐). The first three lines are special. The following<rflen>'value lines' each must contain a single number โ the numerical value for the corresponding position. Let's talk about those three special lines:- The first of the three special lines defines the 'description' for the page. This should be text describing what the numerical values refer to for the page. Max allowable length is roughly 50 characters (the exact max depends on the template file, and the program will report an informative error message upon execution if you exceed it โ it's giving helpful, not shady ๐ซถ).
- The second special line defines the 'legend header' line that will appear immediately above the legend. It has a max allowable length of about 30 characters.
- The third special line per page must contain exactly 7 numbers, which must be in increasing order, each separated by a space. These numbers define the numerical ranges for the six different colors used to draw the consensus positions on the page. Number one defines the minimum value for the first color (blue) and must be less than or equal to the minimum value from the value lines. Number two defines the minimum value for the second color (turquoise). Numbers three, four, five and six define the minimum values for the third, fourth, fifth and sixth colors (light green, yellow, orange, red), and the seventh and final number defines the maximum value for red and must be equal to or greater than the maximum value from the value lines.
After the <rflen> value lines, there must exist a special line with only //, signifying the end of a page. The draw file <f> must end with this special // line, even if it only includes a single page. A draw file specifying <n> pages should include exactly <n> * (<rflen> + 4) lines. do the math, bestie ๐งฎโจ
--efile <f>โ read the 'expert draw file'<f>which specifies the colors and nucleotides to draw on each consensus position in one or more postscript pages. Unlike with the--dfileoption, no legend will be drawn when--efileis used โ not a single one, periodt ๐ โโ๏ธ. For each page, the draw file must include<rflen>lines, each with four or five tab-delimited tokens. The first four tokens on line<x>specify the color to paint position<x>and must be real numbers between 0 and 1. Those four numbers specify the cyan, magenta, yellow and black values, respectively, in the CMYK color scheme for the postscript file. The fifth token on line<x>specifies which nucleotide to write on position<x>(on top of the colored background). If the fifth token does not exist, no nucleotide will be written โ it's giving minimalist ๐ฆ.
After the <rflen> lines, there must exist a special line with only //, signifying the end of a page. The expert draw file <f> must end with this special // line, even if it only includes a single page. An expert draw file specifying <n> pages should include exactly <n> * (<rflen> + 1) lines. (yes it's + 1 here and + 4 for --dfile, they are DIFFERENT, do not mix them up i am begging ๐ญ)
--ifile <f>โ read insert information from the file<f>, which may have been created with INFERNAL'scmalign(1)program. The insert information inmsafilewill be ignored and the information from<f>will supersede it โ new info wins, no debate ๐. Inserts are columns that are gaps in the reference (#=GC RF) annotation. iykyk.
๐ SEE ALSO ๐
๐ COPYRIGHT ๐
Copyright (C) 2020 Howard Hughes Medical Institute.
Freely distributed under the BSD open source license.
๐ฆ AUTHOR ๐ฆ
and that's the whole page bestie, you ate it ๐
โจ this was Easel 0.48, dated Nov 2020, and it's the manual for esl-ssdraw(1) โ go draw something iconic with it, ily, mwah ๐๐๐ซถ
๐ฆ where this page comes from
- fedora 43: hmmer-easel 3.3.2-11.fc43 ยท GPL-3.0-only
- fedora 44: hmmer-easel 3.3.2-12.fc44 ยท GPL-3.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms