牛的基因组学
来源:互联网 发布:人力资源软件 免费 编辑:程序博客网 时间:2024/06/05 03:47
题目描述
农夫拥有n头有斑点的奶牛和n头没有斑点的奶牛。由于她刚刚完成了关于牛的基因的一门课程,所以她相信,她的奶牛身上的斑点是由于奶牛基因组上单个位置的基因突变引起的。农夫花费了巨大的代价,把她的奶牛的基因组进行了排序。每一个基因组都是一个由ACGT四个字母组成的长度为m的字符串。当她排列她的牛的基因组时,她得到了以下的表格,(此时n=3)
位置
1
2
3
4
5
6
7
…
M
有斑点的牛 1
A
A
T
C
C
C
A
…
T
有斑点的牛 2
G
A
T
T
G
C
A
…
A
有斑点的牛 3
G
G
T
C
G
C
A
…
A
无斑点的牛 1
A
C
T
C
C
C
A
…
G
无斑点的牛 2
A
C
T
C
G
C
A
…
T
无斑点的牛 3
A
C
T
T
C
C
A
…
T
仔细观察这张表,她推测,位置2是基因组中可能解释斑点的潜在位置。也就是说,通过查看这张表,农夫可以预测她的哪头奶牛是有斑点的,哪些不是(这里,A或G意味着斑点,C意味着无斑点; T是无关紧要的,因为它不会出现在任何奶牛的位置2)。位置1本身不足以解释斑点,因为这个位置的A可能表明一头斑点的牛或一头无斑点牛。
给出农民的奶牛的基因组,请计算潜在解释斑点的数目。
输入输出格式
输入格式(文件名 cownomics.in):
输入数据第一行包含两个小于100的正整数N和M。下一行至第N+1行每行包含一串长为M的字符串,表示斑点牛的基因组。第N+2行至最后每行同样包含一串长为M的字符串,表示普通奶牛的基因组。
输出格式(文件名 cownomics.out):
请计算在基因组中可能导致斑点病的位置的数量(一个大于等于0,小于等于M的整数)。
样例输入输出
样本输入
3 8
AATCCCAT
GATTGCAA
GGTCGCAA
ACTCCCAG
ACTCGCAT
ACTTCCAT
样本输出
1
这道字符串题又坑了我好久。我的输入到现在都没弄清楚,我本来很开心地scanf字符数组,结果一直发现有问题,原来是我没有输入换行符,太坑了,太坑了。我调试了大半个小时。结果才发现是输入错了。
#include<bits/stdc++.h>
using namespace std;
int n,m,s=0;
char a[110][110],b[110][110];
string tmp;
int main()
{
freopen("cownomics.in","r",stdin);
freopen("cownomics.out","w",stdout);
scanf("%d%d",&n,&m);
getline(cin,tmp);
for (int i=1;i<=n;++i)
{
for (int j=1;j<=m;++j)
scanf("%c",&a[i][j]);
getline(cin,tmp);
}
for (int i=1;i<=n;++i)
{
for (int j=1;j<=m;++j)
scanf("%c",&b[i][j]);
getline(cin,tmp);
}
for (int i=1;i<=m;++i)
{
bool c[5]={},d[5]={},flag=true;
for (int j=1;j<=n;++j)
{
switch (a[j][i])
{
case 'A':c[1]=true;break;
case 'T':c[2]=true;break;
case 'G':c[3]=true;break;
case 'C':c[4]=true;break;
}
switch (b[j][i])
{
case 'A':d[1]=true;break;
case 'T':d[2]=true;break;
case 'G':d[3]=true;break;
case 'C':d[4]=true;break;
}
}
for (int j=1;j<=4;++j)
if (c[j]&&d[j]) flag=false;
if (flag) s++;
}
cout<<s<<endl;
return 0;
}
你通过观察那张表格,就大概可以知道这道题的方法。仔细观察位置2,有斑点的牛基因有AG,无斑点的牛基因只有C,所以说如果有一个位置,有斑点的牛和无斑点的牛,它们的基因没有重复,那个这个位置就算。
所以,我用一个c数组存储有斑点的牛中的ATGC是否出现过,用d数组存储无斑点的牛,然后,c数组和d数组一对一对进行比较。从宏观上来看,就是判断了一个位置上牛的基因有没有重复。如果没有重复,就算;一有重复就不算。
- 牛的基因组学
- SXOJ844 牛的基因组
- 基因组学的未解之谜
- 比较基因组学
- 后基因组时代的基因组功能注释
- 说说基因组的垃圾DNA-Transposable elements
- 计算基因组染色体长度的Python脚本
- 滑窗口统计基因组GC含量的分布
- Docker的性能损耗:以基因组分析流程为例
- 第一个接近完整的六倍体小麦基因组
- 基因组与Python --PyVCF 好用的vcf文件处理器
- 体外应用Cas9系统实现对上百kb的基因组片段的靶向克隆
- Trinity简介(1)--用于无参考基因组的转录组de novo组装
- whole-genome-sequencing Data Analysis 学习笔记3: 测试数据及参考基因组的准备
- 基于基因组数据的癌症亚型发现聚类研究
- 生物信息学常见的数据下载,包括基因组,gtf,bed,注释
- 全基因组重测序
- 基因组(BWT)排序
- 将dwg文件怎么打开,教你最便捷
- Tkinter中复选菜单是否被选中的判断与设置
- deepClone, extend, 深克隆对象和Object.assign(ES6)
- Spring框架之IoC容器—ConfigurableBeanFactory接口
- JSON字符串 与 对象 、集合 之间的转换
- 牛的基因组学
- Redis常用方法实例
- first sight@echo
- Android Studio应用开发简介
- SQL之创建和修改表
- svn 常用操作命令
- init.rc不能通过adb shell修改的原因
- Springmvc学习(05)-数据校验
- java 加解密