PageRenderTime 50ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/eLMM/CodePlex/MBF/IO/GenBank/RepeatRegion.cs

#
C# | 305 lines | 178 code | 32 blank | 95 comment | 0 complexity | 4a9680d2c3991ecf93de2d82084e6b62 MD5 | raw file
  1. //*********************************************************
  2. //
  3. // Copyright (c) Microsoft Corporation. All rights reserved.
  4. //
  5. //
  6. //
  7. //
  8. //
  9. //
  10. //*********************************************************
  11. using System;
  12. using System.Collections.Generic;
  13. namespace Bio.IO.GenBank
  14. {
  15. /// <summary>
  16. /// Region of genome containing repeating units.
  17. /// </summary>
  18. [Serializable]
  19. public class RepeatRegion : FeatureItem
  20. {
  21. #region Constructors
  22. /// <summary>
  23. /// Creates new RepeatRegion feature item from the specified location.
  24. /// </summary>
  25. /// <param name="location">Location of the RepeatRegion.</param>
  26. public RepeatRegion(ILocation location)
  27. : base(StandardFeatureKeys.RepeatRegion, location) { }
  28. /// <summary>
  29. /// Creates new RepeatRegion feature item with the specified location.
  30. /// Note that this constructor uses LocationBuilder to construct location object from the specified
  31. /// location string.
  32. /// </summary>
  33. /// <param name="location">Location of the RepeatRegion.</param>
  34. public RepeatRegion(string location)
  35. : base(StandardFeatureKeys.RepeatRegion, location) { }
  36. /// <summary>
  37. /// Private constructor for clone method.
  38. /// </summary>
  39. /// <param name="other">Other RepeatRegion instance.</param>
  40. private RepeatRegion(RepeatRegion other)
  41. : base(other) { }
  42. #endregion Constructors
  43. #region Properties
  44. /// <summary>
  45. /// Name of the allele for the given gene.
  46. /// All gene-related features (exon, CDS etc) for a given gene should share the same Allele qualifier value;
  47. /// the Allele qualifier value must, by definition, be different from the Gene qualifier value; when used with
  48. /// the variation feature key, the Allele qualifier value should be that of the variant.
  49. /// </summary>
  50. public string Allele
  51. {
  52. get
  53. {
  54. return GetSingleTextQualifier(StandardQualifierNames.Allele);
  55. }
  56. set
  57. {
  58. SetSingleTextQualifier(StandardQualifierNames.Allele, value);
  59. }
  60. }
  61. /// <summary>
  62. /// Reference to a citation listed in the entry reference field.
  63. /// </summary>
  64. public List<string> Citation
  65. {
  66. get
  67. {
  68. return GetQualifier(StandardQualifierNames.Citation);
  69. }
  70. }
  71. /// <summary>
  72. /// Database cross-reference: pointer to related information in another database.
  73. /// </summary>
  74. public List<string> DatabaseCrossReference
  75. {
  76. get
  77. {
  78. return GetQualifier(StandardQualifierNames.DatabaseCrossReference);
  79. }
  80. }
  81. /// <summary>
  82. /// A brief description of the nature of the experimental evidence that supports the feature
  83. /// identification or assignment.
  84. /// </summary>
  85. public List<string> Experiment
  86. {
  87. get
  88. {
  89. return GetQualifier(StandardQualifierNames.Experiment);
  90. }
  91. }
  92. /// <summary>
  93. /// Function attributed to a sequence.
  94. /// </summary>
  95. public List<string> Function
  96. {
  97. get
  98. {
  99. return GetQualifier(StandardQualifierNames.Function);
  100. }
  101. }
  102. /// <summary>
  103. /// Symbol of the gene corresponding to a sequence region.
  104. /// </summary>
  105. public string GeneSymbol
  106. {
  107. get
  108. {
  109. return GetSingleTextQualifier(StandardQualifierNames.GeneSymbol);
  110. }
  111. set
  112. {
  113. SetSingleTextQualifier(StandardQualifierNames.GeneSymbol, value);
  114. }
  115. }
  116. /// <summary>
  117. /// Synonymous, replaced, obsolete or former gene symbol.
  118. /// </summary>
  119. public List<string> GeneSynonym
  120. {
  121. get
  122. {
  123. return GetQualifier(StandardQualifierNames.GeneSynonym);
  124. }
  125. }
  126. /// <summary>
  127. /// Genomic map position of feature.
  128. /// </summary>
  129. public string GenomicMapPosition
  130. {
  131. get
  132. {
  133. return GetSingleTextQualifier(StandardQualifierNames.GenomicMapPosition);
  134. }
  135. set
  136. {
  137. SetSingleTextQualifier(StandardQualifierNames.GenomicMapPosition, value);
  138. }
  139. }
  140. /// <summary>
  141. /// A structured description of non-experimental evidence that supports the feature
  142. /// identification or assignment.
  143. /// </summary>
  144. public List<string> Inference
  145. {
  146. get
  147. {
  148. return GetQualifier(StandardQualifierNames.Inference);
  149. }
  150. }
  151. /// <summary>
  152. /// A submitter-supplied, systematic, stable identifier for a gene and its associated
  153. /// features, used for tracking purposes.
  154. /// </summary>
  155. public List<string> LocusTag
  156. {
  157. get
  158. {
  159. return GetQualifier(StandardQualifierNames.LocusTag);
  160. }
  161. }
  162. /// <summary>
  163. /// Type and name or identifier of the mobile element which is described by the parent feature.
  164. /// </summary>
  165. public List<string> MobileElement
  166. {
  167. get
  168. {
  169. return GetQualifier(StandardQualifierNames.MobileElement);
  170. }
  171. }
  172. /// <summary>
  173. /// Any comment or additional information.
  174. /// </summary>
  175. public List<string> Note
  176. {
  177. get
  178. {
  179. return GetQualifier(StandardQualifierNames.Note);
  180. }
  181. }
  182. /// <summary>
  183. /// Feature tag assigned for tracking purposes.
  184. /// </summary>
  185. public List<string> OldLocusTag
  186. {
  187. get
  188. {
  189. return GetQualifier(StandardQualifierNames.OldLocusTag);
  190. }
  191. }
  192. /// <summary>
  193. /// rpt_unit_range; Identity of a repeat range.
  194. /// </summary>
  195. public List<string> RepeatedRange
  196. {
  197. get
  198. {
  199. return GetQualifier(StandardQualifierNames.RepeatedRange);
  200. }
  201. }
  202. /// <summary>
  203. /// rpt_unit_seq; Identity of a repeat sequence.
  204. /// </summary>
  205. public List<string> RepeatedSequence
  206. {
  207. get
  208. {
  209. return GetQualifier(StandardQualifierNames.RepeatedSequence);
  210. }
  211. }
  212. /// <summary>
  213. /// rpt_family; Type of repeated sequence; ""Alu"" or ""Kpn"", for example.
  214. /// </summary>
  215. public List<string> RepeatedSequenceFamily
  216. {
  217. get
  218. {
  219. return GetQualifier(StandardQualifierNames.RepeatedSequenceFamily);
  220. }
  221. }
  222. /// <summary>
  223. /// rpt_type; Organization of repeated sequence.
  224. /// </summary>
  225. public List<string> RepeatedSequenceType
  226. {
  227. get
  228. {
  229. return GetQualifier(StandardQualifierNames.RepeatedSequenceType);
  230. }
  231. }
  232. /// <summary>
  233. /// Identifier for a satellite DNA marker, compose of many tandem repeats
  234. /// (identical or related) of a short basic repeated unit.
  235. /// </summary>
  236. public string Satellite
  237. {
  238. get
  239. {
  240. return GetSingleTextQualifier(StandardQualifierNames.Satellite);
  241. }
  242. set
  243. {
  244. SetSingleTextQualifier(StandardQualifierNames.Satellite, value);
  245. }
  246. }
  247. /// <summary>
  248. /// Accepted standard name for this feature.
  249. /// </summary>
  250. public string StandardName
  251. {
  252. get
  253. {
  254. return GetSingleTextQualifier(StandardQualifierNames.StandardName);
  255. }
  256. set
  257. {
  258. SetSingleTextQualifier(StandardQualifierNames.StandardName, value);
  259. }
  260. }
  261. #endregion Properties
  262. #region Methods
  263. /// <summary>
  264. /// Creates a new RepeatRegion that is a copy of the current RepeatRegion.
  265. /// </summary>
  266. /// <returns>A new RepeatRegion that is a copy of this RepeatRegion.</returns>
  267. public new RepeatRegion Clone()
  268. {
  269. return new RepeatRegion(this);
  270. }
  271. #endregion Methods
  272. }
  273. }