File: rgfa-cheatsheet.tex

package info (click to toggle)
ruby-rgfa 1.3.1%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 848 kB
  • sloc: ruby: 5,666; makefile: 9
file content (176 lines) | stat: -rw-r--r-- 6,718 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
\documentclass[12pt]{scrartcl}

\usepackage{comment}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{catchfile}
\pagestyle{fancy}

\CatchFileDef{\RGFAver}{version}{}

\usepackage{array}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\rhead{\bfseries RGFA \RGFAver Cheatsheet (\thepage/\pageref{LastPage})
\hspace{1.1cm}}
\lfoot{\tiny \ \ \ \ \ \ \ \ Copyright (c) 2016, Giorgio Gonnella, ZBH, University of
Hamburg, Germany. This document is under CC-BY-SA license.}

\newcounter{cstablecounter}
\setlength{\footskip}{0in}
\usepackage[top=1in, bottom=0.25in, left=0.1in, right=0.1in]{geometry}

\newcommand{\cstablestart}{
\begin{center}
%  \large
%  \textbf{RGFA: Cheatsheet
%  (\refstepcounter{cstablecounter}\arabic{cstablecounter}/2)
%  }\\
%\end{center}
%\vspace*{\fill}
%\begin{table}[h]
\centering
}
\setlength{\baselineskip}{0pt}
\setlength{\textfloatsep}{0pt plus 0pt minus 0pt}
\setlength{\intextsep}{0pt plus 0pt minus 0pt}
\setlength{\floatsep}{0pt plus 0pt minus 0pt}
\newcommand{\cstableend}{
\end{center}
  %\end{table}
%\vspace*{\fill}
%\newpage
}

\begin{document}

\cstablestart

\begin{tabular}{|l|>{\ttfamily}l|}
  \hline
  Create graph & RGFA.new \\
  \ldots from GFA file & RGFA.from\_file("filename")\\
  \ldots from string & string.to\_rgfa \\
  \ldots from string array (e.g.) & \verb/["H\tVN:i:1.0",/ \\
    & \hspace{2.3mm}\verb/"S\tA\t*\tLN:i:1200"].to_rgfa/ \\
  \hline
  Write GFA to file & gfa.to\_file(filename) \\
  Write GFA to standard output & puts gfa \\
  Create deep copy & gfa.clone \\
  Output statistics (normal/compact) & puts gfa.info; puts gfa.info(true) \\
  \hline
  Turn off validations & gfa.turn\_off\_validations \\
  Validate line references & gfa.validate! \\
  Enable progress logging & gfa.enable\_progress\_logging \\
  \hline
  Name of all segments & gfa.segment\_names \\
  Name of all paths & gfa.path\_names \\
  All segments, links, paths, etc & gfa.segments; gfa.links; gfa.paths; \ldots \\
  Iterate over segments, links, etc & gfa.segments.each \verb/{|s|...}/ \\
  \hline
  Find segment & gfa.segment(segment\_name) \\
  \ldots exception if does not exist  & gfa.segment!(segment\_name) \\
  \hline
  Find path & gfa.path(path\_name) \textrm{(or: }path!\textrm{)} \\
  All paths through segment & gfa.paths\_with(segment\_name) \\
  \hline
  Find link & gfa.link(\verb/[:S1,:E]/,\verb/[:S2,:B]/) \textrm{(or: }link!\textrm{)} \\
  (or, if multiple may exist) & gfa.links\_between(\verb/[:S1,:E]/,\verb/[:S2,:B]/) \\
  All links of segment end & gfa.links\_of(\verb/[:S1,:E]/) \\
  (also segment instead of name) &
  gfa.links\_of(\verb/[segment!(:S1),:E]/) \\
  Target of all links & gfa.neighbours(\verb/[:S1,:E]/) \\
  \hline
  Find containment  & gfa.containment(container,~contained)\\
                    & gfa.containment!(container,~contained)\\
  (or, if multiple may exist)  & gfa.containments\_between(c\_ner,~c\_ned)\\
  All containments for a segment & gfa.containing(contained)\\
                                 & gfa.contained\_in(container)\\
  \hline
  Add line (examples)        & gfa << "H\verb/\t/VZ:i:1.0" \\
                             & gfa << "S\verb/\t/a\verb/\t/*\verb/\t/LN:i:1200" \\
  Rename segment or path & gfa.rename(:old, :new) \\
  \hline
  Segment coverage & s.coverage\\
  Segment coverage (more accurate) & s.coverage(unit\_length:~avreadlen)\\
  Segment K-mer coverage & s.coverage(count\_tag:~:KC)\\
  Segment length & s.length\\
  Other end of a link & link.other\_end([s1,:E])\\
  Other end of other end of link &
  link.other\_end([s1,:E])\\
  & \hspace{2.8cm}.revert\_end\_type\\
  \hline
  Read req.field/tag value & segment.from; segment.LN \\
  \ldots raise if tag not available & segment.LN! \\
  \ldots tag string & segment.field\_to\_s(:LN) \\
  \hline
  Set/create custom tag (ab, Z type) & segment.ab = "value" \\
  \ldots of i or B/i type & s.ab = 12; \ \ \ s.ab = [1,2,3]\\
  \ldots of f or B/f type & s.ab = 12.0; \ s.ab = [1.2,2.3,3.0] \\
  \ldots of J type (hash/array) & s.ab = \{"a" => 12\}; s.ab = ["a","b",1] \\
  \hline

\end{tabular}

\cstableend

\cstablestart

\begin{tabular}{|l|>{\ttfamily}l|}
  \hline
  Delete segment (and its links, etc) & gfa.rm("a") \\
  Delete path & gfa.rm("path1") \\
  Delete link/containment  & gfa.rm(gfa.link(\ldots)) \\
  Delete all headers & gfa.rm(:headers) \\
  Delete sequences (set all to \texttt{*}) & gfa.rm(:sequences) \\
  \hline
  \textit{(rm with a method)} &\\
  Delete links of segment end & gfa.rm(\verb/:links_of,[:S1,"E]/) \\
  Delete link targets  & gfa.rm(\verb/:neighbours,[:S1,"E]/) \\
  Delete paths of segment & gfa.rm(\verb/:paths_with,:S1/) \\
  Delete segments contained in s & gfa.rm(\verb/:contained_in,:s/) \\
  Delete s1-E links except to s2-B & gfa.delete\_other\_links(\verb/[s1,:E],[s2,:B]/)\\
  \hline
  Access headers field & gfa.header.xx \\
  Add new header field & gfa.header.add(:xx, 12)\\
  \hline
  Sum of read counts & \verb/gfa.segments.map(&:RC).inject(:+)/ \\
  Highest coverage & \verb/gfa.segments.map(&:coverage).max/ \\
  Delete low coverage segments & \verb/gfa.rm(gfa.segments.select {|s|/ \\
                               & \hspace{2.7cm}\verb/s.coverage < mincov })/ \\
  Delete isolated segments & \verb/gfa.rm(gfa.segments.select {|s|/ \\
                      & \hspace{1cm}\verb/gfa.connectivity(s) == [0,0] })/ \\
  \hline
  Muliply segment & gfa.multiply("A", 4) \\
  Detect linear paths & gfa.linear\_paths \\
  Detect and merge linear paths & gfa.merge\_linear\_paths \\
  Compute connected components & gfa.connected\_components \\
  Component of a segment & gfa.segment\_connected\_component(s) \\
  Split components & gfa.split\_connected\_components \\
  Number of dead ends & gfa.n\_dead\_ends \\
  \hline
  \textit{(require "rgfatools")} & \\
  Muliply segment, distribute links & gfa.multiply("A", 4) \\
  Compute copy numbers & gfa.compute\_copy\_numbers \\
  Apply copy numbers & gfa.apply\_copy\_numbers \\
  Orient invertible segments & gfa.randomly\_orient\_invertibles \\
  Enforce mandatory links & gfa.enforce\_mandatory\_links \\
  Remove p-bubbles & gfa.remove\_p\_bubbles \\
  Remove small components & gfa.remove\_small\_components(minlen) \\
  \hline
  \textit{(Command line tools)} & \\
  Compare two GFA files & gfadiff 1.gfa 2.gfa \\
  \ldots only segments and links & gfadiff -s -l 1.gfa 2.gfa \\
  \ldots output as ruby script & gfadiff -script 1.gfa 2.gfa \\
  Merge linear paths in graph & rgfa-mergelinear 2.gfa > 3.gfa \\
  \hline
  \textit{(Case studies CLI tools)} & \\
  Simulate de Bruijn graph & rgfa-simdebruijn 27 gnm.fas > 1.gfa \\
  \ldots and find CRISPRs candidates & rgfa-findcrisprs 1.gfa \\
  \hline
\end{tabular}

\cstableend

\end{document}