Hi,
I want to build a script that alters the origin in a plasmid. The plasmid is stored in a XML file, and is circular. The way I want to do it is to build a script that identifies all numbers in the file and subtracts a certain number from them that is a user input.
Furthermore, if the number after subtraction is less than zero, it should be added to another number (the totalt size of the plasmid) that is also a user input. For instance, if the original number is 4 and the subtaction is 6, the result is -2. The totalt size of the plasmid is 10, therefore the output should read -2+10=8.
Is this even possible with bash or should I try another scripting method? I've attached a sample file of the type I want to play around with.
Thank you for your help!
Code:
<root>
<fields>
<isCircular>true</isCircular>
</fields>
<created type="date">2008-04-09 09:06:53</created>
<name>pHR-cPPT.TRE.eGFP.WPRE.SIN</name>
<description>A new nucleotide sequence entered manually</description>
<sequenceAnnotations>
<annotation>
<description>BamHI</description>
<type>restriction site</type>
<intervals>
<interval>
<minimumIndex>2657</minimumIndex>
<maximumIndex>2662</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>Recognition pattern</name>
<value>G^GATCC</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>ClaI</description>
<type>restriction site</type>
<intervals>
<interval>
<minimumIndex>2213</minimumIndex>
<maximumIndex>2218</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>Recognition pattern</name>
<value>AT^CGAT</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>cPPT</description>
<type>misc_feature</type>
<intervals>
<interval>
<minimumIndex>2095</minimumIndex>
<maximumIndex>2212</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>psi</description>
<type>misc_feature</type>
<intervals>
<interval>
<minimumIndex>686</minimumIndex>
<maximumIndex>823</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>RRE</description>
<type>misc_feature</type>
<intervals>
<interval>
<minimumIndex>1310</minimumIndex>
<maximumIndex>1514</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
<qualifier>
<name>modified by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>3'LTR</description>
<type>3'UTR</type>
<intervals>
<interval>
<minimumIndex>4135</minimumIndex>
<maximumIndex>4370</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>SV40</description>
<type>misc_feature</type>
<intervals>
<interval>
<minimumIndex>8673</minimumIndex>
<maximumIndex>8928</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>TRE</description>
<type>helix</type>
<intervals>
<interval>
<minimumIndex>2219</minimumIndex>
<maximumIndex>2655</maximumIndex>
<direction>leftToRight</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>XGPT</description>
<type>ORF</type>
<intervals>
<interval>
<minimumIndex>9153</minimumIndex>
<maximumIndex>9610</maximumIndex>
<direction>leftToRight</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>WPRE</description>
<type>misc_feature</type>
<intervals>
<interval>
<minimumIndex>3460</minimumIndex>
<maximumIndex>4048</maximumIndex>
<direction>leftToRight</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>5'LTR</description>
<type>5'UTR</type>
<intervals>
<interval>
<minimumIndex>1</minimumIndex>
<maximumIndex>634</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>GFP</description>
<type>gene</type>
<intervals>
<interval>
<minimumIndex>2703</minimumIndex>
<maximumIndex>3419</maximumIndex>
<direction>leftToRight</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>SV40 polyA</description>
<type>misc_feature</type>
<intervals>
<interval>
<minimumIndex>10012</minimumIndex>
<maximumIndex>10861</maximumIndex>
<direction>leftToRight</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>b-lacatamase</description>
<type>gene</type>
<intervals>
<interval>
<minimumIndex>6759</minimumIndex>
<maximumIndex>7619</maximumIndex>
<direction>leftToRight</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>created by</name>
<value>User</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>KpnI</description>
<type>restriction site</type>
<intervals>
<interval>
<minimumIndex>2521</minimumIndex>
<maximumIndex>2526</maximumIndex>
<direction>none</direction>
</interval>
<interval>
<minimumIndex>4066</minimumIndex>
<maximumIndex>4071</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>Recognition pattern</name>
<value>GGTAC^C</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>EcoRI</description>
<type>restriction site</type>
<intervals>
<interval>
<minimumIndex>3449</minimumIndex>
<maximumIndex>3454</maximumIndex>
<direction>none</direction>
</interval>
<interval>
<minimumIndex>4054</minimumIndex>
<maximumIndex>4059</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>Recognition pattern</name>
<value>G^AATTC</value>
</qualifier>
</qualifiers>
</annotation>
<annotation>
<description>XhoI</description>
<type>restriction site</type>
<intervals>
<interval>
<minimumIndex>3433</minimumIndex>
<maximumIndex>3438</maximumIndex>
<direction>none</direction>
</interval>
</intervals>
<qualifiers>
<qualifier>
<name>Recognition pattern</name>
<value>C^TCGAG</value>
</qualifier>
</qualifiers>
</annotation>
</sequenceAnnotations>
<charSequence>
<sequence>actta....</sequence>
<gapPrefixLength>0</gapPrefixLength>
<gapSuffixLength>0</gapSuffixLength>
</charSequence>
</root>