commit f5b3d446e121c8f2308302d40d71cdd584034f2e Author: mpabi Date: Sun Jun 9 16:56:13 2024 +0200 starter diff --git a/gfp-old.py b/gfp-old.py new file mode 100644 index 0000000..e759c73 --- /dev/null +++ b/gfp-old.py @@ -0,0 +1,134 @@ +#! /usr/bin/env python3 +# vim:fenc=utf-8 +# +# Copyright © 2024 user +# +# Distributed under terms of the MIT license. +import os +from Bio import Entrez, SeqIO +from Bio.Seq import Seq +from Bio.SeqFeature import SeqFeature, FeatureLocation +from Bio.Restriction import RestrictionBatch, EcoRI, BamHI, HindIII +from Bio.Graphics import GenomeDiagram +from reportlab.lib import colors + + +#%% +# Ustawienia Entrez +Entrez.email = "your_email@example.com" # Wpisz swój adres email + +# Funkcja do pobierania sekwencji z NCBI i zapisywania jej lokalnie +def fetch_and_save_sequence(db, id, file_path): + handle = Entrez.efetch(db=db, id=id, rettype="gb", retmode="text") + record = SeqIO.read(handle, "genbank") + handle.close() + SeqIO.write(record, file_path, "genbank") + return record + +# Funkcja do wczytywania sekwencji z lokalnego pliku +def load_local_sequence(file_path): + with open(file_path, 'r') as file: + record = SeqIO.read(file, "genbank") + return record + +# Åšcieżki do lokalnych plików +gfp_file_path = 'gfp_sequence.gb' +plasmid_file_path = 'plasmid_sequence.gb' + +# ID dla sekwencji w NCBI +gfp_id = "U87974" +plasmid_id = "U96626" + +# Sprawdzanie i pobieranie sekwencji GFP +if not os.path.exists(gfp_file_path): + print(f"Plik {gfp_file_path} nie istnieje. Pobieranie z serwera NCBI...") + gfp_record = fetch_and_save_sequence("nuccore", gfp_id, gfp_file_path) + print(f"Pobrano i zapisano sekwencjÄ™ GFP do pliku {gfp_file_path}.") +else: + print(f"Plik {gfp_file_path} istnieje. Wczytywanie danych z lokalnego pliku...") + gfp_record = load_local_sequence(gfp_file_path) + print(f"Wczytano dane z pliku {gfp_file_path}.") + +gfp_seq = str(gfp_record.seq) +print(f"GFP Sequence: {gfp_seq[:60]}...") + +# Sprawdzanie i pobieranie sekwencji plazmidu +if not os.path.exists(plasmid_file_path): + print(f"Plik {plasmid_file_path} nie istnieje. Pobieranie z serwera NCBI...") + record = fetch_and_save_sequence("nuccore", plasmid_id, plasmid_file_path) + print(f"Pobrano i zapisano sekwencjÄ™ plazmidu do pliku {plasmid_file_path}.") +else: + print(f"Plik {plasmid_file_path} istnieje. Wczytywanie danych z lokalnego pliku...") + record = load_local_sequence(plasmid_file_path) + print(f"Wczytano dane z pliku {plasmid_file_path}.") +#%% +# Dodanie sekwencji kodujÄ…cej His6 +his6_tag = "CACCACCACCACCACCAC" # Sekwencja kodujÄ…ca 6x histydynÄ™ (His6) + +# Sekwencja biaÅ‚ka GFP z His6 tagiem na koÅ„cu +gfp_seq_with_his6 = gfp_seq + his6_tag + +# Projektowanie starterów +forward_primer = gfp_seq[:20] # Pierwsze 20 nukleotydów sekwencji GFP +reverse_primer = str(Seq(gfp_seq_with_his6[-20:]).reverse_complement()) # Ostatnie 20 nukleotydów + His6 + +print(f"Forward Primer: {forward_primer}") +print(f"Reverse Primer: {reverse_primer}") + +# Miejsca ciÄ™cia restryktazy +enzymes = RestrictionBatch([EcoRI, BamHI, HindIII]) +restriction_sites = enzymes.search(record.seq) + +# Utwórz diagram plazmidu +diagram = GenomeDiagram.Diagram("pET-28a(+) Plasmid Map") +track = diagram.new_track(1, name="Annotated Features", greytrack=True) +feature_set = track.new_set() + +# Dodanie sekwencji kodujÄ…cej GFP +feature_set.add_feature( + SeqFeature(FeatureLocation(0, len(gfp_seq)), strand=+1), + name="GFP Coding Sequence", + label=True, + color=colors.lightblue +) + +# Dodanie His6 tagu +feature_set.add_feature( + SeqFeature(FeatureLocation(len(gfp_seq), len(gfp_seq_with_his6)), strand=+1), + name="His6 Tag", + label=True, + color=colors.lightgreen +) + +# Dodanie forward primer +feature_set.add_feature( + SeqFeature(FeatureLocation(0, len(forward_primer)), strand=+1), + name="Forward Primer", + label=True, + color=colors.orange +) + +# Dodanie reverse primer +feature_set.add_feature( + SeqFeature(FeatureLocation(len(gfp_seq_with_his6) - len(reverse_primer), len(gfp_seq_with_his6)), strand=-1), + name="Reverse Primer", + label=True, + color=colors.red +) + +# Dodanie miejsc ciÄ™cia restryktazy +for enzyme, sites in restriction_sites.items(): + for site in sites: + feature_set.add_feature( + SeqFeature(FeatureLocation(site, site + 1), strand=0), + name=enzyme, + label=True, + color=colors.purple + ) + +# Rysowanie diagramu +diagram.draw(format="circular", circular=True, pagesize='A4', start=0, end=len(record), circle_core=0.5) +diagram.write("pdf/plasmid_map.pdf", "PDF") + +print("Zapisano diagram plazmidu do pliku 'plasmid_map.pdf'") + diff --git a/gfp_sequence.gb b/gfp_sequence.gb new file mode 100644 index 0000000..65dc8f7 --- /dev/null +++ b/gfp_sequence.gb @@ -0,0 +1,66 @@ +LOCUS SCU87974 818 bp mRNA linear SYN 24-FEB-1997 +DEFINITION Synthetic construct modified green fluorescent protein GFP5-ER + (mgfp5-ER) mRNA, complete cds. +ACCESSION U87974 +VERSION U87974.1 +KEYWORDS . +SOURCE synthetic construct + ORGANISM synthetic construct + other sequences; artificial sequences. +REFERENCE 1 (bases 1 to 818) + AUTHORS Siemering,K.R., Golbik,R., Sever,R. and Haseloff,J. + TITLE Mutations that suppress the thermosensitivity of green fluorescent + protein + JOURNAL Curr. Biol. 6 (12), 1653-1663 (1996) + PUBMED 8994830 +REFERENCE 2 (bases 1 to 818) + AUTHORS Haseloff,J., Siemering,K.R., Prasher,D. and Hodge,S. + TITLE Removal of a cryptic intron and subcellular localisation of green + fluorescent protein are required to mark transgenic Arabidopsis + plants brightly + JOURNAL Proc. Natl. Acad. Sci. U.S.A. (1997) In press +REFERENCE 3 (bases 1 to 818) + AUTHORS Siemering,K.R., Golbik,R., Sever,R. and Haseloff,J. + TITLE Direct Submission + JOURNAL Submitted (31-JAN-1997) Division of Cell Biology, MRC Laboratory of + Molecular Biology, Hills Road, Cambridge CB2 2QH, UK +FEATURES Location/Qualifiers + source 1..818 + /organism="synthetic construct" + /mol_type="mRNA" + /db_xref="taxon:32630" + gene 1..818 + /gene="mgfp5-ER" + CDS 21..812 + /gene="mgfp5-ER" + /note="contains codon usage changes that disrupt a cryptic + plant intron, mutations that increase the thermotolerance + and change the spectral characteristics of the protein, and + sequences that code for signal peptides that result in + retention of the protein in the plant endoplasmic + reticulum" + /codon_start=1 + /transl_table=11 + /product="modified green fluorescent protein GFP5-ER" + /protein_id="AAB47999.1" + /translation="MKTNLFLFLIFSLLLSLSSAEFSKGEELFTGVVPILVELDGDVNG + HKFSVSGEGEGDATYGKLTLKFICTTGKLPVPWPTLVTTFSYGVQCFSRYPDHMKRHDF + FKSAMPEGYVQERTIFFKDDGNYKTRAEVKFEGDTLVNRIELKGIDFKEDGNILGHKLE + YNYNSHNVYIMADKQKNGIKANFKTRHNIEDGGVQLADHYQQNTPIGDGPVLLPDNHYL + STQSALSKDPNEKRDHMVLLEFVTAAGITHGMDELYKHDEL" +ORIGIN + 1 ggatccaagg agatataaca atgaagacta atctttttct ctttctcatc ttttcacttc + 61 tcctatcatt atcctcggcc gaattcagta aaggagaaga acttttcact ggagttgtcc + 121 caattcttgt tgaattagat ggtgatgtta atgggcacaa attttctgtc agtggagagg + 181 gtgaaggtga tgcaacatac ggaaaactta cccttaaatt tatttgcact actggaaaac + 241 tacctgttcc atggccaaca cttgtcacta ctttctctta tggtgttcaa tgcttttcaa + 301 gatacccaga tcatatgaag cggcacgact tcttcaagag cgccatgcct gagggatacg + 361 tgcaggagag gaccatcttc ttcaaggacg acgggaacta caagacacgt gctgaagtca + 421 agtttgaggg agacaccctc gtcaacagga tcgagcttaa gggaatcgat ttcaaggagg + 481 acggaaacat cctcggccac aagttggaat acaactacaa ctcccacaac gtatacatca + 541 tggccgacaa gcaaaagaac ggcatcaaag ccaacttcaa gacccgccac aacatcgaag + 601 acggcggcgt gcaactcgct gatcattatc aacaaaatac tccaattggc gatggccctg + 661 tccttttacc agacaaccat tacctgtcca cacaatctgc cctttcgaaa gatcccaacg + 721 aaaagagaga ccacatggtc cttcttgagt ttgtaacagc tgctgggatt acacatggca + 781 tggatgaact atacaaacat gatgagcttt aagagctc +// diff --git a/pdf/plasmid_map.pdf b/pdf/plasmid_map.pdf new file mode 100644 index 0000000..c79dc8e --- /dev/null +++ b/pdf/plasmid_map.pdf @@ -0,0 +1,74 @@ +%PDF-1.4 +%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com +1 0 obj +<< +/F1 2 0 R /F2 3 0 R +>> +endobj +2 0 obj +<< +/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font +>> +endobj +3 0 obj +<< +/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/Contents 8 0 R /MediaBox [ 0 0 841.8898 595.2756 ] /Parent 7 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +5 0 obj +<< +/PageMode /UseNone /Pages 7 0 R /Type /Catalog +>> +endobj +6 0 obj +<< +/Author (anonymous) /CreationDate (D:20240609165346+00'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20240609165346+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) + /Subject (unspecified) /Title () /Trapped /False +>> +endobj +7 0 obj +<< +/Count 1 /Kids [ 4 0 R ] /Type /Pages +>> +endobj +8 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 5336 +>> +stream +Gb!la9s:D&D9)DF;k.D<^e[BjUnhR#e1$8-nhRhO$Y);A*H]IeWB%V])]5BKaE41jq7!pJ9DG8,^W!>.^[*rHcE=-,A(MV>U>PRujR(DJe]i!Rmu^q[n*SRGSpj0Ug"LMgj4\Q34V&XWK^/Tm=.e?W%hHX*k?@I3NaQ$PO8!%*m:HP\YI1`%rY%u/[_%'lCQEJ*NGGm-NFJ6_75Mc!<8)lhgPGQSr^=RVD"#ObYE+ZV@^Jr@nOLP*hQjOXrQJY?7I_#aed_==8"M+q0;41pa[2'-9WV\lfnRFT,k3g(M."e%5W+$=1jE3Tdnl9$g<=Pb@13R`UJ6hQ#t.D]C7RnaWP*,8;_*QCMUKe?c?Y*QW_aNU&ihsNMP`I&/cJgnNDASWo23!mk7G8H!*[[%*7Y-.939k2o9raRqRE!KpXW+-SOcIBJCU8DsdkcZ:#H0*Xb0SSl:67j3Y71\Ns8@68eF@]2>35R,9cjc.H6EOhGR?3:%@HP+TO`isC>K"!adeU[LaMs)(`Hd0\"N'suWFZNuOq#O(`;-99.o^;-]IV9tam=JT%igTclioe/1OQ[[=un2N$m3\u'_js/+0T/a%>tqqL>i+3B3N`$RkLLA&B#:j1PAC8G7cFX"fn&U8`B:W>duSg%)TU-J4#M_Bq&ke!LK8c$3'tgE)-Q$M$#@aY/.:1NJq(]k[Eu0]uqDK%aLK6)bpkjY5+cH>ONS5VXWa2KR\WRFQ)q$O(F#PJOp0.^UN+Z/g6H9-3nKWLq^]uc@]fiF.FB?'!%[6WiSig\7t:DNjZBe%==Bn)7quc3UISj9!KlO/k^mndM2b[$Yd;=GG9#)FcW38BN5(0lih!3YN6*+[fPY$_KJPjb%.k>'6q8R/#k@>3gPIdQ-=>&/bSBkVemNVj`1?na1DnnDA,O:QEB_>Z>ss=`:]qsWB/SYZkDkX7[[k6r3jQkaE!j&hN38XY$:ekA1hn:-Mq47g;7I.b$tctHbj0/[,@E%1tcTJKb4),>AA>@U\b_,fn7)3!/b/8Z,s@j>1i?HHS;dY8#R&&7Z1N?D!2:^F?S=:@3QB06crrYG6/8WY7bC=VTqYpRb'[N-X0Vm(`aA0:/T7:K,i1DBDR[M4Ifs5C'peP*A+DPi-D&"\asmZLQ^UM='s_e@bMhMQOGg)&._o5oc:1:6nC`q7/]pp+F#=cVGoW[q'e"k]eea%"09kTs^o\1gq?fH`6e8@eDMa/m+_4(IREOUL\0oTQD;EN_nI*8,%nbZV8LN-7mL=R4fLktZ"f,mCH`HaIpm(2Wa7:gh.U0c;b,B&"`B)Hc9YSY&%X1.7P7df*hr>b8KkZ8VYS);]rWPn]mHagQ5Jr_]l_],du%+(\=+De#"E=RID7m#1lt*Ohp[g%.'K#b%9^)L>68R>HW7I-mrS<:uBC32`NT$2DY(!+tbZRcXef^bpaq/Iki9k+\F_87nQ]GE\UT(#"oG\X)(LFb0keo=(io8nk0phWRW2Sk8\,LpCo.%Jd:\m*8<-8?t3nB]Vu:E^3fO,V8O>Z`75[\-ebtla+3DjNn9^6g2>_c2/W"soG0j,%Nfb/hTs!AM`"\9f-Rasc,`r?c8(ml0sMk;e`oWdk"b*/VQGdZ0gh"HiCnN8#88shL0KBn6gAeMf/j@];10QS>b977ReAM)P/h-247dd\bJ/KYBjs!`QW:eo15NSeLAUR;VK%g=*Ga-CL&\4.kh.JlGX%368AnSm5)QnhcDDmlXdZd2,skX;/1u*Rg07mUO7Ztq0a8OR!tn!pk&hEE5$P0?>Rq^TB.)@]em-8fodt+3/D7DCTsrF5D5IQS1f;gPLhnHN)st6)WuJ,FP?&@,lraB\"?2eb!#a=0n.m*>X'M(>PM&PTEcTmDLlij)9Aq.s#NbHr\k'+i:5[Z`C(CNl9(Dc1ac+nY0Wi(3*'[P)*l+XUb1B^S2n\S?/Caed]M?W$Du!pFARr0:(F_Vl(O&p:2P@(7DtKNEG]X^4#2VtJkMD6+]Zu/$o#2o5bR]$(>Y!u(.Gm9.*Fb2#'q%L*?pohZX>=c(QA,f,XLn>#Oou"RV40&[NTI(N(Mf>M=A*!_2)'+'=9R#K9TrU2Cs#>&HmQb$]r"UZ&I5A>;l#ur;PB9$-V@9nHDr\M*aZ2p;SnE^TeYn_WgNHD(:[IHa^Wg/-;j>RAgPT.SKZX5\VaoD1+Z1YQ(Fl(E4_uL/5ZP=0@_+[(1X][Ejur[mb2b`NZ^S:#a,E0Okpb1dis`As.nhg%VQ5`U15H.@3m*0b9/8(XYe1V2Cu2=L=[B9@];0RiBmRDK`[cnPRI[3/$^Nk2H$Km/eS7k&PteC.PZ?RJ[pui%;Na'kSuAG1=k.+,OHG\o-KtP@[%)?-hLQuN*O?;>@^06UYZMpI'q;l(3pXCeP-O9bb\C>M&o:Tn6r'4Dku&,gPhtNcF6H@rA5tT*7`AaQ]NN=H.>h[*2YaqNU9mkd'PTk=HT\X&U9o$M"t.sLVh[SnPVh7GBU*1A&/[VfBr"s7FK[8?2FI0QRl+&1r*@9I?Mf1.;.B[LGPMlZ?4C;3\SR%")M0.L=_s:Cfe6b.kMVImr$/N7q_!+YC!eaCd6+p9gcYd/70JZn(FgBeS,gEhVdZJ;.(s#UhT'Y6M3h@Pq9FF:M7@E[DcoFam#Wuh\WSlZ[+N9>!8g[*,8&b[1[ISR#tOQK+C@RuJK\Y24*Jg'AH/GVWN1bh:8s%bZZ'Gl]Blld>C,G/&#NQPf]aIP4'CT-6B&bZ_/+(<+L)bn@GGVf_OPVNck+7t[pBg1t!t"rf?WKCR5gjs=1_2GQq-/PR:fV'oL^cctGs.oa_>X\*@'J;J0iE#F<1\\]N]5-2u@EHZ2'\"+BkFK#m?k2LZMDX*p8N19^T@8"0j]XMlf=T\5.bqT\Wml@_6G7"WcH:ME$U6?eiqgo%/G'#A*-X^+[DLq:h%b#1fI)RSl-K,Ad()%u#3>"n@s7<7mK\PD]IfY"+PH?e_-u*!;F/@O]f):)1r0/\cuk%iV;e]cgLOMq`B?GE;LaHun[:[.jcs0?M1_@1&egprmS>@T_V[HHpT_lXIp>0GOU0hjeqt;FXI.[b4aq@+928ha0-T"rV5dWG9?igt5+emtXMB97cK<&affp570.9$&s$*Wl^]3f^]-"fan_MfX0Ah3Nj.ANLqr+s6N]'(i,D#II'jAdVoo0mYpC+\5kV;08&Q:X:EhR^s(M<$mrF^Ss?gB;>!Y8GV+(jqJ850'R+DqklX#5bRTB[BVcFh27(R%&bqRNF"@e")2o7+1>S\N58*EQhWpRh7U?]2=2mQ=-3#["j3Yde#D-5(2DKZl[P)kNo]=eYQendstream +endobj +xref +0 9 +0000000000 65535 f +0000000073 00000 n +0000000114 00000 n +0000000223 00000 n +0000000330 00000 n +0000000533 00000 n +0000000601 00000 n +0000000889 00000 n +0000000948 00000 n +trailer +<< +/ID +[] +% ReportLab generated PDF document -- digest (http://www.reportlab.com) + +/Info 6 0 R +/Root 5 0 R +/Size 9 +>> +startxref +6375 +%%EOF diff --git a/plasmid_sequence.gb b/plasmid_sequence.gb new file mode 100644 index 0000000..772d2c8 --- /dev/null +++ b/plasmid_sequence.gb @@ -0,0 +1,131 @@ +LOCUS MMU96626 4742 bp DNA linear ROD 07-FEB-1998 +DEFINITION Mus musculus chondroadherin gene, complete cds. +ACCESSION U96626 +VERSION U96626.1 +KEYWORDS . +SOURCE Mus musculus (house mouse) + ORGANISM Mus musculus + Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi; + Mammalia; Eutheria; Euarchontoglires; Glires; Rodentia; Myomorpha; + Muroidea; Muridae; Murinae; Mus; Mus. +REFERENCE 1 (bases 1 to 4742) + AUTHORS Landgren,C., Beier,D.R., Fassler,R., Heinegard,D. and Sommarin,Y. + TITLE The mouse chondroadherin gene: characterization and chromosomal + localization + JOURNAL Genomics 47 (1), 84-91 (1998) + PUBMED 9465299 +REFERENCE 2 (bases 1 to 4742) + AUTHORS Landgren,C. and Sommarin,Y. + TITLE Direct Submission + JOURNAL Submitted (07-APR-1997) Connective Tissue, Cell and Molecular + Biology, Lund 22100, Sweden +FEATURES Location/Qualifiers + source 1..4742 + /organism="Mus musculus" + /mol_type="genomic DNA" + /db_xref="taxon:10090" + /chromosome="11" + /map="between D11Mit36 and D11Mit10" + mRNA join(671..1490,3420..3583,3831..3976,4202..4742) + /product="chondroadherin" + exon 671..1490 + /number=1 + CDS join(720..1490,3420..3583,3831..3972) + /codon_start=1 + /product="chondroadherin" + /protein_id="AAC39963.1" + /translation="MARALLFSLVFLAILLPALAACPQNCHCHGDLQHVICDKVGLQKI + PKVSETTKLLNLQRNNFPVLAANSFRTMPNLVSLHLQHCNIREVAAGAFRGLKQLIYLY + LSHNDIRVLRAGAFDDLTELTYLYLDHNKVSELPRGLLSPLVNLFILQLNNNKIRELRA + GAFQGAKDLRWLYLSENALSSLQPGSLDDVENLAKFHLDKNQLSSYPSAALSKLRVVEE + LKLSHNPLKSIPDNAFQSFGRYLETLWLDNTNLEKFSDAAFSGVTTLKHVHLDNNRLNQ + LPSSFPFDNLETLTLTNNPWKCTCQLRGLRRWLEAKASRPDATCSSPAKFKGQRIRDTD + ALRSCKSPTKRSKKAGRH" + exon 3420..3583 + /number=2 + exon 3831..3976 + /number=3 + exon 4202..4742 + /number=4 +ORIGIN + 1 gagctcttac gggcctggtg ccactgggct ccgagaaggg gcagagccaa acgcacggct + 61 gtcagctagc ctctgcaacc agctccccca cctccttggg ataaactgag gaacccagaa + 121 gcgggagccc aacccacagc agctctcacg ctccgcctgc gccgcacaac agtcccatta + 181 aagcgccgcc ggctggccga ccgcggtgag acgcatccgg ctgtcgggcc ccacttcctc + 241 cctcccggag tccagggtga cctgtctgcc aagggtgtat gggggaagga gacgtagaga + 301 actcaaactt gagcaaataa ataagttctg ggaacacttc cctctgccca gtggaaattc + 361 agaagcccct cgacacacct atcaccgtcc accccacctc ggggtgttgg tccagataga + 421 ggagggtagg ggaaggtgca gcataatgtt tgcaaacagg aaccaagggg ttggggttca + 481 ggggaagggc cctcagccct acacacggtc tcctgctgtg aaaagaggcc cccagccatc + 541 gaggatgggg acgcatctct gggcgggaag gggttaaatc agtggcttcg gtgctccacg + 601 tagtagctgg ctccgctgcc aactgcggtc aaggctgccc tataaatggg ccgggagacc + 661 cgagagtcga ggacttgtcg ctgccttagc ccccagccca ggctcaaggc gttctaacca + 721 tggcccgcgc gctcttattc agtctggtct ttcttgccat cctcctgcct gcgctagccg + 781 cctgccccca aaactgccac tgccatggag atctgcagca tgtcatctgc gacaaggtgg + 841 ggctgcagaa gatccccaag gtatcagaga caaccaaact gctcaatctc cagcgcaaca + 901 acttcccggt gctggctgcc aactcgtttc ggaccatgcc gaacctggtc tccctgcacc + 961 tgcaacactg caacatccgc gaggtggcgg ctggtgcctt ccgaggcctg aagcagctta + 1021 tctacctgta cctgtcccac aacgacatcc gggtattgcg agctggagcc ttcgacgacc + 1081 tgactgaact cacttacctc tatctagacc acaacaaagt gtcggaactg ccccgggggt + 1141 tgctctctcc tctggtcaac ctcttcatct tgcaactcaa caacaacaaa atccgagagc + 1201 tgcgtgctgg agctttccag ggggccaagg acctgcgctg gctctacctg tcagaaaatg + 1261 ccctcagttc cctgcagcct ggttccctgg atgatgtgga gaacctagcc aagttccacc + 1321 tggacaagaa ccagctgtct agctacccct cagccgccct gagcaaactt cgggtggtgg + 1381 aggagctgaa gctgtctcac aaccctctga agagcatccc agacaatgcc ttccagtcct + 1441 tcggtagata tctggagacc ctctggctgg ataacaccaa cctggagaag gtaagtgccc + 1501 cagctgcagt tctcccggct ctttctagga tgccacccca ggaaccacat cgggacagca + 1561 ttccctcctc ctggactcct tgtcactcag attatcctcc aaagcaaggg gcctttgcca + 1621 cttctctctg cattgacaca cacccctccc catccttctc acccttacct ggtcccgagg + 1681 cttctcagac agggctctct tgggactcct tgtaagagat ggaactgttc tggtcccaca + 1741 aatggcctct ggggaggcat ctgccccaga ccccacggtt aacagcagac acctcttcct + 1801 gttggacttt ccacccctct cttaccagtc tcctgcaagc ctaccatttc ataaaggaag + 1861 gtttgtctac tgaggcacct tccagaagct gagagaacac aaagagtgcc tgttcccagt + 1921 gggtgctggc ctgtgttgct aaggtaaagt gagaggccag aggatgaatt ggggagcagg + 1981 taccttaagg agaactctcc cacaccctcg tcccattccc tccgtgggtc gaaacacact + 2041 caattttatt gcaacctcgg gtcgatttca aatatggacg ggaaaccaag acacggagac + 2101 ctgacttggc ttcaccgagt tgctggcttg gtgctcttgc agcccgtgaa taaacacatg + 2161 caatccctgg cacacgcccc cccaagtgtc tcctcagagc acagactgac tgtctcactg + 2221 tccagcagac agtttgttga cttttgcttt ccccagtcac cagatcccag actcctcaat + 2281 tcttcctccc ttgggatgct caggctagcc tggtcggggc tgtctaggag caaagtcctt + 2341 ttcagggaat caccctggta cacaacacag tttcagccag aaggttcggg cagagaccag + 2401 agcgaggtag agtagttttg tttgtagaga acgtcacagc ccaatctggt ctgtgagagg + 2461 tcacagatac tgagctgagg acagaacgcc aaccttatct aggtagatgg agccttctgg + 2521 gtggatcttc tttagcctgg cctcacccca gctaaatgta gaccacccta gtgacaaaac + 2581 agtggccagt agaacagcat acgaaggctg atttagaatg aggaggccaa agccgggcgt + 2641 ggtagcgcac gccttcaatc ccagtacctg ggaggcaaag gcaggcgaat ttctaagttc + 2701 gaggccagcc tggtctacag agtgagttcc aggacagcca ggactacaca gagaaaccct + 2761 gtctcacaaa aaccaaaaag aaaaaagaaa aaaaaaagaa tgaggaggcc agagagaact + 2821 ggcaccaagg ctcagaggag ggcaccaata catttcctct ggagccatcc atcctggcca + 2881 aagtgcccac agagagctcc acaaatagca tctagcagaa ggcagagcaa tgaggacacc + 2941 actgggggaa atcctgggac cagggggctg tggggagcct gggctcactg cccatcccac + 3001 caaaccctga ccaggttcac cgtgtgcccg ccccaggcac actgcccatc ccaccaaaca + 3061 ctgaccaggt tcaccgtgtg cccgcccggg cactcaaagc caagctctgc ctgctcccca + 3121 gacccagtgt ttgtgcaggg aggtgctgcc taggaggtgg gggacagggt gtggtcctgc + 3181 agctactgtt tactagctag gtgaccctgt ccaaaggact gaaccttttc cgtttacaca + 3241 ttgggaagga ccccttccct ctctctctct ctctcaaaaa aaggtgttgt ggaggatgac + 3301 atcattgtgg ctcctcaaca ggccagggcg tgtgtccagg gaaaagacaa ccctggtcct + 3361 ctgagaaggg agccaggaga ctgagttgag gtgctcactc tgcctccctc acctcacagt + 3421 tctcagatgc tgccttctcg ggtgtgacca cactgaaaca cgtccatctg gacaacaacc + 3481 gcctgaacca actgccttcc tccttcccct ttgacaacct ggagaccctc actctcacca + 3541 acaacccatg gaaatgcacc tgccagctcc gtggccttcg gcggtgagaa tattcctcca + 3601 tataaccccc agactgccgt ccacatgaca gacggtccta gagtaggaca gcctggacat + 3661 cctagtcagc tacctagcat gtcgggtact gagtggttcc cttctctcat ttgtcaaatg + 3721 aagatgacaa ctccagatat ttctatggcc atagtccatc ccggtcactg tccctttccc + 3781 aagccttccc acccagcttt tccaagccca gcaactcttt gtctctgtag gtggttggaa + 3841 gccaaggctt ctcgaccgga tgctacctgc tcctcgccag ccaagttcaa gggtcagcgg + 3901 attcgtgaca cagatgccct tcgcagctgc aaatccccga ccaagaggtc caagaaagct + 3961 ggccgccatt aaacaggtgg gggctgggta gggaggccac cacggtctac ctttggaaat + 4021 tccagatggg gtgctgctat atcccatgac accacttccg gaggagcaat cagttccctg + 4081 tcttacaaga aaaggaggga ggacaggata acctctccca tggcttggcc taggacgtcc + 4141 atgggtccct ttaatgactc tgggtgactg gaatcctaat acccatcttc tctcactata + 4201 ggtcctgatc cagccagtcc tggcgactgc cttccgctgg agagactact gacgttccct + 4261 cccatcatcc acaccttctc ctacagcctc tgcggatgca cagcgctgcc ccgcccccgc + 4321 ccccacctag gtacatcctg gcaggggcac tgggctctct atcaccatcc cagctccacc + 4381 cagtggggtc ctaggaaaga cacagaatcc ctccccagcc actgtgtctg ggctctgcca + 4441 tggctccttt gagagaagct attgtagaac ctcctaccct ctgtccatcg gagctaaagc + 4501 gcagtggtca ttgggatgac cacgttatta ccaccttcct cggttccctc tgtccctgcc + 4561 atttggaaac aaacatcagg cccctgaccc accctgattg ccagaaagaa tttcaggccc + 4621 atgccccaac tctgccagtt cctgcctgcc aggacatgct accaggatac cagtagcgct + 4681 tggctgcata tccttcctgt ttgcgctcca gatttctata aacataaatg tatgtgtgtt + 4741 ca +//