>title and optional description sequence line(s)
A | alanine |
B | aspartate/asparagine |
C | cystine |
D | aspartate |
E | glutamate |
F | phenylalanine |
G | glycine |
H | histidine |
I | isoleucine |
K | lysine |
L | leucine |
M | methionine |
N | asparagine |
P | proline |
Q | glutamine |
R | arginine |
S | serine |
T | threonine |
U | selenocysteine |
V | valine |
W | tryptophan |
Y | tyrosine |
Z | glutamate/glutamine |
X | any |
* | translation stop |
- | gap of indeterminate length |
A | Adenine |
T (or U) | Thymine (or Uracil) |
C | Cytosine |
G | Guanine |
Y | T/C (pyrimidine) |
R | A/G (purine) |
S | G/C (strong bond) |
W | A/T (weak bond) |
K | T/G (keto) |
M | A/C (amino) |
B | T/C/G |
D | A/T/G |
H | A/T/C |
V | A/C/G |
N | A/T/C/G (any) |
. or - | gap |
小文字の塩基はソフトマスクされたリピート配列や低複雑度配列を表現するために使用されることが多い. これらの配列はハードマスクされている場合もあり、その場合のヌクレオチドはNで置換される. 縮重(または曖昧)ヌクレオチドに対する取扱い方はプログラムごとに異なり、ランダム塩基置換等が行われる.
FASTAファイルのエントリー数は以下のように数える.
$ cat in.fasta | grep -c "^>"
参考文献
@title and optional description sequence line(s) +optional repeat of title line quality line(s)
* @は品質文字列中にも出現するため、@が行頭にあっても、品質文字列長が配列文字列長と一致することを確認せずに、次エントリの開始を意味しているものと解釈してはならない.
FASTQ形式には品質スコアの表現が異なる変種が少なくとも3つ存在し, Open Bioinformatics Foundation (OBF)によってfastq-sanger, fastq-solexa, fastq-illuminaと命名されている. fastq-sangerやfastq-illuminaでは品質スコアにQPHRED (=-10log10Perr)を採用し、 fastq-solexaではQSolexa (=-10log10(Perr/(1-Perr)))を採用している.
種類 (OBF名) | ASCII文字 | 品質スコア | |||
---|---|---|---|---|---|
範囲 | オフセット | タイプ | 範囲 | ||
Sanger, Illumina (version 1.8~) (fastq-sanger) | 33~126 | 33 | PHRED | 0~93 | |
Solexa, early Illumina (version ~1.3) (fastq-solexa) | 59~126 | 64 | Solexa | -5~62 | |
Illumina (version 1.3~1.7) (fastq-illumina) | 64~126 | 64 | PHRED | 0~62 |
fastq-sangerが現在のデファクトスタンダードであり、品質スコアにオフセット33を加えることで印字可能なASCII文字に符号化している. すなわちfastq-sanger品質スコアから各塩基の正しさの推定確率Pは以下のPythonスクリプトから算出できる.
>>> qline = "JJJJJJJJJJJJJJGJJJJJJJJJJJJJJIJGJJJJJJJJJJJJHHHHFFFFDDFCCCCC" >>> phred = [ord(base)-33 for base in qline] >>> p = [10**(-q/10) for q in phred]
FASTQファイルのエントリー数は以下のようにして知ることができる.
$ cat in.fastq | bioawk -cfastx 'END{print NR}'
参考文献:
注釈付きの塩基配列情報はEMBL形式/GenBank形式/DDBJ形式で記述される。 DDBJ形式やRefSeqから提供されているデータはGenBank形式と同様である。 具体例:
General Transfer Format (GTF)/General Feature Format(GFF)形式はゲノム上の特徴配列を記述するために使用される. 行指向であり、各行タブ区切りの必須9列からなり、空値は"."で補完する.
列番号 | 列名 | 列説明 |
1 | seqname | 染色体名やscaffold名、chrはなくてもよい |
2 | source | featureを作製したprogram/data source名 |
3 | feature | featureのタイプ名. GENCODEの場合ではgene,transcript,exon,CDS,UTR,start_codon,stop_codon,Selenocysteineのいずれかの値をとる. |
4 | start | featureの開始位置 |
5 | end | featureの終了位置 |
6 | score | 浮動小数点値 |
7 | strand | +(fwd)|-(rv) |
8 | frame | 読み枠(0|1|2),0なら最初の塩基がコドンの最初の塩基 |
9 | attribute | featureの追加情報、セミコロン区切りのタグ値 |
GTFとGFFはほぼ同形式であるが、GTFでは3列目のfeatureタイプ値の制限が強いことが両者の主たる相違点である.
参考文献:
Sequence Alignment/Mapping(SAM)/BAM形式はアライメント情報を格納するために使用される. SAMはテキストであり、BAMはそのバイナリである. SAMは行指向であり、1つのheader sectionと1つのalignment sectionからなる. headerの各行は@で始まり、2文字コードが続いた後、タブ区切りのKEY:VALUEが並ぶ. alignmentの各行はtab区切りの必須11列からなる.
@SQ行は参照配列に関する情報を保存する. KEYにはSNとLNがある.
@RG行はリードグループとサンプルメタ情報を保存する. KEYにはIDとSM,PLがある。
@PGはprogramに関するメタ情報を保存する. KEYにはID, VN, CLがある。
列番号 | 列名 | 列説明 |
1 | QNAME | Query(リード)名 |
2 | FLAG | bit表現フラグ(アライメント結果を整数値で記載) |
3 | RNAME | リファレンス名 |
4 | POS | リードのマッピング開始位置(1起算)/unmappedは0 |
5 | MAPQ | マッピングクオリティスコア, Q=-10log10P. 不正確アライメントのフィルタリング, 低品質領域(反復、パラログ領域)の同定にする. |
6 | CIGAR | CIGAR文字列(マッピング状況) |
7 | RNEXT | PEの場合、相手方のリード名. *はRNEXTが存在しないことを意味.>=はRNEXTがRNAMEと同じであることを意味. |
8 | PNEXT | PEの場合、相手方のマッピング開始位置. RNEXTが存在しない場合、値は0. |
9 | TLEN | PEの場合、templateの長さ |
10 | SEQ | マップした配列の塩基配列データ. この配列は常にアライメントされた方向に並んでいる. (元のリード配列の相補鎖の可能性がある.) |
11 | QUAL | マップした配列のSequence Qualityデータ |
Flag (hex) | 意味 |
0x1 | PEである. |
0x2 | 正しいペアとしてaligmentされている |
0x4 | Mappingされていない |
0x8 | メイトペアがMappingされていない |
0x10 | 配列は相補鎖にMappingされている |
0x20 | メイトペアの配列が逆転している |
0x40 | ペアの最初のリード |
0x80 | ペアの2番めのリード |
0x100 | secondary aligment |
0x200 | QC失敗 |
0x400 | PCRまたは光学複製 |
0x800 | 補助的アライメント |
CIGAR文字列はアライメントに対する塩基のマッチ/ミスマッチ、挿入/欠失、ソフトクリップ/ハードクリップなどの情報を符号化する. 基本的なCIGAR文字列は整数による長さと文字操作の連結ペアが並んだものである.
操作 | 値 | 意味 |
M | 0 | aligment match (=とXのいずれでもありうる.) |
I | 1 | 挿入 |
D | 2 | 欠失 |
N | 3 | skip領域 |
S | 4 | ソフトクリッピング領域 (この領域はSEQフィード内の配列として存在する) |
H | 5 | ハードクリッピング領域 (この領域はSEQフィールド内には存在しない) |
P | 6 | padding |
= | 7 | 配列マッチ |
X | 8 | 配列ミスマッチ |
SAM/BAMファイルを操作するにはsamtoolsを利用する. 詳細はアライメントデータの操作の章に記載されている.
参考文献:
Variant Call Format (VCF)
##で始まるメタデータheader行とデータライン行からなる tab区切りのデータ.
参考文献:
ゲノムブラウザのannotation tracksを表現するためのテキストフォーマットにはBED, bedGraph, Wiggle (WIG)などがある. BED, BedGraph, WIGは行指向であり、三つの行タイプ(browser lines, track lines, data lines)からなる. 空行や#から始まる行は無視される. BedGraphとWIGは確率値のような連続値データをグラフ表現するために用いる. BedGraphでは指定領域の大きさが不定でかつ領域間距離が不規則なデータを許容する. 一方、WIGは密な連続値データをなるべく簡略に表現するために設計されたものであり、指定領域の大きさが一定である必要がある. さらに領域間距離が規則的な場合(fixedStep)と不規則な場合(variableStep)との区別がなされる.
browser linesの指定は任意である. formatは以下の通りである.
browser attribute value(s)
position position | ゲノムブラウザがはじめに開くゲノム領域をchromosome:start-end formatで指定する. |
hide all | custom trackファイルにリストされているもの以外の全てのannotation tracksを隠す. |
hide track_primary_table_name(s) | 指定したtracksを隠す. 複数のtrack名はスペースで区切る. |
dense all | 全てのtracksをdense modeで表示する. |
dense track_primary_table_name(s) | 指定したtracksをdense modeで表示する. シンボル名で指定する. 複数のtrack名はスペースで区切る. |
pack all | 全てのtracksをpack modeで表示する. |
pack track_primary_table_name(s) | 指定したtracksをpack modeで表示する. シンボル名で指定する. 複数のtrack名はスペースで区切る. |
squish all | 全てのtracksをsquish modeで表示する. |
squish track_primary_table_name(s) | 指定したtracksをsquish modeで表示する. シンボル名で指定する. 複数のtrack名はスペースで区切る. |
full all | 全てのtracksをfull modeで表示する. |
full track_primary_table_name(s) | 指定したtracksをfull modeで表示する. シンボル名で指定する. 複数のtrack名はスペースで区切る. |
track linesの指定は任意である. ただしBedGraphやWIGの場合などにはtrack lineを配置し、それぞれtype=wiggle_0やtype=bedGraphと指定する必要がある. formatは以下の通りである.
track attribute=value [attribute=value ...]
attribute | value |
name | trackを同定するために用いるユニーク名. trackの左側に表示される. 最大15文字長であり、スペースを含む場合は引用符で囲まれていなければならない. |
description | 領域内のtrackに表示されるラベル. 最大60文字長であり、スペースを含む場合は引用符で囲まれていなければならない. |
type | track typeを指定する. BAM, BED detail, bedGraph, bigBarChart, bigBed, bigChain, bigGenePred, bigInteract, bigNarrowPeak, bigMaf, bigPsl, bigWIG, broadPeak, CRAM, interact, narrowPeak, Microarray, VCF, WIGを表示する際は必須である. |
priority | 複数のtrackが指定された場合にどの順序で表示するかを定める整数値 |
color | RGB, hexかX11 named colorで指定する |
useScore | 1にセットすることでtrackをグレーススケールに変換する |
itemRgb | onにセットすることで、trackで定義された個々のRGB値が使用される |
参考文献:
BED形式は行指向であり、各行3-12列からなり、各列はホワイトスペースで区切る. 前3列は必須列、後9列は任意列である. カスタム列を定義・使用することも可能である. 各行の列数は同一でなければならず、空値は"."等で埋める必要がある. 任意列の列を使用する際はその前列全てを記述する必要がある. 初めのn列を使用するものをBEDnファイルという. 初めのn列を含み、任意列の残り又はカスタム列がゼロ又は複数後続ものをBEDn+ファイルという. 初めのn列を含み、m列のカスタム列が後続するものをBEDn+mファイルという. BEDファイルはLC_ALL=C sort -k 1,1 -k 2n,2 3n,3でソートされていることが望ましい. 1列目はchr1, chr2, ...,chr21, chr22, chrM, chrX, chrY順でもよい. BED形式では0ベース半開区間の座標系を使用する.
列番号 | 列名 | 列説明 |
1 | chrom | 染色体名やscaffold名、chrという接頭辞はなくてもよい. |
2 | chromStart | 染色体/scaffold座標上でのfeatureの開始位置 |
3 | chromEnd | 同上での終了位置 |
4 | name | ブラウザに表示されるfeature名. |
5 | score | 0-1000までのスコア. グレー色の濃淡(高値ほど濃い)で表現される. |
6 | strand | "." (= no strand)|+(fwd)|-(rv) |
7 | thickStart | 強調表示されるfeatureの開始座標 |
8 | thickEnd | 強調表示されるfeatureの終了位置 |
9 | itemRgb | 色(RGB), R,G,Bのように,区切りで数値指定 |
10 | blockCount | featureの内部にあるサブ要素の数(CDSに対するexon数など) |
11 | blockSizes | サブ要素のサイズ(数値を,区切りで指定) |
12 | blockStarts | サブ要素それぞれの開始座標(数値を,区切りで指定) |
参考文献:
BedGraph data line(s)は以下のように記述する.
chrom chromStart chromEnd dataValue
dataValueは整数/実数, 正/負数のいずれかを問わない.座標系には0ベースの半開区間を使用する.
具体例:
browser position chr19:49302001-49304701 browser hide all browser pack refGene encodeRegions browser full altGraph # 300 base wide bar graph, autoScale is on by default == graphing # limits will dynamically change to always show full range of data # in viewing window, priority = 20 positions this as the second graph # Note, zero-relative, half-open coordinate system in use for bedGraph format track type=bedGraph name="BedGraph Format" description="BedGraph format" visibility=full color=200,100,0 altColor=0,100,200 priority=20 chr19 49302000 49302300 -1.0 chr19 49302300 49302600 -0.75 chr19 49302600 49302900 -0.50 chr19 49302900 49303200 -0.25 chr19 49303200 49303500 0.0 chr19 49303500 49303800 0.25 chr19 49303800 49304100 0.50 chr19 49304100 49304400 0.75 chr19 49304400 49304700 1.00
WIG (wiggle)ではdata line(s)に先行し、variableStepかfixedStepかを指定するdeclaration行を配置する. variableStepのdeclaration行はvariableStepまたはfixedStepという語で始まり、スペース区切りのkey-valueペアが後続する.
Key | Value |
chrom | (必須) 染色体名 |
span | (任意) 各データがカバーする塩基数 (デフォルトは1). |
Key | Value |
start | (必須) データ値のスタート位置 |
step | (必須) データ値間の距離 |
chrom | (必須) 染色体名 |
span | (任意) 各データがカバーする塩基数 (デフォルトは1). |
WIG variableStep data lines format
variableStep chrom=chrN [span=windowSize] chromStart dataValue
WIG fixedStep data lines format
fixedStep chrom=chrN start=position step=stepInterval [span=windowSize] dataValue
dataValueは整数/実数, 正/負数の別を問わない.座標系には1ベースの閉区間を使用する.
具体例1:
# 2番染色体上の300701-300705の位置に12.5のデータ値を表示する. # spanを使わない場合 variableStep chrom=chr2 300701 12.5 300702 12.5 300703 12.5 300704 12.5 300705 12.5
具体例2:
# 2番染色体上の300701-300705の位置に12.5のデータ値を表示する. # spanを使う場合 variableStep chrom=chr2 span=5 300701 12.5
具体例3:
# 3番染色体上の位置40601, 400701, 40801にそれぞれ11, 22, 33というデータ値を表示する. # spanを使わない場合
fixedStep chrom=chr3 start=400601 step=100 11 22 33
具体例4:
# 3番染色体上の位置400601-400605, 400701-400705, 400801-400805にそれぞれ11, 22, 33というデータ値を表示する. # spanを使う場合 fixedStep chrom=chr3 start=400601 step=100 span=5 11 22 33
具体例5:
browser position chr19:49304200-49310700 browser hide all # 150 base wide bar graph at arbitrarily spaced positions, # threshold line drawn at y=11.76 # autoScale off viewing range set to [0:25] # priority = 10 positions this as the first graph # Note, one-relative coordinate system in use for this format track type=wiggle_0 name="variableStep" description="variableStep format" visibility=full autoScale=off viewLimits=0.0:25.0 color=50,150,255 yLineMark=11.76 yLineOnOff=on priority=10 variableStep chrom=chr19 span=150 49304701 10.0 49304901 12.5 49305401 15.0 49305601 17.5 49305901 20.0 49306081 17.5 49306301 15.0 49306691 12.5 49307871 10.0 # 200 base wide points graph at every 300 bases, 50 pixel high graph # autoScale off and viewing range set to [0:1000] # priority = 20 positions this as the second graph # Note, one-relative coordinate system in use for this format track type=wiggle_0 name="fixedStep" description="fixedStep format" visibility=full autoScale=off viewLimits=0:1000 color=0,200,100 maxHeightPixels=100:50:20 graphType=points priority=20 fixedStep chrom=chr19 start=49307401 step=300 span=200 1000 900 800 700 600 500 400 300 200 100
参考文献:
BEDからbedToBigBedプログラムにより変換されたインデックス付バイナリをbigBedという.
BedGraphやWiggle(WIG)からそれぞれbedGraphToBigWigやwigToBigWigプログラムによって変換されたインデックス付バイナリという.
変換ファイルを用いる主たる利点は、UCSCゲノムブラウザサーバを利用する際、表示領域に対応するファイルの部分だけがサーバに転送されるため
大きなサイズ(50MiB以上)のファイルを取扱う際の処理速度の向上する点にある.
bigBedやbigWigを作成・操作するために必要なutilityは以下から入手できる.
bedTomBigBed | bedからBigBedに変換する. | [Linux] [macOS(x86_64)] |
bedGraphToBigWig | begGraphからBigWigに変換する. | [Linux] [macOS(x86_64)] |
wigToBigWig | wigからBigWigに変換する. | [Linux] [macOS(x86_64)] |
fetchChromSizes | chrom.sizesファイルを作成する. | [Linux] [macOS(x86_64)] |
bigBedToBed | bigBedからBEDに変換する. | [Linux] [macOS(x86_64)] |
bigBedSummary | bigBedファイルから要約情報を抽出する. | [Linux] [macOS(x86_64)] |
bigBedInfo | bigBedファイルに関する情報を出力する. | [Linux] [macOS(x86_64)] |
bigWigToBedGraph | bigWigからbedGraphに変換する. | [Linux] [macOS(x86_64)] |
bigWigtoWig | bigWigからWigに変換する. | [Linux] [macOS(x86_64)] |
bigWigSummary | bigWigファイルから要約情報を抽出する. | [Linux] [macOS(x86_64)] |
bigWigInfo | bigWigファイルに関する情報を出力する. | [Linux] [macOS(x86_64)] |
chrom.sizesファイルはCMHADSOシステム参照データ(gsize.tar.gz)から入手できる.
BigBedやBigWigに変換するためのsyntaxは以下の通りである.
bedToBigBed in.bed chrom.sizes out.bb
# in.bedはbrowser linesとtrack linesを除去し、data linesだけにした後、sort -k1,1 -k2n,2
したもの.
# ゲノムブラウザ上において1つのtrackに対応するデータに限定し、複数のtrackデータは個々のin.bedファイルに分割する必要がある.
bedGraphToBigWig in.bg chrom.sizes out.bw
# in.bgはbrowser linesとtrack linesを除去し、data linesだけにしたもの.
# ゲノムブラウザ上において1つのtrackに対応するデータに限定し、複数のtrackデータは個々のin.bgファイルに分割する必要がある.
wigToBigWig in.wig chrom.sizes out.bw
# in.wigはbrowser linesとtrack linesを除去し、data linesだけにしたもの.
# ゲノムブラウザ上において1つのtrackに対応するデータに限定し、複数のtrackデータは個々のin.wigファイルに分割する必要がある.
出力ファイル(out.bbとする)をUCSCのゲノムブラウザーに表示するためには、 自分のwebサーバなどにおいて外部からwebアクセス可能な場所にout.bb配置後、 UCSCカスタムtrack管理ページのテキストボックスに以下のようなtrack lineを記述するとよい.
track type=bigBed name="bigBed Example" description="A bigBed file" bigDataUrl=http://urlToOut.bb
* WIGデータはUCSCサーバにアップロードすると、圧縮され、128個のビンに分割されて格納される. これにより些少ではあるがデータの正確性が損なわれる可能性がある. BedGraphデータやBigWigでは元の状態を維持したままデータをサーバに移すことができる.
参考文献:
CMHADSOシステムの参照項目からliftover.1.tar.gzを入手し、READMEファイルを参考にliftOverソフトウェアを入手する。 変換に必要な情報のファイル(xxx.over.chain)はliftover.1に梱包されている。
# README内容を参考にliftoverソフトウェアを入手・実行権限付与・PATHの通ったdirectoryに配置する。 # Linuxの場合の例 URL=http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/liftOver curl -O $URL chmod +x liftOver mv liftOver xxx # 以下の作業は不要 (参考のため) # 変換に必要な情報のファイル(xxx.over.chain)を入手する。 # mm39 to mm10の場合 URL=https://hgdownload.soe.ucsc.edu/goldenPath/mm39/liftOver/mm39ToMm10.over.chain.gz curl -O $URL gunzip mm39ToMm10.over.chain.gz
変換を実行する。 既定ではBEDファイルを変換するがGFFファイルも変換可能である。
IN=mm39.bed OVERCHAIN=mm39ToMm10.over.chain OUT=mm10.bed UNLIFTED=unlifted.bed liftOver mm39.bed $OVERCHAIN $OUT $UNLIFTED
FASTA | .fa .fasta .mfa |
FASTQ | .fastq .fq |
GTF/GFF | .gtf .gff |
Genbank | .gbk .gbff |
SAM/BAM/CRAM | .sam .bam .cram |
VCF/BCF | .vcf .bcf |
BED/BigBed | .bed .bb |
BedGraph/Wiggle/BigWig | .bg .wig .bg |