Skip to content

Instantly share code, notes, and snippets.

@ilkermanap
Last active January 6, 2018 11:34
Show Gist options
  • Save ilkermanap/1f68480a30804da22c0bb5d7f019cbca to your computer and use it in GitHub Desktop.
Save ilkermanap/1f68480a30804da22c0bb5d7f019cbca to your computer and use it in GitHub Desktop.
experimental code for parsing sequence files. just for fun, I know there is BioPython
titles = "LOCUS,DEFINITION,ACCESSION,VERSION,KEYWORDS,SOURCE,ORGANISM,REFERENCE,AUTHORS,TITLE,JOURNAL,PUBMED,COMMENT,PRIMARY,FEATURES,ORIGIN".split(",")
class ParseException(Exception):
pass
class Author:
def __init__(self, name):
self.name = name.strip()
class Reference:
def __init__(self, id=0):
self.id = id
self.authors = {}
self.title = ""
self.journal = ""
self.pubmed = ""
def add_authors(self, line):
parts = line.strip().replace("AUTHORS", "").split(" and ")
for p in parts:
for q in p.split(","):
self.authors[q] = Author(q)
def add_title(self, line):
line = line.strip().replace("TITLE","")
self.title += " " + line
self.title = self.title.strip()
def add_journal(self, line):
line = line.strip().replace("JOURNAL","")
self.journal += " " + line
self.journal = self.journal.strip()
def add_pubmed(self, line):
line = line.strip().replace("PUBMED","")
self.pubmed = line.strip()
def report(self):
print "-----------" , self.id, "--------------"
print self.title
print self.journal
print self.pubmed
for k,v in self.authors.items():
print " ", v.name
class SubFeature:
def __init__(self):
self.properties = {}
def add_property(self, line, last_property=None):
l = line.strip()
try:
pname, val = line.strip().split("/")[1].split("=")
except:
pass
if l.startswith("/") is False:
if last_property is None:
raise ParseException
else:
if last_property not in self.properties.keys():
raise ParseException
else:
pname = last_property
val = l
if pname in self.properties.keys():
if type(self.properties[pname]) is list:
self.properties[pname].append(val)
else:
self.properties[pname] = [self.properties[pname], val]
else:
self.properties[pname] = val
class Features:
def __init__(self):
self.properties = {}
self.last_proprty = None
def add_property(self, name, line):
pass
class Gen:
def __init__(self, fname):
self.properties = {}
self.fname = fname
self.exon = {}
self.references = {}
self.features = Features()
def parse(self):
# dont read everthing at once with readline.
# the method below will read line by line,
# without consuming as much memory as the whole file
with open(self.fname, 'r') as infile:
last_title = None
lastref = 0
for line in infile:
parts = line.strip().split()
if len(parts) > 0:
first_word = parts[0].strip()
if first_word in titles:
last_title = first_word
if last_title == "REFERENCE":
id = int(parts[1])
self.references[id] = Reference(id)
lastref = id
self.properties[last_title] = [line]
else:
if last_title in ("ORGANISM","DEFINITION","COMMENT"):
self.properties[last_title][0] += line.strip()
else:
self.properties[last_title].append(line.strip())
if last_title == "AUTHORS":
self.references[lastref].add_authors(line)
if last_title == "TITLE":
self.references[lastref].add_title(line)
if last_title == "JOURNAL":
self.references[lastref].add_journal(line)
if last_title == "PUBMED":
self.references[lastref].add_pubmed(line)
if __name__ == "__main__":
gen = Gen("sequence.gb")
gen.parse()
print gen.properties
for k, v in gen.references.items():
v.report()
LOCUS NG_007871 21600 bp DNA linear PRI 29-DEC-2017
DEFINITION Homo sapiens MEFV, pyrin innate immunity regulator (MEFV),
RefSeqGene (LRG_190) on chromosome 16.
ACCESSION NG_007871
VERSION NG_007871.1
KEYWORDS RefSeq; RefSeqGene.
SOURCE Homo sapiens (human)
ORGANISM Homo sapiens
Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
Mammalia; Eutheria; Euarchontoglires; Primates; Haplorrhini;
Catarrhini; Hominidae; Homo.
REFERENCE 1 (bases 1 to 21600)
AUTHORS Grandemange S, Soler S and Touitou I.
TITLE Expression of the familial Mediterranean fever gene is regulated by
nonsense-mediated decay
JOURNAL Hum. Mol. Genet. 18 (24), 4746-4755 (2009)
PUBMED 19755381
REFERENCE 2 (bases 1 to 21600)
AUTHORS Shohat,M.
TITLE Familial Mediterranean Fever
JOURNAL (in) Adam MP, Ardinger HH, Pagon RA, Wallace SE, Bean LJH, Mefford
HC, Stephens K, Amemiya A and Ledbetter N (Eds.);
GENEREVIEWS((R));
(1993)
PUBMED 20301405
COMMENT REVIEWED REFSEQ: This record has been curated by NCBI staff in
collaboration with Sujatha Mohan. The reference sequence was
derived from AJ003147.1.
This sequence is a reference standard in the RefSeqGene project.
Summary: This gene encodes a protein, also known as pyrin or
marenostrin, that is an important modulator of innate immunity.
Mutations in this gene are associated with Mediterranean fever, a
hereditary periodic fever syndrome. [provided by RefSeq, Jul 2008].
PRIMARY REFSEQ_SPAN PRIMARY_IDENTIFIER PRIMARY_SPAN COMP
1-17739 AJ003147.1 203118-220856 c
17740-17740 "A" 1-1
17741-21600 AJ003147.1 199257-203116 c
FEATURES Location/Qualifiers
source 1..21600
/organism="Homo sapiens"
/mol_type="genomic DNA"
/db_xref="taxon:9606"
/chromosome="16"
/map="16p13.3"
gene 5001..19600
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/note="MEFV, pyrin innate immunity regulator"
/db_xref="GeneID:4210"
/db_xref="HGNC:HGNC:6998"
/db_xref="MIM:608107"
mRNA join(5001..5317,6838..7470,11848..12197,12624..12719,
14382..14612,15081..15103,17040..17155,17342..17374,
17736..17768,17934..19600)
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/product="MEFV, pyrin innate immunity regulator,
transcript variant 1"
/transcript_id="NM_000243.2"
/db_xref="GeneID:4210"
/db_xref="LRG:t1"
/db_xref="HGNC:HGNC:6998"
/db_xref="MIM:608107"
exon 5001..5317
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=1
CDS join(5041..5317,6838..7470,11848..12197,12624..12719,
14382..14612,15081..15103,17040..17155,17342..17374,
17736..17768,17934..18487)
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/note="isoform 1 is encoded by transcript variant 1;
pyrin; marenostrin; Mediterranean fever"
/codon_start=1
/product="pyrin isoform 1"
/protein_id="NP_000234.1"
/db_xref="CCDS:CCDS10498.1"
/db_xref="GeneID:4210"
/db_xref="LRG:p1"
/db_xref="HGNC:HGNC:6998"
/db_xref="MIM:608107"
/translation="MAKTPSDHLLSTLEELVPYDFEKFKFKLQNTSVQKEHSRIPRSQ
IQRARPVKMATLLVTYYGEEYAVQLTLQVLRAINQRLLAEELHRAAIQEYSTQENGTD
DSAASSSLGENKPRSLKTPDHPEGNEGNGPRPYGGGAASLRCSQPEAGRGLSRKPLSK
RREKASEGLDAQGKPRTRSPALPGGRSPGPCRALEGGQAEVRLRRNASSAGRLQGLAG
GAPGQKECRPFEVYLPSGKMRPRSLEVTISTGEKAPANPEILLTLEEKTAANLDSATE
PRARPTPDGGASADLKEGPGNPEHSVTGRPPDTAASPRCHAQEGDPVDGTCVRDSCSF
PEAVSGHPQASGSRSPGCPRCQDSHERKSPGSLSPQPLPQCKRHLKQVQLLFCEDHDE
PICLICSLSQEHQGHRVRPIEEVALEHKKKIQKQLEHLKKLRKSGEEQRSYGEEKAVS
FLKQTEALKQRVQRKLEQVYYFLEQQEHFFVASLEDVGQMVGQIRKAYDTRVSQDIAL
LDALIGELEAKECQSEWELLQDIGDILHRAKTVPVPEKWTTPQEIKQKIQLLHQKSEF
VEKSTKYFSETLRSEMEMFNVPELIGAQAHAVNVILDAETAYPNLIFSDDLKSVRLGN
KWERLPDGPQRFDSCIIVLGSPSFLSGRRYWEVEVGDKTAWILGACKTSISRKGNMTL
SPENGYWVVIMMKENEYQASSVPPTRLLIKEPPKRVGIFVDYRVGSISFYNVTARSHI
YTFASCSFSGPLQPIFSPGTRDGGKNTAPLTICPVGGQGPD"
exon 6838..7470
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=2
exon 11848..12197
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=3
exon 12624..12719
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=4
exon 14382..14612
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=5
exon 15081..15103
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=6
exon 17040..17155
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=7
exon 17342..17374
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=8
exon 17736..17768
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=9
misc_difference 17740
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/note="This sequence differs from the reference genome
assembly (NCBI Build 36) at this position. G was replaced
by A to represent the standard allele identified by
alignment of public cDNAs."
/replace="g"
exon 17934..19600
/gene="MEFV"
/gene_synonym="FMF; MEF; TRIM20"
/inference="alignment:Splign:1.39.8"
/number=10
ORIGIN
1 ccactgcact ccagcctggg tgacagagtg agactctgtc tctaaataaa taaataaaaa
61 taaaaaaata tgaaaccaat cccctgcact cactaaccct attattctgc tgttttttcc
121 cccaacttat cactccctga tacattgtgt atttgtttgt ttatatcaat tcacactttc
181 ctataagaat gtgggctctt ggctgggcgc agtggctcat gcctgtaatc ccagcacttt
241 gggaggccga ggtgggcaga tcacaaggtc aggagatcga gaccatcctg gctaacacgg
301 tgaaaccccg tctctactaa aaatacaaaa attagccggg cgtggtggca ggcgcctgta
361 gttccagcta ctcgggaggc tgaggcagga ggatggcgtg aacccgggag gtggagcttg
421 cagtgagctg agatagcacc actgcactcc agcctgggca atatagctag actccgtcaa
481 aaaaaaaaaa atgcgggatc ttctgagcca ggcgcagcag ctcacgcctg taatcccagc
541 actttgggag gccgaggtgg gtaaatcact tgaggccggg agtttaagac cagcctggcc
601 aacatggtga aaccccgtct ctactaaaaa tacaaaaatt agccaggcgt ggttgtcggt
661 acctataatc ccaactactt gggacgctga ggcaggagga tcgctcaaac actggaggca
721 gaggttgcag tggcgagatt gcgctactgc cctccagcct gggcgactga gtgaaattcc
781 atctcgaaaa aaaaaaaaga atgtggcctc ttctgaaggg catttatatc agaaaaaaaa
841 gaatgtgagc actgcaagaa gtttttttct gttcagttct gtatcagtag tacctagaat
901 agcatctggc atacagcagg tgctccaaga gtaaatgaat ggccctgtgg tgcctcttcc
961 tagctagaca tgtgttcagt atgtcaatta acccatctaa acagggtggg caattgtccc
1021 aatttccccg gactgtggtc gttcccagaa ctaggctttc agtgctaaga ctgggcaaat
1081 tgggttttgc tcctagacaa aatgtgttgg tcaccctacc tgtaagccta catttcatca
1141 tctatgaaaa aatagttggc tggtcacggt ggcgcacgcc tgtaatccca gaactttggg
1201 aggctgaggc gggcgaatca caaggtcagg agttcaagac cagcctggcc aacatggtga
1261 aaccccgtct ctactaaaaa tacaaaaaat tagctgggtg taatggcggg cacctgtaat
1321 gccagctact cgggaggcag aggcaggaga atcgcttgaa cccgggaggc ggaggttgca
1381 gtgggccatg atcttgccac tgcactccag cccaggtgat aagagtgaga ctctgtctca
1441 aaataaatca agtaaataaa taagtaaata ctatatacct cctttatcat gatggtttag
1501 gggcacggga ctgatactcc cttagaagtt aagctaattg tgaaagactt tttttttttt
1561 taaatacgga atcttgctct gttgcccaac ctggagtgca gtgatgcaat ctcgactcac
1621 tgaaacctcc acctcccagg ttcaagcagt tctacctcag cctccggagt acctgggatt
1681 acaggcgcgg gccacctcac ctggctaatt tttgtatttt cattagagac gaggttttgc
1741 cgtgttggcc aggctggtct ggaactcctg acctcaagtg atccacctgt ctcggccttc
1801 caaagtgttg aaattacagg cgtgcgccac cacacctggt ctgaaagact ttttaaaact
1861 atcttttttg cttattacga aagtaataca atcttcattt ttttaaatcc caaaatgtgc
1921 agaagtaaat gccatagaaa gtgaaacccc tggtgaccag gagtggagtg aaggtcgtgg
1981 tgtctgagcc gcacatttcc caggagtaat agccgagagt agaccctttg cagcagcttt
2041 gttgggttta gatttgccat gtcaccccaa ataaggtcac acatccaatg gcaggggcac
2101 acaagacagc ccatgaccat tccactttga ttattaaaca cttaaatgac gttagaaggg
2161 caataattct attttcactg tgagaaatta ctggaacccc tccaaacaaa agctttgtga
2221 gcctgccttg ccctagaaag tccaaagtgg catcaaaaca ctgccttcca gaagtcctgc
2281 ctcagagcag cctctgttgc aaaacgtgtc accgcaattg caaaatatcc tgctttagac
2341 cagaaagtat cattccctgc ccaattctgt catggggttt tggtatcagc tccgaggagt
2401 tttctgacca gacgagatgg gatcacacag cacccacagc gtcactgcac agtctcatcc
2461 tttctccatc tggtagtggg agactgcctg ggaggtgctg ggttgccacc gtccagagtc
2521 agggacgggt gctggcccca gtgatacccc attcaacacc cttcttctgg cccagcctaa
2581 aaattccaaa aatctgctgt ctgcaccatc aatgtgcatt tcatccactt tttttttttt
2641 tttttttttt tttttttgag acagggtgtc ttgctgtgtc acccaggctg gagagcagtg
2701 gtgcaatcac agctcattgc agcctgaacc taggctcaag caatcttccc acctcagcct
2761 cctgagtagc agcagggacc accagtgtgt gccaccacac ccagctaata ttttttctat
2821 tttttgtaga ggcagggtct ccttatgttg cccaggctaa tctcaaactc ttgggcttaa
2881 gtaatcctcc tgtctcagcc tcccaagggc tgggattgca ggtgtgagcc actacaccca
2941 gcccaattca cccttttttt agggaagatg ttgggtttgg gctcagaaag atctagcaaa
3001 ctgcatgttt gttgtcagct atgaaaacaa tgcaaaaaca ccaaatactc tgtgaaatag
3061 gaaacaggtg gaccagctgg acagtaagtt aaattcaacc aaccagaact catcaaagcc
3121 ttgaatccca ggctgggcac acacagagga gctcacaccc agagctgggt gttcagctag
3181 gcgtcgcaat gttgtgactg acctgtggaa gtgacccatc ctggacctca gtggtcagct
3241 ggaaatgtga catccatggg tagtcattaa cagtaaaatc acaaattatt gtcatgcagg
3301 agacgatgtt gtgaagtggt ttgacgtttg gatcttggct ctaggcaagt cactaagcta
3361 cagattcttg gctgcacagg gggatgataa acgcagccct gcagggtgct gcagagattc
3421 taggaggaag tgtttataaa gctagtggtg gctggtgccg atgaagtgct ggtgaagggt
3481 aaattgcatt attaacaaaa cttctggccg ggcgcagtgg ctcacacctg taatcccagc
3541 actttgggag gccaaagcga gtggatcgct tgagatcagg agttcaagac cagcctgcgc
3601 aacatagtga gaccctgtct ctataaaaaa tacaaaaatt ggccagatgt ggtggaatgc
3661 acctgtagtc tcagctactt gggaggctga ggttggaggg ttgctcaagc ccaggaggca
3721 gaagttgcag tgagccaaga tcccactact gcactccagc ctgagtgact gagcaagacc
3781 ctatctaaaa ataaaaaaat tagggtatgc aacggtcaga agtaggtaag tgaggagtca
3841 gttcacccta catgtaattt ttcatttatt tatttttttt gagacaaagt cccgctctgt
3901 cgcccaaggt ggagtacaat ggcgcaacct cggctcactg caacatctgc ctcccatgtt
3961 caagtgattc tcctgcctca gcctcctgag tagctgggag tacaggtgcg tgccaccatg
4021 cctggctaat ttttgtattt ttagtagaga tggggtttta ctgtgttggc caggctggtc
4081 ttgtactccc aacctgaggt gatccaccca cctcggcctc ccaaagtgct gggattacag
4141 gcgttagcca ctgtgccctg cccccaacat gtaacttctg ttagcttcaa agccacctct
4201 ggggccctgc accacatatg agctgaagga cacccgtgcc ttttcacccg tgtagctcca
4261 gcatcttggc acactgtcta gaatgttcaa tgaatgtgca cggaagagca ttctggctcc
4321 agggagcgag gactgagtca gctctgggaa cagatgagtc aggctggtgg tccaggcatt
4381 gcttttcaag tccttcatgt ggctggaaga accagtcaac tggaaccgga tcaacagggg
4441 tgatggcatg gcaagagtta tctcctggca gtgcccttct ggcctcactt gccttcttgg
4501 gccaggaaag gcaaagctca caggactgta ttcagtgccc accccttccc ccgtcctgtg
4561 ccattggctc tggaaggtcc ctgaaacccc gagtctggag gagaacagtt gaccagcagg
4621 gcgggccctc agcatagtcc tctctgttcc cactcacccg ctctgccagc cccagatcct
4681 ggcaggaagg aagattggag ggggtgtctg gaatccaatc ccagaccttc ccttgcagac
4741 ttgcccatct gtctgtggtc tagtgtggag gcgaggtcca gggtttggga ggggtgtggg
4801 ggcacatgtc tgccaaggca tggagccctc ccagctggaa aatcctctga acctgtaaga
4861 agagaacaca gccggcatgg acacaccctt acccttagtc tcagttccca ccaagacaca
4921 gagcatttcc tgtgcctttt ccgctatttc acaacctgcc ttttcttgct caccaaggac
4981 agaggcttct tttcctacca gaagccagac agctggctcg agcctctcct gctcagcacc
5041 atggctaaga cccctagtga ccatctgctg tccaccctgg aggagctggt gccctatgac
5101 ttcgagaagt tcaagttcaa gctgcagaac accagtgtgc agaaggagca ctccaggatc
5161 ccccggagcc agatccagag agccaggccg gtgaagatgg ccactctgct ggtcacctac
5221 tatggggaag agtacgccgt gcagctcacc ctgcaggtcc tgcgggccat caaccagcgc
5281 ctgctggccg aggagctcca cagggcagcc attcagggta agcgggccca ggcctcctcc
5341 tcatccagtg ctgagtgctg gctgctttgt gggaaagggg accaggagct cagagcagct
5401 cactctgacc tggggattgg gagtctcagg tctaccaaaa tccagatgac tttagttcag
5461 gaacgtccct ttcttcactc tggcctttgg aactgggtta gtaaacttcc ttcaggctcc
5521 taatgggttt tttaagaagc aggtcagggt cacgaaaggc aggagctgga acacctgttc
5581 tttgagactt cttcactaca tttatgatta atactcatgt cagacaaaca tctctaggtt
5641 agcaaaaagg gattgctatg caatcatatg aacggggttg gtatagaatc ttctcagtgc
5701 tgttcaccat gttggccagg ctggtctcga actcctgacc tcaagtgatc ctcccgcctc
5761 agcctcccaa agtgctggga tttcagacat aggccaccgt gcccggctta tttttatttt
5821 taaagcgtat aatctgggtt ttgctgacct gtgtaagatc ttatttgaaa cagttgtcct
5881 gcttaaaacg tttgaaaagt actatttgag aaatataggc taggcatggt ggctcacact
5941 tataaataat ctcagcactt tgggaggcta aggtgggtgg attgctagag ctcaggagtt
6001 tgagaccagc ttgggcaaca tggtgaaacc ctgtctctac caaaaataca aaaaaatgag
6061 ccaggcgtgg tagcacacac ctgtattttc agctattgaa aaaacagaaa acaggctgag
6121 gtgagaggat tgcttgagcc tgggaggcag aggttgcagt gagctgagat cacatcaggg
6181 caacagagca agatcctgtc tcaaaaaata aaataagaga gagagaaata catagcaaca
6241 tcaagcatgt tcttactgaa tggtaattga ctgccattgt ctagtctagg aagtcctgaa
6301 cttttgtttt tgagatggag tcttgctctg tcactcaggc tggagtgcag tggcccgatc
6361 tcagctcact gcaacctcca catcccgggc tcaagcgatt ctcatgcctc agcctcccga
6421 gtagctggga ctacaggtgc gcaccaccgc gtctggctga gtttcttatt tttagtagga
6481 acggggtttt gccatgttgg ccaggctggt ctcgaactcc tgacctcaaa tgatcctccc
6541 accttggcct ctggagaagc tgggattaca ggcatgcgcc accacgctca gcttattttt
6601 gtatttttag tagagacggg gtttcaccct gttggtcttg aactcctgat ctcaggtgat
6661 cctcccgcct cggcctccca gagtgccggg aatacaggca tgagccaccg cgcccggccc
6721 gttgttttcc tcaatttcta aactttaata tccaagggga ttctctctcc tctgccctga
6781 atcttgggcc ctaaacgtgg gacagcttca tcattttgca tctggttgtc cttccagaat
6841 attccacaca agaaaacggc acagatgatt ccgcagcgtc cagctccctg ggggagaaca
6901 agcccaggag cctgaagact ccagaccacc ccgaggggaa cgaggggaac ggccctcggc
6961 cgtacggggg cggagctgcc agcctgcggt gcagccagcc cgaggccggg agggggctgt
7021 cgaggaagcc cctgagcaaa cgcagagaga aggcctcgga gggcctggac gcgcagggca
7081 agcctcggac ccggagcccg gccctgccgg gcgggagaag ccccggcccc tgcagggcgc
7141 tagagggggg ccaggccgag gtccggctgc gcagaaacgc cagctccgcg gggaggctgc
7201 aggggctggc ggggggcgcc ccggggcaga aggagtgcag gcccttcgaa gtgtacctgc
7261 cctcgggaaa gatgcgacct agaagccttg aggtcaccat ttctacaggg gagaaggcgc
7321 ccgcaaatcc agaaattctc ctgactctag aggaaaagac agctgcgaat ctggactcgg
7381 caacagaacc ccgggcaagg cccactccgg atggaggggc atctgcggac ctgaaggaag
7441 gccctggaaa tccagaacat tcggtcaccg gtaaattgtg ttctttccta ctttatatcg
7501 gctgcagaga aagaatggct ggccgggcac gatagctcat gcctgtaatc ccagcgcttt
7561 gggaggccag ggcgggagga ttgctggagg ccaagacttt gagaccagcc tggtgaatgt
7621 agtgagaccc ccgccatctc tataaacgaa attaaaaaaa taaaaaccca aaggttgggc
7681 agggcgtggt agctctcgcc tgtaatccca gagctttgag aggcctgcac gggaggatct
7741 cttgacccca ggagttccat actagcctag gcaacacagt gagaccccat ctctacaaaa
7801 tacaatagtg gcacgcgcct gtagtcccag ctgctcgggt tcacttgagc agacggagtt
7861 ccaggctaca gtgagctgag atcatgccac tgcacaccag cctgagcaac gtagccagac
7921 tccacttcta caaaactaaa aaaaaaatta gctgggtatg gtggcacacg cctgtaattc
7981 tagccactca ggaagctgag gcaggaggat tgcttgagcc agggagttcc aggctgcagt
8041 gagctgagga tgtgccactg cactccggcc tgggcaacag agcaagaccc tgtctcttaa
8101 acattttggg gggaaaaaaa aagaaagaaa gaatgtccga ttgaaaaagg caatcaggtg
8161 ttatcagtgg ccaaagaatg gagaagggga gctcacctct gcaggcgtct gcttgccagg
8221 gatgggaggc agggcgattt tagagtccag ggaggggaag ggagataggt aagcaggccc
8281 agggcagggt tccatatgtg caggcgctgt ccccagcatg cttcttccta catcgcatgg
8341 acacaaaacc ctggccatct tcttttaggg gagggacctt tagccttata acaatgtgta
8401 aatgatctta aggtaactgg aagtcacctc ttccagtttg cactggtttt gctctgatct
8461 taacttcctc tggtttttgg caagggatca ggaggctcca ggccatctgg atttttttaa
8521 gcagctgtcc ctataggtaa agagactaaa aaaaaactgt aaaagaaaaa tgccaccagt
8581 ttagagggta ccgaggctat ccaggtgaca attccatgct cgtggtgggg gcagcattca
8641 gaaacacact ttcctttttt tttttttttt ttttttttga gacagagtct cagtctgtct
8701 cccatgctgg agtgcagtag tgtgagcaca gtttactgca gcctcaacct cctaggctca
8761 agcgatcctc ccacctcagc cttccaagta gctgagacta taggtgctca ccaccacacc
8821 tggttaattt tttttttttt ttttgtattt tttgtagtta cgaggactgt ctatgttgcc
8881 caggctggtt ttgaactctt gggctcaagc gatcccccgc cttagcctct aaaagtgcta
8941 ggatttcagg tgtgagtcac tacacccagc ctatggaaca cactttccaa tgcattgttg
9001 gctggagagg agaaatcaca gcactcaagg aggagaaata gaattggggg tccaggccgg
9061 gtgcggtggc tcatacctgt aatcccagca ctttgggagg ccaatggggg cggatcacct
9121 gaggtgagga gttcgagacc agcctgccaa catggtgaaa cgccatctct actaaaaata
9181 ctaaatttgc tgggcgtggt ggcgggtgtc cataatccca gctactcaga aggcttcgag
9241 gcaggagaat tgcttgaacc gaggaggcag aggttgcagt gagccaagat catgccactg
9301 cactctagcc tgggcgacaa gagcaaaact ctgtctcaaa aaaaaaaaaa aaaaagaatt
9361 gggagtccag ggacccctga gacctgggag gggaaaggat gtggtatgct gcatgagtct
9421 tcaaatccag aagtccctgg gtcttccagt gagaaaggac cctgggatct ggaaaaccta
9481 gcatccttag gaatagtgac ctgaaaagta ctgaagtatt tcccccctaa ttttctttta
9541 tccctactgt atttttttta attttttttt ttttttagat atggggtctt gctatgttgc
9601 ccaggttggt ctcgaactcc tgatctcaaa caatcctccc atctttgcct ccgaaactgc
9661 tgggattaca ggtgtgcacc actgcaccag gtccccactg tatttatatc attgggattc
9721 ctgggtgtct tctagggccg cttcgttaat ctgatgcagg cttagaccct gaaaaatgca
9781 tatatgcaca gcttcacaaa tgtcacatca aatttcaggt agttcttgga cactctgaag
9841 accatcttta gaatccaagg ggtttatgga caccaggtag aaaatctggg gaagactggt
9901 taaaaatact ccctctcaca ataacctcac agcaatgcat catcatgggg ttgagattct
9961 accatttgcc tttctctcag cagaaagaaa agcctattgg ctaaagtcct aactatctac
10021 tgctgaggta gtcattaaaa ttatgtttgg ttgtgaataa tagaaacacc caaataacag
10081 taacctcaac agaaaagaag tttgtgcctc cttcacataa atgatacaca ggcggtccca
10141 ggcagatccg tgggccagga ccctggggtc ctgctgttgc tctgtcccac caagtttgtc
10201 ctcaagcttc tgctctcaga aggtgacgtc ctcatgccag gcagcaagat ggaggaacag
10261 aggggaatag tatccctcgg gaaagctcta gaagtttcta gaagctgctt gtgacacctc
10321 catttacatc cctttggtca tattattgtc aaatagccac acctaactgc aaaggaggct
10381 gagaaatgca gggcatttgg ggggcaatgg gaggcaggga aacagggaaa cgtggacaat
10441 taattctatc acgagagaag gagggagaat aatttctggt gactactagc agtctcattt
10501 acagatgtgc tgtgaatttc tgggacactg tgaggtggga ggaggtagca ggggctaaag
10561 gattgagtgt gtttctattt cttttttttt tttttttttt ttttgagatg gagtctctct
10621 tggtcaccca gactggagtg cagtggcgca acttcagctc actgcaaact ccgcctcccg
10681 ggttcaagca attctcctgc ctcagcctcc cgagtagctg ggattacagg tgcccaccac
10741 cacgtccggc taatttttgt atttttagta gagacagggt ttcaccatct tggccaggct
10801 ggtcttgaac tcctgacctc atgacccacc cgcctcggcc tcccaaagtg ctgggattac
10861 aggcgtgagc cactgcgctc ggccttgtgt ttctatttct tcttgtatct cgtggcatgt
10921 ctgcttatga agttgcaatt agagtcttgg agtagagcta ttcataactg ttaggtcttc
10981 atgatgagtt ccagtcttta gccctataat gccccccttc tttgcttttt cttttaagat
11041 ggcatcttac tctgttgccc aggctggagt gcagtggtgc agcatcaacc tcctaggttc
11101 aagcaatcct cctgtctcag cctcccaagt agctgggatt agaggtgtgc accaccacac
11161 ctggctaatt ttttaatttt ttgtagaggt gggctcttgc catgttgccc aggctggtct
11221 caaactcctg agcttaagca gtcctcccac cttggcctcc caaagcactg ggattatagg
11281 catgagccac cacccagccc cttctttgct ttcatttaat ggttattgaa ctcatatgtg
11341 agcagtggtc tatttattcc ttcattcaat actcattttc caaatgcttg catttgccag
11401 gtactctgct aggggctggg atccagctag gagcgaggta cacaagtcac catcccctgg
11461 aagcctccac tcacgttatg ggcagccagg gatgggttca agtggcaaag gaacactggt
11521 cagaatgtct ctttccttgg catcacctgc tagatctatg tctgtgcagg aggaacagca
11581 caaggccatg ggtctttctt taggataaat gcccaagaat tccaaggctc aggaatgtct
11641 gaggtctggc ccttagctct caggcccagt ggcctgtttg cttcctcact ggatggaagt
11701 cgggggagga caagctagga agtgggcaga gtctaactga gaactcgcac atctcaggca
11761 agggctgtgt ccgctgtgct ttgtgatacc tctgtgtaag caacttgggt ttgccattca
11821 gggggttttt ccactgcatg tccccaggaa ggccaccaga cacggctgcg agtccccgct
11881 gccacgccca ggaaggagac ccagttgacg gtacctgtgt gcgtgattcc tgcagcttcc
11941 ccgaggcagt ttctgggcac ccccaggcct caggcagccg ctcacctggc tgcccccggt
12001 gccaggactc ccatgaaagg aagagcccgg gaagcctaag cccccagccc ctgccacagt
12061 gtaagcgcca cctgaagcag gtccagctgc tcttctgtga ggatcacgat gagcccatct
12121 gcctcatctg cagtctgagt caggagcacc aaggccaccg ggtgcgcccc attgaggagg
12181 tcgccctgga acacaaggta ggcactccct gcctgtgggc tcttctctgc caggcacttg
12241 gacacactgg gccttacttc attttcccaa caactctggg ttgttggtgc attaaccagc
12301 attcttgggc tggaaatggc aagaacacaa tataaaccag tccagcaaag aggggagcta
12361 caggtttatg ttgctcagag atccaggggg agctggcttc aggtatggct gaatccagag
12421 gctcagagga agtgcctctc agctctgctg cctttggcaa ttcagccatt cctccctcct
12481 ctttcctgag cacccctccc catgccgctg gcagcagcac cctcagcctt gctaccagaa
12541 ggagatgttc ccctccagag ttggcaccag ctaaagatgg caggagccaa attcaagctt
12601 ttcaacaagt gctgtttttc cagaagaaaa ttcagaagca gctggagcat ctgaagaagc
12661 tgagaaaatc aggggaggag cagcgatcct atggggagga gaaggcagtg agctttctgg
12721 taaggtcaga ggtggctgat ggcccatccg tccctgggag gaaggtggga agagtgagca
12781 ggggtccccg agattctgct gtggttcaca gggcagcagg gatggccacc tcctctcagg
12841 ggacagaggg taaccagcag ccaagggtaa gctcatccct gtagagggag accaccccca
12901 gcaggcaggg gtcacctctg aggatcctgt catgctttct catactcacc agaagatggt
12961 agagagcaac ctatgccggt gactactgca gaaagatggg attgaggaaa agggaggaga
13021 acgccacttt ctttttttgt gacggagtct cgctctgtca cccaggttgt agtgcagtgg
13081 tgtgatcttg gctcactgca acctctgcct cccgggttca agcgattctc ctgcctcagc
13141 ctcctgagta gctgggatta taggtgagtg ccaccatgcc tggctaattt ttgtagtttt
13201 agtagagatg gggtttcacc atgttggtca ggctgttctc gaactcctga actcgtgatc
13261 cgcccgcctt ggcctcccaa agtactggga ttacagatgt gagccactgc gcccggccaa
13321 gaacactttt aacttcataa tttactctct gtttttttgt tttgtttcca agatggagtc
13381 tcgctctgtc acccaggctg gagtacagtg gcacgatctt ggcttgctcc aacctccacc
13441 tccgaggttc aagcaattct cctgcctcag cctccttagt ggctggaatt acaggcgcct
13501 gccaccgcgc ctggctaatt tttgtatttt tagtagagac gggatttcac cgtgttggcc
13561 aggctggtct caaactcctg acctcaggtg atccacctgc ctcggcctcc caaagtgctg
13621 ggattacagg tgtgagccat cgtgcctggg ctggtttttt tgttttttag ggtttttttt
13681 tttttttttt tttgagatgg aatctcactc cgtcgtccag gctggggtgc agtggtgcaa
13741 tctcggctca ctgcaaacct tcgcctcccc agttgaagca attctcctgc ctcagcctcc
13801 cgagttgctg ggactgtagg cacatgccac cactcctggc taatttttgt atttttagta
13861 aagacagagt ttccccatgt tggccaggct ggtctcgaac tcctgatctc aagtgatctg
13921 cccaactcag cctcccaaag tgctgggatt acagacatga gccaatgcac ccagcccaaa
13981 tttccccatt ttataagaca acatttatat tggattaggg acccacccaa tcccagtagg
14041 accacatctt aactaattac atctgcaaga actcttatct ccaaataaga tcacatgctg
14101 agtactgggg gttagggctt caacgtgtaa attttggaag ggacacagtt aaaccttaac
14161 accaggttta aggacatttt cccagagcta gccccagcca tgctcagtct tttctggaag
14221 gttccagaca atatcgcctc ctgctctgga atctaggcct tgaagaggca gcataagccc
14281 acctcttatc cacctccagg aggtgggctt ctgggggttc ctggacatcc acgtccaccc
14341 acagcacaga cccccatacc tccctgtcct ctgctcccca gaaacaaact gaagcgctga
14401 agcagcgggt gcagaggaag ctggagcagg tgtactactt cctggagcag caagagcatt
14461 tctttgtggc ctcactggag gacgtgggcc agatggttgg gcagatcagg aaggcatatg
14521 acacccgcgt atcccaggac atcgccctgc tcgatgcgct gattggggaa ctggaggcca
14581 aggagtgcca gtcagaatgg gaacttctgc aggtgggtgt gcctgggccc ggctttcttg
14641 ggtcccctgt gcctatcagg atgcctcagg ctcccagctc tgccatcagc cgtgctggaa
14701 caagtgggtg aagcccctaa ggcctaggat aggacttggt cttggtgacc cacagtgcct
14761 cttgtgccca gacccctttg atgaggtctc tcaggagccc agggtggcct ggtatccagg
14821 ggatctctgc catttcccag aagggatcag cagggcttga gggccgttcc attgcaggcc
14881 tcgccacctg ggatgcctga attcccgtgg ttagaattag acttgaagaa aggtgctcca
14941 cttccactga caccctaggg cagggagccc tggtaagtgc agcggggagc taaaagtcca
15001 ggagcccaga agtagaggcc aggagtcagc ccagccacta ggagcctggt aaccgacagt
15061 ttccttcttt tttctcctag gacattggag acatcttgca caggtacagc gaggtcctgt
15121 ggtgtaccct ggggtgtctt gcagaaagca tatgggggag acagtcccag aagggacctg
15181 ggagggagat gttcccaacc ccggggtctg tgattccaga ctcctccttt tttctgcagc
15241 ttcccaaagc ctctctggat ttgataggga gaagggcatc tggtcagcag ggaggctggc
15301 cgggtatgga gctgcagact gggaagggtg aattcagccc atcctgctga aacaagatgg
15361 aggctcccta agaaaccttc cgagtgcatt gtgtcccgtg cagttcatct gatgaaagct
15421 gccccttcag gcctactggt ggccttggga agcttgtttg gagtggagct gggctaagcc
15481 cagcaggaag gggaggggag ggaagggaca ggaagaggct aagccttaaa atcacctggg
15541 agctttacaa aatcccggtg tccttttgtg tctggcttct tcacttagca taatgtcttc
15601 gggcttcatc cgtgttgtaa cgtgtatcag aatttatttt ctttttatgg ctgaatcata
15661 gtccagtgtg tgttcataca ttttgcttat ccattcatgg atatcgggac ttcttctaac
15721 ttttggtttg tgaataatgt tgctatgaac aagggtgtac aaatatctgc ttgagaccct
15781 gctttgttat tttgggtacc tacccagaag tggaactgcg ggaccatgtg gttatcctgt
15841 gtttaatttt ttttgaggaa ccaccatcct aattctcaca ggggctgcat cgcttcacat
15901 tcccaccagc agcacacagg ggctccagtt tctccacatc tttgccatca cttattttct
15961 tctgtttcac tctctctctc tctctttttt tttgaagaca gcgtcttgct ctgtcatcca
16021 ggctggagtg cagtggcgcg atcttggctc actacaacct ctgcctccca ggttcaaggg
16081 attctcccac ctcagcctcc ctagtagctg ggactacagg agcgtgccac catgcccagc
16141 taattttttt ggtagacagg gtttcaccat attagccagg ctggtctcaa actcctgacc
16201 tcaagtgatc cacccacctt ggcctcccaa agcgctggga ttgcaggcgt gagccaccgt
16261 gcccagccat ttctctttcc ttccttccct ccctccctcc cttccttcct ttcttccttc
16321 cttcctttct tttcttcttg agacaaggtc tcactcccat cactaaggct ggagagcagt
16381 ggcacagtca cagctcactg caggctcagc ttcctgggct cgggtgattc tgagtagctg
16441 gcatcctgag tagctgggac tacaggcatg tgctaccact tccggctact tttttgtatt
16501 tttaatagag acagggtttc gccatgttgc ccaagctgga cttgaactcc tgggctcaag
16561 cgatcccact gccccggcct cctgaagtgc taggattaca ggcatgagcc accatacctg
16621 gtctattttt ttctgttgtt gctgttttta taatagccat tctaatggat gtgaagggat
16681 attttgttgt gtgtgttttt ttttcattta ttatcttttt atttcaatag aaagaaaggg
16741 gtgtataatc aatttgacat agataattct agtagataat atcaatgtca ttttaagtcc
16801 attctgaaaa ctccttgtgg ttttgatatc catgtcttta aagcacccca gtacatgaca
16861 gtctgtggcc aaagttgagg accagcattt agacctctga atccagggaa gacttttctt
16921 tgtgtagctc aggctgggct aggtgtgccc tgtggagaat gtagttcatt tccagctcac
16981 gggtacttgg gccaccccct cgctccggcc ttctctggtc aacagtcttt tgtctctagg
17041 gctaagacag tgcctgtccc tgaaaagtgg accactcctc aagagataaa acaaaagatc
17101 caactcctcc accagaagtc agagtttgtg gagaagagca caaagtactt ctcaggtaga
17161 tgggcttggg agaagattgg aggtgcatgc tcacttcctc cctaagatcc acatagccca
17221 gagcccctca cttccctcct cttcccctgg tcttgctgac ctgccttcaa cctctcctcc
17281 atctgtccct ggctgaggga cctaactcca gcttctctct gctccctttc ccacatttta
17341 gaaaccctgc gttcagaaat ggaaatgttc aatggtgagt ccagcggtaa tggtgtgtgc
17401 tggcctgggg ttgttgcagt gttcccttgt gctgttgact tgaggggccc tatttagaag
17461 acaaaaaaaa aaaccaaaca cctggagcaa aggtaggaga aaggtcatgg caggcccccc
17521 aggctctgtg cgtgactcat tgactgagtt gactcattag accacagtcc ccaacatggc
17581 ctgggttcct gggaggaacg ggattatacc caacatagca tgcagggccc taagcagggg
17641 gttccttgtc tttccttgtt gtcaggacag tgtaatttag cccctcttaa tgctaatgct
17701 caggattttt ttccctatct gatttttctc cgtagttcca gagctgattg gcgctcaggc
17761 acatgctggt aagtgcccag atcaaggcaa gtggccctgg cctgctggat ccctgtgctc
17821 tcccctacca cgttccagaa gaactaccct gtccctgttt cctgcaggtg gggagaaccc
17881 tgtagggatg ttgcccatgg acccctacct aggtattcaa attttctttg cagttaatgt
17941 gattctggat gcagaaaccg cttaccccaa cctcatcttc tctgatgatc tgaagagtgt
18001 tagacttgga aacaagtggg agaggctgcc tgatggcccg caaagatttg acagctgtat
18061 cattgttctg ggctctccga gtttcctctc tggccgccgt tactgggagg tggaggttgg
18121 agacaagaca gcatggatcc tgggagcctg caagacatcc ataagcagga aagggaacat
18181 gactctgtcg ccagagaatg gctactgggt ggtgataatg atgaaggaaa atgagtacca
18241 ggcgtccagc gttcccccga cccgcctgct aataaaggag cctcccaagc gtgtgggcat
18301 cttcgtggac tacagagttg gaagcatctc cttttacaat gtgacagcca gatcccacat
18361 ctatacattc gccagctgct ctttctctgg gccccttcaa cctatcttca gccctgggac
18421 acgtgatgga gggaagaaca cagctcctct gactatctgt ccagtgggtg gtcaggggcc
18481 tgactgaatg cccaacactg catctctctt cctgcttctg gccttgtatc ttgcattcac
18541 actcaatagt cacggaatgc cgactaggtg ctagctgcta tgggaaatgc aaaaataaca
18601 aaatagttac tgtgcccacg gagcctaccc gattatagca gaggtaagtt aggaacgaac
18661 atgttagtca atccgggtga agacatgtac tgatgacaca ccatggattt cagaggagga
18721 agtacggagt cgttgcataa tccgcccctg gtgggtggca ctctcaggtg ctcctgaaca
18781 gaagatttgg ccctcatttt ccctcagaac cccacggcaa ggatatatgt ccccttgttc
18841 tctctgcttc tgtcttgagg atatgggaag cctagagaaa cgcaagcaga ctggattggg
18901 atagaagtat ttgtgtacct ggattaatga actatgattt tttttttttt tttttgagac
18961 caaatcttgc tctgtggccc aggctggagt gcagtggcac gatctcagct cactgcaacc
19021 tccacctccc aggttcaagc gattctcctg cctcagcctc ctgagcagct gggattacag
19081 gtgcgtgcca ccacaccagg ctggttttct tgtattttta gtagagacgg gggtttcacc
19141 atgttagcca ggctggtctc gaactcctga cctcaggtga tccacccgcc tcagcctccc
19201 aaagtgctgg gattacaggc atgagccact gtgcccggcc tatgattctt tttttttttt
19261 ttttttgaga caaagttttg ctcttgtcac ccaggctgga gtgcagtggt gcaatcttgg
19321 ctcgcaacct ccgcctccca ggttcaagag attctcctgc ctcagcctcc gaagtagctg
19381 ggattacagg cgcccgccac catgcccggc taattttttg catttttagt agacatgagg
19441 tttcatcatg ttggccaggc cggtctcaaa ctcctgacct caggtgatgc acccacctca
19501 gcctcccaaa gtgcagggat tacaggcatg agccaccatg ccgggccatg attcttaaga
19561 gaattgactg ggcctcatga ataaaaaaat tagaaaatct ggtcatttgc atttgtcact
19621 caatcactgt ggaatcccat ttcccgactg catttcagga agcagatggg actactgtat
19681 ggaaaaacat ttggcatgta ttccaagtgt cagattattc tgtcttggtt tgtatgggaa
19741 aatctgcggg ttgtggaata ttaggttcta cttcacacac atcccgtgca tttgtccttc
19801 atttaaagag atgtaaaggg gccgggcatg gtgactcaca tctgtaatct cagcattttg
19861 ggaggcaaag gcgggtggat cgcctgagcc cagggattga gaccagctgg gcaatgtggc
19921 gaaaacccgt ctctacaaaa aatacaaaaa ttagccatag ggatgggggt gggaggatgg
19981 cttgagcgca ggagatcgag gctgcagcag tgaactgaga ctgcactacg gcaatccagc
20041 ctgggcaaca gagtgagtcc ctgtctccaa aaagtggatg taagaagaaa aaaatcaaat
20101 gaagattaaa ttccaaactc ctatgccaac tcctctgtct tcactactag agtgtagatt
20161 agactcagat actccatggc tatgatgaga gcaggtaaac ttgctgggct ttcctccacg
20221 agttttattc tataagagta atccacatcc caggacagtt cacatgacct acggcttagc
20281 tgttccctgc ggtgggtcat gtcttattcc cgattctccc ttgttataag cttttcatga
20341 atatctttgt gtatattttc caccacctca ccatatacat atttttttct cctgtgttat
20401 tcctaaaatg gttcctgaat gtgaaatatc tgataatgct tcctacgggt tgccatacca
20461 tcctttgcaa agatttttaa aatatttcat gcccaaagca atgactgcca tttaaaattt
20521 ttttgctgat ttaataggga tgtaatgagg ccttacttct gttttatttc attacctgtt
20581 aatgaggctg tgaatttttc catgtgaatt tctgcttttt gcttcattct atggaaattg
20641 tacagttcct ttgaatactt gctatttgga atctacatat tgaacttcgt gttttgctgt
20701 acttcttcat acatgtttta ggctgggtgc ggtggctcac gcctgcaatc ccaacacttt
20761 gggagccgga ggtgggcaga tcgcttgcat ccagggttcg agaccagcct gggcaacatg
20821 gcgaaacctc gtctctacca gaaaatacaa aaattagcca ggcatggtgg tgagcacctg
20881 tagtcccagc tgctccggaa gctgaggcag gagaattgct tgagcctttg aggcagaggc
20941 tgcagtaagc cgagattgtg ccactgcact ccaacctcgg caacagaaca acaccctgtc
21001 tcaaaaaata aaaaaattaa aaaaggaaaa caaaaacata aatgttttag gtagtacaca
21061 tttgaatctg tctgatgaaa tttctctgcc tagtggttat tttatggagc tctaaatcca
21121 taccataaaa tgcatccttt taaagtggaa aattcagtgt ttcttagtat atgcattgtg
21181 tgtataaata tcaccactaa taccagaaca ttttatcata tgtattagca gtcactcccc
21241 attctccccc attccccaga gcatgtaaac cactaggcta ctttctgtct ctatggattt
21301 gcctattctg gacatatgat gttaagtgga atcatacgat atgtgttttt tgcgactgat
21361 tcttttgctt agtgtgtttt catggcccat ccacgttgca gcatgtgtca ctactttcat
21421 cctgttttat cactgaataa tccattatat gattacatgt aaatatcact tcttgttcat
21481 ccactgatca cttacaggac attgggttgt ttccactttt aggctagtgt gaacacgtta
21541 ttgtgtgaac acacatttcc atttctcttg agtttatacc ttgaaattga actgcttgtt
//
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment